python 使用Embeddings 向量化
功能概述
新AI 模型正式发布
text-embedding-3-small 和 text-embedding-3-large 特点:更低成本、更好的多语言性能、可控制维度
主要应用场景
- 🔍 检索(相关性排序控制)
- 📊 聚类(相似性分组体系)
- 👍 推荐首选系统
- ⚠️ 异常检测
- 📈 多样性分析
- 🏷️ 文字内容分类
基础入门使用
查询获取特征嵌入向量
from openai import OpenAI
client = OpenAI(
base_url="https://api.timrouter.com/v1",
api_key="YOUR_API_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
}
}
AI 模型对比
| AI 模型 | 每美元页面数 | 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.timrouter.com/v1",
api_key="YOUR_API_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个访问令牌
- 所有AI 模型最大输入均为8191个访问令牌