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

在Google Cloud Run中用FastAPI+LangChain调用OpenAI遇SSLError求助

解决Google Cloud Run上FastAPI+LangChain调用OpenAI的SSL连接中断问题

核心原因及修复方案

  • HTTP连接复用超时
    Cloud Run容器长期运行时,LangChain/OpenAI SDK默认的HTTP连接复用机制会保留闲置连接,但OpenAI服务器会主动关闭超时闲置连接,后续调用复用无效连接就会触发SSL错误。
    修复:自定义OpenAI客户端的连接池配置,缩短连接闲置过期时间,避免复用失效连接。
    示例代码:

    from openai import OpenAI
    import httpx
    
    # 配置带闲置超时的HTTP客户端
    custom_http_client = httpx.Client(
        timeout=httpx.Timeout(60.0),
        limits=httpx.Limits(
            max_connections=10,
            max_keepalive_connections=5,
            keepalive_expiry=30  # 闲置30秒后自动关闭连接
        )
    )
    
    # 传给OpenAI客户端,再在LangChain中使用
    openai_client = OpenAI(http_client=custom_http_client)
    from langchain.chat_models import ChatOpenAI
    llm = ChatOpenAI(openai_api_key="你的密钥", client=openai_client)
    
  • Cloud Run网络波动
    Cloud Run的出站公网连接可能因实例扩缩容、网络策略调整出现不稳定,多次调用后连接池积累无效连接。
    修复:

    1. 启用Cloud Run的VPC连接器,通过内部网络访问OpenAI,降低公网波动影响;
    2. 在FastAPI的请求处理逻辑中,每次调用OpenAI前重置客户端连接(高并发场景不推荐,仅用于临时验证)。
  • 重试策略冲突
    LangChain与OpenAI SDK的重试机制叠加,导致SSL错误触发的重试提前耗尽次数。
    修复:针对SSL错误自定义重试规则,增加重试次数并调整等待策略。
    示例代码:

    from langchain.chat_models import ChatOpenAI
    from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
    import ssl
    
    @retry(
        stop=stop_after_attempt(3),
        wait=wait_exponential(multiplier=1, min=2, max=10),
        retry=retry_if_exception_type((ssl.SSLError,))
    )
    def invoke_llm(prompt):
        llm = ChatOpenAI(openai_api_key="你的密钥")
        return llm.predict(prompt)
    
  • 容器CA证书过期
    Cloud Run容器镜像的CA证书未及时更新,长期运行后无法通过OpenAI服务器的SSL证书验证。
    修复:在Dockerfile中添加证书更新步骤,以Debian系镜像为例:

    FROM python:3.11-slim
    
    RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && update-ca-certificates
    
    # 后续安装依赖、复制代码等步骤
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:02:40