Mistral: Codestral Embed 2505
Codestral Embed 2505는 저장소 검색과 코딩 어시스턴트의 검색을 위해 코드 및 자연어 질의를 벡터로 표현합니다. 제조사는 8,192토큰 컨텍스트, 최대 3,072까지 설정 가능한 차원, 부동소수점·정수·비트 패킹 출력 형식을 문서화합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Codestral Embed 2505는 코드 검색에 특화된 Mistral AI의 임베딩 모델입니다. 소스 코드 또는 자연어 코드 질의가 담긴 텍스트를 받아 수치 벡터를 반환합니다. 제조사는 저장소 검색, 코딩 어시스턴트를 위한 맥락 검색, 유사도 및 중복 분석, 기능이나 구조에 따른 코드 그룹화에 활용하도록 제시합니다. 고정 릴리스 식별자는 codestral-embed-2505입니다.
입력과 표현
코드 입력은 함수, 관련 소스 조각 또는 저장소의 다른 의미 있는 단위일 수 있습니다. 자연어 질의는 정확한 심벌을 지목하기보다 찾으려는 동작을 설명할 수 있습니다. 임베딩은 비교를 위해 입력을 표현합니다. 모델은 새로운 구현을 생성하거나 받은 코드를 실행하지 않습니다.
공식 릴리스는 전체 입력 컨텍스트를 8,192토큰으로 문서화합니다. 검색에서는 더 큰 청크가 검색 성능을 해칠 수 있다고 설명하며, 약 3,000자 청크에 1,000자 중첩을 둘 것을 권장합니다. 이는 검색 준비 권장 사항이며, 3,000자라는 토큰 제한이 아닙니다. 검색 후 애플리케이션이 관련 코드를 반환할 수 있도록 각 준비 항목에 파일, 심벌, 출처 위치를 연결하세요.
출력 정밀도와 차원
코드 임베딩 가이드는 float, int8, uint8, binary, ubinary 출력 유형을 문서화합니다. float는 32비트 단정밀도 값을 사용합니다. int8은 -128부터 127까지의 부호 있는 8비트 정수를, uint8은 0부터 255까지의 부호 없는 8비트 값을 사용합니다. binary와 ubinary는 양자화한 단일 비트 값을 8비트 요소에 패킹해 저장하며, 각각 부호 있는 컨테이너와 부호 없는 컨테이너를 사용합니다.
비트 패킹 표현은 반환 목록의 길이를 바꿉니다. 가이드는 논리 임베딩 차원 8개마다 패킹 요소 하나가 있다고 설명합니다. 따라서 형식을 인식한 비교는 패킹 바이트를 일반 부동소수점 좌표로 다루는 것과 다릅니다. 선택한 유형을 벡터와 함께 보존하고, 색인한 코드와 그 질의에 같은 표현을 사용하세요.
매개변수 문서는 기본 차원을 1,536, 최대 차원을 3,072로 명시합니다. 차원은 관련성 순으로 정렬되며, 제조사는 선택한 개수만큼 앞부분을 유지해 표현 크기를 선택하는 방식을 설명합니다. 저장된 컬렉션과 새 질의에서 차원을 일관되게 선택하세요. 더 짧거나 양자화된 표현은 저장과 비교 동작을 바꾸지만, 입력 컨텍스트를 늘리거나 모델을 코드 생성기로 만들지는 않습니다.
검색 증강 코딩
릴리스의 첫 활용 사례는 코드 완성, 편집, 설명을 위한 맥락 검색입니다. 의미 있는 코드 단위를 준비하고 저장소 리비전과 소스 식별자를 보관하세요. 특정 오류가 어떻게 처리되는지 묻는 질문은 관련 함수를 검색할 수 있고, 애플리케이션은 이를 실제 변경 요청과 함께 코딩 모델에 제공합니다.
실용적인 결과는 파일 경로, 심벌, 동작을 이해하는 데 필요한 내용을 갖춘 소스 스니펫의 순위 집합입니다. 검색한 스니펫은 개발자가 열거나 어시스턴트에 전달할 수 있습니다. Codestral Embed는 표현 단계를 수행합니다. 별도의 구성 요소가 결과를 선택하고, 생성 모델이 설명이나 제안 코드를 작성합니다.
의미 검색과 유사도
제조사는 자연어 또는 코드 질의로 코드를 검색하는 방식을 설명합니다. 개발자는 함수 이름이 요청 표현과 달라도 특정 동작의 구현을 찾을 수 있습니다. 의도된 구현을 구별하는 동작과 조건을 포함하세요. 하위 시스템 전체에 대한 일반 질의는 관련 자료를 검색하더라도 구체적인 질문을 해결하지 못할 수 있습니다.
릴리스는 어휘 차이가 있어도 거의 중복되거나 기능적으로 비슷한 코드를 찾는 활용도 설명합니다. 이런 결과는 재사용할 구현을 찾거나 추가 검토가 필요한 코드를 식별하는 데 도움이 됩니다. 임베딩 공간의 유사도는 소스를 살펴보라는 신호입니다. 두 조각이 모든 입력에서 같은 동작을 한다는 뜻은 아닙니다.
군집화, 분석, 비교
코드 임베딩으로 기능이나 구조에 따라 코드를 그룹화하고 저장소 구성을 살펴볼 수 있습니다. 사람이나 후속 애플리케이션 단계가 그룹을 해석할 수 있도록 원래 스니펫과 식별자를 계속 확인할 수 있게 하세요. 군집은 표현 기반 그룹이며, 자동으로 검증된 아키텍처 설명이 아닙니다.
제조사의 부동소수점 벡터 예제는 단위 정규화 임베딩을 사용하며, 코사인 유사도, 내적, 유클리드 거리가 일관된 순위를 제공합니다. 양자화 및 비트 패킹 출력은 원시 부동소수점 좌표에 대한 가정을 그대로 적용하지 말고 고유한 형식 처리를 유지해야 합니다. 공개된 엔드포인트는 입력 인덱스도 유지해, 각 벡터와 원본 항목의 연결을 보존하는 데 도움이 됩니다.
에디션과 실질적 경계
정확한 모델 페이지는 8k 컨텍스트라는 표기와 함께 임베딩 및 배치 워크플로를 제시하고, 릴리스는 8,192토큰 값을 제공합니다. 컬렉션 및 질의 워크플로 전반에서 2505 에디션 이름, 선택한 출력 차원과 유형을 유지하세요. 이는 코드 지향 벡터 출력이며, Codestral의 텍스트 완성과 고정 차원의 Mistral Embed 텍스트 모델과 구분됩니다.
관련 동작을 담은 코드 단위를 준비하고, 출처 위치를 유지하고, 무엇을 찾는 질문인지 밝히세요. 유용한 산출물은 실제 코드에 연결된 검색 가능한 표현입니다. 다음 설명, 편집, 개발자 검토 단계를 직접 수행하지 않으면서 지원합니다.
Ailoot Ultra · 임베딩 POST /v1/embeddings mistralai/codestral-embed-2505
mistralai/codestral-embed-2505
mistralai/codestral-embed-2505시작하기
Codestral Embed 2505는 저장소 검색과 코딩 어시스턴트의 검색을 위해 코드 및 자연어 질의를 벡터로 표현합니다. 제조사는 8,192토큰 컨텍스트, 최대 3,072까지 설정 가능한 차원, 부동소수점·정수·비트 패킹 출력 형식을 문서화합니다.
- 허용 입력
- 텍스트 · token_ids
- 결과
- embedding
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 임베딩 POST /v1/embeddings
- 입력
text,token_ids- 출력
embedding- 컨텍스트
- 8,192 tokens
- 출력 형식
- json
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 mistralai/codestral-embed-2505 | 기본값— |
필드input | 유형string|string[]|integer[]|integer[][] | 요건필수 | 값과 한도 최소 항목 수: 1 조건: 비어 있지 않은 동일 형식의 배치입니다. 토큰 ID는 0 이상의 정수입니다. 입력 허용량: 최댓값: 8,192 · 텍스트 단위: UTF8 바이트 · 토큰 단위: 토큰 배열 요소 | 기본값— |
필드encoding_format | 유형string | 요건선택 사항 | 값과 한도 float | 기본값float |
필드dimensions | 유형integer | 요건지원되지 않음 | 값과 한도 최솟값: 1 | 기본값— |
필드user | 유형json_value | 요건선택 사항 | 값과 한도 조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다. | 기본값— |
필드session_id | 유형json_value | 요건선택 사항 | 값과 한도 조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다. | 기본값— |
필드trace | 유형json_value | 요건선택 사항 | 값과 한도 조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다. | 기본값— |
필드provider | 유형object | 요건선택 사항 | 값과 한도 조건: provider.options가 거부됨 | 기본값— |
입력 자료 조합
text_to_embedding
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, input |
매개변수input_shapes | 명세string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
매개변수encoding_format | 명세float |
매개변수dimensions_override | 명세false |
매개변수max_input_budget_units | 명세8192 |
매개변수multimodal_objects | 명세false |
매개변수material_types | 명세text, token_ids |
수명 주기: synchronous_json
모든 벡터의 인덱스와 차원을 보관하세요.
모델 이름이 멀티모달이어도 이 특정 경로에서 이미지 객체를 사용할 수 있는 것은 아닙니다.
요금
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 표준 요금 빠른 모드를 선택한 경우
- Flex 모드
- 표준 요금 flex 모드를 선택한 경우
- 최대 추론 수준
- 표준 요금 최대 추론 수준에 default 조정값을 적용하는 경우
Ailoot 요금
설정별 가격
| 설정 | 요금표 | 요금 |
|---|---|---|
| 설정토큰의 기본 단가 | 요금표기본 요금 | 요금 입력 · 입력 토큰 $0.0003 / 1K 토큰 출력 · 출력 토큰 $0 / 1K 토큰 입력 · 캐시 읽기 — / 1K 토큰 입력 · 캐시 쓰기 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 — / 1K 토큰 |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 임베딩
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "mistralai/codestral-embed-2505", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='mistralai/codestral-embed-2505',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
결과 수신 및 저장
Ailoot Ultra · 임베딩
json
완료된 결과 모두 보관
반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.
모든 벡터를 인덱스와 함께 보관하세요. 벡터 수는 입력 수와 같아야 하며 차원은 일관되어야 합니다.
원래 응답을 확인해야 할 경우
임베딩 작업 엔드포인트는 추가되지 않습니다.
응답 필드
| 필드 | 유형 |
|---|---|
필드object | 유형string |
필드model | 유형string |
필드data[].index | 유형integer |
필드data[].embedding | 유형finite float[] |
필드usage | 유형object |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음 | 다음 단계새 생성 요청 전에 표시된 필드를 수정하세요. |
별칭
모델 별칭
Ailoot Ultra mistralai/codestral-embed-2505
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · Mistral: Codestral Embed 2505
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/embeddings·mistralai/codestral-embed-2505:text,token_ids→embedding- 요청은 어떤 필드를 사용하나요?
POST /v1/embeddings·mistralai/codestral-embed-2505:model,input,encoding_format,provider- 어떤 제한이 적용되나요?
POST /v1/embeddings·mistralai/codestral-embed-2505:ctx:8192;input.budget.maximum:8192(UTF8 바이트);input.min_items:1