is_kevin_cen 2024-05-17 14:06 采纳率: 0%
浏览 190

Mac 打开 Tun Mode,终端 curl 方式可以调通 OpenAI API,但是 VSCode 代码无法调通报错: APITimeoutError: Request timed out.

想问一下大家这个问题该怎么解决呀:

Mac 已经打开了 Tun Mode ,且节点确定没有问题。终端使用 curl 的方式调用 OpenAI API 可以正常返回结果。但是 VSCode 中写的 ipynb 文件,用以下的形式报错:APITimeoutError: Request timed out.

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {
        "role": "user",
        "content": "Say this is a test",
    }
  ]
)

求大家帮忙看看,感谢!🙏

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-17 14:06
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题

    您希望解决的问题是:在Mac上使用VSCode时,通过Python代码调用OpenAI API出现APITimeoutError: Request timed out.错误,尽管在终端使用curl可以成功调用API。

    问题出现原因

    1. 网络配置问题:尽管Mac的Tun Mode已开启,可能VSCode的网络配置与终端不同,导致网络请求超时。
    2. 代理设置问题:如果VSCode配置了代理,可能会影响到网络请求。
    3. 代码执行环境问题:VSCode中的Python环境可能与终端的Python环境不同,导致调用API时出现问题。
    4. 请求超时设置:VSCode中的请求可能没有正确设置超时时间或超时时间太短。

    问题解决方案

    1. 检查VSCode网络设置:确保VSCode使用的网络设置与终端一致。
    2. 检查代理设置:如果VSCode配置了代理,尝试暂时禁用代理设置,看是否能够解决问题。
    3. 统一Python环境:确保VSCode中使用的Python环境与终端一致。
    4. 调整超时设置:在代码中增加超时时间设置,或者检查VSCode的设置中是否有相关的超时配置。

    提供代码

    以下是修改后的代码示例,增加了请求超时时间的设置:

    import requests
    import json
    
    url = "https://api.openai.com/v1/chat/completions"
    headers = {
        "Authorization": "Bearer YOUR_API_KEY",  # 替换为您的API密钥
        "Content-Type": "application/json"
    }
    data = {
        "model": "gpt-3.5-turbo",
        "messages": [
            {
                "role": "user",
                "content": "Say this is a test"
            }
        ],
        "max_tokens": 16,  # 可以设置一个合适的最大令牌数
    }
    
    response = requests.post(url, headers=headers, json=data, timeout=60)  # 设置超时时间为60秒
    
    if response.status_code == 200:
        completion = response.json()
        print(completion)
    else:
        print(f"Error: {response.status_code}, {response.text}")
    

    代码运行方式

    1. 确保您已经安装了requests库,如果没有,可以通过pip install requests安装。
    2. YOUR_API_KEY替换为您的OpenAI API密钥。
    3. 在VSCode中运行上述Python脚本。

    代码预期运行结果

    如果代码成功执行,您将看到类似以下的输出:

    {
      "id": "...",
      "object": "text_completion",
      "created": 1652750187,
      "model": "...",
      "choices": [
        {
          "text": "This is a test",
          "index": 0,
          "logprobs": null,
          "finish_reason": "stop"
        }
      ],
      "usage": {
        "prompt_tokens": 5,
        "completion_tokens": 2,
        "total_tokens": 7
      }
    }
    

    推荐相关链接

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月17日