x-dr / chatgptProxyAPI

🔥 使用cloudflare 搭建免费的 OpenAI api代理 ,解决网络无法访问问题。支持流式输出
https://chatai.451024.xyz
MIT License
2.95k stars 678 forks source link

我用美国vpn,postman访问成功,后来切换成香港的vpn访问失败,然后我在切换美国的vpn访问也失败。 #16

Closed plantSunCat closed 1 year ago

plantSunCat commented 1 year ago

我预计是 OpenAI 的服务在您所在的国家/地区不可用的 的原因, 有大佬知道如何解决吗

plantSunCat commented 1 year ago

我的访问流程是 postman 访问 cloudflare page 部署的静态网站, 然后 cloudflare page 部署的静态网站 再去访问openai, 我不知道该清除哪一个环节的缓存,好让他对我地区的记录信息清除掉

x-dr commented 1 year ago

请求响应显示什么?

plantSunCat commented 1 year ago

当时postman是显示请求错误,后来我换个网就好使了。现在居然不用挂梯子也好使了,莫名奇妙的

plantSunCat commented 1 year ago

我不知道,你们访问这个api接口时是需要挂梯子的吗?我以前需要,我现在居然不需要了,我的舍友用别的电脑不挂梯子也可以直接访问

x-dr commented 1 year ago

如果是用CloudFlare Pages部署的是可以直接访问的

plantSunCat commented 1 year ago

你回答好及时啊!是的,我发现了,挂不挂梯子都能访问,但是突然切换他不会突然转换过来。可能第一次请求失败,第二次第三次就好使了,我第一次失败了就误以为他不好使了 为了排查错误我还修改了js代码

export default { async fetch(request, env) { const url = new URL(request.url); url.host = "api.openai.com";

  const serialized = {
    method: request.method,
    headers: {},
    redirect: request.redirect
  };

  request.headers.forEach((value, name) => {
    serialized.headers[name] = value;
  });

  try {
    const response = await fetch(url, {
      headers: request.headers,
      method: request.method,
      body: request.body,
      redirect: 'follow'
    });

    const responseBodyJson = await response.json();
    let ret = {
      response: responseBodyJson,
      requset: serialized
    }

    return new Response(JSON.stringify(ret), response);
  } catch (error) {
    let ret = {
        error: error.message,
        requset: serialized
    }
    return new Response(JSON.stringify(ret), {status: 500});
  }
}

} 这个可以看到请求体,如果报错可以看出错误