ChuanhuChatGPT


NameChuanhuChatGPT JSON
Version 3.2.5 PyPI version JSON
download
home_pagehttps://github.com/yanjlee/ChuanhuChatGPT
Summary为ChatGPT API提供了一个轻快好用的Web图形界面
upload_time2024-06-01 07:29:26
maintainerNone
docs_urlNone
authoryanjlee
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">川虎 ChatGPT 🐯 Chuanhu ChatGPT</h1>
<div align="center">
  <a href="https://github.com/GaiZhenBiao/ChuanhuChatGPT">
    <img src="https://user-images.githubusercontent.com/70903329/227087087-93b37d64-7dc3-4738-a518-c1cf05591c8a.png" alt="Logo" height="156">
  </a>

  <p align="center">
    <h3>为ChatGPT API提供了一个轻快好用的Web图形界面</h3>
    <p align="center">
      <a href="https://github.com/GaiZhenbiao/ChuanhuChatGPT/blob/main/LICENSE">
        <img alt="Tests Passing" src="https://img.shields.io/github/license/GaiZhenbiao/ChuanhuChatGPT" />
      </a>
      <a href="https://gradio.app/">
        <img alt="GitHub Contributors" src="https://img.shields.io/badge/Base-Gradio-fb7d1a?style=flat" />
      </a>
      <a href="https://github.com/GaiZhenBiao/ChuanhuChatGPT/graphs/contributors">
        <img alt="GitHub Contributors" src="https://img.shields.io/github/contributors/GaiZhenBiao/ChuanhuChatGPT" />
      </a>
      <a href="https://github.com/GaiZhenBiao/ChuanhuChatGPT/issues">
        <img alt="Issues" src="https://img.shields.io/github/issues/GaiZhenBiao/ChuanhuChatGPT?color=0088ff" />
      </a>
      <a href="https://github.com/GaiZhenBiao/ChuanhuChatGPT/pulls">
        <img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/GaiZhenBiao/ChuanhuChatGPT?color=0088ff" />
      </a>
      <p>
      	实时回复 / 无限对话 / 保存对话记录 / 预设Prompt集 / 联网搜索 / 根据文件回答
      	<br/>
      	渲染LaTex / 渲染表格 / 渲染代码 / 代码高亮 / 自定义api-URL / “小而美”的体验 / Ready for GPT-4
      </p>
      <a href="https://www.bilibili.com/video/BV1mo4y1r7eE"><strong>视频教程</strong></a>
        ·
      <a href="https://www.bilibili.com/video/BV1184y1w7aP"><strong>2.0介绍视频</strong></a>
	||
      <a href="https://huggingface.co/spaces/JohnSmith9982/ChuanhuChatGPT"><strong>在线体验</strong></a>
      	·
      <a href="https://huggingface.co/login?next=%2Fspaces%2FJohnSmith9982%2FChuanhuChatGPT%3Fduplicate%3Dtrue"><strong>一键部署</strong></a>
    </p>
    <p align="center">
      <img alt="Animation Demo" src="https://user-images.githubusercontent.com/51039745/226255695-6b17ff1f-ea8d-464f-b69b-a7b6b68fffe8.gif" />
    </p>
  </p>
</div>

## 目录
|[使用技巧](#使用技巧)|[安装方式](#安装方式)|[疑难杂症解决](#疑难杂症解决)| [给作者买可乐🥤](#捐款) |
|  ----  | ----  | ----  | --- |

## 使用技巧

- 使用System Prompt可以很有效地设定前提条件。
- 使用Prompt模板功能时,选择Prompt模板集合文件,然后从下拉菜单中选择想要的prompt。
- 如果回答不满意,可以使用`重新生成`按钮再试一次
- 对于长对话,可以使用`优化Tokens`按钮减少Tokens占用。
- 输入框支持换行,按`shift enter`即可。
- 部署到服务器:将程序最后一句改成`demo.launch(server_name="0.0.0.0", server_port=<你的端口号>)`。
- 获取公共链接:将程序最后一句改成`demo.launch(share=True)`。注意程序必须在运行,才能通过公共链接访问。
- 在Hugging Face上使用:建议在右上角 **复制Space** 再使用,这样App反应可能会快一点。


## 安装方式

### 直接在Hugging Face上部署

访问[本项目的Hugging Face页面](https://huggingface.co/spaces/JohnSmith9982/ChuanhuChatGPT),点击右上角的 **Duplicate Space** (复制空间),新建一个私人空间。然后就直接可以开始使用啦!放心,这是免费的。

您可以直接使用我的空间,这样能实时享受到最新功能。您也可以将项目复制为私人空间里使用,这样App反应可能会快一点。

 <img width="300" alt="image" src="https://user-images.githubusercontent.com/51039745/223447310-e098a1f2-0dcf-48d6-bcc5-49472dd7ca0d.png">

 Hugging Face的优点:免费,无需配置代理,部署容易(甚至不需要电脑)。

 Hugging Face的缺点:不支持某些界面样式。

### 手动本地部署

1. **下载本项目**

	```shell
	git clone https://github.com/GaiZhenbiao/ChuanhuChatGPT.git
	cd ChuanhuChatGPT
	```
	或者,点击网页右上角的 `Download ZIP`,下载并解压完成后进入文件夹,进入`终端`或`命令提示符`。

	如果你使用Windows,应该在文件夹里按住`shift`右键,选择“在终端中打开”。如果没有这个选项,选择“在此处打开Powershell窗口”。如果你使用macOS,可以在Finder底部的路径栏中右键当前文件夹,选择`服务-新建位于文件夹位置的终端标签页`。

	<img width="200" alt="downloadZIP" src="https://user-images.githubusercontent.com/23137268/223696317-b89d2c71-c74d-4c6d-8060-a21406cfb8c8.png">

2. **填写API密钥**

	以下2种方法任选其一:

	<details><summary>1. 在图形界面中填写你的API密钥</summary>

	这样设置的密钥会在页面刷新后被清除。

	<img width="760" alt="image" src="https://user-images.githubusercontent.com/51039745/222873756-3858bb82-30b9-49bc-9019-36e378ee624d.png"></details>

	<details><summary>2. 在文件中设定默认密钥、用户名密码以及更多设置(推荐)</summary>

	这样设置的密钥以及其他设置项可以在拉取项目更新之后保留。

	在项目文件夹中复制一份 `config_example.json`,并将其重命名为 `config.json`,在其中填入 API-Key、用户名密码(可选)、API host(可选)、代理地址(可选)等设置。用户名密码支持多用户。

	```
	{
		"openai_api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxx",
		"users": [
			["username-0", "password-0"],
			["username-1", "password-1"]
		], 
	}
	```

	* *原本在 `api_key.txt` 和 `auth.json` 中填写相关设置的方法仍然可用,但不再推荐。*

	</details>

3. **安装依赖**

	在终端中输入下面的命令,然后回车。

	```shell
	pip install -r requirements.txt
	```

	如果报错,试试

	```shell
	pip3 install -r requirements.txt
	```

	如果还是不行,请先[安装Python](https://www.runoob.com/python/python-install.html)。

	如果下载慢,建议[配置清华源](https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)(但清华镜像部分包版本可能落后于官方源),或者科学上网。

4. **启动**

	请使用下面的命令。

	```shell
	python ChuanhuChatbot.py
	```

	如果报错,试试

	```shell
	python3 ChuanhuChatbot.py
	```

	如果还是不行,请先[安装Python](https://www.runoob.com/python/python-install.html)。

<br />

如果一切顺利,现在,你应该已经可以在浏览器地址栏中输入 [`http://localhost:7860`](http://localhost:7860) 查看并使用 ChuanhuChatGPT 了。

**如果你在安装过程中碰到了问题,请先查看[疑难杂症解决](#疑难杂症解决)部分。**

### 自动更新

你可以通过本项目提供的脚本检测仓库是否有更新,如果有,则拉取最新脚本、安装依赖、重启服务器。此功能支持`Linux`和`macOS`系统。

如果你想运行,只需要运行`run_Linux.sh`或者`run_macOS.command`。如果你还想保持最新版本,只需要定时运行脚本。例如,在crontab中加入下面的内容:

```
*/20 * * * * /path/to/ChuanhuChatGPT/run_Linux.sh
```
就可以每20分钟检查一次脚本更新,如果有更新,则自动拉取并重启服务器。

### 使用Docker运行

<details><summary>如果觉得以上方法比较麻烦,我们提供了Docker镜像</summary>

#### 拉取镜像

```shell
docker pull tuchuanhuhuhu/chuanhuchatgpt:latest
```

#### 运行

```shell
docker run -d --name chatgpt \
	-e my_api_key="替换成API" \
	-e USERNAME="替换成用户名" \
	-e PASSWORD="替换成密码" \
	-v ~/chatGPThistory:/app/history \
	-p 7860:7860 \
	tuchuanhuhuhu/chuanhuchatgpt:latest
```

注:`USERNAME` 和 `PASSWORD` 两行可省略。若省略则不会启用认证。

#### 查看运行状态
```shell
docker logs chatgpt
```

#### 也可修改脚本后手动构建镜像

```shell
docker build -t chuanhuchatgpt:latest .
```
</details>


### 远程部署

<details><summary>如果需要在公网服务器部署本项目,请阅读该部分</summary>

#### 部署到公网服务器

将最后一句修改为

```
demo.queue().launch(server_name="0.0.0.0", server_port=7860, share=False) # 可自定义端口
```
#### 用账号密码保护页面

将最后一句修改为

```
demo.queue().launch(server_name="0.0.0.0", server_port=7860,auth=("在这里填写用户名", "在这里填写密码")) # 可设置用户名与密码
```

#### 配置 Nginx 反向代理

注意:配置反向代理不是必须的。如果需要使用域名,则需要配置 Nginx 反向代理。

又及:目前配置认证后,Nginx 必须配置 SSL,否则会出现 [Cookie 不匹配问题](https://github.com/GaiZhenbiao/ChuanhuChatGPT/issues/89)。

添加独立配置文件:
```nginx
server {
	listen 80;
	server_name /域名/;   # 请填入你设定的域名
	access_log off;
	error_log off;
	location / {
		proxy_pass http://127.0.0.1:7860;   # 注意端口号
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Upgrade $http_upgrade;		# Websocket配置
		proxy_set_header Connection $connection_upgrade;		#Websocket配置
		proxy_max_temp_file_size 0;
		client_max_body_size 10m;
		client_body_buffer_size 128k;
		proxy_connect_timeout 90;
		proxy_send_timeout 90;
		proxy_read_timeout 90;
		proxy_buffer_size 4k;
		proxy_buffers 4 32k;
		proxy_busy_buffers_size 64k;
		proxy_temp_file_write_size 64k;
	}
}
```

修改`nginx.conf`配置文件(通常在`/etc/nginx/nginx.conf`),向http部分添加如下配置:
(这一步是为了配置websocket连接,如之前配置过可忽略)
```nginx
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
  }
```

为了同时配置域名访问和身份认证,需要配置SSL的证书,可以参考[这篇博客](https://www.gzblog.tech/2020/12/25/how-to-config-hexo/#%E9%85%8D%E7%BD%AEHTTPS)一键配置


#### 全程使用Docker 为ChuanhuChatGPT 开启HTTPS

如果你的VPS 80端口与443端口没有被占用,则可以考虑如下的方法,只需要将你的域名提前绑定到你的VPS 的IP即可。此方法由[@iskoldt-X](https://github.com/iskoldt-X) 提供。

首先,运行[nginx-proxy](https://github.com/nginx-proxy/nginx-proxy)

```
docker run --detach \
    --name nginx-proxy \
    --publish 80:80 \
    --publish 443:443 \
    --volume certs:/etc/nginx/certs \
    --volume vhost:/etc/nginx/vhost.d \
    --volume html:/usr/share/nginx/html \
    --volume /var/run/docker.sock:/tmp/docker.sock:ro \
    nginxproxy/nginx-proxy
```
接着,运行[acme-companion](https://github.com/nginx-proxy/acme-companion),这是用来自动申请TLS 证书的容器

```
docker run --detach \
    --name nginx-proxy-acme \
    --volumes-from nginx-proxy \
    --volume /var/run/docker.sock:/var/run/docker.sock:ro \
    --volume acme:/etc/acme.sh \
    --env "DEFAULT_EMAIL=你的邮箱(用于申请TLS 证书)" \
    nginxproxy/acme-companion
```

最后,可以运行ChuanhuChatGPT
```
docker run -d --name chatgpt \
	-e my_api_key="你的API" \
	-e USERNAME="替换成用户名" \
	-e PASSWORD="替换成密码" \
	-v ~/chatGPThistory:/app/history \
	-e VIRTUAL_HOST=你的域名 \
	-e VIRTUAL_PORT=7860 \
	-e LETSENCRYPT_HOST=你的域名 \
	tuchuanhuhuhu/chuanhuchatgpt:latest
```
如此即可为ChuanhuChatGPT实现自动申请TLS证书并且开启HTTPS
</details>

---

## 疑难杂症解决

在遇到各种问题查阅相关信息前,您可以先尝试手动拉取本项目的最新更改并更新 gradio,然后重试。步骤为:

1. 点击网页上的 `Download ZIP` 下载最新代码,或
   ```shell
   git pull https://github.com/GaiZhenbiao/ChuanhuChatGPT.git main -f
   ```
2. 尝试再次安装依赖(可能本项目引入了新的依赖)
   ```
   pip install -r requirements.txt
   ```
3. 更新gradio
   ```
   pip install gradio --upgrade --force-reinstall
   ```

很多时候,这样就可以解决问题。

如果问题仍然存在,请查阅该页面:[常见问题](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki/常见问题)

该页面列出了**几乎所有**您可能遇到的各种问题,包括如何配置代理,以及遇到问题后您该采取的措施,**请务必认真阅读**。

## 了解更多

若需了解更多信息,请查看我们的 [wiki](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki):

- [想要做出贡献?](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki/贡献指南)
- [项目更新情况?](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki/更新日志)

## Starchart

[![Star History Chart](https://api.star-history.com/svg?repos=GaiZhenbiao/ChuanhuChatGPT&type=Date)](https://star-history.com/#GaiZhenbiao/ChuanhuChatGPT&Date)

## Contributors

<a href="https://github.com/GaiZhenbiao/ChuanhuChatGPT/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=GaiZhenbiao/ChuanhuChatGPT" />
</a>

## 捐款

🐯如果觉得这个软件对你有所帮助,欢迎请作者喝可乐、喝咖啡~

<img width="250" alt="image" src="https://user-images.githubusercontent.com/51039745/226920291-e8ec0b0a-400f-4c20-ac13-dafac0c3aeeb.JPG">

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yanjlee/ChuanhuChatGPT",
    "name": "ChuanhuChatGPT",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "yanjlee",
    "author_email": "yanjlee@163.com",
    "download_url": "https://files.pythonhosted.org/packages/08/e1/8d4c254ee5fb580f7baf658de3dd875f4ea7718de9e04869229b18c711f2/chuanhuchatgpt-3.2.5.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\u5ddd\u864e ChatGPT \ud83d\udc2f Chuanhu ChatGPT</h1>\r\n<div align=\"center\">\r\n  <a href=\"https://github.com/GaiZhenBiao/ChuanhuChatGPT\">\r\n    <img src=\"https://user-images.githubusercontent.com/70903329/227087087-93b37d64-7dc3-4738-a518-c1cf05591c8a.png\" alt=\"Logo\" height=\"156\">\r\n  </a>\r\n\r\n  <p align=\"center\">\r\n    <h3>\u4e3aChatGPT API\u63d0\u4f9b\u4e86\u4e00\u4e2a\u8f7b\u5feb\u597d\u7528\u7684Web\u56fe\u5f62\u754c\u9762</h3>\r\n    <p align=\"center\">\r\n      <a href=\"https://github.com/GaiZhenbiao/ChuanhuChatGPT/blob/main/LICENSE\">\r\n        <img alt=\"Tests Passing\" src=\"https://img.shields.io/github/license/GaiZhenbiao/ChuanhuChatGPT\" />\r\n      </a>\r\n      <a href=\"https://gradio.app/\">\r\n        <img alt=\"GitHub Contributors\" src=\"https://img.shields.io/badge/Base-Gradio-fb7d1a?style=flat\" />\r\n      </a>\r\n      <a href=\"https://github.com/GaiZhenBiao/ChuanhuChatGPT/graphs/contributors\">\r\n        <img alt=\"GitHub Contributors\" src=\"https://img.shields.io/github/contributors/GaiZhenBiao/ChuanhuChatGPT\" />\r\n      </a>\r\n      <a href=\"https://github.com/GaiZhenBiao/ChuanhuChatGPT/issues\">\r\n        <img alt=\"Issues\" src=\"https://img.shields.io/github/issues/GaiZhenBiao/ChuanhuChatGPT?color=0088ff\" />\r\n      </a>\r\n      <a href=\"https://github.com/GaiZhenBiao/ChuanhuChatGPT/pulls\">\r\n        <img alt=\"GitHub pull requests\" src=\"https://img.shields.io/github/issues-pr/GaiZhenBiao/ChuanhuChatGPT?color=0088ff\" />\r\n      </a>\r\n      <p>\r\n      \t\u5b9e\u65f6\u56de\u590d / \u65e0\u9650\u5bf9\u8bdd / \u4fdd\u5b58\u5bf9\u8bdd\u8bb0\u5f55 / \u9884\u8bbePrompt\u96c6 / \u8054\u7f51\u641c\u7d22 / \u6839\u636e\u6587\u4ef6\u56de\u7b54\r\n      \t<br/>\r\n      \t\u6e32\u67d3LaTex / \u6e32\u67d3\u8868\u683c / \u6e32\u67d3\u4ee3\u7801 / \u4ee3\u7801\u9ad8\u4eae / \u81ea\u5b9a\u4e49api-URL / \u201c\u5c0f\u800c\u7f8e\u201d\u7684\u4f53\u9a8c / Ready for GPT-4\r\n      </p>\r\n      <a href=\"https://www.bilibili.com/video/BV1mo4y1r7eE\"><strong>\u89c6\u9891\u6559\u7a0b</strong></a>\r\n        \u00b7\r\n      <a href=\"https://www.bilibili.com/video/BV1184y1w7aP\"><strong>2.0\u4ecb\u7ecd\u89c6\u9891</strong></a>\r\n\t||\r\n      <a href=\"https://huggingface.co/spaces/JohnSmith9982/ChuanhuChatGPT\"><strong>\u5728\u7ebf\u4f53\u9a8c</strong></a>\r\n      \t\u00b7\r\n      <a href=\"https://huggingface.co/login?next=%2Fspaces%2FJohnSmith9982%2FChuanhuChatGPT%3Fduplicate%3Dtrue\"><strong>\u4e00\u952e\u90e8\u7f72</strong></a>\r\n    </p>\r\n    <p align=\"center\">\r\n      <img alt=\"Animation Demo\" src=\"https://user-images.githubusercontent.com/51039745/226255695-6b17ff1f-ea8d-464f-b69b-a7b6b68fffe8.gif\" />\r\n    </p>\r\n  </p>\r\n</div>\r\n\r\n## \u76ee\u5f55\r\n|[\u4f7f\u7528\u6280\u5de7](#\u4f7f\u7528\u6280\u5de7)|[\u5b89\u88c5\u65b9\u5f0f](#\u5b89\u88c5\u65b9\u5f0f)|[\u7591\u96be\u6742\u75c7\u89e3\u51b3](#\u7591\u96be\u6742\u75c7\u89e3\u51b3)| [\u7ed9\u4f5c\u8005\u4e70\u53ef\u4e50\ud83e\udd64](#\u6350\u6b3e) |\r\n|  ----  | ----  | ----  | --- |\r\n\r\n## \u4f7f\u7528\u6280\u5de7\r\n\r\n- \u4f7f\u7528System Prompt\u53ef\u4ee5\u5f88\u6709\u6548\u5730\u8bbe\u5b9a\u524d\u63d0\u6761\u4ef6\u3002\r\n- \u4f7f\u7528Prompt\u6a21\u677f\u529f\u80fd\u65f6\uff0c\u9009\u62e9Prompt\u6a21\u677f\u96c6\u5408\u6587\u4ef6\uff0c\u7136\u540e\u4ece\u4e0b\u62c9\u83dc\u5355\u4e2d\u9009\u62e9\u60f3\u8981\u7684prompt\u3002\r\n- \u5982\u679c\u56de\u7b54\u4e0d\u6ee1\u610f\uff0c\u53ef\u4ee5\u4f7f\u7528`\u91cd\u65b0\u751f\u6210`\u6309\u94ae\u518d\u8bd5\u4e00\u6b21\r\n- \u5bf9\u4e8e\u957f\u5bf9\u8bdd\uff0c\u53ef\u4ee5\u4f7f\u7528`\u4f18\u5316Tokens`\u6309\u94ae\u51cf\u5c11Tokens\u5360\u7528\u3002\r\n- \u8f93\u5165\u6846\u652f\u6301\u6362\u884c\uff0c\u6309`shift enter`\u5373\u53ef\u3002\r\n- \u90e8\u7f72\u5230\u670d\u52a1\u5668\uff1a\u5c06\u7a0b\u5e8f\u6700\u540e\u4e00\u53e5\u6539\u6210`demo.launch(server_name=\"0.0.0.0\", server_port=<\u4f60\u7684\u7aef\u53e3\u53f7>)`\u3002\r\n- \u83b7\u53d6\u516c\u5171\u94fe\u63a5\uff1a\u5c06\u7a0b\u5e8f\u6700\u540e\u4e00\u53e5\u6539\u6210`demo.launch(share=True)`\u3002\u6ce8\u610f\u7a0b\u5e8f\u5fc5\u987b\u5728\u8fd0\u884c\uff0c\u624d\u80fd\u901a\u8fc7\u516c\u5171\u94fe\u63a5\u8bbf\u95ee\u3002\r\n- \u5728Hugging Face\u4e0a\u4f7f\u7528\uff1a\u5efa\u8bae\u5728\u53f3\u4e0a\u89d2 **\u590d\u5236Space** \u518d\u4f7f\u7528\uff0c\u8fd9\u6837App\u53cd\u5e94\u53ef\u80fd\u4f1a\u5feb\u4e00\u70b9\u3002\r\n\r\n\r\n## \u5b89\u88c5\u65b9\u5f0f\r\n\r\n### \u76f4\u63a5\u5728Hugging Face\u4e0a\u90e8\u7f72\r\n\r\n\u8bbf\u95ee[\u672c\u9879\u76ee\u7684Hugging Face\u9875\u9762](https://huggingface.co/spaces/JohnSmith9982/ChuanhuChatGPT)\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684 **Duplicate Space** \uff08\u590d\u5236\u7a7a\u95f4\uff09\uff0c\u65b0\u5efa\u4e00\u4e2a\u79c1\u4eba\u7a7a\u95f4\u3002\u7136\u540e\u5c31\u76f4\u63a5\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528\u5566\uff01\u653e\u5fc3\uff0c\u8fd9\u662f\u514d\u8d39\u7684\u3002\r\n\r\n\u60a8\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u6211\u7684\u7a7a\u95f4\uff0c\u8fd9\u6837\u80fd\u5b9e\u65f6\u4eab\u53d7\u5230\u6700\u65b0\u529f\u80fd\u3002\u60a8\u4e5f\u53ef\u4ee5\u5c06\u9879\u76ee\u590d\u5236\u4e3a\u79c1\u4eba\u7a7a\u95f4\u91cc\u4f7f\u7528\uff0c\u8fd9\u6837App\u53cd\u5e94\u53ef\u80fd\u4f1a\u5feb\u4e00\u70b9\u3002\r\n\r\n <img width=\"300\" alt=\"image\" src=\"https://user-images.githubusercontent.com/51039745/223447310-e098a1f2-0dcf-48d6-bcc5-49472dd7ca0d.png\">\r\n\r\n Hugging Face\u7684\u4f18\u70b9\uff1a\u514d\u8d39\uff0c\u65e0\u9700\u914d\u7f6e\u4ee3\u7406\uff0c\u90e8\u7f72\u5bb9\u6613\uff08\u751a\u81f3\u4e0d\u9700\u8981\u7535\u8111\uff09\u3002\r\n\r\n Hugging Face\u7684\u7f3a\u70b9\uff1a\u4e0d\u652f\u6301\u67d0\u4e9b\u754c\u9762\u6837\u5f0f\u3002\r\n\r\n### \u624b\u52a8\u672c\u5730\u90e8\u7f72\r\n\r\n1. **\u4e0b\u8f7d\u672c\u9879\u76ee**\r\n\r\n\t```shell\r\n\tgit clone https://github.com/GaiZhenbiao/ChuanhuChatGPT.git\r\n\tcd ChuanhuChatGPT\r\n\t```\r\n\t\u6216\u8005\uff0c\u70b9\u51fb\u7f51\u9875\u53f3\u4e0a\u89d2\u7684 `Download ZIP`\uff0c\u4e0b\u8f7d\u5e76\u89e3\u538b\u5b8c\u6210\u540e\u8fdb\u5165\u6587\u4ef6\u5939\uff0c\u8fdb\u5165`\u7ec8\u7aef`\u6216`\u547d\u4ee4\u63d0\u793a\u7b26`\u3002\r\n\r\n\t\u5982\u679c\u4f60\u4f7f\u7528Windows\uff0c\u5e94\u8be5\u5728\u6587\u4ef6\u5939\u91cc\u6309\u4f4f`shift`\u53f3\u952e\uff0c\u9009\u62e9\u201c\u5728\u7ec8\u7aef\u4e2d\u6253\u5f00\u201d\u3002\u5982\u679c\u6ca1\u6709\u8fd9\u4e2a\u9009\u9879\uff0c\u9009\u62e9\u201c\u5728\u6b64\u5904\u6253\u5f00Powershell\u7a97\u53e3\u201d\u3002\u5982\u679c\u4f60\u4f7f\u7528macOS\uff0c\u53ef\u4ee5\u5728Finder\u5e95\u90e8\u7684\u8def\u5f84\u680f\u4e2d\u53f3\u952e\u5f53\u524d\u6587\u4ef6\u5939\uff0c\u9009\u62e9`\u670d\u52a1-\u65b0\u5efa\u4f4d\u4e8e\u6587\u4ef6\u5939\u4f4d\u7f6e\u7684\u7ec8\u7aef\u6807\u7b7e\u9875`\u3002\r\n\r\n\t<img width=\"200\" alt=\"downloadZIP\" src=\"https://user-images.githubusercontent.com/23137268/223696317-b89d2c71-c74d-4c6d-8060-a21406cfb8c8.png\">\r\n\r\n2. **\u586b\u5199API\u5bc6\u94a5**\r\n\r\n\t\u4ee5\u4e0b2\u79cd\u65b9\u6cd5\u4efb\u9009\u5176\u4e00\uff1a\r\n\r\n\t<details><summary>1. \u5728\u56fe\u5f62\u754c\u9762\u4e2d\u586b\u5199\u4f60\u7684API\u5bc6\u94a5</summary>\r\n\r\n\t\u8fd9\u6837\u8bbe\u7f6e\u7684\u5bc6\u94a5\u4f1a\u5728\u9875\u9762\u5237\u65b0\u540e\u88ab\u6e05\u9664\u3002\r\n\r\n\t<img width=\"760\" alt=\"image\" src=\"https://user-images.githubusercontent.com/51039745/222873756-3858bb82-30b9-49bc-9019-36e378ee624d.png\"></details>\r\n\r\n\t<details><summary>2. \u5728\u6587\u4ef6\u4e2d\u8bbe\u5b9a\u9ed8\u8ba4\u5bc6\u94a5\u3001\u7528\u6237\u540d\u5bc6\u7801\u4ee5\u53ca\u66f4\u591a\u8bbe\u7f6e\uff08\u63a8\u8350\uff09</summary>\r\n\r\n\t\u8fd9\u6837\u8bbe\u7f6e\u7684\u5bc6\u94a5\u4ee5\u53ca\u5176\u4ed6\u8bbe\u7f6e\u9879\u53ef\u4ee5\u5728\u62c9\u53d6\u9879\u76ee\u66f4\u65b0\u4e4b\u540e\u4fdd\u7559\u3002\r\n\r\n\t\u5728\u9879\u76ee\u6587\u4ef6\u5939\u4e2d\u590d\u5236\u4e00\u4efd `config_example.json`\uff0c\u5e76\u5c06\u5176\u91cd\u547d\u540d\u4e3a `config.json`\uff0c\u5728\u5176\u4e2d\u586b\u5165 API-Key\u3001\u7528\u6237\u540d\u5bc6\u7801\uff08\u53ef\u9009\uff09\u3001API host\uff08\u53ef\u9009\uff09\u3001\u4ee3\u7406\u5730\u5740\uff08\u53ef\u9009\uff09\u7b49\u8bbe\u7f6e\u3002\u7528\u6237\u540d\u5bc6\u7801\u652f\u6301\u591a\u7528\u6237\u3002\r\n\r\n\t```\r\n\t{\r\n\t\t\"openai_api_key\": \"sk-xxxxxxxxxxxxxxxxxxxxxxxxx\",\r\n\t\t\"users\": [\r\n\t\t\t[\"username-0\", \"password-0\"],\r\n\t\t\t[\"username-1\", \"password-1\"]\r\n\t\t], \r\n\t}\r\n\t```\r\n\r\n\t* *\u539f\u672c\u5728 `api_key.txt` \u548c `auth.json` \u4e2d\u586b\u5199\u76f8\u5173\u8bbe\u7f6e\u7684\u65b9\u6cd5\u4ecd\u7136\u53ef\u7528\uff0c\u4f46\u4e0d\u518d\u63a8\u8350\u3002*\r\n\r\n\t</details>\r\n\r\n3. **\u5b89\u88c5\u4f9d\u8d56**\r\n\r\n\t\u5728\u7ec8\u7aef\u4e2d\u8f93\u5165\u4e0b\u9762\u7684\u547d\u4ee4\uff0c\u7136\u540e\u56de\u8f66\u3002\r\n\r\n\t```shell\r\n\tpip install -r requirements.txt\r\n\t```\r\n\r\n\t\u5982\u679c\u62a5\u9519\uff0c\u8bd5\u8bd5\r\n\r\n\t```shell\r\n\tpip3 install -r requirements.txt\r\n\t```\r\n\r\n\t\u5982\u679c\u8fd8\u662f\u4e0d\u884c\uff0c\u8bf7\u5148[\u5b89\u88c5Python](https://www.runoob.com/python/python-install.html)\u3002\r\n\r\n\t\u5982\u679c\u4e0b\u8f7d\u6162\uff0c\u5efa\u8bae[\u914d\u7f6e\u6e05\u534e\u6e90](https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)\uff08\u4f46\u6e05\u534e\u955c\u50cf\u90e8\u5206\u5305\u7248\u672c\u53ef\u80fd\u843d\u540e\u4e8e\u5b98\u65b9\u6e90\uff09\uff0c\u6216\u8005\u79d1\u5b66\u4e0a\u7f51\u3002\r\n\r\n4. **\u542f\u52a8**\r\n\r\n\t\u8bf7\u4f7f\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u3002\r\n\r\n\t```shell\r\n\tpython ChuanhuChatbot.py\r\n\t```\r\n\r\n\t\u5982\u679c\u62a5\u9519\uff0c\u8bd5\u8bd5\r\n\r\n\t```shell\r\n\tpython3 ChuanhuChatbot.py\r\n\t```\r\n\r\n\t\u5982\u679c\u8fd8\u662f\u4e0d\u884c\uff0c\u8bf7\u5148[\u5b89\u88c5Python](https://www.runoob.com/python/python-install.html)\u3002\r\n\r\n<br />\r\n\r\n\u5982\u679c\u4e00\u5207\u987a\u5229\uff0c\u73b0\u5728\uff0c\u4f60\u5e94\u8be5\u5df2\u7ecf\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u5730\u5740\u680f\u4e2d\u8f93\u5165 [`http://localhost:7860`](http://localhost:7860) \u67e5\u770b\u5e76\u4f7f\u7528 ChuanhuChatGPT \u4e86\u3002\r\n\r\n**\u5982\u679c\u4f60\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u78b0\u5230\u4e86\u95ee\u9898\uff0c\u8bf7\u5148\u67e5\u770b[\u7591\u96be\u6742\u75c7\u89e3\u51b3](#\u7591\u96be\u6742\u75c7\u89e3\u51b3)\u90e8\u5206\u3002**\r\n\r\n### \u81ea\u52a8\u66f4\u65b0\r\n\r\n\u4f60\u53ef\u4ee5\u901a\u8fc7\u672c\u9879\u76ee\u63d0\u4f9b\u7684\u811a\u672c\u68c0\u6d4b\u4ed3\u5e93\u662f\u5426\u6709\u66f4\u65b0\uff0c\u5982\u679c\u6709\uff0c\u5219\u62c9\u53d6\u6700\u65b0\u811a\u672c\u3001\u5b89\u88c5\u4f9d\u8d56\u3001\u91cd\u542f\u670d\u52a1\u5668\u3002\u6b64\u529f\u80fd\u652f\u6301`Linux`\u548c`macOS`\u7cfb\u7edf\u3002\r\n\r\n\u5982\u679c\u4f60\u60f3\u8fd0\u884c\uff0c\u53ea\u9700\u8981\u8fd0\u884c`run_Linux.sh`\u6216\u8005`run_macOS.command`\u3002\u5982\u679c\u4f60\u8fd8\u60f3\u4fdd\u6301\u6700\u65b0\u7248\u672c\uff0c\u53ea\u9700\u8981\u5b9a\u65f6\u8fd0\u884c\u811a\u672c\u3002\u4f8b\u5982\uff0c\u5728crontab\u4e2d\u52a0\u5165\u4e0b\u9762\u7684\u5185\u5bb9\uff1a\r\n\r\n```\r\n*/20 * * * * /path/to/ChuanhuChatGPT/run_Linux.sh\r\n```\r\n\u5c31\u53ef\u4ee5\u6bcf20\u5206\u949f\u68c0\u67e5\u4e00\u6b21\u811a\u672c\u66f4\u65b0\uff0c\u5982\u679c\u6709\u66f4\u65b0\uff0c\u5219\u81ea\u52a8\u62c9\u53d6\u5e76\u91cd\u542f\u670d\u52a1\u5668\u3002\r\n\r\n### \u4f7f\u7528Docker\u8fd0\u884c\r\n\r\n<details><summary>\u5982\u679c\u89c9\u5f97\u4ee5\u4e0a\u65b9\u6cd5\u6bd4\u8f83\u9ebb\u70e6\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86Docker\u955c\u50cf</summary>\r\n\r\n#### \u62c9\u53d6\u955c\u50cf\r\n\r\n```shell\r\ndocker pull tuchuanhuhuhu/chuanhuchatgpt:latest\r\n```\r\n\r\n#### \u8fd0\u884c\r\n\r\n```shell\r\ndocker run -d --name chatgpt \\\r\n\t-e my_api_key=\"\u66ff\u6362\u6210API\" \\\r\n\t-e USERNAME=\"\u66ff\u6362\u6210\u7528\u6237\u540d\" \\\r\n\t-e PASSWORD=\"\u66ff\u6362\u6210\u5bc6\u7801\" \\\r\n\t-v ~/chatGPThistory:/app/history \\\r\n\t-p 7860:7860 \\\r\n\ttuchuanhuhuhu/chuanhuchatgpt:latest\r\n```\r\n\r\n\u6ce8\uff1a`USERNAME` \u548c `PASSWORD` \u4e24\u884c\u53ef\u7701\u7565\u3002\u82e5\u7701\u7565\u5219\u4e0d\u4f1a\u542f\u7528\u8ba4\u8bc1\u3002\r\n\r\n#### \u67e5\u770b\u8fd0\u884c\u72b6\u6001\r\n```shell\r\ndocker logs chatgpt\r\n```\r\n\r\n#### \u4e5f\u53ef\u4fee\u6539\u811a\u672c\u540e\u624b\u52a8\u6784\u5efa\u955c\u50cf\r\n\r\n```shell\r\ndocker build -t chuanhuchatgpt:latest .\r\n```\r\n</details>\r\n\r\n\r\n### \u8fdc\u7a0b\u90e8\u7f72\r\n\r\n<details><summary>\u5982\u679c\u9700\u8981\u5728\u516c\u7f51\u670d\u52a1\u5668\u90e8\u7f72\u672c\u9879\u76ee\uff0c\u8bf7\u9605\u8bfb\u8be5\u90e8\u5206</summary>\r\n\r\n#### \u90e8\u7f72\u5230\u516c\u7f51\u670d\u52a1\u5668\r\n\r\n\u5c06\u6700\u540e\u4e00\u53e5\u4fee\u6539\u4e3a\r\n\r\n```\r\ndemo.queue().launch(server_name=\"0.0.0.0\", server_port=7860, share=False) # \u53ef\u81ea\u5b9a\u4e49\u7aef\u53e3\r\n```\r\n#### \u7528\u8d26\u53f7\u5bc6\u7801\u4fdd\u62a4\u9875\u9762\r\n\r\n\u5c06\u6700\u540e\u4e00\u53e5\u4fee\u6539\u4e3a\r\n\r\n```\r\ndemo.queue().launch(server_name=\"0.0.0.0\", server_port=7860,auth=(\"\u5728\u8fd9\u91cc\u586b\u5199\u7528\u6237\u540d\", \"\u5728\u8fd9\u91cc\u586b\u5199\u5bc6\u7801\")) # \u53ef\u8bbe\u7f6e\u7528\u6237\u540d\u4e0e\u5bc6\u7801\r\n```\r\n\r\n#### \u914d\u7f6e Nginx \u53cd\u5411\u4ee3\u7406\r\n\r\n\u6ce8\u610f\uff1a\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u4e0d\u662f\u5fc5\u987b\u7684\u3002\u5982\u679c\u9700\u8981\u4f7f\u7528\u57df\u540d\uff0c\u5219\u9700\u8981\u914d\u7f6e Nginx \u53cd\u5411\u4ee3\u7406\u3002\r\n\r\n\u53c8\u53ca\uff1a\u76ee\u524d\u914d\u7f6e\u8ba4\u8bc1\u540e\uff0cNginx \u5fc5\u987b\u914d\u7f6e SSL\uff0c\u5426\u5219\u4f1a\u51fa\u73b0 [Cookie \u4e0d\u5339\u914d\u95ee\u9898](https://github.com/GaiZhenbiao/ChuanhuChatGPT/issues/89)\u3002\r\n\r\n\u6dfb\u52a0\u72ec\u7acb\u914d\u7f6e\u6587\u4ef6\uff1a\r\n```nginx\r\nserver {\r\n\tlisten 80;\r\n\tserver_name /\u57df\u540d/;   # \u8bf7\u586b\u5165\u4f60\u8bbe\u5b9a\u7684\u57df\u540d\r\n\taccess_log off;\r\n\terror_log off;\r\n\tlocation / {\r\n\t\tproxy_pass http://127.0.0.1:7860;   # \u6ce8\u610f\u7aef\u53e3\u53f7\r\n\t\tproxy_redirect off;\r\n\t\tproxy_set_header Host $host;\r\n\t\tproxy_set_header X-Real-IP $remote_addr;\r\n\t\tproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n\t\tproxy_set_header Upgrade $http_upgrade;\t\t# Websocket\u914d\u7f6e\r\n\t\tproxy_set_header Connection $connection_upgrade;\t\t#Websocket\u914d\u7f6e\r\n\t\tproxy_max_temp_file_size 0;\r\n\t\tclient_max_body_size 10m;\r\n\t\tclient_body_buffer_size 128k;\r\n\t\tproxy_connect_timeout 90;\r\n\t\tproxy_send_timeout 90;\r\n\t\tproxy_read_timeout 90;\r\n\t\tproxy_buffer_size 4k;\r\n\t\tproxy_buffers 4 32k;\r\n\t\tproxy_busy_buffers_size 64k;\r\n\t\tproxy_temp_file_write_size 64k;\r\n\t}\r\n}\r\n```\r\n\r\n\u4fee\u6539`nginx.conf`\u914d\u7f6e\u6587\u4ef6\uff08\u901a\u5e38\u5728`/etc/nginx/nginx.conf`\uff09\uff0c\u5411http\u90e8\u5206\u6dfb\u52a0\u5982\u4e0b\u914d\u7f6e\uff1a\r\n\uff08\u8fd9\u4e00\u6b65\u662f\u4e3a\u4e86\u914d\u7f6ewebsocket\u8fde\u63a5\uff0c\u5982\u4e4b\u524d\u914d\u7f6e\u8fc7\u53ef\u5ffd\u7565\uff09\r\n```nginx\r\nmap $http_upgrade $connection_upgrade {\r\n  default upgrade;\r\n  ''      close;\r\n  }\r\n```\r\n\r\n\u4e3a\u4e86\u540c\u65f6\u914d\u7f6e\u57df\u540d\u8bbf\u95ee\u548c\u8eab\u4efd\u8ba4\u8bc1\uff0c\u9700\u8981\u914d\u7f6eSSL\u7684\u8bc1\u4e66\uff0c\u53ef\u4ee5\u53c2\u8003[\u8fd9\u7bc7\u535a\u5ba2](https://www.gzblog.tech/2020/12/25/how-to-config-hexo/#%E9%85%8D%E7%BD%AEHTTPS)\u4e00\u952e\u914d\u7f6e\r\n\r\n\r\n#### \u5168\u7a0b\u4f7f\u7528Docker \u4e3aChuanhuChatGPT \u5f00\u542fHTTPS\r\n\r\n\u5982\u679c\u4f60\u7684VPS 80\u7aef\u53e3\u4e0e443\u7aef\u53e3\u6ca1\u6709\u88ab\u5360\u7528\uff0c\u5219\u53ef\u4ee5\u8003\u8651\u5982\u4e0b\u7684\u65b9\u6cd5\uff0c\u53ea\u9700\u8981\u5c06\u4f60\u7684\u57df\u540d\u63d0\u524d\u7ed1\u5b9a\u5230\u4f60\u7684VPS \u7684IP\u5373\u53ef\u3002\u6b64\u65b9\u6cd5\u7531[@iskoldt-X](https://github.com/iskoldt-X) \u63d0\u4f9b\u3002\r\n\r\n\u9996\u5148\uff0c\u8fd0\u884c[nginx-proxy](https://github.com/nginx-proxy/nginx-proxy)\r\n\r\n```\r\ndocker run --detach \\\r\n    --name nginx-proxy \\\r\n    --publish 80:80 \\\r\n    --publish 443:443 \\\r\n    --volume certs:/etc/nginx/certs \\\r\n    --volume vhost:/etc/nginx/vhost.d \\\r\n    --volume html:/usr/share/nginx/html \\\r\n    --volume /var/run/docker.sock:/tmp/docker.sock:ro \\\r\n    nginxproxy/nginx-proxy\r\n```\r\n\u63a5\u7740\uff0c\u8fd0\u884c[acme-companion](https://github.com/nginx-proxy/acme-companion)\uff0c\u8fd9\u662f\u7528\u6765\u81ea\u52a8\u7533\u8bf7TLS \u8bc1\u4e66\u7684\u5bb9\u5668\r\n\r\n```\r\ndocker run --detach \\\r\n    --name nginx-proxy-acme \\\r\n    --volumes-from nginx-proxy \\\r\n    --volume /var/run/docker.sock:/var/run/docker.sock:ro \\\r\n    --volume acme:/etc/acme.sh \\\r\n    --env \"DEFAULT_EMAIL=\u4f60\u7684\u90ae\u7bb1\uff08\u7528\u4e8e\u7533\u8bf7TLS \u8bc1\u4e66\uff09\" \\\r\n    nginxproxy/acme-companion\r\n```\r\n\r\n\u6700\u540e\uff0c\u53ef\u4ee5\u8fd0\u884cChuanhuChatGPT\r\n```\r\ndocker run -d --name chatgpt \\\r\n\t-e my_api_key=\"\u4f60\u7684API\" \\\r\n\t-e USERNAME=\"\u66ff\u6362\u6210\u7528\u6237\u540d\" \\\r\n\t-e PASSWORD=\"\u66ff\u6362\u6210\u5bc6\u7801\" \\\r\n\t-v ~/chatGPThistory:/app/history \\\r\n\t-e VIRTUAL_HOST=\u4f60\u7684\u57df\u540d \\\r\n\t-e VIRTUAL_PORT=7860 \\\r\n\t-e LETSENCRYPT_HOST=\u4f60\u7684\u57df\u540d \\\r\n\ttuchuanhuhuhu/chuanhuchatgpt:latest\r\n```\r\n\u5982\u6b64\u5373\u53ef\u4e3aChuanhuChatGPT\u5b9e\u73b0\u81ea\u52a8\u7533\u8bf7TLS\u8bc1\u4e66\u5e76\u4e14\u5f00\u542fHTTPS\r\n</details>\r\n\r\n---\r\n\r\n## \u7591\u96be\u6742\u75c7\u89e3\u51b3\r\n\r\n\u5728\u9047\u5230\u5404\u79cd\u95ee\u9898\u67e5\u9605\u76f8\u5173\u4fe1\u606f\u524d\uff0c\u60a8\u53ef\u4ee5\u5148\u5c1d\u8bd5\u624b\u52a8\u62c9\u53d6\u672c\u9879\u76ee\u7684\u6700\u65b0\u66f4\u6539\u5e76\u66f4\u65b0 gradio\uff0c\u7136\u540e\u91cd\u8bd5\u3002\u6b65\u9aa4\u4e3a\uff1a\r\n\r\n1. \u70b9\u51fb\u7f51\u9875\u4e0a\u7684 `Download ZIP` \u4e0b\u8f7d\u6700\u65b0\u4ee3\u7801\uff0c\u6216\r\n   ```shell\r\n   git pull https://github.com/GaiZhenbiao/ChuanhuChatGPT.git main -f\r\n   ```\r\n2. \u5c1d\u8bd5\u518d\u6b21\u5b89\u88c5\u4f9d\u8d56\uff08\u53ef\u80fd\u672c\u9879\u76ee\u5f15\u5165\u4e86\u65b0\u7684\u4f9d\u8d56\uff09\r\n   ```\r\n   pip install -r requirements.txt\r\n   ```\r\n3. \u66f4\u65b0gradio\r\n   ```\r\n   pip install gradio --upgrade --force-reinstall\r\n   ```\r\n\r\n\u5f88\u591a\u65f6\u5019\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u89e3\u51b3\u95ee\u9898\u3002\r\n\r\n\u5982\u679c\u95ee\u9898\u4ecd\u7136\u5b58\u5728\uff0c\u8bf7\u67e5\u9605\u8be5\u9875\u9762\uff1a[\u5e38\u89c1\u95ee\u9898](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki/\u5e38\u89c1\u95ee\u9898)\r\n\r\n\u8be5\u9875\u9762\u5217\u51fa\u4e86**\u51e0\u4e4e\u6240\u6709**\u60a8\u53ef\u80fd\u9047\u5230\u7684\u5404\u79cd\u95ee\u9898\uff0c\u5305\u62ec\u5982\u4f55\u914d\u7f6e\u4ee3\u7406\uff0c\u4ee5\u53ca\u9047\u5230\u95ee\u9898\u540e\u60a8\u8be5\u91c7\u53d6\u7684\u63aa\u65bd\uff0c**\u8bf7\u52a1\u5fc5\u8ba4\u771f\u9605\u8bfb**\u3002\r\n\r\n## \u4e86\u89e3\u66f4\u591a\r\n\r\n\u82e5\u9700\u4e86\u89e3\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u67e5\u770b\u6211\u4eec\u7684 [wiki](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki)\uff1a\r\n\r\n- [\u60f3\u8981\u505a\u51fa\u8d21\u732e\uff1f](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki/\u8d21\u732e\u6307\u5357)\r\n- [\u9879\u76ee\u66f4\u65b0\u60c5\u51b5\uff1f](https://github.com/GaiZhenbiao/ChuanhuChatGPT/wiki/\u66f4\u65b0\u65e5\u5fd7)\r\n\r\n## Starchart\r\n\r\n[![Star History Chart](https://api.star-history.com/svg?repos=GaiZhenbiao/ChuanhuChatGPT&type=Date)](https://star-history.com/#GaiZhenbiao/ChuanhuChatGPT&Date)\r\n\r\n## Contributors\r\n\r\n<a href=\"https://github.com/GaiZhenbiao/ChuanhuChatGPT/graphs/contributors\">\r\n  <img src=\"https://contrib.rocks/image?repo=GaiZhenbiao/ChuanhuChatGPT\" />\r\n</a>\r\n\r\n## \u6350\u6b3e\r\n\r\n\ud83d\udc2f\u5982\u679c\u89c9\u5f97\u8fd9\u4e2a\u8f6f\u4ef6\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\uff0c\u6b22\u8fce\u8bf7\u4f5c\u8005\u559d\u53ef\u4e50\u3001\u559d\u5496\u5561\uff5e\r\n\r\n<img width=\"250\" alt=\"image\" src=\"https://user-images.githubusercontent.com/51039745/226920291-e8ec0b0a-400f-4c20-ac13-dafac0c3aeeb.JPG\">\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u4e3aChatGPT API\u63d0\u4f9b\u4e86\u4e00\u4e2a\u8f7b\u5feb\u597d\u7528\u7684Web\u56fe\u5f62\u754c\u9762",
    "version": "3.2.5",
    "project_urls": {
        "Homepage": "https://github.com/yanjlee/ChuanhuChatGPT"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aded4b62811ef8eb41edeb3bf6d78032a17eab7728bcf16caff332a8b3fa4385",
                "md5": "37d5afdae62da33c43ca72f2ed2c14c1",
                "sha256": "ebfeca08eb1d199b81350215bb7c10eb546cacd0df283fdfdc822c6c01622692"
            },
            "downloads": -1,
            "filename": "ChuanhuChatGPT-3.2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "37d5afdae62da33c43ca72f2ed2c14c1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 19595,
            "upload_time": "2024-06-01T07:29:24",
            "upload_time_iso_8601": "2024-06-01T07:29:24.314400Z",
            "url": "https://files.pythonhosted.org/packages/ad/ed/4b62811ef8eb41edeb3bf6d78032a17eab7728bcf16caff332a8b3fa4385/ChuanhuChatGPT-3.2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "08e18d4c254ee5fb580f7baf658de3dd875f4ea7718de9e04869229b18c711f2",
                "md5": "c78a1f0951ff33b687527990fa6ecf52",
                "sha256": "bd6f1698419ff6891b140307828841f27841a6a20218ce9d806b613e9e520288"
            },
            "downloads": -1,
            "filename": "chuanhuchatgpt-3.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "c78a1f0951ff33b687527990fa6ecf52",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 27809,
            "upload_time": "2024-06-01T07:29:26",
            "upload_time_iso_8601": "2024-06-01T07:29:26.089999Z",
            "url": "https://files.pythonhosted.org/packages/08/e1/8d4c254ee5fb580f7baf658de3dd875f4ea7718de9e04869229b18c711f2/chuanhuchatgpt-3.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-01 07:29:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yanjlee",
    "github_project": "ChuanhuChatGPT",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "chuanhuchatgpt"
}
        
Elapsed time: 4.38524s