You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用OpenAI Embedding API报错:'CreateEmbeddingResponse'对象不可下标访问

OpenAI Embedding API调用报错解决方案

你运行OpenAI官网的Embedding示例代码时,遇到了如下错误:

TypeError: 'CreateEmbeddingResponse' object is not subscriptable
(中文翻译:类型错误:'CreateEmbeddingResponse'对象不可通过下标访问)

问题出在新的OpenAI Python SDK(v1及以上版本)的返回值结构上——它返回的是对象实例,而非旧版本的字典,因此不能用[]下标方式访问数据。

修正后的代码

from openai import OpenAI
client = OpenAI()

def get_embedding(text, model="text-embedding-ada-002"):
    text = text.replace("\n", " ")
    # 替换下标访问为属性访问
    return client.embeddings.create(input = [text], model=model).data[0].embedding

df['embedding'] = df.ITEM_DESCRIPTION.apply(lambda x: get_embedding(x, model='text-embedding-ada-002'))
df.to_csv('embedded_output.csv', index=False)

关键修改点

将原代码中返回语句的下标访问:

client.embeddings.create(input = [text], model=model)['data'][0]['embedding']

替换为属性访问:

client.embeddings.create(input = [text], model=model).data[0].embedding

内容的提问来源于stack exchange,提问作者Jovin Synott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:06