Windows 通过代理服务器调用 openai 的 api

1. 查看网络是否联通

通过代理访问一个 HTTPS 网站来验证代理服务器是否工作正常

curl -x socks5h://127.0.0.1:1080 https://www.google.com

2. curl 访问openai的api

curl -x socks5h://127.0.0.1:1080 -s https://api.openai.com/v1/models/gpt-3.5-turbo  
-H "Authorization: Bearer $OPENAI_API_KEY"

结果:

{
   
  "id": "gpt-3.5-turbo",
  "object": "model",
  "created": 1677610602,
  "owned_by": "openai"
}

再次访问:

curl -k -x socks5h://127.0.0.1:1080 -X POST https://api.openai.com/v1/chat/completions ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer $OPENAI_API_KEY" ^
-d "{
   \"model\":\"gpt-3.5-turbo\",\"messages\":[{
   \"role\":\"user\",\"content\":\"Translate the following English text to French: 'Hello, world!'\"}],\"max_tokens\":100}"

其中:

  • -x http://proxy.example.com:8080:指定代理服务器及其端口。
  • -X POST:指定请求方法为 POST。
  • https://api.openai.com/v1/chat/completions:目标 API 的 URL。
  • -H “Content-Type: application/json”:指定请求头,表明发送的数据类型为 JSON。
  • -H “Authorization: Bearer YOUR_API_KEY”:指定请求头,包含你的 API 密钥。
  • -d “{“model”:“gpt-3.5-turbo”,“messages”:[{“role”:“user”,“content”:“Translate the following English text to French: ‘Hello, world!’”}],“max_tokens”:100}”:发送的数据,包含一个 JSON 对象。

特别注意:在 Windows 命令行中,双引号内的双引号需要用反斜杠转义。

3. python访问OpenAI的api

python 访问代码:

import openai
import os
import httpx
import time

# 设置你的 OpenAI API 密钥
openai.api_key = os.getenv("OPENAI_API_KEY")

# 设置代理服务器
proxy_url = 'socks5://127.0.0.1:1080'

# 创建一个 HTTPX 客户端并配置代理
client = httpx.Client(proxies={
   
    "http://": proxy_url,
    "https://": proxy_url,
})

# 自定义发送请求的函数
def list_models(max_retries=10, retry_delay=5):
    url = "https://api.openai.com/v1/models"
    headers = {
   
        "Authorization": f"Bearer {
     openai.api_key}"
    }

    for attempt in 
### 解决调用 OpenAI API 时无法访问的问题 当遇到调用 OpenAI API 出现无法访问的情况,可能由多种因素引起。以下是几种常见的解决方案: #### 1. 检查网络连接和代理设置 如果本地网络环境对外部某些地址有限制,则可能导致请求失败。可以尝试通过配置代理服务器来解决问题。 对于 Python 请求库 `requests` 来说,在发送 POST 请求给 OpenAI 的时候可以通过传递额外参数指定代理[^3]: ```python proxies = { 'http': 'http://your_proxy_address', 'https': 'https://your_proxy_address' } response = requests.post(url, headers=headers, json=data, proxies=proxies) ``` #### 2. 确认 API 密钥的有效性和权限范围 确保使用API Key 是有效的,并且具有足够的权限来进行所期望的操作。API Key 应该按照官方文档说明放置于 HTTP 头中的 Authorization 字段内作为 Bearer Token 使用[^2]。 #### 3. 核实 URL 和端点路径是否正确无误 错误的 API Endpoint 或者版本号不匹配也会造成请求不通畅。应该仔细核对官方提供的最新接口文档,确认正在使用的 URL 是否准确无误[^1]。 #### 4. 查看并处理返回的状态码与消息体 每次向 OpenAI 发送请求之后都会收到相应的响应状态码以及 JSON 形式的反馈信息。这些数据可以帮助定位具体发生了什么问题。例如,HTTP 4xx 类别的错误通常意味着客户端发出的请求存在问题;而 5xx 则更多指向服务端内部出现了异常情况。 针对上述提到的例子代码片段中,应当先打印整个 Response 对象以便查看完整的错误提示: ```python print(f"Status Code: {response.status_code}") if not response.ok: print("Error Message:", response.text) else: content = response.json()["choices"][0]["message"]["content"] print(content) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值