{
  "aboutHtml": "<p>Codestral Embed 2505는 코드 검색에 특화된 Mistral AI의 임베딩 모델입니다. 소스 코드 또는 자연어 코드 질의가 담긴 텍스트를 받아 수치 벡터를 반환합니다. 제조사는 저장소 검색, 코딩 어시스턴트를 위한 맥락 검색, 유사도 및 중복 분석, 기능이나 구조에 따른 코드 그룹화에 활용하도록 제시합니다. 고정 릴리스 식별자는 codestral-embed-2505입니다.</p><p>입력과 표현</p><p>코드 입력은 함수, 관련 소스 조각 또는 저장소의 다른 의미 있는 단위일 수 있습니다. 자연어 질의는 정확한 심벌을 지목하기보다 찾으려는 동작을 설명할 수 있습니다. 임베딩은 비교를 위해 입력을 표현합니다. 모델은 새로운 구현을 생성하거나 받은 코드를 실행하지 않습니다.</p><p>공식 릴리스는 전체 입력 컨텍스트를 8,192토큰으로 문서화합니다. 검색에서는 더 큰 청크가 검색 성능을 해칠 수 있다고 설명하며, 약 3,000자 청크에 1,000자 중첩을 둘 것을 권장합니다. 이는 검색 준비 권장 사항이며, 3,000자라는 토큰 제한이 아닙니다. 검색 후 애플리케이션이 관련 코드를 반환할 수 있도록 각 준비 항목에 파일, 심벌, 출처 위치를 연결하세요.</p><p>출력 정밀도와 차원</p><p>코드 임베딩 가이드는 float, int8, uint8, binary, ubinary 출력 유형을 문서화합니다. float는 32비트 단정밀도 값을 사용합니다. int8은 -128부터 127까지의 부호 있는 8비트 정수를, uint8은 0부터 255까지의 부호 없는 8비트 값을 사용합니다. binary와 ubinary는 양자화한 단일 비트 값을 8비트 요소에 패킹해 저장하며, 각각 부호 있는 컨테이너와 부호 없는 컨테이너를 사용합니다.</p><p>비트 패킹 표현은 반환 목록의 길이를 바꿉니다. 가이드는 논리 임베딩 차원 8개마다 패킹 요소 하나가 있다고 설명합니다. 따라서 형식을 인식한 비교는 패킹 바이트를 일반 부동소수점 좌표로 다루는 것과 다릅니다. 선택한 유형을 벡터와 함께 보존하고, 색인한 코드와 그 질의에 같은 표현을 사용하세요.</p><p>매개변수 문서는 기본 차원을 1,536, 최대 차원을 3,072로 명시합니다. 차원은 관련성 순으로 정렬되며, 제조사는 선택한 개수만큼 앞부분을 유지해 표현 크기를 선택하는 방식을 설명합니다. 저장된 컬렉션과 새 질의에서 차원을 일관되게 선택하세요. 더 짧거나 양자화된 표현은 저장과 비교 동작을 바꾸지만, 입력 컨텍스트를 늘리거나 모델을 코드 생성기로 만들지는 않습니다.</p><p>검색 증강 코딩</p><p>릴리스의 첫 활용 사례는 코드 완성, 편집, 설명을 위한 맥락 검색입니다. 의미 있는 코드 단위를 준비하고 저장소 리비전과 소스 식별자를 보관하세요. 특정 오류가 어떻게 처리되는지 묻는 질문은 관련 함수를 검색할 수 있고, 애플리케이션은 이를 실제 변경 요청과 함께 코딩 모델에 제공합니다.</p><p>실용적인 결과는 파일 경로, 심벌, 동작을 이해하는 데 필요한 내용을 갖춘 소스 스니펫의 순위 집합입니다. 검색한 스니펫은 개발자가 열거나 어시스턴트에 전달할 수 있습니다. Codestral Embed는 표현 단계를 수행합니다. 별도의 구성 요소가 결과를 선택하고, 생성 모델이 설명이나 제안 코드를 작성합니다.</p><p>의미 검색과 유사도</p><p>제조사는 자연어 또는 코드 질의로 코드를 검색하는 방식을 설명합니다. 개발자는 함수 이름이 요청 표현과 달라도 특정 동작의 구현을 찾을 수 있습니다. 의도된 구현을 구별하는 동작과 조건을 포함하세요. 하위 시스템 전체에 대한 일반 질의는 관련 자료를 검색하더라도 구체적인 질문을 해결하지 못할 수 있습니다.</p><p>릴리스는 어휘 차이가 있어도 거의 중복되거나 기능적으로 비슷한 코드를 찾는 활용도 설명합니다. 이런 결과는 재사용할 구현을 찾거나 추가 검토가 필요한 코드를 식별하는 데 도움이 됩니다. 임베딩 공간의 유사도는 소스를 살펴보라는 신호입니다. 두 조각이 모든 입력에서 같은 동작을 한다는 뜻은 아닙니다.</p><p>군집화, 분석, 비교</p><p>코드 임베딩으로 기능이나 구조에 따라 코드를 그룹화하고 저장소 구성을 살펴볼 수 있습니다. 사람이나 후속 애플리케이션 단계가 그룹을 해석할 수 있도록 원래 스니펫과 식별자를 계속 확인할 수 있게 하세요. 군집은 표현 기반 그룹이며, 자동으로 검증된 아키텍처 설명이 아닙니다.</p><p>제조사의 부동소수점 벡터 예제는 단위 정규화 임베딩을 사용하며, 코사인 유사도, 내적, 유클리드 거리가 일관된 순위를 제공합니다. 양자화 및 비트 패킹 출력은 원시 부동소수점 좌표에 대한 가정을 그대로 적용하지 말고 고유한 형식 처리를 유지해야 합니다. 공개된 엔드포인트는 입력 인덱스도 유지해, 각 벡터와 원본 항목의 연결을 보존하는 데 도움이 됩니다.</p><p>에디션과 실질적 경계</p><p>정확한 모델 페이지는 8k 컨텍스트라는 표기와 함께 임베딩 및 배치 워크플로를 제시하고, 릴리스는 8,192토큰 값을 제공합니다. 컬렉션 및 질의 워크플로 전반에서 2505 에디션 이름, 선택한 출력 차원과 유형을 유지하세요. 이는 코드 지향 벡터 출력이며, Codestral의 텍스트 완성과 고정 차원의 Mistral Embed 텍스트 모델과 구분됩니다.</p><p>관련 동작을 담은 코드 단위를 준비하고, 출처 위치를 유지하고, 무엇을 찾는 질문인지 밝히세요. 유용한 산출물은 실제 코드에 연결된 검색 가능한 표현입니다. 다음 설명, 편집, 개발자 검토 단계를 직접 수행하지 않으면서 지원합니다.</p>",
  "aboutText": "Codestral Embed 2505는 코드 검색에 특화된 Mistral AI의 임베딩 모델입니다. 소스 코드 또는 자연어 코드 질의가 담긴 텍스트를 받아 수치 벡터를 반환합니다. 제조사는 저장소 검색, 코딩 어시스턴트를 위한 맥락 검색, 유사도 및 중복 분석, 기능이나 구조에 따른 코드 그룹화에 활용하도록 제시합니다. 고정 릴리스 식별자는 codestral-embed-2505입니다.\n\n입력과 표현\n\n코드 입력은 함수, 관련 소스 조각 또는 저장소의 다른 의미 있는 단위일 수 있습니다. 자연어 질의는 정확한 심벌을 지목하기보다 찾으려는 동작을 설명할 수 있습니다. 임베딩은 비교를 위해 입력을 표현합니다. 모델은 새로운 구현을 생성하거나 받은 코드를 실행하지 않습니다.\n\n공식 릴리스는 전체 입력 컨텍스트를 8,192토큰으로 문서화합니다. 검색에서는 더 큰 청크가 검색 성능을 해칠 수 있다고 설명하며, 약 3,000자 청크에 1,000자 중첩을 둘 것을 권장합니다. 이는 검색 준비 권장 사항이며, 3,000자라는 토큰 제한이 아닙니다. 검색 후 애플리케이션이 관련 코드를 반환할 수 있도록 각 준비 항목에 파일, 심벌, 출처 위치를 연결하세요.\n\n출력 정밀도와 차원\n\n코드 임베딩 가이드는 float, int8, uint8, binary, ubinary 출력 유형을 문서화합니다. float는 32비트 단정밀도 값을 사용합니다. int8은 -128부터 127까지의 부호 있는 8비트 정수를, uint8은 0부터 255까지의 부호 없는 8비트 값을 사용합니다. binary와 ubinary는 양자화한 단일 비트 값을 8비트 요소에 패킹해 저장하며, 각각 부호 있는 컨테이너와 부호 없는 컨테이너를 사용합니다.\n\n비트 패킹 표현은 반환 목록의 길이를 바꿉니다. 가이드는 논리 임베딩 차원 8개마다 패킹 요소 하나가 있다고 설명합니다. 따라서 형식을 인식한 비교는 패킹 바이트를 일반 부동소수점 좌표로 다루는 것과 다릅니다. 선택한 유형을 벡터와 함께 보존하고, 색인한 코드와 그 질의에 같은 표현을 사용하세요.\n\n매개변수 문서는 기본 차원을 1,536, 최대 차원을 3,072로 명시합니다. 차원은 관련성 순으로 정렬되며, 제조사는 선택한 개수만큼 앞부분을 유지해 표현 크기를 선택하는 방식을 설명합니다. 저장된 컬렉션과 새 질의에서 차원을 일관되게 선택하세요. 더 짧거나 양자화된 표현은 저장과 비교 동작을 바꾸지만, 입력 컨텍스트를 늘리거나 모델을 코드 생성기로 만들지는 않습니다.\n\n검색 증강 코딩\n\n릴리스의 첫 활용 사례는 코드 완성, 편집, 설명을 위한 맥락 검색입니다. 의미 있는 코드 단위를 준비하고 저장소 리비전과 소스 식별자를 보관하세요. 특정 오류가 어떻게 처리되는지 묻는 질문은 관련 함수를 검색할 수 있고, 애플리케이션은 이를 실제 변경 요청과 함께 코딩 모델에 제공합니다.\n\n실용적인 결과는 파일 경로, 심벌, 동작을 이해하는 데 필요한 내용을 갖춘 소스 스니펫의 순위 집합입니다. 검색한 스니펫은 개발자가 열거나 어시스턴트에 전달할 수 있습니다. Codestral Embed는 표현 단계를 수행합니다. 별도의 구성 요소가 결과를 선택하고, 생성 모델이 설명이나 제안 코드를 작성합니다.\n\n의미 검색과 유사도\n\n제조사는 자연어 또는 코드 질의로 코드를 검색하는 방식을 설명합니다. 개발자는 함수 이름이 요청 표현과 달라도 특정 동작의 구현을 찾을 수 있습니다. 의도된 구현을 구별하는 동작과 조건을 포함하세요. 하위 시스템 전체에 대한 일반 질의는 관련 자료를 검색하더라도 구체적인 질문을 해결하지 못할 수 있습니다.\n\n릴리스는 어휘 차이가 있어도 거의 중복되거나 기능적으로 비슷한 코드를 찾는 활용도 설명합니다. 이런 결과는 재사용할 구현을 찾거나 추가 검토가 필요한 코드를 식별하는 데 도움이 됩니다. 임베딩 공간의 유사도는 소스를 살펴보라는 신호입니다. 두 조각이 모든 입력에서 같은 동작을 한다는 뜻은 아닙니다.\n\n군집화, 분석, 비교\n\n코드 임베딩으로 기능이나 구조에 따라 코드를 그룹화하고 저장소 구성을 살펴볼 수 있습니다. 사람이나 후속 애플리케이션 단계가 그룹을 해석할 수 있도록 원래 스니펫과 식별자를 계속 확인할 수 있게 하세요. 군집은 표현 기반 그룹이며, 자동으로 검증된 아키텍처 설명이 아닙니다.\n\n제조사의 부동소수점 벡터 예제는 단위 정규화 임베딩을 사용하며, 코사인 유사도, 내적, 유클리드 거리가 일관된 순위를 제공합니다. 양자화 및 비트 패킹 출력은 원시 부동소수점 좌표에 대한 가정을 그대로 적용하지 말고 고유한 형식 처리를 유지해야 합니다. 공개된 엔드포인트는 입력 인덱스도 유지해, 각 벡터와 원본 항목의 연결을 보존하는 데 도움이 됩니다.\n\n에디션과 실질적 경계\n\n정확한 모델 페이지는 8k 컨텍스트라는 표기와 함께 임베딩 및 배치 워크플로를 제시하고, 릴리스는 8,192토큰 값을 제공합니다. 컬렉션 및 질의 워크플로 전반에서 2505 에디션 이름, 선택한 출력 차원과 유형을 유지하세요. 이는 코드 지향 벡터 출력이며, Codestral의 텍스트 완성과 고정 차원의 Mistral Embed 텍스트 모델과 구분됩니다.\n\n관련 동작을 담은 코드 단위를 준비하고, 출처 위치를 유지하고, 무엇을 찾는 질문인지 밝히세요. 유용한 산출물은 실제 코드에 연결된 검색 가능한 표현입니다. 다음 설명, 편집, 개발자 검토 단계를 직접 수행하지 않으면서 지원합니다.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "11c72bd8c71089f941136f14ee63dbebcc42cb90e5f6b916f387d6ad5c5bb338",
    "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\">Mistral: Codestral Embed 2505</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"닫기\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/codestral-embed-2505</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|mistralai%2Fcodestral-embed-2505\">임베딩</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\">Codestral Embed 2505는 저장소 검색과 코딩 어시스턴트의 검색을 위해 코드 및 자연어 질의를 벡터로 표현합니다. 제조사는 8,192토큰 컨텍스트, 최대 3,072까지 설정 가능한 차원, 부동소수점·정수·비트 패킹 출력 형식을 문서화합니다.</p><dl class=\"card-io\" data-card-io><div><dt>허용 입력</dt><dd>텍스트 · token_ids</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>Codestral Embed 2505는 코드 검색에 특화된 Mistral AI의 임베딩 모델입니다. 소스 코드 또는 자연어 코드 질의가 담긴 텍스트를 받아 수치 벡터를 반환합니다. 제조사는 저장소 검색, 코딩 어시스턴트를 위한 맥락 검색, 유사도 및 중복 분석, 기능이나 구조에 따른 코드 그룹화에 활용하도록 제시합니다. 고정 릴리스 식별자는 codestral-embed-2505입니다.</p><p>입력과 표현</p><p>코드 입력은 함수, 관련 소스 조각 또는 저장소의 다른 의미 있는 단위일 수 있습니다. 자연어 질의는 정확한 심벌을 지목하기보다 찾으려는 동작을 설명할 수 있습니다. 임베딩은 비교를 위해 입력을 표현합니다. 모델은 새로운 구현을 생성하거나 받은 코드를 실행하지 않습니다.</p><p>공식 릴리스는 전체 입력 컨텍스트를 8,192토큰으로 문서화합니다. 검색에서는 더 큰 청크가 검색 성능을 해칠 수 있다고 설명하며, 약 3,000자 청크에 1,000자 중첩을 둘 것을 권장합니다. 이는 검색 준비 권장 사항이며, 3,000자라는 토큰 제한이 아닙니다. 검색 후 애플리케이션이 관련 코드를 반환할 수 있도록 각 준비 항목에 파일, 심벌, 출처 위치를 연결하세요.</p><p>출력 정밀도와 차원</p><p>코드 임베딩 가이드는 float, int8, uint8, binary, ubinary 출력 유형을 문서화합니다. float는 32비트 단정밀도 값을 사용합니다. int8은 -128부터 127까지의 부호 있는 8비트 정수를, uint8은 0부터 255까지의 부호 없는 8비트 값을 사용합니다. binary와 ubinary는 양자화한 단일 비트 값을 8비트 요소에 패킹해 저장하며, 각각 부호 있는 컨테이너와 부호 없는 컨테이너를 사용합니다.</p><p>비트 패킹 표현은 반환 목록의 길이를 바꿉니다. 가이드는 논리 임베딩 차원 8개마다 패킹 요소 하나가 있다고 설명합니다. 따라서 형식을 인식한 비교는 패킹 바이트를 일반 부동소수점 좌표로 다루는 것과 다릅니다. 선택한 유형을 벡터와 함께 보존하고, 색인한 코드와 그 질의에 같은 표현을 사용하세요.</p><p>매개변수 문서는 기본 차원을 1,536, 최대 차원을 3,072로 명시합니다. 차원은 관련성 순으로 정렬되며, 제조사는 선택한 개수만큼 앞부분을 유지해 표현 크기를 선택하는 방식을 설명합니다. 저장된 컬렉션과 새 질의에서 차원을 일관되게 선택하세요. 더 짧거나 양자화된 표현은 저장과 비교 동작을 바꾸지만, 입력 컨텍스트를 늘리거나 모델을 코드 생성기로 만들지는 않습니다.</p><p>검색 증강 코딩</p><p>릴리스의 첫 활용 사례는 코드 완성, 편집, 설명을 위한 맥락 검색입니다. 의미 있는 코드 단위를 준비하고 저장소 리비전과 소스 식별자를 보관하세요. 특정 오류가 어떻게 처리되는지 묻는 질문은 관련 함수를 검색할 수 있고, 애플리케이션은 이를 실제 변경 요청과 함께 코딩 모델에 제공합니다.</p><p>실용적인 결과는 파일 경로, 심벌, 동작을 이해하는 데 필요한 내용을 갖춘 소스 스니펫의 순위 집합입니다. 검색한 스니펫은 개발자가 열거나 어시스턴트에 전달할 수 있습니다. Codestral Embed는 표현 단계를 수행합니다. 별도의 구성 요소가 결과를 선택하고, 생성 모델이 설명이나 제안 코드를 작성합니다.</p><p>의미 검색과 유사도</p><p>제조사는 자연어 또는 코드 질의로 코드를 검색하는 방식을 설명합니다. 개발자는 함수 이름이 요청 표현과 달라도 특정 동작의 구현을 찾을 수 있습니다. 의도된 구현을 구별하는 동작과 조건을 포함하세요. 하위 시스템 전체에 대한 일반 질의는 관련 자료를 검색하더라도 구체적인 질문을 해결하지 못할 수 있습니다.</p><p>릴리스는 어휘 차이가 있어도 거의 중복되거나 기능적으로 비슷한 코드를 찾는 활용도 설명합니다. 이런 결과는 재사용할 구현을 찾거나 추가 검토가 필요한 코드를 식별하는 데 도움이 됩니다. 임베딩 공간의 유사도는 소스를 살펴보라는 신호입니다. 두 조각이 모든 입력에서 같은 동작을 한다는 뜻은 아닙니다.</p><p>군집화, 분석, 비교</p><p>코드 임베딩으로 기능이나 구조에 따라 코드를 그룹화하고 저장소 구성을 살펴볼 수 있습니다. 사람이나 후속 애플리케이션 단계가 그룹을 해석할 수 있도록 원래 스니펫과 식별자를 계속 확인할 수 있게 하세요. 군집은 표현 기반 그룹이며, 자동으로 검증된 아키텍처 설명이 아닙니다.</p><p>제조사의 부동소수점 벡터 예제는 단위 정규화 임베딩을 사용하며, 코사인 유사도, 내적, 유클리드 거리가 일관된 순위를 제공합니다. 양자화 및 비트 패킹 출력은 원시 부동소수점 좌표에 대한 가정을 그대로 적용하지 말고 고유한 형식 처리를 유지해야 합니다. 공개된 엔드포인트는 입력 인덱스도 유지해, 각 벡터와 원본 항목의 연결을 보존하는 데 도움이 됩니다.</p><p>에디션과 실질적 경계</p><p>정확한 모델 페이지는 8k 컨텍스트라는 표기와 함께 임베딩 및 배치 워크플로를 제시하고, 릴리스는 8,192토큰 값을 제공합니다. 컬렉션 및 질의 워크플로 전반에서 2505 에디션 이름, 선택한 출력 차원과 유형을 유지하세요. 이는 코드 지향 벡터 출력이며, Codestral의 텍스트 완성과 고정 차원의 Mistral Embed 텍스트 모델과 구분됩니다.</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>, <code>token_ids</code></dd></div><div><dt>출력</dt><dd><code>embedding</code></dd></div><div><dt>컨텍스트</dt><dd>8,192 tokens</dd></div><div><dt>출력 형식</dt><dd>json</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 data-parameter-availability=\"source_interface\"><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>mistralai/codestral-embed-2505</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><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|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>필수</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>최소 항목 수: 1</div><div>조건: 비어 있지 않은 동일 형식의 배치입니다. 토큰 ID는 0 이상의 정수입니다.</div><div>입력 허용량: 최댓값: 8,192 · 텍스트 단위: UTF8 바이트 · 토큰 단위: 토큰 배열 요소</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">encoding_format</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>float</div></td><td data-cell-label=\"기본값\" data-default=\"known\"><span class=\"card-cell-label\">기본값</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>integer</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>지원되지 않음</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>최솟값: 1</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>json_value</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>선택 사항</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>json_value</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>선택 사항</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>json_value</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>선택 사항</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>object</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>선택 사항</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>조건: provider.options가 거부됨</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>입력 자료 조합</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><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>input_shapes</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>encoding_format</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>float</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>dimensions_override</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>false</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>max_input_budget_units</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>8192</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>multimodal_objects</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>false</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, token_ids</td></tr></tbody></table></div><p>수명 주기: <code>synchronous_json</code></p><p class=\"note-s\">모든 벡터의 인덱스와 차원을 보관하세요.</p><p class=\"note-s\">모델 이름이 멀티모달이어도 이 특정 경로에서 이미지 객체를 사용할 수 있는 것은 아닙니다.</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.0003</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-1892-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1892-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1892-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1892-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</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-1892-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1892-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;mistralai/codestral-embed-2505&quot;, &quot;input&quot;: [&quot;First document&quot;, &quot;Second document&quot;]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\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 result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1892-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1892-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.embeddings.create(model=&#39;mistralai/codestral-embed-2505&#39;,input=[&quot;First document&quot;,&quot;Second document&quot;])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">결과 수신 및 저장</h3><h4>Ailoot Ultra · 임베딩</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>완료된 결과 모두 보관</h5><p class=\"note-s\">반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.</p><p class=\"note-s\">모든 벡터를 인덱스와 함께 보관하세요. 벡터 수는 입력 수와 같아야 하며 차원은 일관되어야 합니다.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>원래 응답을 확인해야 할 경우</h5><p class=\"note-s\">임베딩 작업 엔드포인트는 추가되지 않습니다.</p></div><details class=\"card-about\" data-output-fields><summary>응답 필드</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><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\">object</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span>string</td></tr><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>string</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span>integer</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span>finite float[]</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>오류와 다음 단계</summary><div class=\"tw\" data-card-table=\"errors\"><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>400 · <code>invalid_request_error</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>새 생성 요청 전에 표시된 필드를 수정하세요.</td></tr></tbody></table></div></details></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=mistralai%2Fcodestral-embed-2505&amp;route=Ultra&amp;caller=mistralai%2Fcodestral-embed-2505&amp;fmt=embeddings\"><code>mistralai/codestral-embed-2505</code></a></span></p><h4>메서드 경로 별칭</h4><p class=\"note-s\">위에 표시된 메서드 경로를 사용하세요.</p><h4>관련 호출용 ID</h4><p class=\"note-s\"><a href=\"#m=mistralai%2Fcodestral-embed-2505&amp;route=Ultra&amp;caller=mistralai%2Fcodestral-embed-2505&amp;fmt=embeddings\"><code>mistralai/codestral-embed-2505</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/codestral-embed-2505",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "mistralai/codestral-embed-2505",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|mistralai%2Fcodestral-embed-2505",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "errors": [
              {
                "code": null,
                "condition": "필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음",
                "http_status": 400,
                "recovery": "새 생성 요청 전에 표시된 필드를 수정하세요.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "임베딩 작업 엔드포인트는 추가되지 않습니다."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "모든 벡터를 인덱스와 함께 보관하세요. 벡터 수는 입력 수와 같아야 하며 차원은 일관되어야 합니다.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/codestral-embed-2505"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "UTF8 바이트",
                  "token_unit": "토큰 배열 요소"
                },
                "conditions": "비어 있지 않은 동일 형식의 배치입니다. 토큰 ID는 0 이상의 정수입니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options가 거부됨",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "모든 벡터의 인덱스와 차원을 보관하세요.",
            "모델 이름이 멀티모달이어도 이 특정 경로에서 이미지 객체를 사용할 수 있는 것은 아닙니다."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 8192,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "토큰의 기본 단가",
            "units": [
              {
                "amount": "0.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"mistralai/codestral-embed-2505\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\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 result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='mistralai/codestral-embed-2505',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.3,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "빠른 모드",
            "value": "표준 요금",
            "when": "빠른 모드를 선택한 경우"
          },
          {
            "label": "Flex 모드",
            "value": "표준 요금",
            "when": "flex 모드를 선택한 경우"
          },
          {
            "label": "최대 추론 수준",
            "value": "표준 요금",
            "when": "최대 추론 수준에 default 조정값을 적용하는 경우"
          }
        ],
        "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.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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": "mistralai/codestral-embed-2505",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "eb7a705fc75e7d3e6631654cf64f398994984c9304daea56ffe31de741b7e70f",
    "input_html_sha256": "5af2b8f11eb5e4ec07024816ae726f7b59a2b0895117f095311365162655712a",
    "private_audit_sha256": "7e3248fc56740102f09f1e177888dcb981573f20aeb405b49c3afed5e3cf51e4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ko/mistralai-codestral-embed-2505/",
    "description": "Codestral Embed 2505는 저장소 검색과 코딩 어시스턴트의 검색을 위해 코드 및 자연어 질의를 벡터로 표현합니다. 제조사는 8,192토큰 컨텍스트, 최대 3,072까지 설정 가능한 차원, 부동소수점·정수·비트 패킹 출력 형식을 문서화합니다.",
    "locale": "ko",
    "md_url": "https://ailoot.ai/models/ko/mistralai-codestral-embed-2505/index.md",
    "title": "Mistral: Codestral Embed 2505 — Ailoot",
    "url": "https://ailoot.ai/models/ko/mistralai-codestral-embed-2505/"
  },
  "rawModel": {
    "about": "Codestral Embed 2505는 코드 검색에 특화된 Mistral AI의 임베딩 모델입니다. 소스 코드 또는 자연어 코드 질의가 담긴 텍스트를 받아 수치 벡터를 반환합니다. 제조사는 저장소 검색, 코딩 어시스턴트를 위한 맥락 검색, 유사도 및 중복 분석, 기능이나 구조에 따른 코드 그룹화에 활용하도록 제시합니다. 고정 릴리스 식별자는 codestral-embed-2505입니다.\n\n입력과 표현\n\n코드 입력은 함수, 관련 소스 조각 또는 저장소의 다른 의미 있는 단위일 수 있습니다. 자연어 질의는 정확한 심벌을 지목하기보다 찾으려는 동작을 설명할 수 있습니다. 임베딩은 비교를 위해 입력을 표현합니다. 모델은 새로운 구현을 생성하거나 받은 코드를 실행하지 않습니다.\n\n공식 릴리스는 전체 입력 컨텍스트를 8,192토큰으로 문서화합니다. 검색에서는 더 큰 청크가 검색 성능을 해칠 수 있다고 설명하며, 약 3,000자 청크에 1,000자 중첩을 둘 것을 권장합니다. 이는 검색 준비 권장 사항이며, 3,000자라는 토큰 제한이 아닙니다. 검색 후 애플리케이션이 관련 코드를 반환할 수 있도록 각 준비 항목에 파일, 심벌, 출처 위치를 연결하세요.\n\n출력 정밀도와 차원\n\n코드 임베딩 가이드는 float, int8, uint8, binary, ubinary 출력 유형을 문서화합니다. float는 32비트 단정밀도 값을 사용합니다. int8은 -128부터 127까지의 부호 있는 8비트 정수를, uint8은 0부터 255까지의 부호 없는 8비트 값을 사용합니다. binary와 ubinary는 양자화한 단일 비트 값을 8비트 요소에 패킹해 저장하며, 각각 부호 있는 컨테이너와 부호 없는 컨테이너를 사용합니다.\n\n비트 패킹 표현은 반환 목록의 길이를 바꿉니다. 가이드는 논리 임베딩 차원 8개마다 패킹 요소 하나가 있다고 설명합니다. 따라서 형식을 인식한 비교는 패킹 바이트를 일반 부동소수점 좌표로 다루는 것과 다릅니다. 선택한 유형을 벡터와 함께 보존하고, 색인한 코드와 그 질의에 같은 표현을 사용하세요.\n\n매개변수 문서는 기본 차원을 1,536, 최대 차원을 3,072로 명시합니다. 차원은 관련성 순으로 정렬되며, 제조사는 선택한 개수만큼 앞부분을 유지해 표현 크기를 선택하는 방식을 설명합니다. 저장된 컬렉션과 새 질의에서 차원을 일관되게 선택하세요. 더 짧거나 양자화된 표현은 저장과 비교 동작을 바꾸지만, 입력 컨텍스트를 늘리거나 모델을 코드 생성기로 만들지는 않습니다.\n\n검색 증강 코딩\n\n릴리스의 첫 활용 사례는 코드 완성, 편집, 설명을 위한 맥락 검색입니다. 의미 있는 코드 단위를 준비하고 저장소 리비전과 소스 식별자를 보관하세요. 특정 오류가 어떻게 처리되는지 묻는 질문은 관련 함수를 검색할 수 있고, 애플리케이션은 이를 실제 변경 요청과 함께 코딩 모델에 제공합니다.\n\n실용적인 결과는 파일 경로, 심벌, 동작을 이해하는 데 필요한 내용을 갖춘 소스 스니펫의 순위 집합입니다. 검색한 스니펫은 개발자가 열거나 어시스턴트에 전달할 수 있습니다. Codestral Embed는 표현 단계를 수행합니다. 별도의 구성 요소가 결과를 선택하고, 생성 모델이 설명이나 제안 코드를 작성합니다.\n\n의미 검색과 유사도\n\n제조사는 자연어 또는 코드 질의로 코드를 검색하는 방식을 설명합니다. 개발자는 함수 이름이 요청 표현과 달라도 특정 동작의 구현을 찾을 수 있습니다. 의도된 구현을 구별하는 동작과 조건을 포함하세요. 하위 시스템 전체에 대한 일반 질의는 관련 자료를 검색하더라도 구체적인 질문을 해결하지 못할 수 있습니다.\n\n릴리스는 어휘 차이가 있어도 거의 중복되거나 기능적으로 비슷한 코드를 찾는 활용도 설명합니다. 이런 결과는 재사용할 구현을 찾거나 추가 검토가 필요한 코드를 식별하는 데 도움이 됩니다. 임베딩 공간의 유사도는 소스를 살펴보라는 신호입니다. 두 조각이 모든 입력에서 같은 동작을 한다는 뜻은 아닙니다.\n\n군집화, 분석, 비교\n\n코드 임베딩으로 기능이나 구조에 따라 코드를 그룹화하고 저장소 구성을 살펴볼 수 있습니다. 사람이나 후속 애플리케이션 단계가 그룹을 해석할 수 있도록 원래 스니펫과 식별자를 계속 확인할 수 있게 하세요. 군집은 표현 기반 그룹이며, 자동으로 검증된 아키텍처 설명이 아닙니다.\n\n제조사의 부동소수점 벡터 예제는 단위 정규화 임베딩을 사용하며, 코사인 유사도, 내적, 유클리드 거리가 일관된 순위를 제공합니다. 양자화 및 비트 패킹 출력은 원시 부동소수점 좌표에 대한 가정을 그대로 적용하지 말고 고유한 형식 처리를 유지해야 합니다. 공개된 엔드포인트는 입력 인덱스도 유지해, 각 벡터와 원본 항목의 연결을 보존하는 데 도움이 됩니다.\n\n에디션과 실질적 경계\n\n정확한 모델 페이지는 8k 컨텍스트라는 표기와 함께 임베딩 및 배치 워크플로를 제시하고, 릴리스는 8,192토큰 값을 제공합니다. 컬렉션 및 질의 워크플로 전반에서 2505 에디션 이름, 선택한 출력 차원과 유형을 유지하세요. 이는 코드 지향 벡터 출력이며, Codestral의 텍스트 완성과 고정 차원의 Mistral Embed 텍스트 모델과 구분됩니다.\n\n관련 동작을 담은 코드 단위를 준비하고, 출처 위치를 유지하고, 무엇을 찾는 질문인지 밝히세요. 유용한 산출물은 실제 코드에 연결된 검색 가능한 표현입니다. 다음 설명, 편집, 개발자 검토 단계를 직접 수행하지 않으면서 지원합니다.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "available": null,
    "canonical_model": "mistralai/codestral-embed-2505",
    "capabilities": {
      "context_length": 8192,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": 8192,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "mistralai/codestral-embed-2505",
    "input": [
      "text",
      "token_ids"
    ],
    "kind": "embedding",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "errors": [
              {
                "code": null,
                "condition": "필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음",
                "http_status": 400,
                "recovery": "새 생성 요청 전에 표시된 필드를 수정하세요.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "임베딩 작업 엔드포인트는 추가되지 않습니다."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "모든 벡터를 인덱스와 함께 보관하세요. 벡터 수는 입력 수와 같아야 하며 차원은 일관되어야 합니다.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/codestral-embed-2505"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "UTF8 바이트",
                  "token_unit": "토큰 배열 요소"
                },
                "conditions": "비어 있지 않은 동일 형식의 배치입니다. 토큰 ID는 0 이상의 정수입니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options가 거부됨",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "모든 벡터의 인덱스와 차원을 보관하세요.",
            "모델 이름이 멀티모달이어도 이 특정 경로에서 이미지 객체를 사용할 수 있는 것은 아닙니다."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 8192,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "토큰의 기본 단가",
            "units": [
              {
                "amount": "0.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"mistralai/codestral-embed-2505\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\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 result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='mistralai/codestral-embed-2505',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.3,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "빠른 모드",
            "value": "표준 요금",
            "when": "빠른 모드를 선택한 경우"
          },
          {
            "label": "Flex 모드",
            "value": "표준 요금",
            "when": "flex 모드를 선택한 경우"
          },
          {
            "label": "최대 추론 수준",
            "value": "표준 요금",
            "when": "최대 추론 수준에 default 조정값을 적용하는 경우"
          }
        ],
        "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.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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": "mistralai/codestral-embed-2505",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
        "request_model_id": "mistralai/codestral-embed-2505",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Codestral Embed 2505",
    "price": {
      "in": 0.3,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.3,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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"
          }
        ]
      }
    ],
    "public_id": "mistralai/codestral-embed-2505",
    "short": "Codestral Embed 2505는 저장소 검색과 코딩 어시스턴트의 검색을 위해 코드 및 자연어 질의를 벡터로 표현합니다. 제조사는 8,192토큰 컨텍스트, 최대 3,072까지 설정 가능한 차원, 부동소수점·정수·비트 패킹 출력 형식을 문서화합니다."
  },
  "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": "Codestral Embed 2505는 저장소 검색과 코딩 어시스턴트의 검색을 위해 코드 및 자연어 질의를 벡터로 표현합니다. 제조사는 8,192토큰 컨텍스트, 최대 3,072까지 설정 가능한 차원, 부동소수점·정수·비트 패킹 출력 형식을 문서화합니다.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "730627f84c03a6e667babd6ae68bcc09b7718b2ba133e57caf414c2933cba0f9",
    "renderer_sha256": "6825a317438b70ab0939441dcebefece462384e77f7e96cce899605c4b208caa"
  },
  "sourceRevision": "7fdc8a6be3d52908476145db6e5008a46d29bda4d80f4733f413c2219aa5446d"
}
