Skip to content

Commit b9e7643

Browse files
committed
chore: reenable edge function
1 parent aded843 commit b9e7643

File tree

4 files changed

+74
-16
lines changed

4 files changed

+74
-16
lines changed

README.md

+14-14
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ API Key 由我自己免费提供,请不要滥用,不提供长期服务,请
2222

2323
- 开启连续对话:OpenAI 并没有提供 ChatGPT 那样的上下文功能,只能每次都把全部对话传过去,并且都要算 token,而且仍然有最大 4096 token 的限制。
2424

25-
- token 是怎么算的:OpenAI 有它自己的计算方法,大多数时候是 1个单词 1 token,一个汉字 2 token。所以说汉字很费钱,这还不是两倍的关系,毕竟英语是按单词算的,而不是字母
25+
- token 是怎么算的:OpenAI 有它自己的算法,大多数时候是一个单词 1 token,一个汉字 2 token。
2626
- Open AI Key 要怎么获得:注册 OpenAI 的帐号,然后 [生成 Key](https://platform.openai.com/account/api-keys) 就行了。现在注册就送 5 美元,可以用一两个月。闲注册麻烦,可以直接去买号,自行搜索。注意不要被骗,一般 5 元以下可以入手,看到有 120 美元的 key,这种属于是绑了虚拟信用卡,可以透支 120 美元,只能用一个月,而且容易封号。
2727
- 输入框右边的四个按钮:
2828
- 对话生成图片,下载。
@@ -48,7 +48,7 @@ API Key 由我自己免费提供,请不要滥用,不提供长期服务,请
4848

4949
如果你需要在本地开发和调试,有点麻烦:
5050

51-
1. 升级到 `node18`,要用到原生的 `fetch`
51+
1. 升级到 `node18`,要用到原生的 `fetch``readableStream`
5252
2. API 被墙了,自己想办法开代理,不然要报错。可以设置 OpenAI 的代理 API,也可以直接 `vercel deploy` 部署到 vercel 开发环境上调试。
5353
3. `pnpm i` 安装依赖。
5454
4. `pnpm dev` 启动项目。
@@ -60,21 +60,21 @@ API Key 由我自己免费提供,请不要滥用,不提供长期服务,请
6060
- [Netlify](https://www.netlify.com/)
6161
- [Railway](https://railway.app/)
6262

63-
直接导入即可,但是不建议使用除 Vercel 以外的部署方案。 除了比较慢以外,更重要的是只有 Vercel 支持设置 Edge Function 服务器的地区,其他平台会自动使用距离最近的服务器,有可能是 OpenAI 不支持的地区,导致封号
63+
直接导入即可,但是不建议使用除 Vercel 以外的部署方案。 除了比较慢以外,更重要的是只有 Vercel 支持设置 Edge Function 服务器的地区,其他平台会自动使用距离最近的服务器,有可能是 OpenAI 不支持的地区,从而导致封号
6464

6565
#### 环境变量
6666

67-
| 环境变量 | 说明 | 默认值 |
68-
| ---------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
69-
| `OPENAI_API_KEY` | OpenAI API Key,可以填写多个,用 \| 或者 换行 隔开,随机调用。最好是多填几个,API 有并发上的限制。如果用户不填自己的 key,那么就会使用你的 key。 ||
70-
| `DEFAULT_MESSAGE` | 默认提示信息 | - 由 [OpenAI API (gpt-3.5-turbo)](https://platform.openai.com/docs/guides/chat) 和 [Vercel](http://vercel.com/) 提供支持。<br/>- 由 [@ourongxing](https://github.com/ourongxing) 基于 [chatgpt-demo](https://github.com/ddiu8081/chatgpt-demo) 开发,查看 [源码](https://github.com/ourongxing/chatgpt-vercel),欢迎自部署。<br/>- 如果本项目对你有所帮助,可以给小猫 [买点零食](https://cdn.jsdelivr.net/gh/ourongxing/chatgpt-vercel/assets/reward.gif),但不接受任何付费功能请求。<br/>- 该预览页面域名由 [@AUDI_GUZZ](https://m.okjike.com/users/4af3cfb4-1291-4a8b-b210-f515c86934a9) 和 [@Airyland](https://m.okjike.com/users/C6C8DE3A-E89D-4978-9E7D-B2E167D835A9) 免费提供,API Key 由 [@AUDI_GUZZ](https://m.okjike.com/users/4af3cfb4-1291-4a8b-b210-f515c86934a9) 和 [@ourongxing](https://github.com/ourongxing) 免费提供,感谢。<br/>- [[Shift]] + [[Enter]] 换行。开头输入 [[/]] 或者 [[空格]] 搜索 Prompt 预设。点击输入框滚动到底部。 |
71-
| `DEFAULT_SETTING` | 默认设置 | {<br/> "continuousDialogue": true,<br/> "archiveSession": false,<br/> "openaiAPIKey": "",<br /> "openaiAPITemperature": 60,<br/> "systemRule": ""<br/> "password": ""<br />} |
72-
| `RESET_CONTINUOUS_DIALOGUE_OPTION` | 刷新时重置 `开启连续对话` 选项,在分享给很多人用的时候可以有效避免大量消耗。 | false |
73-
| `OPENAI_API_BASE_URL` | 本地开发时可以填写 OpenAI 的代理服务器,但是 Vercel 不需要。 | api.openai.com |
74-
| `PASSWORD` | 网站密码 ||
75-
| `MAX_INPUT_TOKENS` | 输入的 token 最大值,如果开启 `连续对话`,将计算之前的所有对话内容。OpenAI 限制 token 最大值为 4096,但这是输入和输出之和,所以可以将这个值设置为 3072, 留 1024 作为输出。如果不想被滥用,可以将这个值设置的再小一点。 | 3072 |
76-
| `SENDKEY` | 使用 [Server 酱](https://sct.ftqq.com/sendkey) 推送帐号余额以及可用状态到微信,如果需要自行获取。推送时间为早上 8 点和晚上 8 点,在 vercel.json 文件中修改。如果 key 太多,超过 20 个,有可能失败。 ||
77-
| `SENDCHANNEL` | [Server 酱](https://sct.ftqq.com/sendkey) 的推送通道,默认微信服务号。 | 9 |
67+
| 环境变量 | 说明 | 默认值 |
68+
|------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
69+
| `OPENAI_API_KEY` | OpenAI API Key,可以填写多个,用 \| 或者 换行 隔开,随机调用。最好是多填几个,API 有并发上的限制。如果用户不填自己的 key,那么就会使用你的 key。 | 无 |
70+
| `DEFAULT_MESSAGE` | 默认提示信息 | - 由 [OpenAI API (gpt-3.5-turbo)](https://platform.openai.com/docs/guides/chat) 和 [Vercel](http://vercel.com/) 提供支持。<br/>- 由 [@ourongxing](https://github.com/ourongxing) 基于 [chatgpt-demo](https://github.com/ddiu8081/chatgpt-demo) 开发,查看 [源码](https://github.com/ourongxing/chatgpt-vercel),欢迎自部署。<br/>- 如果本项目对你有所帮助,可以给小猫 [买点零食](https://cdn.jsdelivr.net/gh/ourongxing/chatgpt-vercel/assets/reward.gif),但不接受任何付费功能请求。<br/>- 该预览页面域名由 [@AUDI_GUZZ](https://m.okjike.com/users/4af3cfb4-1291-4a8b-b210-f515c86934a9) 和 [@Airyland](https://m.okjike.com/users/C6C8DE3A-E89D-4978-9E7D-B2E167D835A9) 免费提供,API Key 由 [@AUDI_GUZZ](https://m.okjike.com/users/4af3cfb4-1291-4a8b-b210-f515c86934a9) 和 [@ourongxing](https://github.com/ourongxing) 免费提供,感谢。<br/>- [[Shift]] + [[Enter]] 换行。开头输入 [[/]] 或者 [[空格]] 搜索 Prompt 预设。点击输入框滚动到底部。 |
71+
| `DEFAULT_SETTING` | 默认设置 | {<br/> "continuousDialogue": true,<br/> "archiveSession": false,<br/> "openaiAPIKey": "",<br /> "openaiAPITemperature": 60,<br/> "systemRule": ""<br/> "password": ""<br />} |
72+
| `RESET_CONTINUOUS_DIALOGUE_OPTION` | 刷新时重置 `开启连续对话` 选项,在分享给很多人用的时候可以有效避免大量消耗。 | false |
73+
| `OPENAI_API_BASE_URL` | 本地开发时可以填写 OpenAI 的代理服务器,但是 Vercel 不需要。 | api.openai.com |
74+
| `PASSWORD` | 网站密码 | 无 |
75+
| `MAX_INPUT_TOKENS` | 输入的 token 最大值,如果开启 `连续对话`,将计算之前的所有对话内容。OpenAI 限制 token 最大值为 4096,但这是输入和输出之和,所以可以将这个值设置为 3072, 留 1024 作为输出。如果不想被滥用,可以将这个值设置的再小一点。 | 3072 |
76+
| `SENDKEY` | 使用 [Server 酱](https://sct.ftqq.com/sendkey) 推送帐号余额以及可用状态到微信,如果需要自行获取。推送时间为早上 8 点和晚上 8 点,在 vercel.json 文件中修改。如果 key 太多,超过 20 个,有可能失败。 | 无 |
77+
| `SENDCHANNEL` | [Server 酱](https://sct.ftqq.com/sendkey) 的推送通道,默认微信服务号。 | 9 |
7878

7979
有两种设置方式
8080

astro.config.mjs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { defineConfig } from "astro/config"
2-
import vercel from "@astrojs/vercel/serverless"
2+
import vercel from "@astrojs/vercel/edge"
33
import node from "@astrojs/node"
4-
import netlify from "@astrojs/netlify/functions"
4+
import netlify from "@astrojs/netlify/edge-functions"
55
import cloudflare from "@astrojs/cloudflare"
66
import unocss from "unocss/astro"
77
import {

src/pages/api/cron.ts

+29
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,35 @@ import { localKey, genBillingsTable, baseURL, fetchBilling } from "."
44
const sendKey = import.meta.env.SENDKEY
55
const sendChannel = import.meta.env.SENDCHANNEL || "9"
66

7+
export const config = {
8+
runtime: "edge",
9+
/**
10+
* https://vercel.com/docs/concepts/edge-network/regions#region-list
11+
* disable hongkong
12+
* only for vercel
13+
*/
14+
regions: [
15+
"arn1",
16+
"bom1",
17+
"bru1",
18+
"cdg1",
19+
"cle1",
20+
"cpt1a",
21+
"dub1",
22+
"fra1",
23+
"gru1",
24+
"hnd1",
25+
"iad1",
26+
"icn1",
27+
"kix1",
28+
"lhr1",
29+
"pdx1",
30+
"sfo1",
31+
"sin1",
32+
"syd1"
33+
]
34+
}
35+
736
export const get: APIRoute = async () => {
837
try {
938
const keys = Array.from(new Set(splitKeys(localKey)))

0 commit comments

Comments
 (0)