运行gpt4-pdf-chatbot-langchain的npm run ingest命令报错求助
npm run ingest报错排查 问题描述
我正尝试部署开源项目gpt4-pdf-chatbot-langchain,执行npm run ingest命令时出现以下错误:
error [Error: PineconeClient: Error calling upsert: Error: PineconeClient: Error calling upsertRaw: FetchError: The request failed and the interceptors did not return an alternative response]
c:\Users\Projects\chatpdf\gpt4-pdf-chatbot-langchain-main\gpt4-pdf-chatbot-langchain-main\scripts\ingest-data.ts:44
throw new Error('Failed to ingest your data');
^[Error: Failed to ingest your data]
Node.js v18.15.0
我的.env文件配置如下:
OPENAI_API_KEY='sk-XXXXXXX' # Update these with your Supabase details from your project settings > API and dashboard settings PINECONE_API_KEY= '7XXXXXXXXX' PINECONE_ENVIRONMENT= 'us-east1-gcp' PINECONE_INDEX_NAME= 'default'
我已修改pinecone.ts文件设置命名空间:const PINECONE_NAME_SPACE = 'pdfread'; //namespace is optional for your vectors,同时修改makechain.ts文件指定使用GPT-3.5模型:modelName: 'gpt-3.5-turbo',,当前使用仓库自带的MorseVsFrederick PDF文件进行数据导入,请问哪里操作有误?
排查方向及解决方案
- 环境变量格式错误:
.env中PINECONE_API_KEY的等号后存在空格,这会导致密钥被识别为包含空格的无效值,应修改为PINECONE_API_KEY='7XXXXXXXXX'(去掉等号后的空格),其他Pinecone相关变量也确保没有多余空格。 - Pinecone索引配置不匹配:确认Pinecone控制台中存在
default索引,且索引维度设置为1536(项目使用的OpenAI text-embedding-ada-002模型输出维度固定为1536),维度不匹配会直接导致向量插入失败。 - 网络访问限制:FetchError通常和网络连通性有关,检查是否有防火墙、代理拦截了Pinecone API的请求,可尝试直接访问对应环境的Pinecone端点验证连通性。
- 命名空间权限问题:若Pinecone索引有访问权限限制,需确认当前API密钥有权操作
pdfread命名空间,可暂时注释掉命名空间配置,测试基础导入是否成功。 - 依赖版本兼容问题:项目依赖的pinecone-client版本可能与当前Pinecone API不兼容,尝试重新安装依赖:
npm install,或查看项目README确认指定的依赖版本要求。
内容的提问来源于stack exchange,提问作者Ghulam

