OpenAI: Text Embedding 3 Small
OpenAI의 소형 3세대 텍스트 임베딩 모델은 기본적으로 1,536차원 벡터를 반환하며 더 짧은 표현도 지원합니다. 수치 출력을 의미 검색, 코드 검색, 그룹화, 추천, 분류에 사용하세요.
- Ailoot Ultra · 임베딩
POST /v1/embeddingsopenai/text-embedding-3-small - Ailoot Ultra · 임베딩 · text-embedding-3-small
POST /v1/embeddingstext-embedding-3-small
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
text-embedding-3-small은 OpenAI의 더 작은 3세대 텍스트 임베딩 모델입니다. 글로 된 자료를 기본 1,536개 성분의 수치 벡터로 변환합니다. 벡터는 다른 검색이나 분석 단계를 위해 텍스트 간 관계를 측정하며, 모델은 입력에 대한 대화형 답변을 생성하지 않습니다.
더 큰 3세대 모델처럼 제공자의 dimensions 제어로 더 짧은 임베딩을 지원합니다. 학습은 단축 벡터에도 개념을 표현하는 정보를 유지하도록 설계됐으며, 크기 선택은 애플리케이션의 품질과 자원 요구에 영향을 줍니다. 비교하는 레코드와 질의 전반에서 모델과 선택한 차원을 일관되게 유지하세요.
실제 활용 중 하나는 코드 검색입니다. 제조사의 가이드는 소스 함수를 텍스트로 표현해 임베딩하고, 자연어 질의도 같은 모델로 임베딩한 뒤 결과 벡터를 비교하는 방법을 설명합니다. 예시 결과는 소스 위치에 연결된 관련 함수의 순위 집합입니다. 문서 검색에서 이에 해당하는 산출물은 독자나 다음 모델이 텍스트와 원래 참조를 계속 사용할 수 있는 지문 집합입니다.
그 밖에 문서화된 용도에는 군집화, 관련 콘텐츠 추천, 분류, 이상치 감지, 다양성 측정이 있습니다. 초점이 분명한 메시지 워크플로는 비슷한 요청을 묶거나 범주 설명과 비교할 수 있습니다. 애플리케이션이 유사도 결과를 범주, 추천, 검토 항목으로 바꾸는 방식을 정의하며, 임베딩 자체는 계속 수치 데이터입니다.
OpenAI는 텍스트당 최대 입력을 8,192토큰으로 명시합니다. 임베딩 API는 문자열이나 토큰화된 입력, 요청 하나의 여러 입력을 허용하고 빈 문자열을 거부하며, 합계 300,000토큰 한도를 적용합니다. 긴 자료는 의미 있는 지문으로 준비하고 해석에 필요한 제목이나 정의를 유지하세요. 서로 다른 종류의 레코드를 무관한 준비 규칙으로 임베딩하지 말고, 일관된 원본 필드 집합을 사용하세요.
제공자는 기본적으로 부동소수점 벡터를 반환하며 base64 인코딩도 문서화합니다. 가이드는 OpenAI 임베딩이 단위 길이로 정규화됐다고 설명하고 코사인 유사도를 권장합니다. 내적으로 이를 계산할 수 있고 유클리드 거리도 같은 순위를 제공합니다. 반환된 뒤 3세대 임베딩을 수동으로 줄이면 가이드 설명대로 단축 벡터를 다시 정규화하세요. dimensions 제어를 사용하면 수동 잘림을 일상적인 준비 단계로 삼지 않을 수 있습니다.
각 벡터와 함께 모델 정체성, 차원, 원본 연결을 기록하세요. 유용한 후속 산출물은 그것을 만든 텍스트에 연결된 순위 목록, 그룹 컬렉션, 분류 특성 집합입니다. 선택된 자료가 실제로 작업을 뒷받침하는지 확인하고, 누락된 사실과 의미적 관련성을 구분하세요. 다음 단계는 표현을 특정 검색이나 의사결정 워크플로에 사용할 수 있습니다.
Ailoot Ultra · 임베딩 POST /v1/embeddings openai/text-embedding-3-small
openai/text-embedding-3-smallopenai/text-embedding-3-smalltext-embedding-3-small
시작하기
OpenAI의 소형 3세대 텍스트 임베딩 모델은 기본적으로 1,536차원 벡터를 반환하며 더 짧은 표현도 지원합니다. 수치 출력을 의미 검색, 코드 검색, 그룹화, 추천, 분류에 사용하세요.
- 허용 입력
- 텍스트 · token_ids
- 결과
- embedding
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 임베딩 POST /v1/embeddings
- 입력
text,token_ids- 출력
embedding- 컨텍스트
- 8,192 tokens
- 출력 형식
- json
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 openai/text-embedding-3-small | 기본값— |
필드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.00004 / 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": "openai/text-embedding-3-small", "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='openai/text-embedding-3-small',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 openai/text-embedding-3-small, text-embedding-3-small
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
Ailoot Ultra · 임베딩 · text-embedding-3-small POST /v1/embeddings text-embedding-3-small
text-embedding-3-smallopenai/text-embedding-3-smalltext-embedding-3-small
시작하기
OpenAI의 소형 3세대 텍스트 임베딩 모델은 기본적으로 1,536차원 벡터를 반환하며 더 짧은 표현도 지원합니다. 수치 출력을 의미 검색, 코드 검색, 그룹화, 추천, 분류에 사용하세요.
- 허용 입력
- 텍스트
- 결과
- embedding
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 임베딩 · text-embedding-3-small POST /v1/embeddings
- 입력
text- 출력
embedding- 컨텍스트
- 8,192 tokens
- 출력 형식
- json
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 text-embedding-3-small | 기본값— |
필드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 |
매개변수text_file_material | 명세실제 UTF-8 문서를 읽고 그 텍스트를 지정된 입력 또는 메시지 콘텐츠 문자열에 넣으세요. |
수명 주기: synchronous_json
정확한 모델 ID와 필수 필드를 전송하세요.
반환된 모든 항목과 원래 식별자를 보존하세요.
요금
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 표준 요금 빠른 모드를 선택한 경우
- Flex 모드
- 표준 요금 flex 모드를 선택한 경우
- 최대 추론 수준
- 표준 요금 최대 추론 수준에 default 조정값을 적용하는 경우
Ailoot 요금
설정별 가격
| 설정 | 요금표 | 요금 |
|---|---|---|
| 설정토큰의 기본 단가 | 요금표기본 요금 | 요금 입력 · 입력 토큰 $0.00004 / 1K 토큰 출력 · 출력 토큰 $0 / 1K 토큰 입력 · 캐시 읽기 — / 1K 토큰 입력 · 캐시 쓰기 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 — / 1K 토큰 |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 임베딩 · text-embedding-3-small
{
"model": "text-embedding-3-small",
"input": [
"First document",
"Second document"
],
"encoding_format": "float"
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'text-embedding-3-small', 'input': ['First document', 'Second document'], 'encoding_format': 'float'}
payload['input'] = [text]
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
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
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
for vector in result.get('data', []):
print('Vector', vector.get('index'), json.dumps(vector.get('embedding')))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'text-embedding-3-small', 'input': ['First document', 'Second document'], 'encoding_format': 'float'}
payload['input'] = [text]
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/embeddings', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
for vector in result.get('data', []):
print('Vector', vector.get('index'), json.dumps(vector.get('embedding')))
결과 수신 및 저장
Ailoot Ultra · 임베딩 · text-embedding-3-small
json
완료된 결과 모두 보관
반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.
유한한 값으로 구성된 모든 벡터와 원래 인덱스를 보존하세요. 모든 차원과 전체 usage 객체를 유지하세요.
원래 응답을 확인해야 할 경우
임베딩 작업 엔드포인트는 추가되지 않습니다.
응답 필드
| 필드 | 유형 |
|---|---|
필드object | 유형string |
필드model | 유형string |
필드data[].index | 유형integer |
필드data[].embedding | 유형finite float[] |
필드usage | 유형object |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음 | 다음 단계새 생성 요청 전에 표시된 필드를 수정하세요. |
별칭
모델 별칭
Ailoot Ultra openai/text-embedding-3-small, text-embedding-3-small
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · OpenAI: Text Embedding 3 Small
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/embeddings·openai/text-embedding-3-small:text,token_ids→embeddingPOST /v1/embeddings·text-embedding-3-small:text→embedding- 요청은 어떤 필드를 사용하나요?
POST /v1/embeddings·openai/text-embedding-3-small:model,input,encoding_format,providerPOST /v1/embeddings·text-embedding-3-small:model,input,encoding_format,provider- 어떤 제한이 적용되나요?
POST /v1/embeddings·openai/text-embedding-3-small:ctx:8192;input.budget.maximum:8192(UTF8 바이트);input.min_items:1POST /v1/embeddings·text-embedding-3-small:ctx:8192;input.budget.maximum:8192(UTF8 바이트);input.min_items:1