From abb7341b795e3c82b079618a6bb82af88bd79059 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Sun, 26 Mar 2023 16:15:13 +0800 Subject: [PATCH 1/7] Update README.md --- README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1062ea05b1..abf8fee697 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
-> 声明:此项目只发布于 Github,基于 MIT 协议,免费且作为开源学习使用。并且不会有任何形式的卖号、付费服务、讨论群、讨论组等行为。谨防受骗。 +> 声明:此项目是基于Chanzhaoyu/chatgpt-web的修改版本,加入的GPTForCN的api验证,使用仅需配置.env 填入你在GPTforCN的appid和secret即可使用。你也可以按照原版的openai api或网页token的形式使用。 ![cover](./docs/c1.png) ![cover2](./docs/c2.png) @@ -109,7 +109,19 @@ npm install pnpm -g ``` ### 填写密钥 -获取 `Openai Api Key` 或 `accessToken` 并填写本地环境变量 [跳转](#介绍) +1、GPTFORCN方式:填写 .env文件的 appid和secret + +# /.env 文件 + +# Put gptforcn endpoint there 这里填写的是测试节点,实际以页面提供为准 +VITE_APP_API_BASE_URL=https://node-test.gptforcn.com/ +# Gptforcn appid +VITE_APP_API_ID= +# Gptforcn app secret +VITE_APP_API_SECRET= + + +2、OpenAI方式: 获取 `Openai Api Key` 或 `accessToken` 并填写本地环境变量 [跳转](#介绍) ``` # service/.env 文件 From ba133407f92b28d1fee4a0accb216fe0f3681436 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Sun, 26 Mar 2023 16:15:39 +0800 Subject: [PATCH 2/7] Update .env --- .env | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.env b/.env index 9a7a52f27f..1d18549dd5 100644 --- a/.env +++ b/.env @@ -1,7 +1,12 @@ # Glob API URL VITE_GLOB_API_URL=/api -VITE_APP_API_BASE_URL=http://127.0.0.1:3002/ +# Put gptforcn endpoint there +VITE_APP_API_BASE_URL=https://node-test.gptforcn.com/ +# Gptforcn appid +VITE_APP_API_ID= +# Gptforcn app secret +VITE_APP_API_SECRET= # Whether long replies are supported, which may result in higher API fees VITE_GLOB_OPEN_LONG_REPLY=false From 4135efdd84e4f0a663196f487e70cd3360e0f0d1 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Sun, 26 Mar 2023 16:16:07 +0800 Subject: [PATCH 3/7] Update .env --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 1d18549dd5..c9c101b3c8 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ VITE_GLOB_API_URL=/api # Put gptforcn endpoint there -VITE_APP_API_BASE_URL=https://node-test.gptforcn.com/ +VITE_APP_API_BASE_URL= # Gptforcn appid VITE_APP_API_ID= # Gptforcn app secret From 40af80410bbf48faa585a56e4e5b92831a5e3d60 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Sun, 26 Mar 2023 16:16:42 +0800 Subject: [PATCH 4/7] Update index.ts --- src/api/index.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/api/index.ts b/src/api/index.ts index 9f61fc531b..1c4e704a60 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,3 +1,4 @@ +import { SHA256 } from 'crypto-js' import type { AxiosProgressEvent, GenericAbortSignal } from 'axios' import { post } from '@/utils/request' import { useSettingStore } from '@/store' @@ -28,18 +29,28 @@ export function fetchChatAPIProcess( onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void }, ) { const settingStore = useSettingStore() - + const dataParams = { prompt: params.prompt, options: params.options, systemMessage: settingStore.systemMessage } + // Sign GPTFORCN + const json = JSON.stringify(dataParams) + const timenow = Date.now() + const unSignStr = `appId=${import.meta.env.VITE_APP_API_ID}&appSecret=${import.meta.env.VITE_APP_API_SECRET}&data=${json}×tamp=${timenow}` return post({ url: '/chat-process', - data: { prompt: params.prompt, options: params.options, systemMessage: settingStore.systemMessage }, + data: dataParams, + headers: { appId: import.meta.env.VITE_APP_API_ID, timestamp: timenow, sign: SHA256(unSignStr).toString() }, signal: params.signal, onDownloadProgress: params.onDownloadProgress, }) } export function fetchSession() { + // Sign GPTFORCN + const timenow = Date.now() + const unSignStr = `appId=${import.meta.env.VITE_APP_API_ID}&appSecret=${import.meta.env.VITE_APP_API_SECRET}&data=×tamp=${timenow}` + return post({ url: '/session', + headers: { appId: import.meta.env.VITE_APP_API_ID, timestamp: timenow, sign: SHA256(unSignStr).toString() }, }) } From 89baef64a5ffd999cd079b452387c8603e71ac14 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Sun, 26 Mar 2023 16:18:23 +0800 Subject: [PATCH 5/7] Update env.d.ts --- src/typings/env.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/typings/env.d.ts b/src/typings/env.d.ts index 04d5999b19..4ba5715350 100644 --- a/src/typings/env.d.ts +++ b/src/typings/env.d.ts @@ -5,4 +5,6 @@ interface ImportMetaEnv { readonly VITE_APP_API_BASE_URL: string; readonly VITE_GLOB_OPEN_LONG_REPLY: string; readonly VITE_GLOB_APP_PWA: string; + readonly VITE_APP_API_ID: string; + readonly VITE_APP_API_SECRET: string; } From ad92193ccfdbdfbaf117a0fd7b539bb5414cef43 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Wed, 29 Mar 2023 18:15:27 +0800 Subject: [PATCH 6/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index abf8fee697..10dc163c5b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
-> 声明:此项目是基于Chanzhaoyu/chatgpt-web的修改版本,加入的GPTForCN的api验证,使用仅需配置.env 填入你在GPTforCN的appid和secret即可使用。你也可以按照原版的openai api或网页token的形式使用。 +> 声明:此项目是基于Chanzhaoyu/chatgpt-web的修改版本,加入的GptForCN的api验证,使用仅需配置.env 填入你在GPTforCN的appid和secret即可使用。你也可以按照原版的openai api或网页token的形式使用。 ![cover](./docs/c1.png) ![cover2](./docs/c2.png) From b137318b4aa0f03ec0a973cdcca4aa466b36f6e4 Mon Sep 17 00:00:00 2001 From: GptForCN <128587157+GptForCN@users.noreply.github.com> Date: Wed, 29 Mar 2023 18:19:25 +0800 Subject: [PATCH 7/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 10dc163c5b..0a479ad517 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
-> 声明:此项目是基于Chanzhaoyu/chatgpt-web的修改版本,加入的GptForCN的api验证,使用仅需配置.env 填入你在GPTforCN的appid和secret即可使用。你也可以按照原版的openai api或网页token的形式使用。 +> 声明:此项目是基于Chanzhaoyu/chatgpt-web的修改版本,加入的GptForCN(免翻墙和注册gpt)的api验证,使用仅需配置.env 填入你在GPTforCN的appid和secret即可使用。你也可以按照原版的openai api或网页token的形式使用。 ![cover](./docs/c1.png) ![cover2](./docs/c2.png)