嵌入(Embeddings) API 指南
概述
新模型发布
- text-embedding-3-small
- text-embedding-3-large 特点:更低成本、更好的多语言性能、可控制维度
主要应用场景
- 🔍 搜索(相关性排序)
- 📊 聚类(相似性分组)
- 👍 推荐系统
- ⚠️ 异常检测
- 📈 多样性分析
- 🏷️ 文本分类
基础使用
获取嵌入向量
from openai import OpenAI client = OpenAI( base_url="https://api.aimanyi.top/v1", api_key=key ) response = client.embeddings.create( input="Your text string goes here", model="text-embedding-3-small" ) print(response.data[0].embedding)
响应格式
{ "object": "list", "data": [ { "object": "embedding", "index": 0, "embedding": [ -0.006929283495992422, -0.005336422007530928, // ... 更多数值 ], } ], "model": "text-embedding-3-small", "usage": { "prompt_tokens": 5, "total_tokens": 5 } }
模型对比
| 模型 | 每美元页面数 | MTEB性能评估 | 最大输入 |
|---|---|---|---|
| text-embedding-3-small | 62,500 | 62.3% | 8191 |
| text-embedding-3-large | 9,615 | 64.6% | 8191 |
| text-embedding-ada-002 | 12,500 | 61.0% | 8191 |
实际应用示例
处理评论数据
from openai import OpenAI client = OpenAI( base_url="https://api.aimanyi.top/v1", api_key=key ) def get_embedding(text, model="text-embedding-3-small"): text = text.replace("\n", " ") return client.embeddings.create(input = [text], model=model).data[0].embedding # 处理数据框 df['ada_embedding'] = df.combined.apply(lambda x: get_embedding(x, model='text-embedding-3-small')) df.to_csv('output/embedded_1k_reviews.csv', index=False) # 加载保存的嵌入 import pandas as pd import numpy as np df = pd.read_csv('output/embedded_1k_reviews.csv') df['ada_embedding'] = df.ada_embedding.apply(eval).apply(np.array)
技术细节
维度说明
- text-embedding-3-small: 默认1536维
- text-embedding-3-large: 默认3072维
- 可通过 Dimensions 参数调整维度
注意事项
- 计费基于输入令牌数
- 每页约800个令牌
- 所有模型最大输入均为8191个令牌