{
  "aboutHtml": "<p>Voyage Finance 2는 금융 자료 검색에 특화된 텍스트 임베딩 모델입니다. 제공된 구절과 검색 질문을 벡터로 변환해 애플리케이션이 관련 원문을 찾도록 돕습니다. 개발사의 금융 평가에는 공개 공시, 재무 보고서, 기업 뉴스, 금융 질의응답 자료가 포함되어, 해당 분야와 관련된 근거를 찾는 데 중점을 둔 버전임을 보여 줍니다.</p><p>추출 후에도 금융적 의미가 유지되도록 코퍼스를 준비합니다. 수치는 항목명, 기간, 단위, 주변 설명과 함께 유지하세요. 회사 이름이나 보고 기간이 없는 매출 값은 검색 결과에서 올바르게 해석하기 어렵습니다. 표를 텍스트로 변환하면 행 및 열 제목을 보존하고 어떤 값들이 서로 연결되는지 표시합니다. 검토를 위해 원본 문서와 페이지 또는 절 위치를 보존하세요.</p><p>모델은 32,000토큰 컨텍스트 창을 지원하고 1,024차원 임베딩을 반환합니다. 사용 가능한 입력 공간에 완전하고 이해할 수 있는 구절을 넣되, 의도한 결과에 맞는 경계를 선택하세요. 넓은 범위의 절은 보고서를 찾는 데 도움이 될 수 있고, 초점을 맞춘 구절은 질문에 답하는 특정 진술을 보여 줄 수 있습니다. 문서와의 관계 및 구절 위치를 모두 색인 메타데이터에 유지합니다.</p><p>작업에 중요한 구분을 포함해 검색 질문을 작성합니다. “가장 최근에 보고된 분기의 영업이익률 변화를 설명하는 요인은 무엇인가요?”에는 이익률 값만 묻는 질문과 다른 구절이 필요합니다. 회사, 보고 기간, 사업 부문을 알고 있다면 포함하세요. 올바른 근거가 반환되는지 알아보도록 날짜가 가깝고 용어가 비슷한 문서에 대해 유사한 질문을 테스트합니다.</p><p>코퍼스와 검색 쿼리의 임베딩에 같은 모델을 사용합니다. 모든 출력 벡터를 입력 구절에 대응시킨 뒤, 검색 결과로 원문과 원본 참조를 보여 주세요. 금융 도우미는 언급한 금액이나 설명을 확인하는 데 필요한 인용을 유지하면서 선택한 근거를 답변 생성 단계에 전달할 수 있습니다.</p><p>애플리케이션에 이런 구분이 필요하면, 보고서, 뉴스, 설명 자료를 메타데이터로 나눕니다. 발행일과 보고 기간은 금융 기록의 서로 다른 측면을 설명하므로 독립적으로 저장하세요. 문서가 개정되면 버전 관계를 보존하고 영향을 받는 구절을 업데이트해, 검색 결과가 의도한 원본으로 이어지게 합니다.</p><p>금융 용어와 문서 맥락에 답이 달린 질문으로 시스템을 평가합니다. 변화를 설명하는 구절, 필요한 값이 있는 표, 다른 기간에 같은 지표를 사용하는 여러 보고서 등이 유용한 사례입니다. 반환된 텍스트에 쿼리로부터 추측하지 않고 관련 개체와 기간을 식별할 충분한 정보가 있는지 확인하세요.</p><p>모델은 금융 지식 베이스, 조사 아카이브, 근거 선택 워크플로에 검색 벡터를 제공합니다. 수치 검증과 그 바탕이 되는 문서 읽기는 애플리케이션의 검토 과정에 유지하세요. 관련 구절은 값, 관계, 주장을 확인하는 출발점이며, 최종 설명의 근거는 여전히 원본 내용입니다. 추출과 색인 개선을 같은 금융 작업으로 평가할 수 있도록 예상 구절과 실제 질문의 모음을 유지합니다.</p>",
  "aboutText": "Voyage Finance 2는 금융 자료 검색에 특화된 텍스트 임베딩 모델입니다. 제공된 구절과 검색 질문을 벡터로 변환해 애플리케이션이 관련 원문을 찾도록 돕습니다. 개발사의 금융 평가에는 공개 공시, 재무 보고서, 기업 뉴스, 금융 질의응답 자료가 포함되어, 해당 분야와 관련된 근거를 찾는 데 중점을 둔 버전임을 보여 줍니다.\n\n추출 후에도 금융적 의미가 유지되도록 코퍼스를 준비합니다. 수치는 항목명, 기간, 단위, 주변 설명과 함께 유지하세요. 회사 이름이나 보고 기간이 없는 매출 값은 검색 결과에서 올바르게 해석하기 어렵습니다. 표를 텍스트로 변환하면 행 및 열 제목을 보존하고 어떤 값들이 서로 연결되는지 표시합니다. 검토를 위해 원본 문서와 페이지 또는 절 위치를 보존하세요.\n\n모델은 32,000토큰 컨텍스트 창을 지원하고 1,024차원 임베딩을 반환합니다. 사용 가능한 입력 공간에 완전하고 이해할 수 있는 구절을 넣되, 의도한 결과에 맞는 경계를 선택하세요. 넓은 범위의 절은 보고서를 찾는 데 도움이 될 수 있고, 초점을 맞춘 구절은 질문에 답하는 특정 진술을 보여 줄 수 있습니다. 문서와의 관계 및 구절 위치를 모두 색인 메타데이터에 유지합니다.\n\n작업에 중요한 구분을 포함해 검색 질문을 작성합니다. “가장 최근에 보고된 분기의 영업이익률 변화를 설명하는 요인은 무엇인가요?”에는 이익률 값만 묻는 질문과 다른 구절이 필요합니다. 회사, 보고 기간, 사업 부문을 알고 있다면 포함하세요. 올바른 근거가 반환되는지 알아보도록 날짜가 가깝고 용어가 비슷한 문서에 대해 유사한 질문을 테스트합니다.\n\n코퍼스와 검색 쿼리의 임베딩에 같은 모델을 사용합니다. 모든 출력 벡터를 입력 구절에 대응시킨 뒤, 검색 결과로 원문과 원본 참조를 보여 주세요. 금융 도우미는 언급한 금액이나 설명을 확인하는 데 필요한 인용을 유지하면서 선택한 근거를 답변 생성 단계에 전달할 수 있습니다.\n\n애플리케이션에 이런 구분이 필요하면, 보고서, 뉴스, 설명 자료를 메타데이터로 나눕니다. 발행일과 보고 기간은 금융 기록의 서로 다른 측면을 설명하므로 독립적으로 저장하세요. 문서가 개정되면 버전 관계를 보존하고 영향을 받는 구절을 업데이트해, 검색 결과가 의도한 원본으로 이어지게 합니다.\n\n금융 용어와 문서 맥락에 답이 달린 질문으로 시스템을 평가합니다. 변화를 설명하는 구절, 필요한 값이 있는 표, 다른 기간에 같은 지표를 사용하는 여러 보고서 등이 유용한 사례입니다. 반환된 텍스트에 쿼리로부터 추측하지 않고 관련 개체와 기간을 식별할 충분한 정보가 있는지 확인하세요.\n\n모델은 금융 지식 베이스, 조사 아카이브, 근거 선택 워크플로에 검색 벡터를 제공합니다. 수치 검증과 그 바탕이 되는 문서 읽기는 애플리케이션의 검토 과정에 유지하세요. 관련 구절은 값, 관계, 주장을 확인하는 출발점이며, 최종 설명의 근거는 여전히 원본 내용입니다. 추출과 색인 개선을 같은 금융 작업으로 평가할 수 있도록 예상 구절과 실제 질문의 모음을 유지합니다.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6e1dd37351845ae9d175da226b9d4c223c910f82f84f0e7c2aae6333bf0e2973",
    "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 Finance 2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"닫기\">×</button></div><div class=\"idline\"><span>Voyage AI /</span><code>voyage-finance-2</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-finance-2\">임베딩</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 Finance 2는 문서 검색과 RAG를 위해 금융 텍스트를 임베딩으로 변환합니다. 32,000토큰 창과 1,024차원 벡터로 공시, 재무 보고서, 금융 뉴스 검색을 지원하면서 결과를 원래 근거와 연결해 유지합니다.</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 Finance 2는 금융 자료 검색에 특화된 텍스트 임베딩 모델입니다. 제공된 구절과 검색 질문을 벡터로 변환해 애플리케이션이 관련 원문을 찾도록 돕습니다. 개발사의 금융 평가에는 공개 공시, 재무 보고서, 기업 뉴스, 금융 질의응답 자료가 포함되어, 해당 분야와 관련된 근거를 찾는 데 중점을 둔 버전임을 보여 줍니다.</p><p>추출 후에도 금융적 의미가 유지되도록 코퍼스를 준비합니다. 수치는 항목명, 기간, 단위, 주변 설명과 함께 유지하세요. 회사 이름이나 보고 기간이 없는 매출 값은 검색 결과에서 올바르게 해석하기 어렵습니다. 표를 텍스트로 변환하면 행 및 열 제목을 보존하고 어떤 값들이 서로 연결되는지 표시합니다. 검토를 위해 원본 문서와 페이지 또는 절 위치를 보존하세요.</p><p>모델은 32,000토큰 컨텍스트 창을 지원하고 1,024차원 임베딩을 반환합니다. 사용 가능한 입력 공간에 완전하고 이해할 수 있는 구절을 넣되, 의도한 결과에 맞는 경계를 선택하세요. 넓은 범위의 절은 보고서를 찾는 데 도움이 될 수 있고, 초점을 맞춘 구절은 질문에 답하는 특정 진술을 보여 줄 수 있습니다. 문서와의 관계 및 구절 위치를 모두 색인 메타데이터에 유지합니다.</p><p>작업에 중요한 구분을 포함해 검색 질문을 작성합니다. “가장 최근에 보고된 분기의 영업이익률 변화를 설명하는 요인은 무엇인가요?”에는 이익률 값만 묻는 질문과 다른 구절이 필요합니다. 회사, 보고 기간, 사업 부문을 알고 있다면 포함하세요. 올바른 근거가 반환되는지 알아보도록 날짜가 가깝고 용어가 비슷한 문서에 대해 유사한 질문을 테스트합니다.</p><p>코퍼스와 검색 쿼리의 임베딩에 같은 모델을 사용합니다. 모든 출력 벡터를 입력 구절에 대응시킨 뒤, 검색 결과로 원문과 원본 참조를 보여 주세요. 금융 도우미는 언급한 금액이나 설명을 확인하는 데 필요한 인용을 유지하면서 선택한 근거를 답변 생성 단계에 전달할 수 있습니다.</p><p>애플리케이션에 이런 구분이 필요하면, 보고서, 뉴스, 설명 자료를 메타데이터로 나눕니다. 발행일과 보고 기간은 금융 기록의 서로 다른 측면을 설명하므로 독립적으로 저장하세요. 문서가 개정되면 버전 관계를 보존하고 영향을 받는 구절을 업데이트해, 검색 결과가 의도한 원본으로 이어지게 합니다.</p><p>금융 용어와 문서 맥락에 답이 달린 질문으로 시스템을 평가합니다. 변화를 설명하는 구절, 필요한 값이 있는 표, 다른 기간에 같은 지표를 사용하는 여러 보고서 등이 유용한 사례입니다. 반환된 텍스트에 쿼리로부터 추측하지 않고 관련 개체와 기간을 식별할 충분한 정보가 있는지 확인하세요.</p><p>모델은 금융 지식 베이스, 조사 아카이브, 근거 선택 워크플로에 검색 벡터를 제공합니다. 수치 검증과 그 바탕이 되는 문서 읽기는 애플리케이션의 검토 과정에 유지하세요. 관련 구절은 값, 관계, 주장을 확인하는 출발점이며, 최종 설명의 근거는 여전히 원본 내용입니다. 추출과 색인 개선을 같은 금융 작업으로 평가할 수 있도록 예상 구절과 실제 질문의 모음을 유지합니다.</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-finance-2</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-2792-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2792-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-2792-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2792-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-finance-2&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-finance-2&amp;route=Ultra&amp;caller=voyage-finance-2&amp;fmt=embeddings\"><code>voyage-finance-2</code></a></span></p><h4>메서드 경로 별칭</h4><p class=\"note-s\">위에 표시된 메서드 경로를 사용하세요.</p><h4>관련 호출용 ID</h4><p class=\"note-s\"><a href=\"#m=voyage-finance-2&amp;route=Ultra&amp;caller=voyage-finance-2&amp;fmt=embeddings\"><code>voyage-finance-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyage-finance-2",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyage-finance-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyage-finance-2",
      "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-finance-2"
                ],
                "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-finance-2"
                  ],
                  "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-finance-2"
              },
              "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-finance-2\",\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-finance-2",
        "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-finance-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0c3e20c2e1456da40606352d9f1e44d9976dcfa3713ea180eeb311657c636c09",
    "input_html_sha256": "4511cad175235f69e0dfd49e645cd9b877d06d061c41160703605b97e0af80b0",
    "private_audit_sha256": "7256ff2d093caa94126d1221d9df2d96dc2d6ac2fa96606986e8eea10ad1a4a9",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ko/voyage-finance-2/",
    "description": "Voyage Finance 2는 문서 검색과 RAG를 위해 금융 텍스트를 임베딩으로 변환합니다. 32,000토큰 창과 1,024차원 벡터로 공시, 재무 보고서, 금융 뉴스 검색을 지원하면서 결과를 원래 근거와 연결해 유지합니다.",
    "locale": "ko",
    "md_url": "https://ailoot.ai/models/ko/voyage-finance-2/index.md",
    "title": "Voyage AI: Voyage Finance 2 — Ailoot",
    "url": "https://ailoot.ai/models/ko/voyage-finance-2/"
  },
  "rawModel": {
    "about": "Voyage Finance 2는 금융 자료 검색에 특화된 텍스트 임베딩 모델입니다. 제공된 구절과 검색 질문을 벡터로 변환해 애플리케이션이 관련 원문을 찾도록 돕습니다. 개발사의 금융 평가에는 공개 공시, 재무 보고서, 기업 뉴스, 금융 질의응답 자료가 포함되어, 해당 분야와 관련된 근거를 찾는 데 중점을 둔 버전임을 보여 줍니다.\n\n추출 후에도 금융적 의미가 유지되도록 코퍼스를 준비합니다. 수치는 항목명, 기간, 단위, 주변 설명과 함께 유지하세요. 회사 이름이나 보고 기간이 없는 매출 값은 검색 결과에서 올바르게 해석하기 어렵습니다. 표를 텍스트로 변환하면 행 및 열 제목을 보존하고 어떤 값들이 서로 연결되는지 표시합니다. 검토를 위해 원본 문서와 페이지 또는 절 위치를 보존하세요.\n\n모델은 32,000토큰 컨텍스트 창을 지원하고 1,024차원 임베딩을 반환합니다. 사용 가능한 입력 공간에 완전하고 이해할 수 있는 구절을 넣되, 의도한 결과에 맞는 경계를 선택하세요. 넓은 범위의 절은 보고서를 찾는 데 도움이 될 수 있고, 초점을 맞춘 구절은 질문에 답하는 특정 진술을 보여 줄 수 있습니다. 문서와의 관계 및 구절 위치를 모두 색인 메타데이터에 유지합니다.\n\n작업에 중요한 구분을 포함해 검색 질문을 작성합니다. “가장 최근에 보고된 분기의 영업이익률 변화를 설명하는 요인은 무엇인가요?”에는 이익률 값만 묻는 질문과 다른 구절이 필요합니다. 회사, 보고 기간, 사업 부문을 알고 있다면 포함하세요. 올바른 근거가 반환되는지 알아보도록 날짜가 가깝고 용어가 비슷한 문서에 대해 유사한 질문을 테스트합니다.\n\n코퍼스와 검색 쿼리의 임베딩에 같은 모델을 사용합니다. 모든 출력 벡터를 입력 구절에 대응시킨 뒤, 검색 결과로 원문과 원본 참조를 보여 주세요. 금융 도우미는 언급한 금액이나 설명을 확인하는 데 필요한 인용을 유지하면서 선택한 근거를 답변 생성 단계에 전달할 수 있습니다.\n\n애플리케이션에 이런 구분이 필요하면, 보고서, 뉴스, 설명 자료를 메타데이터로 나눕니다. 발행일과 보고 기간은 금융 기록의 서로 다른 측면을 설명하므로 독립적으로 저장하세요. 문서가 개정되면 버전 관계를 보존하고 영향을 받는 구절을 업데이트해, 검색 결과가 의도한 원본으로 이어지게 합니다.\n\n금융 용어와 문서 맥락에 답이 달린 질문으로 시스템을 평가합니다. 변화를 설명하는 구절, 필요한 값이 있는 표, 다른 기간에 같은 지표를 사용하는 여러 보고서 등이 유용한 사례입니다. 반환된 텍스트에 쿼리로부터 추측하지 않고 관련 개체와 기간을 식별할 충분한 정보가 있는지 확인하세요.\n\n모델은 금융 지식 베이스, 조사 아카이브, 근거 선택 워크플로에 검색 벡터를 제공합니다. 수치 검증과 그 바탕이 되는 문서 읽기는 애플리케이션의 검토 과정에 유지하세요. 관련 구절은 값, 관계, 주장을 확인하는 출발점이며, 최종 설명의 근거는 여전히 원본 내용입니다. 추출과 색인 개선을 같은 금융 작업으로 평가할 수 있도록 예상 구절과 실제 질문의 모음을 유지합니다.",
    "about_sha256": "db4a1cc717225917205707160c888d82c14d3b79b36609ce5c035f373f993fbd",
    "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 Finance 2",
    "formats": [
      "embeddings"
    ],
    "id": "voyage-finance-2",
    "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-finance-2"
                ],
                "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-finance-2"
                  ],
                  "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-finance-2"
              },
              "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-finance-2\",\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-finance-2",
        "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-finance-2",
        "request_model_id": "voyage-finance-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Voyage AI: Voyage Finance 2",
    "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 Finance 2는 문서 검색과 RAG를 위해 금융 텍스트를 임베딩으로 변환합니다. 32,000토큰 창과 1,024차원 벡터로 공시, 재무 보고서, 금융 뉴스 검색을 지원하면서 결과를 원래 근거와 연결해 유지합니다.",
    "short_sha256": "3c81b808a4fda5f645a3be957e4fb11c82e590d12b842053bed5d8051f98ec8a"
  },
  "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 Finance 2는 문서 검색과 RAG를 위해 금융 텍스트를 임베딩으로 변환합니다. 32,000토큰 창과 1,024차원 벡터로 공시, 재무 보고서, 금융 뉴스 검색을 지원하면서 결과를 원래 근거와 연결해 유지합니다.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "a3ef2df0437c5f8e10633d3082e2eb5969b5332e233702e5f66c69c0c5a9e734",
    "renderer_sha256": "6825a317438b70ab0939441dcebefece462384e77f7e96cce899605c4b208caa"
  },
  "sourceRevision": "0b867319f4cbb6b06486358b785e196eb687922e18a829023bd30dcb599cfb4e"
}
