x-dr / chatgptProxyAPI

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

我想问下步骤1,利用Cloudflare Worker中转api.openai.com #24

Closed elinschen closed 1 year ago

elinschen commented 1 year ago

Worker ->test-> edit 左侧到底是贴:

export default { async fetch(request, env) { const url = new URL(request.url); url.host = "api.openai.com"; // openai is already set all CORS heasders return fetch(url, { headers: request.headers, method: request.method, body: request.body, redirect: 'follow' }); } }

还是:

const TELEGRAPH_URL = 'https://api.openai.com';

addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) })

async function handleRequest(request) { const url = new URL(request.url); const headers_Origin = request.headers.get("Access-Control-Allow-Origin") || "*" url.host = TELEGRAPH_URL.replace(/^https?:\/\//, ''); const modifiedRequest = new Request(url.toString(), { headers: request.headers, method: request.method, body: request.body, redirect: 'follow' }); const response = await fetch(modifiedRequest); const modifiedResponse = new Response(response.body, response); // 添加允许跨域访问的响应头 modifiedResponse.headers.set('Access-Control-Allow-Origin', headers_Origin); return modifiedResponse; }

列出 1 2 3 我以为是步骤,没想到是三种方法

x-dr commented 1 year ago

用这个,按最新文档来就行,我更新文档了

const TELEGRAPH_URL = 'https://api.openai.com';

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url);
  const headers_Origin = request.headers.get("Access-Control-Allow-Origin") || "*"
  url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '');
  const modifiedRequest = new Request(url.toString(), {
    headers: request.headers,
    method: request.method,
    body: request.body,
    redirect: 'follow'
  });
  const response = await fetch(modifiedRequest);
  const modifiedResponse = new Response(response.body, response);
  // 添加允许跨域访问的响应头
  modifiedResponse.headers.set('Access-Control-Allow-Origin', headers_Origin);
  return modifiedResponse;
}