使用Ragas评估RAG管道时遇SSL证书验证失败错误求助
SSL证书验证失败导致Ragas评估Azure OpenAI连接错误
问题场景
我使用以下代码评估RAG管道,已确认数据集格式符合Ragas要求,且Azure OpenAI密钥配置正确,但调用evaluate方法时出现连接错误:
for query in questions: content,answer = rag_pipeline(query) answers.append(answer) contexts.append([content]) # To dict data = { "question": questions, "answer": answers, "contexts": contexts, "ground_truths": ground_truths } # Convert dict to dataset print(data) dataset = Dataset.from_dict(data) result = evaluate(dataset = dataset, #is_async = True, metrics=[context_precision, context_recall, faithfulness, answer_relevancy, ], ) df = result.to_pandas()
错误信息
openai.APIConnectionError: Connection error. Traceback (most recent call last): File "C:\Users\VI20095818\Documents\EDJ\evaluation\ragas_testing.py", line 417, in <module> result = evaluate(dataset = dataset, File "C:\Users\VI20095818\Documents\edjenv\lib\site-packages\ragas\evaluation.py", line 230, in evaluate raise e File "C:\Users\VI20095818\Documents\edjenv\lib\site-packages\ragas\evaluation.py", line 212, in evaluate raise ExceptionInRunner() ragas.exceptions.ExceptionInRunner: The runner thread which was running the jobs raised an exeception. Read the traceback above to debug it. You can also pass `raise_exception=False` incase you want to show only a warning message instead. Task was destroyed but it is pending!
核心错误
httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
解决方案
1. 临时禁用SSL验证(仅测试环境)
通过修改Ragas使用的OpenAI客户端配置跳过SSL验证,生产环境禁止使用:
import httpx from openai import AzureOpenAI from ragas import set_openai_client # 初始化带SSL跳过的Azure OpenAI客户端 client = AzureOpenAI( azure_endpoint="你的Azure端点", api_key="你的API密钥", api_version="你的API版本", http_client=httpx.Client(verify=False) ) # 让Ragas使用该客户端 set_openai_client(client)
2. 配置企业根CA证书(内网环境)
如果是企业内网,导入信任的CA证书文件(.pem格式):
import httpx from openai import AzureOpenAI from ragas import set_openai_client client = AzureOpenAI( azure_endpoint="你的Azure端点", api_key="你的API密钥", api_version="你的API版本", http_client=httpx.Client(verify="/path/to/企业CA证书.pem") ) set_openai_client(client)
也可通过环境变量全局配置:
import os os.environ["REQUESTS_CA_BUNDLE"] = "C:\\path\\to\\企业CA证书.pem" # Windows路径格式
3. 检查代理设置
若使用代理,确保代理地址正确且证书被信任:
- 确认
HTTPS_PROXY环境变量指向有效代理 - 代理需要证书时,在客户端配置中指定代理证书路径
4. 更新依赖库
旧版本可能存在SSL相关bug,更新至最新版:
pip install --upgrade ragas openai httpx
内容的提问来源于stack exchange,提问作者VIKRANT KUMAR SINGH
相关产品推荐
相关产品推荐

