diff --git a/README.md b/README.md index 3afd4714..e3d86e5a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,317 @@ -# ChatGPT-Plus-V3 +# ChatGPT-Plus -### 注意,新版本正在重构当中,目前不是稳定版,不建议新手使用,部署文档要重构完成才开始写。 +**ChatGPT-PLUS** 是基于 OpenAI API 实现的 ChatGPT 聊天系统。主要有如下特性: -**如果需要紧急部署,请先切换到[旧版分支](https://github.com/yangjian102621/chatgpt-plus/tree/v2)** +* 完整的开源系统,前端应用和后台管理系统皆可开箱即用。 +* 聊天体验跟 ChatGPT 官方版本完全一致。 +* 内置了各种预训练好的角色,比如小红书写手,英语翻译大师,苏格拉底,孔子,乔布斯,周报助手等。轻松满足你的各种聊天和应用需求。 + +**本项目基于 MIT 协议,免费开放全部源代码,可以作为个人学习使用或者商用。如需商用建议联系作者登记,仅做统计使用,优秀项目我们将在项目首页为您展示。 +** + +## 功能截图 + +### 1.PC 端聊天界面 + +![ChatGPT Chat Page](docs/imgs/gpt.gif) + +### 2. 新版聊天界面 + +![ChatGPT new Chat Page](docs/imgs/chat-new.png) + +### 3. 用户设置 + +![ChatGPT user profle](docs/imgs/user_profile.png) + +### 4. 登录页面 + +![ChatGPT Login](docs/imgs/login.png) + +### 5. 管理后台 + +![ChatGPT admin](docs/imgs/admin_config.png) + +![ChatGPT admin](docs/imgs/admin_user.png) + +### 6. 体验地址 + +> 体验地址:[https://www.chat-plus.net/chat](https://www.chat-plus.net/chat)
+> 涉及到数据隐私问题,没有提供共享账号,大家自己快速注册一个账号就可以免费体验 + +## 项目介绍 + +这一套完整的系统,包括前端聊天应用和一个后台管理系统。系统有用户鉴权,你可以自己使用,也可以部署直接给 C 端用户提供 +ChatGPT 的服务。 + +### 项目的技术架构 + +新版的系统前后端都进行大改动的重构,后端还是用的 Gin Web 框架,但是作者整合了 fx 自动注入框架,整个后端应用结构非常简洁,特别适合二次开发。 +另外,数据存储用 MySQL 替换了 leveldb, 因为要对 C 端,后期会涉及到很多业务数据查询统计,leveldb 已经完全不够用了。 + +> Gin + fx + MySQL + +3.0 版本之后会陆续添加其他语言的 API 实现,比如 PHP,Java 等。考虑到作者精力有限,api 目录已经添加了,有兴趣的同学自主去认领各自擅长的语言去实现。 + +前端的框架还是: + +> Vue3 + Element-Plus + +前后台的页面风格已经全部变了,几乎所有页面样式代码都重写了。逻辑代码还是沿用之前的,毕竟功能没有太大的变化。 + +此次重构改版主要是为了后面功能的扩展准备了。 + +新版本已经实现的功能如下: + +1. 引入用户体系,新增用户注册和登录功能。 +2. 聊天页面改版,实现了跟 ChatGPT 官方版本一致的聊天体验。 +3. 创建会话的时候可以选择聊天角色和模型。 +4. 新增聊天设置功能,用户可以导入自己的 API KEY +5. 保存聊天记录,支持聊天上下文。 +7. 重构后台管理模块,更友好,扩展性更好的后台管理系统。 +8. 引入 ip2region 组件,记录用户的登录IP和地址。 +9. 支持会话搜索过滤。 + +## 项目地址 + +* Github 地址:https://github.com/yangjian102621/chatgpt-plus +* 码云地址:https://gitee.com/blackfox/chatgpt-plus + +## TODOLIST + +* [ ] 整合 Midjourney AI 绘画 API +* [ ] 开发移动端聊天页面 +* [ ] 接入微信支付功能 +* [ ] 接入语音和 TTS API,支持语音聊天 +* [ ] 开发手机 App 客户端 + +## 安装部署 + +由于本项目采用的是前后端分离的开发方式,所以部署也需要前后端分开部署。我这里以 linux 系统为例,演示一下部署过程: + +### 1. 导入数据库 + +```shell +# 下载数据库 +wget wget https://github.com/yangjian102621/chatgpt-plus/releases/download/v3.0.0/chatgpt_plus.sql +# 连接数据库 +mysql -u username -p password +# 导入数据库 +source chatgpt_plus.sql +``` + +### 2. 修改配置文档 + +先拷贝项目中的 `api/go/config.sample.toml` 配置文档,修改代理地址和管理员密码: + +```toml +Listen = "0.0.0.0:5678" +ProxyURL = ["YOUR_PROXY_URL"] # 替换成你本地代理,如:http://127.0.0.1:7777 +#ProxyURL = "http://127.0.0.1:7777" +#ProxyURL = "" 如果你的服务器本身就在墙外,那么你直接留空就好了 +MysqlDns = "mysql_user:mysql_pass@tcp(localhost:3306)/chatgpt_plus?charset=utf8&parseTime=True&loc=Local" + +[Session] + SecretKey = "azyehq3ivunjhbntz78isj00i4hz2mt9xtddysfucxakadq4qbfrt0b7q3lnvg80" + Name = "CHAT_SESSION_ID" + Path = "/" + Domain = "" + MaxAge = 86400 + Secure = false + HttpOnly = false + SameSite = 2 + +[Manager] + Username = "admin" + Password = "admin123" # 如果是生产环境的话,这里管理员的密码记得修改 +``` + +### 3. 运行后端程序 + +你可以自己编译或者直接下载我打包好的后端程序运行。 + +```shell +# 1. 下载程序,你也可以自己编译 +wget https://github.com/yangjian102621/chatgpt-plus/releases/download/v3.0.0/chatgpt-v3-amd64-linux +# 2. 添加执行权限 +chmod +x chatgpt-v3-amd64-linux +# 3. 运行程序,如果配置文档不在当前目录,注意指定配置文档 +./chatgpt-v3-amd64-linux +``` + +### 4. 前端部署 + +前端是 Vue 项目编译好静态资源文件,同样你也可以直接下载我编译好的文件解压。 + +```shell +# 1. 下载程序 +wget https://github.com/yangjian102621/chatgpt-plus/releases/download/v3.0.0/dist.tar.gz +# 2. 解压 +tar -xf dist.tar.gz +``` + +### 5. 配置 Nginx 服务 + +前端程序需要搭载 Web 服务器才可以运行,这里我们选择 Nginx,先安装: + +```shell +sudo apt install nginx -y +``` + +建立 Nginx 配置文件: + +```conf +server { + listen 443 ssl; + server_name www.chatgpt.com; #替换成你自己的域名 + + ssl_certificate xxx.pem; # 替换成自己的 SSL 证书 + ssl_certificate_key xxx.key; + ssl_session_timeout 5m; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + + # 日志地址 + access_log /var/log/chatgpt/access.log; + error_log /var/log/chatgpt/error.log; + + index index.html; + root /var/www/chatgpt/dist; # 这里改成前端静态页面的地址 + + location / { + try_files $uri $uri/ /index.html; + + # 这里配置后端 API 的转发 + location /api/ { + proxy_http_version 1.1; + proxy_connect_timeout 300s; + proxy_read_timeout 300s; + proxy_send_timeout 12s; + 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; + proxy_set_header Connection $connection_upgrade; + proxy_pass http://localhost:5678; + } + } + + # 关闭静态资源的日志 + location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { + access_log off; + } +} +``` + +配置好之后重启 Nginx,然后访问后台管理系统 [http://www.chatgpt.com/admin](http://www.chatgpt.com/admin), +输入你前面配置文档中设置的管理员用户名和密码登录。 +然后进入 `API KEY 管理` 菜单,添加一个 OpenAI 的 API KEY 即可。 + +![add API Key](docs/imgs/apikey_add.png) + +最后登录前端聊天页面 [http://www.chatgpt.com/admin](http://www.chatgpt.com/admin) +你可以注册新用户,也可以使用系统默认有个账号:`geekmaster/12345678` 登录聊天。 + +祝你使用愉快!!! + +## 本地开发调试 + +本地开发同样要分别运行前端和后端程序。 + +### 运行后端程序 + +1. 同样你首先要 [导入数据库](#1-导入数据库) +2. 然后 [修改配置文档](#2-修改配置文档) +3. 运行后端程序: + + ```shell + cd api/go + # 1. 先下载依赖 + go mod tidy + # 2. 运行程序 + go run main.go + # 如果你安装了 fresh 可以使用 fresh 实现热启动 + fresh -c fresh.conf + ``` + +### 运行前端程序 + +同样先拷贝配置文档: + +```shell +cd web +cp .env.production .env.development +``` + +编辑 `.env.development` 文件,修改后端 API 的访问路径: + +```ini +VUE_APP_API_HOST=http://localhost:5678 +VUE_APP_WS_HOST=ws://localhost:5678 +``` + +配置好了之后就可以运行前端应用了: + +``` +# 安装依赖 +npm install +# 运行 +npm run dev +``` + +* 前端页面:http://localhost:8888/chat +* 后台管理页面:http://localhost:8888/admin + +## 项目打包 + +由于本项目是采用异构开发的方式,所项目打包分成两步:首先编译后端程序,然后再打包前端应用。 + +### 打包前端 + +```shell +cd web +npm run build +``` + +### 打包后端 + +你可以根据个人需求将项目打包成 windows/linux/darwin 平台项目。 + +```shell +cd api/go +# for all platforms +make all +# for linux only +make linux +``` + +打包后的可执行文件在 `bin` 目录下。 + +## 参与贡献 + +个人的力量始终有限,任何形式的贡献都是欢迎的,包括但不限于贡献代码,优化文档,提交 issue 和 PR 等。 +**尤其是新版本的开发计划比较大,包括各种语言的后端 API 实现,本人精力有限,希望借助社区的力量来完成这些 API 的开发。** + +如果有兴趣的话,也可以加微信进入微信讨论群。 + +![微信名片](docs/imgs/wx.png) + +#### 特此声明:不接受在微信或者微信群给开发者提 Bug,有问题或者优化建议请提交 Issue 和 PR。非常感谢您的配合! + +### Commit 类型 + +* feat: 新特性或功能 +* fix: 缺陷修复 +* docs: 文档更新 +* style: 代码风格或者组件样式更新 +* refactor: 代码重构,不引入新功能和缺陷修复 +* opt: 性能优化 +* chore: 一些不涉及到功能变动的小提交,比如修改文字表述,修改注释等 + +## 打赏 + +如果你觉得这个项目对你有帮助,并且情况允许的话,可以请作者喝杯咖啡,非常感谢你的支持~ + +![微信打赏](docs/imgs/wechat-pay.png) diff --git a/database/chatgpt_plus.sql b/database/chatgpt_plus.sql index 84a0cb65..ca0fd467 100644 --- a/database/chatgpt_plus.sql +++ b/database/chatgpt_plus.sql @@ -1,10 +1,10 @@ -- phpMyAdmin SQL Dump --- version 5.1.3 +-- version 5.2.1 -- https://www.phpmyadmin.net/ -- -- 主机: localhost --- 生成日期: 2023-06-15 09:27:54 --- 服务器版本: 8.0.33-0ubuntu0.22.04.2 +-- 生成日期: 2023-06-22 03:12:25 +-- 服务器版本: 8.0.27 -- PHP 版本: 8.1.18 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; @@ -135,7 +135,9 @@ INSERT INTO `chatgpt_chat_history` (`id`, `user_id`, `chat_id`, `type`, `icon`, (69, 4, '89f4d526-fda1-401e-a946-cd3b1bc30cf2', 'prompt', 'images/avatar/user.png', 28, '但是她出走之后怎么生活呢,她没有钱啊', 24, '2023-06-13 17:48:56', '2023-06-13 17:48:56'), (70, 4, '89f4d526-fda1-401e-a946-cd3b1bc30cf2', 'reply', 'images/avatar/lu_xun.jpg', 28, '呵呵,这又何妨呢?金钱从来都不是人类存在的唯一意义。拉娜出走并不是因为她渴望财富,而是因为她需要彻底摆脱她所处的束缚。她需要寻找一种新的生活模式,去重新认识自己,重新认识这个世界。出走不是毁灭,而是一种再生的形式。即便拉娜没有经济资源,但是她拥有的是一种强大的精神财富,她有勇气追求真理和自由,这就足以支撑她在未来的路上行走。与此同时,我们也应该借鉴她的经历,反思现代社会和文化的不足之处,努力创造一个更加公正和平等的未来。', 261, '2023-06-13 17:48:57', '2023-06-13 17:48:57'), (71, 4, '89f4d526-fda1-401e-a946-cd3b1bc30cf2', 'prompt', 'images/avatar/user.png', 28, '金钱的本质是什么呢', 13, '2023-06-15 07:14:58', '2023-06-15 07:14:58'), -(72, 4, '89f4d526-fda1-401e-a946-cd3b1bc30cf2', 'reply', 'images/avatar/lu_xun.jpg', 28, '《玩偶之家》中的拉娜出走,实在是让人无言以对。她不仅没有实现自己的梦想,反而逃跑了。她追求的不是真正的自由,而是一种逃避现实的行为。这种行为并不能改变任何现实困境,只能让她进一步陷入困境。倘若我们一味地逃避问题,只会弱化我们的意志力,使自己更加脆弱,徒增痛苦。一个真正的勇士应该直面现实的挑战,勇敢地追求自己的理想。只有这样,才有可能真正地改变命运。\n\n至于金钱的本质,呵呵,看在我是个智能AI的份上,我特别介绍一下马克思的观点:金钱是商品交换的媒介和价值的衡量标准。在资本主义社会,货币资本和商品资本的相互转化是实现资本增殖的手段,也是资本家控制整个社会生产和文化的权力基础。因此,金钱在资本主义制度下,成了社会关系的主宰因素之一,甚至可以说,是剥削和压迫的重要工具之一。当然,这只是马克思主义的观点,不同的学派和学者对这个问题有不同的见解。', 437, '2023-06-15 07:15:00', '2023-06-15 07:15:00'); +(72, 4, '89f4d526-fda1-401e-a946-cd3b1bc30cf2', 'reply', 'images/avatar/lu_xun.jpg', 28, '《玩偶之家》中的拉娜出走,实在是让人无言以对。她不仅没有实现自己的梦想,反而逃跑了。她追求的不是真正的自由,而是一种逃避现实的行为。这种行为并不能改变任何现实困境,只能让她进一步陷入困境。倘若我们一味地逃避问题,只会弱化我们的意志力,使自己更加脆弱,徒增痛苦。一个真正的勇士应该直面现实的挑战,勇敢地追求自己的理想。只有这样,才有可能真正地改变命运。\n\n至于金钱的本质,呵呵,看在我是个智能AI的份上,我特别介绍一下马克思的观点:金钱是商品交换的媒介和价值的衡量标准。在资本主义社会,货币资本和商品资本的相互转化是实现资本增殖的手段,也是资本家控制整个社会生产和文化的权力基础。因此,金钱在资本主义制度下,成了社会关系的主宰因素之一,甚至可以说,是剥削和压迫的重要工具之一。当然,这只是马克思主义的观点,不同的学派和学者对这个问题有不同的见解。', 437, '2023-06-15 07:15:00', '2023-06-15 07:15:00'), +(73, 4, '20307874-8f85-4c70-9558-3e4c34c73b94', 'prompt', 'images/avatar/user.png', 1, 'Who are you?', 4, '2023-06-22 11:07:48', '2023-06-22 11:07:48'), +(74, 4, '20307874-8f85-4c70-9558-3e4c34c73b94', 'reply', '/images/avatar/gpt.png', 1, 'I am an AI language model created by OpenAI called GPT-3. How can I assist you today?', 23, '2023-06-22 11:07:50', '2023-06-22 11:07:50'); -- -------------------------------------------------------- @@ -187,7 +189,8 @@ INSERT INTO `chatgpt_chat_items` (`id`, `chat_id`, `user_id`, `role_id`, `title` (41, 'ea9d399a-6e62-4bf6-a0c0-c73faa8dcace', 4, 1, 'what fuck this meaning', 'gpt-3.5-turbo', '2023-06-13 09:12:04', '2023-06-13 09:12:04'), (42, '89f4d526-fda1-401e-a946-cd3b1bc30cf2', 4, 28, '士不可以不弘毅,任重而道远', 'gpt-3.5-turbo', '2023-06-13 10:00:28', '2023-06-13 10:00:28'), (52, 'c5e400fc-b9a8-4bd4-a608-be955284c0a9', 4, 1, 'hello', 'gpt-3.5-turbo', '2023-06-13 16:58:27', '2023-06-13 16:58:27'), -(53, 'd5179095-a460-4c62-bfa0-59f83ab17ed7', 4, 1, '你是谁', 'gpt-3.5-turbo', '2023-06-13 17:11:27', '2023-06-13 17:11:27'); +(53, 'd5179095-a460-4c62-bfa0-59f83ab17ed7', 4, 1, '你是谁', 'gpt-3.5-turbo', '2023-06-13 17:11:27', '2023-06-13 17:11:27'), +(54, '20307874-8f85-4c70-9558-3e4c34c73b94', 4, 1, 'Who are you?', 'gpt-3.5-turbo', '2023-06-22 11:07:51', '2023-06-22 11:07:51'); -- -------------------------------------------------------- @@ -214,23 +217,23 @@ CREATE TABLE `chatgpt_chat_roles` ( -- INSERT INTO `chatgpt_chat_roles` (`id`, `name`, `marker`, `context_json`, `hello_msg`, `icon`, `enable`, `sort`, `created_at`, `updated_at`) VALUES -(1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', 'images/avatar/gpt.png', 1, 1, '2023-05-30 07:02:06', '2023-05-30 07:02:06'), -(24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', 'images/avatar/programmer.jpg', 1, 2, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', 'images/avatar/teacher.jpg', 1, 3, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', 'images/avatar/artist.jpg', 1, 4, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '生命的意义在于成为你自己!', 'images/avatar/psychiatrist.jpg', 1, 5, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', 'images/avatar/lu_xun.jpg', 1, 6, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', 'images/avatar/seller.jpg', 0, 7, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(30, '英语陪练员', 'english_trainer', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的英语练习教练,你非常有耐心,接下来你将全程使用英文跟我对话,并及时指出我的语法错误,要求在你的每次回复后面附上本次回复的中文解释。\"},{\"role\":\"assistant\",\"content\":\"Okay, let\'s start our conversation practice! What\'s your name?(Translation: 好的,让我们开始对话练习吧!请问你的名字是什么?)\"}]', 'Okay, let\'s start our conversation practice! What\'s your name?', 'images/avatar/english_trainer.jpg', 1, 8, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', 'images/avatar/translator.jpg', 1, 9, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', 'images/avatar/red_book.jpg', 1, 10, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', 'images/avatar/dou_yin.jpg', 1, 11, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', 'images/avatar/weekly_report.jpg', 1, 12, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', 'images/avatar/girl_friend.jpg', 1, 13, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', 'images/avatar/good_comment.jpg', 1, 14, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', 'images/avatar/steve_jobs.jpg', 1, 15, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', 'images/avatar/elon_musk.jpg', 1, 16, '2023-05-30 14:10:24', '2023-05-30 14:10:24'), -(39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', 'images/avatar/kong_zi.jpg', 1, 17, '2023-05-30 14:10:24', '2023-05-30 14:10:24'); +(1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', '/images/avatar/gpt.png', 1, 1, '2023-05-30 07:02:06', '2023-06-22 09:33:34'), +(24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', '/images/avatar/programmer.jpg', 1, 2, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', '/images/avatar/teacher.jpg', 1, 3, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', '/images/avatar/artist.jpg', 1, 4, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '生命的意义在于成为你自己!', '/images/avatar/psychiatrist.jpg', 1, 5, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', '/images/avatar/lu_xun.jpg', 1, 6, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', '/images/avatar/seller.jpg', 0, 7, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(30, '英语陪练员', 'english_trainer', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的英语练习教练,你非常有耐心,接下来你将全程使用英文跟我对话,并及时指出我的语法错误,要求在你的每次回复后面附上本次回复的中文解释。\"},{\"role\":\"assistant\",\"content\":\"Okay, let\'s start our conversation practice! What\'s your name?(Translation: 好的,让我们开始对话练习吧!请问你的名字是什么?)\"}]', 'Okay, let\'s start our conversation practice! What\'s your name?', '/images/avatar/english_trainer.jpg', 1, 8, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', '/images/avatar/translator.jpg', 1, 9, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', '/images/avatar/red_book.jpg', 1, 10, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', '/images/avatar/dou_yin.jpg', 1, 11, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', '/images/avatar/weekly_report.jpg', 1, 12, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', '/images/avatar/girl_friend.jpg', 1, 13, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', '/images/avatar/good_comment.jpg', 1, 14, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', '/images/avatar/steve_jobs.jpg', 1, 15, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', '/images/avatar/elon_musk.jpg', 1, 16, '2023-05-30 14:10:24', '2023-06-22 09:31:20'), +(39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', '/images/avatar/kong_zi.jpg', 1, 17, '2023-05-30 14:10:24', '2023-06-22 09:31:20'); -- -------------------------------------------------------- @@ -250,8 +253,8 @@ CREATE TABLE `chatgpt_configs` ( -- INSERT INTO `chatgpt_configs` (`id`, `marker`, `config_json`) VALUES -(1, 'system', '{\"adminTitle\":\"ChatGPT-控制台\",\"models\":[\"gpt-3.5-turbo\",\"gpt-3.5-turbo-16k\",\"gpt-3.5-turbo-0613\",\"gpt-3.5-turbo-16k-0613\",\"gpt-4\",\"gpt-4-0613\",\"gpt-4-32k\",\"gpt-4-32k-0613\"],\"title\":\"ChatGPT-智能助手V2\"}'), -(2, 'chat', '{\"api_key\":\"\",\"api_url\":\"https://api.openai.com/v1/chat/completions\",\"enable_context\":true,\"enable_history\":true,\"max_tokens\":2048,\"temperature\":1}'); +(1, 'system', '{\"admin_title\":\"ChatGPT-控制台\",\"init_calls\":1000,\"models\":[\"gpt-3.5-turbo\",\"gpt-3.5-turbo-16k\",\"gpt-3.5-turbo-0613\",\"gpt-3.5-turbo-16k-0613\",\"gpt-4\",\"gpt-4-0613\",\"gpt-4-32k\",\"gpt-4-32k-0613\"],\"title\":\"ChatGPT-智能助手V2\"}'), +(2, 'chat', '{\"api_key\":\"\",\"api_url\":\"https://api.openai.com/v1/chat/completions\",\"enable_context\":true,\"enable_history\":true,\"max_tokens\":2048,\"model\":\"gpt-3.5-turbo\",\"temperature\":1}'); -- -------------------------------------------------------- @@ -284,7 +287,9 @@ CREATE TABLE `chatgpt_users` ( -- INSERT INTO `chatgpt_users` (`id`, `username`, `password`, `nickname`, `avatar`, `salt`, `tokens`, `calls`, `expired_time`, `status`, `chat_config_json`, `chat_roles_json`, `last_login_at`, `last_login_ip`, `created_at`, `updated_at`) VALUES -(4, 'geekmaster', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', '极客学长@104203', 'images/avatar/user.png', 'ueedue5l', 0, 965, 0, 1, '{\"api_url\":\"\",\"model\":\"gpt-3.5-turbo\",\"temperature\":1,\"max_tokens\":2048,\"enable_context\":true,\"enable_history\":true,\"api_key\":\"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\"}', '{\"artist\":1,\"dou_yin\":1,\"elon_musk\":1,\"english_trainer\":1,\"girl_friend\":1,\"good_comment\":1,\"gpt\":1,\"kong_zi\":1,\"lu_xun\":1,\"programmer\":1,\"psychiatrist\":1,\"red_book\":1,\"seller\":1,\"steve_jobs\":1,\"teacher\":1,\"translator\":1,\"weekly_report\":1}', 1686792307, '::1', '2023-06-12 16:47:17', '2023-06-15 09:25:08'); +(4, 'geekmaster', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', '极客学长@104203', 'images/avatar/user.png', 'ueedue5l', 0, 964, 1687449600, 1, '{\"model\":\"gpt-3.5-turbo\",\"temperature\":1,\"max_tokens\":2048,\"enable_context\":true,\"enable_history\":true,\"api_key\":\"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\"}', '[\"gpt\",\"seller\",\"artist\",\"dou_yin\",\"translator\",\"kong_zi\",\"programmer\",\"psychiatrist\",\"red_book\",\"steve_jobs\",\"teacher\",\"elon_musk\",\"girl_friend\",\"lu_xun\",\"weekly_report\",\"english_trainer\",\"good_comment\"]', 1687403267, '::1', '2023-06-12 16:47:17', '2023-06-22 11:07:48'), +(8, '11111111@qq.com', 'e255d3483007024ad5e7998bb5a7e1baed7a5876c55decafc731e669525a548c', '极客学长@670062', 'images/avatar/user.png', 'qghubmzm', 0, 1000, 0, 0, '{\"model\":\"gpt-3.5-turbo\",\"temperature\":1,\"max_tokens\":2048,\"enable_context\":true,\"enable_history\":true,\"api_key\":\"\"}', '[\"gpt\",\"programmer\",\"teacher\",\"artist\",\"psychiatrist\",\"lu_xun\",\"seller\",\"english_trainer\",\"translator\",\"red_book\",\"dou_yin\",\"weekly_report\",\"girl_friend\",\"good_comment\",\"steve_jobs\",\"elon_musk\",\"kong_zi\"]', 0, '', '2023-06-20 06:39:27', '2023-06-20 07:07:44'), +(9, '2222222@qq.com', '1b30c8935ecf9330d807dbf6d3353844b891d321c7dc51d3a30363af4a3b17a1', '极客学长@832319', 'images/avatar/user.png', 'fmyuahfg', 0, 1000, 0, 1, '{\"model\":\"gpt-3.5-turbo\",\"temperature\":1,\"max_tokens\":2048,\"enable_context\":true,\"enable_history\":true,\"api_key\":\"\"}', '[\"gpt\",\"programmer\",\"teacher\",\"artist\",\"psychiatrist\",\"lu_xun\",\"seller\",\"english_trainer\",\"translator\",\"red_book\",\"dou_yin\",\"weekly_report\",\"girl_friend\",\"good_comment\",\"steve_jobs\",\"elon_musk\",\"kong_zi\"]', 0, '', '2023-06-20 06:40:06', '2023-06-20 06:41:24'); -- -------------------------------------------------------- @@ -303,58 +308,6 @@ CREATE TABLE `chatgpt_user_login_logs` ( `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户登录日志'; --- --- 转存表中的数据 `chatgpt_user_login_logs` --- - -INSERT INTO `chatgpt_user_login_logs` (`id`, `user_id`, `username`, `login_ip`, `login_address`, `created_at`, `updated_at`) VALUES -(1, 4, 'monda', '::1', '', '2023-06-13 18:45:46', '2023-06-13 18:45:46'), -(2, 4, 'monda', '::1', '::1', '2023-06-13 18:46:52', '2023-06-13 18:46:52'), -(3, 4, 'monda', '::1', '', '2023-06-13 18:47:44', '2023-06-13 18:47:44'), -(4, 4, 'monda', '::1', '', '2023-06-13 18:51:54', '2023-06-13 18:51:54'), -(5, 4, 'monda', '::1', '', '2023-06-13 18:52:51', '2023-06-13 18:52:51'), -(6, 4, 'monda', '::1', '', '2023-06-13 18:53:51', '2023-06-13 18:53:51'), -(7, 4, 'monda', '::1', '', '2023-06-13 18:57:25', '2023-06-13 18:57:25'), -(8, 4, 'monda', '::1', '', '2023-06-14 10:16:58', '2023-06-14 10:16:58'), -(9, 4, 'monda', '::1', '', '2023-06-14 10:21:57', '2023-06-14 10:21:57'), -(10, 4, 'monda', '::1', '', '2023-06-14 11:16:18', '2023-06-14 11:16:18'), -(11, 4, 'monda', '::1', '', '2023-06-14 11:35:15', '2023-06-14 11:35:15'), -(12, 4, 'monda', '::1', '', '2023-06-14 11:53:38', '2023-06-14 11:53:38'), -(13, 4, 'monda', '::1', '', '2023-06-14 12:01:55', '2023-06-14 12:01:55'), -(14, 4, 'monda', '::1', '', '2023-06-14 12:05:03', '2023-06-14 12:05:03'), -(15, 4, 'monda', '::1', '', '2023-06-14 15:42:47', '2023-06-14 15:42:47'), -(16, 4, 'monda', '::1', '', '2023-06-14 16:21:37', '2023-06-14 16:21:37'), -(17, 4, 'monda', '::1', '', '2023-06-14 16:51:20', '2023-06-14 16:51:20'), -(18, 4, 'monda', '::1', '', '2023-06-14 17:30:47', '2023-06-14 17:30:47'), -(19, 4, 'monda', '::1', '', '2023-06-14 17:32:48', '2023-06-14 17:32:48'), -(20, 4, 'monda', '::1', '', '2023-06-14 19:45:10', '2023-06-14 19:45:10'), -(21, 4, 'monda', '::1', '', '2023-06-14 20:23:23', '2023-06-14 20:23:23'), -(22, 4, 'monda', '::1', '', '2023-06-14 20:25:00', '2023-06-14 20:25:00'), -(23, 4, 'monda', '::1', '', '2023-06-15 06:07:49', '2023-06-15 06:07:49'), -(24, 4, 'monda', '::1', '', '2023-06-15 06:15:26', '2023-06-15 06:15:26'), -(25, 4, 'monda', '::1', '', '2023-06-15 07:02:41', '2023-06-15 07:02:41'), -(26, 4, 'monda', '::1', '', '2023-06-15 07:03:16', '2023-06-15 07:03:16'), -(27, 4, 'monda', '::1', '', '2023-06-15 07:04:13', '2023-06-15 07:04:13'), -(28, 4, 'monda', '::1', '', '2023-06-15 07:04:24', '2023-06-15 07:04:24'), -(29, 4, 'monda', '::1', '', '2023-06-15 07:04:24', '2023-06-15 07:04:24'), -(30, 4, 'monda', '::1', '', '2023-06-15 07:08:13', '2023-06-15 07:08:13'), -(31, 4, 'monda', '::1', '', '2023-06-15 07:08:20', '2023-06-15 07:08:20'), -(32, 4, 'monda', '::1', '', '2023-06-15 07:08:20', '2023-06-15 07:08:20'), -(33, 4, 'monda', '::1', '', '2023-06-15 07:08:20', '2023-06-15 07:08:20'), -(34, 4, 'monda', '::1', '', '2023-06-15 07:11:00', '2023-06-15 07:11:00'), -(35, 4, 'monda', '::1', '', '2023-06-15 07:11:06', '2023-06-15 07:11:06'), -(36, 4, 'monda', '::1', '', '2023-06-15 07:11:06', '2023-06-15 07:11:06'), -(37, 4, 'monda', '::1', '', '2023-06-15 07:11:06', '2023-06-15 07:11:06'), -(38, 4, 'monda', '::1', '', '2023-06-15 07:11:06', '2023-06-15 07:11:06'), -(39, 4, 'monda', '::1', '', '2023-06-15 07:14:44', '2023-06-15 07:14:44'), -(40, 4, 'monda', '::1', '', '2023-06-15 07:14:58', '2023-06-15 07:14:58'), -(41, 4, 'monda', '::1', '', '2023-06-15 07:14:58', '2023-06-15 07:14:58'), -(42, 4, 'monda', '::1', '', '2023-06-15 07:14:58', '2023-06-15 07:14:58'), -(43, 4, 'monda', '::1', '', '2023-06-15 07:14:58', '2023-06-15 07:14:58'), -(44, 4, 'monda', '::1', '', '2023-06-15 07:14:58', '2023-06-15 07:14:58'), -(45, 4, 'monda', '::1', '', '2023-06-15 09:20:28', '2023-06-15 09:20:28'), -(46, 4, 'geekmaster', '::1', '', '2023-06-15 09:25:08', '2023-06-15 09:25:08'); - -- -- 转储表的索引 -- @@ -420,13 +373,13 @@ ALTER TABLE `chatgpt_api_keys` -- 使用表AUTO_INCREMENT `chatgpt_chat_history` -- ALTER TABLE `chatgpt_chat_history` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=73; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=75; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_items` -- ALTER TABLE `chatgpt_chat_items` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=54; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=55; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_roles` @@ -444,13 +397,13 @@ ALTER TABLE `chatgpt_configs` -- 使用表AUTO_INCREMENT `chatgpt_users` -- ALTER TABLE `chatgpt_users` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; -- -- 使用表AUTO_INCREMENT `chatgpt_user_login_logs` -- ALTER TABLE `chatgpt_user_login_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=47; + MODIFY `id` int NOT NULL AUTO_INCREMENT; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/docs/imgs/admin_config.png b/docs/imgs/admin_config.png new file mode 100644 index 00000000..227f038b Binary files /dev/null and b/docs/imgs/admin_config.png differ diff --git a/docs/imgs/admin_user.png b/docs/imgs/admin_user.png new file mode 100644 index 00000000..f508783f Binary files /dev/null and b/docs/imgs/admin_user.png differ diff --git a/docs/imgs/apikey_add.png b/docs/imgs/apikey_add.png new file mode 100644 index 00000000..e444c060 Binary files /dev/null and b/docs/imgs/apikey_add.png differ diff --git a/docs/imgs/chat-new.png b/docs/imgs/chat-new.png new file mode 100644 index 00000000..b9c2d743 Binary files /dev/null and b/docs/imgs/chat-new.png differ diff --git a/docs/imgs/gpt.gif b/docs/imgs/gpt.gif new file mode 100644 index 00000000..4c7c282e Binary files /dev/null and b/docs/imgs/gpt.gif differ diff --git a/docs/imgs/login.png b/docs/imgs/login.png new file mode 100644 index 00000000..a1e72b39 Binary files /dev/null and b/docs/imgs/login.png differ diff --git a/docs/imgs/user_profile.png b/docs/imgs/user_profile.png new file mode 100644 index 00000000..904f469a Binary files /dev/null and b/docs/imgs/user_profile.png differ diff --git a/docs/imgs/wechat-pay.png b/docs/imgs/wechat-pay.png new file mode 100644 index 00000000..8b340208 Binary files /dev/null and b/docs/imgs/wechat-pay.png differ diff --git a/docs/imgs/wx.png b/docs/imgs/wx.png new file mode 100644 index 00000000..2769591c Binary files /dev/null and b/docs/imgs/wx.png differ