게임 개발 · 기술 동향미로의 개발노트
카테고리

anthropic-sdk-typescript

Anthropic Vertex SDK, 모델 경로 인코딩 보완

모아보기 · 소식 기준일 · 블로그 공개

프로젝트·리전·모델 값을 URL 경로에서 각각 인코딩합니다.

데이터 통신용 서버 랙
서버 랙 참고 사진입니다. ronK · CC BY-SA 2.5. · 이미지 출처 · 이용 조건

발표 내용

Vertex SDK 1.1.2는 프로젝트 ID, 리전, 모델을 요청 경로에 넣기 전에 인코딩합니다. 모델 값에 슬래시가 들어왔을 때 의도한 경로 밖으로 나가지 않도록 하는 수정입니다.

확인할 부분

빈 모델 값과 점 하나 또는 점 두 개로 된 값도 오류로 처리합니다. 앱이 사용자 입력으로 모델 이름을 받는 경우라면 해당 입력의 실패 경로를 확인할 만합니다.

경로의 구분자와 모델 이름의 문자를 나누기

웹 요청 경로에서 슬래시는 보통 다음 위치로 넘어가는 구분자입니다. 그런데 애플리케이션이 하나의 모델 값으로 전달한 문자열에도 슬래시가 들어갈 수 있어요. 이 값을 경로 전체에 그대로 끼워 넣으면, 호출자가 한 값으로 넘긴 것을 서버가 여러 경로 조각으로 읽을 수 있어요. 각 조각을 따로 인코딩하는 수정은 SDK가 만든 구분자와 호출자가 값에 넣은 문자를 서로 다른 역할로 다루게 합니다.

회귀를 살펴보려면 네트워크에 실제 모델 요청을 보내기 전에, 테스트용 전송 계층에서 최종 요청 경로를 기록합니다. 평소 쓰는 모델 이름, 슬래시가 들어간 문자열, 이미 인코딩된 것처럼 보이는 퍼센트 기호가 있는 값을 각각 넣어 봅니다. 평소 쓰던 이름으로 요청해도 결과가 같은지, 특수 문자가 들어간 값은 경로의 한 칸에 그대로 남는지 확인합니다. 인코딩을 한 뒤에도 해당 값이 Vertex에서 실제 모델로 허용되는지는 서비스가 별도로 판단합니다.

SDK를 감싸는 코드가 먼저 인코딩을 하고 있다면 새 버전에서 값이 두 번 변환되는지도 살펴볼 부분입니다. 화면에 보이는 모델 명칭, 설정 파일에서 읽은 문자열, 최종 HTTP 경로를 따로 비교하면 어느 계층에서 변형됐는지 찾기 쉽습니다. 단순한 경로 수정도 프록시가 URL을 한 번 더 해석하는 환경에서는 직접 호출 결과와 다를 수 있어, 운영에서 쓰는 경로가 있다면 그 조건을 함께 대조하는 편이 좋습니다.

출처

같은 카테고리의 글

최신 AI 동향 전체 보기 ↗