OpenAI模块无Embed属性报错,求新版本代码适配及文本转向量方案
OpenAI Embedding代码变更及正确实现方案
你的报错确实是因为OpenAI Python SDK的版本更新导致API调用方式发生了变更,旧的Embed接口已经被移除,改用全新的实现方式。
关键变更点
- 接口名称从
openai.Embed.create改为openai.Embedding.create(注意首字母大写) - 参数
engine替换为model,且必须使用OpenAI官方提供的专用embedding模型(如text-embedding-ada-002,这是目前推荐的默认模型) - 返回结果结构调整,需要从
response['data'][0]['embedding']路径提取向量
正确的代码实现
import openai openai.api_key = "YOUR_API_KEY" text = "This is the text for which you want to create an embedding." # 调用最新的embedding接口 response = openai.Embedding.create( model="text-embedding-ada-002", input=text ) # 提取生成的向量 embedding = response['data'][0]['embedding']
额外注意事项
- 先确保你的openai SDK是最新版本,执行
pip install --upgrade openai完成更新 - 不要用文本生成模型(比如
text-davinci-002)来生成embedding,这类模型不支持该功能,会导致调用失败 - 如果需要批量处理多个文本,只需将
input参数改为字符串列表,接口会返回对应数量的embedding向量
内容的提问来源于stack exchange,提问作者Chethana Wickramaarachchi
相关产品推荐
相关产品推荐

