调用OpenAI Embeddings API获取向量时遇undefined及迭代错误求助
问题解决:从OpenAI嵌入响应获取向量时出现undefined和迭代错误
你的问题出在访问响应数据的路径错误:OpenAI Node.js SDK(v4版本)的embeddings.create接口返回的响应中,嵌入结果数组直接存放在embeddingResponse.data里,你代码里多写了一层.data,导致访问到undefined,进而触发TypeError: undefined is not iterable错误。
修正后的代码
const documents = [ "Cooper codes is a youtuber with 5,300 subscribers", "Cooper codes likes clam choder", "Cooper codes has a video ", "Cooper codes has a web site called coopercodes.com" ]; for(const document of documents) { const input = document.replace(/\n/g, ''); const parameters= { model: 'text-embedding-ada-002', input } const embeddingResponse = await openai.embeddings.create(parameters); // 修正:去掉多余的.data层级 const [{ embedding }] = embeddingResponse.data; console.log('Result:', embeddingResponse); await supabaseClient.from('documents').insert({ content: document, embedding }) }
修改后,embedding就能正确获取到对应文本的向量数组,后续插入Supabase的逻辑也能正常执行。
内容的提问来源于stack exchange,提问作者Barry Moore
相关产品推荐
相关产品推荐

