{
  "aboutHtml": "<p>Voyage Code 3는 소스 코드 검색에 특화된 임베딩 모델입니다. 개발사는 자연어로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기 작업을 설명합니다. 질문으로 구현을 찾고, 코드 조각으로 관련 로직을 찾으며, 함수 설명으로 관련 코드를 찾을 수 있습니다. 모델이 생성하는 것은 검색용 벡터이며, 편집된 파일이나 완성된 프로그램이 아닙니다.</p><p>의미 있는 코드 단위를 중심으로 리포지토리 자료를 준비합니다. 함수는 이름, 시그니처, 목적을 설명하는 주석과 함께 유지하세요. 더 큰 구성 요소에는 작업을 이해하는 데 필요한 인접 정의를 포함합니다. 검색 결과에서 실제로 임베딩한 소스를 정확히 열 수 있도록 리포지토리, 리비전, 파일 경로, 줄 위치를 별도로 저장하세요.</p><p>자연어 검색에서는 저장 전에 업로드를 검증하는 프로젝트 부분을 찾는 것처럼 동작을 설명할 수 있습니다. 코드 기반 쿼리에는 다른 곳에서 같은 목적을 가진 로직을 찾아야 하는 함수를 제공할 수 있습니다. 낯선 이름, 비슷한 구현, 주변 코드에 따라 의미가 달라지는 유틸리티를 포함해, 실제 개발 작업에서 대표 검색을 선택하세요.</p><p>32,000토큰 컨텍스트 창에는 상당한 양의 코드를 담을 수 있습니다. 그 공간을 의도적으로 사용하세요. 완전한 함수와 관련 의존 요소가 제어 흐름의 중간에서 임의로 잘라 낸 블록보다 더 많은 정보를 줄 수 있습니다. 추출 과정에서 소스 형식을 읽기 쉽게 유지하고 언어 문법을 보존합니다. 소스 파일이 입력 창보다 크면 유용한 구조적 경계에서 나누고, 각 구절과 상위 파일의 관계를 유지하세요.</p><p>Voyage Code 3는 2,048, 1,024, 512 또는 256차원 임베딩과 부동소수점, 부호 있는 또는 부호 없는 8비트, 이진 표현을 지원합니다. 이러한 제어 항목은 다양한 리포지토리 색인 크기와 검색 구성을 지원합니다. 더 큰 기준선에 사용한 것과 같은 실제 검색으로 간결한 표현을 평가하고, 올바른 함수나 파일이 유용한 결과에 계속 포함되는지 확인하세요.</p><p>코딩 도우미에서는 먼저 관련 소스 구절을 검색한 뒤, 그 구절과 파일 참조를 답변이나 변경을 담당하는 구성 요소에 제공합니다. 유사도 일치는 맥락을 고르는 데 도움이 되지만, 두 구현을 서로 바꾸어 쓸 수 있음을 입증하지는 않습니다. 편집을 이끄는 데 사용하기 전에 검색된 코드의 입력, 부작용, 주변 계약을 확인하세요.</p><p>서로 무관한 리포지토리 버전을 메타데이터로 구분하고, 색인에 넣은 리비전을 추적할 수 있게 유지합니다. 함수가 이동하거나 동작이 바뀌면 벡터와 소스 위치를 모두 업데이트하세요. 색인에 넣는 소스와 쿼리에는 같은 임베딩 설정을 적용해야 합니다. 색인을 마이그레이션할 때는 모델이나 벡터 표현의 변경으로 개발자가 보는 코드가 알게 모르게 바뀌지 않도록 기존 질문 모음과 결과를 비교합니다.</p><p>유용한 점검에는 쿼리가 테스트 이름만이 아니라 실제 구현을 찾는지, docstring이 대응하는 함수를 찾는지, 의미가 관련된 코드를 겉모습만 비슷한 조각과 구분하는지가 포함됩니다. 개발자가 근거를 확인할 수 있도록 반환된 소스 텍스트와 위치를 검색 결과에 유지하세요. 이렇게 하면 코드에 초점을 맞춘 모델의 임베딩을 실용적인 탐색 및 맥락 선택 도구로 활용할 수 있습니다.</p>",
  "aboutText": "Voyage Code 3는 소스 코드 검색에 특화된 임베딩 모델입니다. 개발사는 자연어로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기 작업을 설명합니다. 질문으로 구현을 찾고, 코드 조각으로 관련 로직을 찾으며, 함수 설명으로 관련 코드를 찾을 수 있습니다. 모델이 생성하는 것은 검색용 벡터이며, 편집된 파일이나 완성된 프로그램이 아닙니다.\n\n의미 있는 코드 단위를 중심으로 리포지토리 자료를 준비합니다. 함수는 이름, 시그니처, 목적을 설명하는 주석과 함께 유지하세요. 더 큰 구성 요소에는 작업을 이해하는 데 필요한 인접 정의를 포함합니다. 검색 결과에서 실제로 임베딩한 소스를 정확히 열 수 있도록 리포지토리, 리비전, 파일 경로, 줄 위치를 별도로 저장하세요.\n\n자연어 검색에서는 저장 전에 업로드를 검증하는 프로젝트 부분을 찾는 것처럼 동작을 설명할 수 있습니다. 코드 기반 쿼리에는 다른 곳에서 같은 목적을 가진 로직을 찾아야 하는 함수를 제공할 수 있습니다. 낯선 이름, 비슷한 구현, 주변 코드에 따라 의미가 달라지는 유틸리티를 포함해, 실제 개발 작업에서 대표 검색을 선택하세요.\n\n32,000토큰 컨텍스트 창에는 상당한 양의 코드를 담을 수 있습니다. 그 공간을 의도적으로 사용하세요. 완전한 함수와 관련 의존 요소가 제어 흐름의 중간에서 임의로 잘라 낸 블록보다 더 많은 정보를 줄 수 있습니다. 추출 과정에서 소스 형식을 읽기 쉽게 유지하고 언어 문법을 보존합니다. 소스 파일이 입력 창보다 크면 유용한 구조적 경계에서 나누고, 각 구절과 상위 파일의 관계를 유지하세요.\n\nVoyage Code 3는 2,048, 1,024, 512 또는 256차원 임베딩과 부동소수점, 부호 있는 또는 부호 없는 8비트, 이진 표현을 지원합니다. 이러한 제어 항목은 다양한 리포지토리 색인 크기와 검색 구성을 지원합니다. 더 큰 기준선에 사용한 것과 같은 실제 검색으로 간결한 표현을 평가하고, 올바른 함수나 파일이 유용한 결과에 계속 포함되는지 확인하세요.\n\n코딩 도우미에서는 먼저 관련 소스 구절을 검색한 뒤, 그 구절과 파일 참조를 답변이나 변경을 담당하는 구성 요소에 제공합니다. 유사도 일치는 맥락을 고르는 데 도움이 되지만, 두 구현을 서로 바꾸어 쓸 수 있음을 입증하지는 않습니다. 편집을 이끄는 데 사용하기 전에 검색된 코드의 입력, 부작용, 주변 계약을 확인하세요.\n\n서로 무관한 리포지토리 버전을 메타데이터로 구분하고, 색인에 넣은 리비전을 추적할 수 있게 유지합니다. 함수가 이동하거나 동작이 바뀌면 벡터와 소스 위치를 모두 업데이트하세요. 색인에 넣는 소스와 쿼리에는 같은 임베딩 설정을 적용해야 합니다. 색인을 마이그레이션할 때는 모델이나 벡터 표현의 변경으로 개발자가 보는 코드가 알게 모르게 바뀌지 않도록 기존 질문 모음과 결과를 비교합니다.\n\n유용한 점검에는 쿼리가 테스트 이름만이 아니라 실제 구현을 찾는지, docstring이 대응하는 함수를 찾는지, 의미가 관련된 코드를 겉모습만 비슷한 조각과 구분하는지가 포함됩니다. 개발자가 근거를 확인할 수 있도록 반환된 소스 텍스트와 위치를 검색 결과에 유지하세요. 이렇게 하면 코드에 초점을 맞춘 모델의 임베딩을 실용적인 탐색 및 맥락 선택 도구로 활용할 수 있습니다.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "2a2600841c4179b8dfefa66124db2fc21c85a5a06402872e180d8db196bb3878",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ko",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Voyage AI: Voyage Code 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"닫기\">×</button></div><div class=\"idline\"><span>Voyage AI /</span><code>voyage-code-3</code><button type=\"button\" id=\"copy-id\">ID 복사</button></div><nav class=\"card-jump-nav\" aria-label=\"모델 카드 섹션\"><button type=\"button\" data-card-jump=\"overview\">시작하기</button><button type=\"button\" data-card-jump=\"methods\">입력 및 메서드</button><button type=\"button\" data-card-jump=\"pricing\">요금</button><button type=\"button\" data-card-jump=\"examples\">예제</button><button type=\"button\" data-card-jump=\"results\">결과</button><button type=\"button\" data-card-jump=\"aliases\">별칭</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 메서드\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|embeddings|/v1/embeddings|voyage-code-3\">임베딩</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">시작하기</h3><p class=\"mdesc-full\">Voyage Code 3는 텍스트로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기를 위한 임베딩을 생성합니다. 32,000토큰 창, 선택 가능한 벡터 차원, 양자화 출력으로 리포지토리 검색과 코딩 도우미의 코드 맥락 선택을 지원합니다.</p><dl class=\"card-io\" data-card-io><div><dt>허용 입력</dt><dd>텍스트</dd></div><div><dt>결과</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>모델 소개</summary><p class=\"note-s\" data-model-method-boundary>이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.</p><div class=\"mabout\" id=\"m-about\"><p>Voyage Code 3는 소스 코드 검색에 특화된 임베딩 모델입니다. 개발사는 자연어로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기 작업을 설명합니다. 질문으로 구현을 찾고, 코드 조각으로 관련 로직을 찾으며, 함수 설명으로 관련 코드를 찾을 수 있습니다. 모델이 생성하는 것은 검색용 벡터이며, 편집된 파일이나 완성된 프로그램이 아닙니다.</p><p>의미 있는 코드 단위를 중심으로 리포지토리 자료를 준비합니다. 함수는 이름, 시그니처, 목적을 설명하는 주석과 함께 유지하세요. 더 큰 구성 요소에는 작업을 이해하는 데 필요한 인접 정의를 포함합니다. 검색 결과에서 실제로 임베딩한 소스를 정확히 열 수 있도록 리포지토리, 리비전, 파일 경로, 줄 위치를 별도로 저장하세요.</p><p>자연어 검색에서는 저장 전에 업로드를 검증하는 프로젝트 부분을 찾는 것처럼 동작을 설명할 수 있습니다. 코드 기반 쿼리에는 다른 곳에서 같은 목적을 가진 로직을 찾아야 하는 함수를 제공할 수 있습니다. 낯선 이름, 비슷한 구현, 주변 코드에 따라 의미가 달라지는 유틸리티를 포함해, 실제 개발 작업에서 대표 검색을 선택하세요.</p><p>32,000토큰 컨텍스트 창에는 상당한 양의 코드를 담을 수 있습니다. 그 공간을 의도적으로 사용하세요. 완전한 함수와 관련 의존 요소가 제어 흐름의 중간에서 임의로 잘라 낸 블록보다 더 많은 정보를 줄 수 있습니다. 추출 과정에서 소스 형식을 읽기 쉽게 유지하고 언어 문법을 보존합니다. 소스 파일이 입력 창보다 크면 유용한 구조적 경계에서 나누고, 각 구절과 상위 파일의 관계를 유지하세요.</p><p>Voyage Code 3는 2,048, 1,024, 512 또는 256차원 임베딩과 부동소수점, 부호 있는 또는 부호 없는 8비트, 이진 표현을 지원합니다. 이러한 제어 항목은 다양한 리포지토리 색인 크기와 검색 구성을 지원합니다. 더 큰 기준선에 사용한 것과 같은 실제 검색으로 간결한 표현을 평가하고, 올바른 함수나 파일이 유용한 결과에 계속 포함되는지 확인하세요.</p><p>코딩 도우미에서는 먼저 관련 소스 구절을 검색한 뒤, 그 구절과 파일 참조를 답변이나 변경을 담당하는 구성 요소에 제공합니다. 유사도 일치는 맥락을 고르는 데 도움이 되지만, 두 구현을 서로 바꾸어 쓸 수 있음을 입증하지는 않습니다. 편집을 이끄는 데 사용하기 전에 검색된 코드의 입력, 부작용, 주변 계약을 확인하세요.</p><p>서로 무관한 리포지토리 버전을 메타데이터로 구분하고, 색인에 넣은 리비전을 추적할 수 있게 유지합니다. 함수가 이동하거나 동작이 바뀌면 벡터와 소스 위치를 모두 업데이트하세요. 색인에 넣는 소스와 쿼리에는 같은 임베딩 설정을 적용해야 합니다. 색인을 마이그레이션할 때는 모델이나 벡터 표현의 변경으로 개발자가 보는 코드가 알게 모르게 바뀌지 않도록 기존 질문 모음과 결과를 비교합니다.</p><p>유용한 점검에는 쿼리가 테스트 이름만이 아니라 실제 구현을 찾는지, docstring이 대응하는 함수를 찾는지, 의미가 관련된 코드를 겉모습만 비슷한 조각과 구분하는지가 포함됩니다. 개발자가 근거를 확인할 수 있도록 반환된 소스 텍스트와 위치를 검색 결과에 유지하세요. 이렇게 하면 코드에 초점을 맞춘 모델의 임베딩을 실용적인 탐색 및 맥락 선택 도구로 활용할 수 있습니다.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot에서 사용 가능 · 입력 및 메서드</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · 임베딩</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>입력</dt><dd><code>text</code></dd></div><div><dt>출력</dt><dd><code>embedding</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>필드</th><th>유형</th><th>요건</th><th>값과 한도</th><th>기본값</th></tr></thead><tbody><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>string</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>필수</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>voyage-code-3</div><div>조건: 정확한 Ailoot 모델 선택자를 사용하세요.</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>string or array&lt;string&gt;</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>필수</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>조건: 텍스트 또는 텍스트 목록입니다. 반환된 데이터 항목마다 벡터 하나와 해당 인덱스를 보존하세요.</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>메서드 매개변수와 수명 주기</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>매개변수</th><th>명세</th></tr></thead><tbody><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>content_type</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>application/json</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>required</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>model, input</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>optional</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span></td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>material_types</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>text</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>conditions</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>선택한 모델로 텍스트를 전송하세요. 반환된 모든 벡터와 인덱스를 보존하세요.</td></tr></tbody></table></div><p>수명 주기: <code>synchronous</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">요금</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.</p><dl data-price-conditions><dt>빠른 모드</dt><dd>미지정 <span class=\"note-s\">빠른 모드를 선택한 경우</span></dd><dt>Flex 모드</dt><dd>미지정 <span class=\"note-s\">flex 모드를 선택한 경우</span></dd><dt>최대 추론 수준</dt><dd>미지정 <span class=\"note-s\">최대 추론 수준에 default 조정값을 적용하는 경우</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot 요금</h4><h4>설정별 가격</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>설정</th><th>요금표</th><th>요금</th></tr></thead><tbody><tr><th data-cell-label=\"설정\" scope=\"row\"><span class=\"card-cell-label\">설정</span>기본 토큰 요금</th><td data-cell-label=\"요금표\"><span class=\"card-cell-label\">요금표</span>기본 요금</td><td data-cell-label=\"요금\"><span class=\"card-cell-label\">요금</span><div><span>입력 · 입력 토큰</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>출력 · 출력 토큰</span> <b>$0</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>입력 · 캐시 읽기</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>입력 · 캐시 쓰기</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>입력 · 캐시 쓰기, 1시간</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. <a href=\"/docs/ko/billing/reserve/\">금액 확보와 정산 방식 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">요청 예제</h3><h4>Ailoot Ultra · 임베딩</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"코드 예제 형식\"><button class=\"cg-tab\" id=\"model-code-2790-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2790-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · 모든 벡터와 사용량 저장</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"코드 복사\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2790-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2790-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;voyage-code-3&quot;,\n  &quot;input&quot;: &quot;The quick brown fox jumps over the lazy dog&quot;\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">결과 수신 및 저장</h3></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">별칭</h3><h4>모델 별칭</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=voyage-code-3&amp;route=Ultra&amp;caller=voyage-code-3&amp;fmt=embeddings\"><code>voyage-code-3</code></a></span></p><h4>메서드 경로 별칭</h4><p class=\"note-s\">위에 표시된 메서드 경로를 사용하세요.</p><h4>관련 호출용 ID</h4><p class=\"note-s\"><a href=\"#m=voyage-code-3&amp;route=Ultra&amp;caller=voyage-code-3&amp;fmt=embeddings\"><code>voyage-code-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyage-code-3",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyage-code-3",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "대조 확인을 위해 원본 응답과 X-Client-Request-ID를 보관하세요. 응답이 모호하다고 해서 동일한 생성 요청을 다시 제출해도 되는 것은 아닙니다.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "전체 JSON 응답, 각 벡터와 해당 인덱스, 모든 사용량 필드 및 요청 헤더를 저장하세요.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "정확한 Ailoot 모델 선택자를 사용하세요.",
                "default_known": false,
                "enum": [
                  "voyage-code-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "텍스트 또는 텍스트 목록입니다. 반환된 데이터 항목마다 벡터 하나와 해당 인덱스를 보존하세요.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-code-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-code-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "선택한 모델로 텍스트를 전송하세요. 반환된 모든 벡터와 인덱스를 보존하세요."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "기본 토큰 요금",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-code-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "임베딩",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "voyage-code-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "602bd61cd54f70129bc5aa5380b9f7ef4048d526f8c2a77d891f92903cdc75f4",
    "input_html_sha256": "ae286f32a3cb964f722df7caead7af7f173f89583e608e9259a55ad3b5417188",
    "private_audit_sha256": "853651b015c828f599faef8c36b5413580047b5f2da8ad1f85a183d7ba46262a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ko/voyage-code-3/",
    "description": "Voyage Code 3는 텍스트로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기를 위한 임베딩을 생성합니다. 32,000토큰 창, 선택 가능한 벡터 차원, 양자화 출력으로 리포지토리 검색과 코딩 도우미의 코드 맥락 선택을 지원합니다.",
    "locale": "ko",
    "md_url": "https://ailoot.ai/models/ko/voyage-code-3/index.md",
    "title": "Voyage AI: Voyage Code 3 — Ailoot",
    "url": "https://ailoot.ai/models/ko/voyage-code-3/"
  },
  "rawModel": {
    "about": "Voyage Code 3는 소스 코드 검색에 특화된 임베딩 모델입니다. 개발사는 자연어로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기 작업을 설명합니다. 질문으로 구현을 찾고, 코드 조각으로 관련 로직을 찾으며, 함수 설명으로 관련 코드를 찾을 수 있습니다. 모델이 생성하는 것은 검색용 벡터이며, 편집된 파일이나 완성된 프로그램이 아닙니다.\n\n의미 있는 코드 단위를 중심으로 리포지토리 자료를 준비합니다. 함수는 이름, 시그니처, 목적을 설명하는 주석과 함께 유지하세요. 더 큰 구성 요소에는 작업을 이해하는 데 필요한 인접 정의를 포함합니다. 검색 결과에서 실제로 임베딩한 소스를 정확히 열 수 있도록 리포지토리, 리비전, 파일 경로, 줄 위치를 별도로 저장하세요.\n\n자연어 검색에서는 저장 전에 업로드를 검증하는 프로젝트 부분을 찾는 것처럼 동작을 설명할 수 있습니다. 코드 기반 쿼리에는 다른 곳에서 같은 목적을 가진 로직을 찾아야 하는 함수를 제공할 수 있습니다. 낯선 이름, 비슷한 구현, 주변 코드에 따라 의미가 달라지는 유틸리티를 포함해, 실제 개발 작업에서 대표 검색을 선택하세요.\n\n32,000토큰 컨텍스트 창에는 상당한 양의 코드를 담을 수 있습니다. 그 공간을 의도적으로 사용하세요. 완전한 함수와 관련 의존 요소가 제어 흐름의 중간에서 임의로 잘라 낸 블록보다 더 많은 정보를 줄 수 있습니다. 추출 과정에서 소스 형식을 읽기 쉽게 유지하고 언어 문법을 보존합니다. 소스 파일이 입력 창보다 크면 유용한 구조적 경계에서 나누고, 각 구절과 상위 파일의 관계를 유지하세요.\n\nVoyage Code 3는 2,048, 1,024, 512 또는 256차원 임베딩과 부동소수점, 부호 있는 또는 부호 없는 8비트, 이진 표현을 지원합니다. 이러한 제어 항목은 다양한 리포지토리 색인 크기와 검색 구성을 지원합니다. 더 큰 기준선에 사용한 것과 같은 실제 검색으로 간결한 표현을 평가하고, 올바른 함수나 파일이 유용한 결과에 계속 포함되는지 확인하세요.\n\n코딩 도우미에서는 먼저 관련 소스 구절을 검색한 뒤, 그 구절과 파일 참조를 답변이나 변경을 담당하는 구성 요소에 제공합니다. 유사도 일치는 맥락을 고르는 데 도움이 되지만, 두 구현을 서로 바꾸어 쓸 수 있음을 입증하지는 않습니다. 편집을 이끄는 데 사용하기 전에 검색된 코드의 입력, 부작용, 주변 계약을 확인하세요.\n\n서로 무관한 리포지토리 버전을 메타데이터로 구분하고, 색인에 넣은 리비전을 추적할 수 있게 유지합니다. 함수가 이동하거나 동작이 바뀌면 벡터와 소스 위치를 모두 업데이트하세요. 색인에 넣는 소스와 쿼리에는 같은 임베딩 설정을 적용해야 합니다. 색인을 마이그레이션할 때는 모델이나 벡터 표현의 변경으로 개발자가 보는 코드가 알게 모르게 바뀌지 않도록 기존 질문 모음과 결과를 비교합니다.\n\n유용한 점검에는 쿼리가 테스트 이름만이 아니라 실제 구현을 찾는지, docstring이 대응하는 함수를 찾는지, 의미가 관련된 코드를 겉모습만 비슷한 조각과 구분하는지가 포함됩니다. 개발자가 근거를 확인할 수 있도록 반환된 소스 텍스트와 위치를 검색 결과에 유지하세요. 이렇게 하면 코드에 초점을 맞춘 모델의 임베딩을 실용적인 탐색 및 맥락 선택 도구로 활용할 수 있습니다.",
    "about_sha256": "7a62faecaa1a469a228fb832e8fd51d0fb1ee7fc0232e975614f45428c1f130f",
    "alias_of": null,
    "aliases": [],
    "author": "Voyage AI",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "구성의 전체 요금 정보는 상세 정보에서 확인할 수 있습니다."
      }
    ],
    "ctx": null,
    "display_name": "Voyage AI: Voyage Code 3",
    "formats": [
      "embeddings"
    ],
    "id": "voyage-code-3",
    "input": [
      "text"
    ],
    "kind": "embedding",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "대조 확인을 위해 원본 응답과 X-Client-Request-ID를 보관하세요. 응답이 모호하다고 해서 동일한 생성 요청을 다시 제출해도 되는 것은 아닙니다.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "전체 JSON 응답, 각 벡터와 해당 인덱스, 모든 사용량 필드 및 요청 헤더를 저장하세요.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "정확한 Ailoot 모델 선택자를 사용하세요.",
                "default_known": false,
                "enum": [
                  "voyage-code-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "텍스트 또는 텍스트 목록입니다. 반환된 데이터 항목마다 벡터 하나와 해당 인덱스를 보존하세요.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-code-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-code-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "선택한 모델로 텍스트를 전송하세요. 반환된 모든 벡터와 인덱스를 보존하세요."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "기본 토큰 요금",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-code-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "임베딩",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "voyage-code-3",
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Voyage AI: Voyage Code 3",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "short": "Voyage Code 3는 텍스트로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기를 위한 임베딩을 생성합니다. 32,000토큰 창, 선택 가능한 벡터 차원, 양자화 출력으로 리포지토리 검색과 코딩 도우미의 코드 맥락 선택을 지원합니다.",
    "short_sha256": "d4d092b4a7555efe0f233ac899b7e43901dde1d9465c4a647af52200c6d5d963"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Voyage Code 3는 텍스트로 코드 찾기, 코드로 코드 찾기, docstring으로 코드 찾기를 위한 임베딩을 생성합니다. 32,000토큰 창, 선택 가능한 벡터 차원, 양자화 출력으로 리포지토리 검색과 코딩 도우미의 코드 맥락 선택을 지원합니다.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "28c8a9780c9316a9d023272d4d32ed8b70df7b10e93f398ff8babd05b4df8c91",
    "renderer_sha256": "6825a317438b70ab0939441dcebefece462384e77f7e96cce899605c4b208caa"
  },
  "sourceRevision": "98571fe3afb7874e175f9117fd0b549afa00de0c3ee237b69a9e19d79a44b1f0"
}
