将Confluence数据存入Chroma向量库时触发APIConnectionError,求解决方案
将百万级Confluence文本持久化到Chroma向量库时出现APIConnectionError,如何解决?
我已成功加载并处理规模如下的Confluence数据:
- 868份文档
- 100万段拆分文本
但当我尝试通过以下代码将其持久化到向量库时:
vectordb = Chroma.from_documents( documents=splits, embedding=embedding, persist_directory=persist_directory )
该操作在普通笔记本上运行了数小时,最终抛出APIConnectionError: Connection error异常。
请问这是否属于超时问题?若是,该如何解决?有任何思路吗?
问题分析与解决方案
这个APIConnectionError大概率和超时或远程API限流有关,尤其是处理百万级文本时,持续调用远程嵌入模型(比如Azure OpenAI嵌入)很容易触发连接中断、请求超时或API限制。以下是针对性解决思路:
拆分批次处理
一次性处理100万条数据压力过大,分成小批次逐步处理,每批完成后持久化并短暂休眠,避免持续请求导致连接崩溃。示例代码:from langchain.vectorstores import Chroma import time batch_size = 500 # 根据自身情况调整批次大小 vectordb = None for i in range(0, len(splits), batch_size): batch_splits = splits[i:i+batch_size] if not vectordb: # 初始化向量库 vectordb = Chroma.from_documents( documents=batch_splits, embedding=embedding, persist_directory=persist_directory ) else: # 追加文档到已有向量库 vectordb.add_documents(documents=batch_splits) # 每批处理后持久化 vectordb.persist() # 休眠避免触发API限流 time.sleep(10)延长嵌入模型超时时间
如果使用的是远程嵌入服务(比如Azure OpenAI),初始化时设置更长的超时参数,给请求足够的响应时间:from langchain.embeddings import AzureOpenAIEmbeddings embedding = AzureOpenAIEmbeddings( azure_deployment="你的部署名称", openai_api_version="你的API版本", timeout=60 # 延长超时至60秒,可按需调整 )添加重试机制
针对临时的连接中断,给嵌入请求添加重试逻辑,用tenacity库实现自动重试:from tenacity import retry, stop_after_attempt, wait_exponential from langchain.embeddings import AzureOpenAIEmbeddings class RetryEnabledEmbeddings(AzureOpenAIEmbeddings): @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10)) def embed_documents(self, texts): return super().embed_documents(texts) embedding = RetryEnabledEmbeddings( azure_deployment="你的部署名称", openai_api_version="你的API版本" )切换本地嵌入模型
若网络不稳定或远程API限制严格,改用本地开源嵌入模型(如BAAI/bge-small-zh-v1.5),完全避免远程调用的网络问题:from langchain.embeddings import HuggingFaceEmbeddings embedding = HuggingFaceEmbeddings(model_name="BAAI/bge-small-zh-v1.5")优化数据质量
检查拆分后的文本,过滤掉空白、重复或无意义的片段,减少实际需要处理的数据量,同时确保单段文本长度符合嵌入模型的输入限制,避免因超长文本导致请求失败。
内容的提问来源于stack exchange,提问作者Sameer Mahajan
相关产品推荐
相关产品推荐

