主题
embedding代码例子
基本概念
什么是Embedding?
Embedding(嵌入)是将离散数据(如单词、句子)映射到连续向量空间的技术。通过Embedding:
语义相似的文本在向量空间中距离更近
便于机器学习模型处理文本数据
典型应用:搜索、推荐、分类等场景
常见Embedding模型
text-embedding-3-small Openai主流emb模型
text-embedding-3-large
text-embedding-ada-002
技术特点
特性
说明
维度
通常为数百到数千维(如1024维)
归一化
多数Embedding会做L2归一化
距离度量
常用余弦相似度计算向量距离
多语言支持
现代模型通常支持多语言嵌入
请求地址
POST https://api.changhuai.ai/v1/embeddings
认证方式
需要在请求头中添加 API Key:
python
headers = {
"Authorization": "Bearer sk-******", # 替换为你的API令牌
"Content-Type": "application/json"
}请求参数
参数名
类型
必填
说明
input
string/array
是
单条文本或文本列表
model
string
是
使用的模型名称
encoding_format
string
否
返回格式(float/base64)
请求示例
python
import openai
# 设置OpenAI API密钥和基础URL
openai.api_key = "sk-***************************" # 替换为你的 key
openai.base_url = "https://api.changhuai.ai/v1/" # 这里是API的 base url,注意这里v1后面需要/,最后的 / 很容易漏掉。
def get_embedding(text):
response = openai.embeddings.create(
model="text-embedding-3-small",
input=text
)
return response.data[0].embedding
# 示例文本
text = "这是一个示例文本,用于演示如何获取文本嵌入。"
# 获取文本嵌入
embedding = get_embedding(text)
print(f"文本: {text}")
print(f"嵌入向量维度: {len(embedding)}")
print(f"嵌入向量前5个元素: {embedding[:5]}")典型应用场景
语义搜索:通过向量相似度匹配查询和文档
聚类分析:将相似文本自动归类
推荐系统:寻找内容相似的物品
异常检测:识别语义异常的文本
性能优化建议
批量处理文本(最多支持2048 tokens/请求)
对静态内容缓存嵌入结果
使用近似最近邻(ANN)算法加速搜索
响应示例
成功响应(200):
json
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [0.1, -0.2, 0.3, ...],
"index": 0
}
],
"model": "text-embedding-ada-002",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}错误响应:
json
{
"error": {
"message": "Invalid input text",
"type": "invalid_request_error"
}
}