refactor: remove protocol env vars

This commit is contained in:
Yidadaa 2023-04-15 02:50:04 +08:00
parent 47a2911ee2
commit 0a79df3670
3 changed files with 17 additions and 19 deletions

View File

@ -97,6 +97,7 @@ We recommend that you follow the steps below to re-deploy:
- Choose and deploy in Vercel again, [please see the detailed tutorial](./docs/vercel-cn.md). - Choose and deploy in Vercel again, [please see the detailed tutorial](./docs/vercel-cn.md).
### Enable Automatic Updates ### Enable Automatic Updates
After forking the project, due to the limitations imposed by Github, you need to manually enable Workflows and Upstream Sync Action on the Actions page of the forked project. Once enabled, automatic updates will be scheduled every hour: After forking the project, due to the limitations imposed by Github, you need to manually enable Workflows and Upstream Sync Action on the Actions page of the forked project. Once enabled, automatic updates will be scheduled every hour:
![Automatic Updates](./docs/images/enable-actions.jpg) ![Automatic Updates](./docs/images/enable-actions.jpg)
@ -104,6 +105,7 @@ After forking the project, due to the limitations imposed by Github, you need to
![Enable Automatic Updates](./docs/images/enable-actions-sync.jpg) ![Enable Automatic Updates](./docs/images/enable-actions-sync.jpg)
### Manually Updating Code ### Manually Updating Code
If you want to update instantly, you can check out the [Github documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) to learn how to synchronize a forked project with upstream code. If you want to update instantly, you can check out the [Github documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) to learn how to synchronize a forked project with upstream code.
You can star or watch this project or follow author to get release notifictions in time. You can star or watch this project or follow author to get release notifictions in time.
@ -134,18 +136,11 @@ Access passsword, separated by comma.
### `BASE_URL` (optional) ### `BASE_URL` (optional)
> Default: `api.openai.com` > Default: `https://api.openai.com`
> Examples: `http://your-openai-proxy.com`
Override openai api request base url. Override openai api request base url.
### `PROTOCOL` (optional)
> Default: `https`
> Values: `http` | `https`
Override openai api request protocol.
## Development ## Development
> [简体中文 > 如何进行二次开发](./README_CN.md#开发) > [简体中文 > 如何进行二次开发](./README_CN.md#开发)

View File

@ -43,6 +43,7 @@
- 在 Vercel 重新选择并部署,[请查看详细教程](./docs/vercel-cn.md#如何新建项目)。 - 在 Vercel 重新选择并部署,[请查看详细教程](./docs/vercel-cn.md#如何新建项目)。
### 打开自动更新 ### 打开自动更新
当你 fork 项目之后,由于 Github 的限制,需要手动去你 fork 后的项目的 Actions 页面启用 Workflows并启用 Upstream Sync Action启用之后即可开启每小时定时自动更新 当你 fork 项目之后,由于 Github 的限制,需要手动去你 fork 后的项目的 Actions 页面启用 Workflows并启用 Upstream Sync Action启用之后即可开启每小时定时自动更新
![自动更新](./docs/images/enable-actions.jpg) ![自动更新](./docs/images/enable-actions.jpg)
@ -85,17 +86,12 @@ OpanAI 密钥,你在 openai 账户页面申请的 api key。
### `BASE_URL` (可选) ### `BASE_URL` (可选)
> Default: `api.openai.com` > Default: `https://api.openai.com`
> Examples: `http://your-openai-proxy.com`
OpenAI 接口代理 URL如果你手动配置了 openai 接口代理,请填写此选项。 OpenAI 接口代理 URL如果你手动配置了 openai 接口代理,请填写此选项。
### `PROTOCOL` (可选) > 如果遇到 ssl 证书问题,请将 `BASE_URL` 的协议设置为 http。
> Default: `https`
> Values: `http` | `https`
OpenAI 代理接口协议,如果遇到 ssl 证书问题,请尝试通过此选项设置为 http。
## 开发 ## 开发

View File

@ -9,9 +9,16 @@ export async function requestOpenai(req: NextRequest) {
const apiKey = req.headers.get("token"); const apiKey = req.headers.get("token");
const openaiPath = req.headers.get("path"); const openaiPath = req.headers.get("path");
console.log("[Proxy] ", openaiPath); let baseUrl = BASE_URL;
return fetch(`${PROTOCOL}://${BASE_URL}/${openaiPath}`, { if (!baseUrl.startsWith("http")) {
baseUrl = `${PROTOCOL}://${baseUrl}`;
}
console.log("[Proxy] ", openaiPath);
console.log("[Base Url]", baseUrl);
return fetch(`${baseUrl}/${openaiPath}`, {
headers: { headers: {
"Content-Type": "application/json", "Content-Type": "application/json",
Authorization: `Bearer ${apiKey}`, Authorization: `Bearer ${apiKey}`,