1
0
This repository has been archived on 2024-02-27. You can view files and clone it, but cannot push or open issues or pull requests.
chatgpt-to-api/docs/GUIDE_CN.md
2023-07-11 13:59:00 +08:00

126 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 中文指导手册
本中文手册由 [@BlueSkyXN](https://github.com/BlueSkyXN) 编写
[中文文档Chinese Docs](../README_CN.md)
[英文文档English Docs](../README.md)
# 基本配置
有关docker的指导请阅读 [DOCKER中文手册](Docker_CN.md)
有关Token的指导请阅读 [TOKEN中文手册](TOKEN_CN.md)
## Docker-Compose配置
```
version: '3'
services:
app:
image: acheong08/chatgpt-to-api
container_name: chatgpttoapi
restart: unless-stopped
ports:
- '10080:10080'
environment:
SERVER_HOST: 0.0.0.0
SERVER_PORT: 10080
ADMIN_PASSWORD: TotallySecurePassword
API_REVERSE_PROXY: https://ai.fakeopen.com/api/conversation
PUID: user-X
```
- ports 左边是外部端口右边是内部端口内部端口要和下面环境变量的Server port一致。
- Server host/port监听配置默认0000监听某一端口。
- ADMIN_PASSWORD管理员密码HTTP请求时候需要验证。
- API_REVERSE_PROXY:接口的反向代理,具体介绍请看下文的后端代理介绍部分。
- PUID: user-X请看[中文文档Chinese Docs](../README_CN.md) 的介绍
其他可以不需要设置包括预设的AccessToken和代理表、HTTP/S5代理。
# 后端代理
目前使用PUID+官网URL的方式不是很可靠建议使用第三方程序或者网站绕过这个WAF限制。
## 公共代理
温馨提醒由于OpenAI用的强力CloudFlareWAF所以7层转发是无效的不过4层在浏览器还是可以的
目前根据几个大项目的介绍,我找到了这个介绍页 https://github.com/transitive-bullshit/chatgpt-api#reverse-proxy
最后得知主要是这两个
| Reverse Proxy URL | Author | Rate Limits | Last Checked |
|-----------------------------------------------|--------------|--------------------------------|--------------|
| https://ai.fakeopen.com/api/conversation | @pengzhile | 5 req / 10 seconds by IP | 4/18/2023 |
| https://api.pawan.krd/backend-api/conversation | @PawanOsman | 50 req / 15 seconds (~3 r/s) | 3/23/2023 |
## 自建方案
我经过测试发现Pandora的API不行原因可能是发起对话后的返回值会一次性返回一堆信息导致提取失败。不过我亲测GO-ChatGPT-API是可以的。
GO-ChatGPT-API项目 https://github.com/linweiyuan/go-chatgpt-api
我是注释掉 ##- GO_CHATGPT_API_PROXY= 的环境变量、换个外部端口后用Docker-Compose启动即可。然后不需要对这个代理接口做其他操作包括登录。
搭建好之后最好测试下基本调用能不能用,下面是一个示例,你需要根据实际情况修改。
```
curl http://127.0.0.1:8080/chatgpt/backend-api/conversation \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
}'
```
如果得到缺少认证的提示比如 ```{"errorMessage":"Missing accessToken."}``` 就说明已经正常跑了
# 用例
## 基本提问
```
curl http://127.0.0.1:10080/v1/chat/completions \
-d '{
"model": "text-davinci-002-render-sha",
"messages": [{"role": "user", "content": "你是什么模型是GPT3.5吗"}]
}'
```
参考回复如下
```
{"id":"chatcmpl-QXlha2FBbmROaXhpZUFyZUF3XXXXXX","object":"chat.completion","created":0,"model":"gpt-3.5-turbo-0301","usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0},"choices":[{"index":0,"message":{"role":"assistant","content":"是的我是一个基于GPT-3.5架构的语言模型被称为ChatGPT。我可以回答各种问题提供信息和进行对话。尽管我会尽力提供准确和有用的回答但请记住我并不是完美的有时候可能会出现错误或者误导性的答案。"},"finish_reason":null}]}
```
请注意无论什么模型提问都只会显示为模型是GPT3.5T-0301。你在网页版看不到消息记录可能是删除了Chat不支持并发提问你需要token轮询。
## 提交Token
通过文件提交
```
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: TotallySecurePassword" \
-d "@/root/access_tokens.json" \
http://127.0.0.1:10080/admin/tokens
```
直接提交
```
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: TotallySecurePassword" \
-d '["eyJhbXXX"]' \
http://127.0.0.1:10080/admin/tokens
```
要清理Token直接停用删除Docker容器后重新构建运行容器即可