os.environ["OPENAI_API_BASE"] = "https://api.openai-proxy.org/v1" os.environ["OP...

2025年09月26日 10:06 响应: 5.05秒 状态: success

🚨 错误信息

os.environ["OPENAI_API_BASE"] = "https://api.openai-proxy.org/v1" os.environ["OPENAI_API_KEY"] = "sk-nkIkzBab0gb0kMwK5W54aIVfcf7z00Ft5aKlPPA8aaQPsYHS" model = ChatOpenAI(model='gpt-3.5-turbo') store = {} def get_session_history(session_id:str) ->BaseChatMessageHistory: if session_id not in store: store[session_id] = InMemoryChatMessageHistory() return store[session_id] with_message_history = RunnableWithMessageHistory(model,get_session_history) config = {"configurable":{"session_id":"abc12"}} response = with_message_history.invoke( [HumanMessage(content="What's my name")], config=config ) print(response.content)

🤖 AI解决方案

Error: openai.APIConnectionError: Error communicating with OpenAI: Failed to connect to api.openai-proxy.org port 443 after 60 seconds: Connection refused

原因分析

代码尝试连接到 https://api.openai-proxy.org/v1 这个地址,但连接被拒绝了。这通常意味着目标服务器不存在、网络防火墙阻止了连接,或者服务器本身没有运行。

解决方案

  • 检查代理服务器地址和端口
  • * 确认 https://api.openai-proxy.org/v1 这个代理地址是否正确且可用。 * 尝试直接连接 OpenAI 的官方 API 地址:https://api.openai.com/v1,如果目标地址是你的本地代理,请确保代理服务正在运行。

  • 检查网络连接和防火墙

  • * 确认你的网络环境允许访问该地址和端口。
    * 检查本地或网络防火墙是否阻止了对 api.openai-proxy.org 的访问。

        import os
        from langchain_openai import ChatOpenAI
        from langchain_core.messages import HumanMessage
        from langchain_core.runnables import RunnableWithMessageHistory
        from langchain_core.chat_models import BaseChatMessageHistory
        from langchain_community.chat_message_histories import InMemoryChatMessageHistory
    
        # 检查并尝试使用官方 API,或者确认代理可用
        # 如果代理不可用,可以注释掉以下两行,直接使用官方 API
        # os.environ["OPENAI_API_BASE"] = "https://api.openai-proxy.org/v1"
        # os.environ["OPENAI_API_KEY"] = "sk-nkIkzBab0gb0kMwK5W54aIVfcf7z00Ft5aKlPPA8aaQPsYHS"
    
        # 示例:如果代理有问题,可以尝试使用官方 API
        # os.environ["OPENAI_API_BASE"] = "https://api.openai.com/v1"
        # os.environ["OPENAI_API_KEY"] = "YOUR_ACTUAL_OPENAI_API_KEY" # 请替换为你的真实 API Key
    
        # 示例:直接使用官方 API,假设你已经设置了 OPENAI_API_KEY 环境变量
        try:
            model = ChatOpenAI(model='gpt-3.5-turbo')
        except Exception as e:
            print(f"Error initializing ChatOpenAI: {e}")
            print("Please ensure OPENAI_API_KEY is set and accessible, or check OPENAI_API_BASE.")
            exit()
    
    
        store = {}
        def get_session_history(session_id:str) ->BaseChatMessageHistory:
            if session_id not in store:
                store[session_id] = InMemoryChatMessageHistory()
            return store[session_id]
    
        with_message_history = RunnableWithMessageHistory(model,get_session_history)
        config = {"configurable":{"session_id":"abc12"}}
    
        try:
            response = with_message_history.invoke(
                [HumanMessage(content="What's my name")],
                config=config
            )
            print(response.content)
        except Exception as e:
            print(f"Error during invoke: {e}")
            print("Please verify the API endpoint and your network connection.")
    
        

    预防措施

  • 配置管理:将 API 地址和密钥等敏感信息或易变配置,存储在环境变量或独立的配置文件中,而不是硬编码在代码里。

  • 错误处理:为网络请求增加更健壮的错误处理机制,例如设置合理的超时时间、实现重试逻辑,并能优雅地处理连接错误。