From b18b8ccb02d92fb46116914db92c7a4c23cadfaf Mon Sep 17 00:00:00 2001 From: RockYang Date: Mon, 3 Aug 2026 11:12:37 +0800 Subject: [PATCH] release: v4.2.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 整合开源版 v4.2.8 功能:Sora2 视频、路由重构、手机站开关、DALL-E 参考图,以及启动时自动同步数据表字段等修复与优化。 Co-authored-by: Cursor --- .github/ISSUE_TEMPLATE/1.bug.yml | 2 +- .github/ISSUE_TEMPLATE/2.feature.yml | 2 +- .gitignore | 2 +- CHANGELOG.md | 14 + README.md | 149 ++- api/.gitignore | 1 + api/config.sample.toml | 2 +- api/core/app_server.go | 2 +- api/core/config.go | 10 - api/core/middleware/auth.go | 3 + api/core/middleware/{static.go => thumb.go} | 4 +- api/core/types/config.go | 20 +- api/core/types/jimeng.go | 3 +- api/core/types/task.go | 5 +- api/handler/admin/config_handler.go | 51 - api/handler/admin/user_handler.go | 21 +- api/handler/chat_handler.go | 78 +- api/handler/chat_openai_handler.go | 8 + api/handler/config_handler.go | 13 +- api/handler/dalle_handler.go | 8 +- api/handler/function_handler.go | 7 +- api/handler/jimeng_handler.go | 20 +- api/handler/menu_handler.go | 18 + api/handler/payment_handler.go | 1 + api/handler/user_handler.go | 26 +- api/main.go | 18 +- api/service/captcha_service.go | 6 +- .../dalle/{service.go => dalle_service.go} | 31 +- api/service/jimeng/service.go | 65 +- api/service/license_service.go | 224 ----- api/service/mj/client.go | 17 +- api/service/mj/service.go | 8 +- api/service/sora/sora_service.go | 90 ++ api/service/user_service.go | 1 + api/service/wxlogin_service.go | 4 +- api/store/model/admin_user.go | 2 +- api/store/model/function.go | 1 + api/store/model/user.go | 2 +- api/store/model/user_login_log.go | 2 +- api/store/vo/function.go | 1 + api/test/test_test.go | 10 - api/utils/net.go | 13 + build/build.sh | 4 +- database/archive/chatgpt_plus-v4.0.9.sql | 885 ++++++++++-------- database/archive/chatgpt_plus-v4.1.0.sql | 674 ++++++------- database/archive/geekai_plus-v4.1.3.sql | 698 +++++++------- database/archive/geekai_plus-v4.1.5.sql | 12 - database/geekai_plus-v4.2.6.sql | 6 +- docker/docker-compose.yaml | 4 +- web/.env.development | 2 +- web/.env.production | 2 +- web/src/assets/css/common.scss | 7 +- web/src/assets/css/markdown/vue.css | 5 +- web/src/components/AttachmentList.vue | 139 +++ web/src/components/ChatPrompt.vue | 2 +- web/src/components/ChatReply.vue | 29 +- web/src/components/FileList.vue | 2 +- web/src/components/FooterBar.vue | 42 +- web/src/components/ImageUpload.vue | 60 +- web/src/components/admin/AdminSidebar.vue | 5 - web/src/components/mobile/ChatReply.vue | 9 +- web/src/components/mobile/MobileFileList.vue | 13 +- web/src/components/ui/FunDisabled.vue | 52 + web/src/router.js | 432 ++++----- web/src/store/cache.js | 134 +-- web/src/store/data/jimeng_params.js | 2 +- web/src/store/jimeng.js | 1 + web/src/utils/libs.js | 2 +- web/src/views/404.vue | 92 +- web/src/views/ChatPlus.vue | 23 +- web/src/views/Dalle.vue | 140 +-- web/src/views/Home.vue | 14 +- web/src/views/Index.vue | 24 +- web/src/views/Jimeng.vue | 1 - web/src/views/admin/ChatModel.vue | 8 +- web/src/views/admin/Functions.vue | 4 + web/src/views/admin/Users.vue | 6 +- web/src/views/admin/settings/BasicConfig.vue | 22 +- .../views/admin/settings/LicenseConfig.vue | 159 ---- web/src/views/admin/settings/SmtpConfig.vue | 2 +- .../views/admin/settings/StorageConfig.vue | 19 +- web/src/views/mobile/ChatList.vue | 103 +- web/src/views/mobile/Create.vue | 6 - web/src/views/mobile/Discover.vue | 16 + web/src/views/mobile/Home.vue | 2 +- web/src/views/mobile/Index.vue | 16 +- web/src/views/mobile/Member.vue | 17 +- web/src/views/mobile/pages/ImageDall.vue | 455 +++++---- web/src/views/mobile/pages/ImageMj.vue | 653 ++++++------- web/src/views/mobile/pages/ImageSd.vue | 460 ++++----- web/vite.config.js | 17 + 91 files changed, 3326 insertions(+), 3121 deletions(-) rename api/core/middleware/{static.go => thumb.go} (96%) rename api/service/dalle/{service.go => dalle_service.go} (92%) delete mode 100644 api/service/license_service.go create mode 100644 api/service/sora/sora_service.go delete mode 100644 api/test/test_test.go create mode 100644 web/src/components/AttachmentList.vue create mode 100644 web/src/components/ui/FunDisabled.vue delete mode 100644 web/src/views/admin/settings/LicenseConfig.vue diff --git a/.github/ISSUE_TEMPLATE/1.bug.yml b/.github/ISSUE_TEMPLATE/1.bug.yml index 7f743768..cd09055c 100644 --- a/.github/ISSUE_TEMPLATE/1.bug.yml +++ b/.github/ISSUE_TEMPLATE/1.bug.yml @@ -1,5 +1,5 @@ name: Bug 报告 🐛 -description: 为 geekai 提交错误报告 +description: 为 chatgpt-plus 提交错误报告 labels: ['Bug'] body: - type: checkboxes diff --git a/.github/ISSUE_TEMPLATE/2.feature.yml b/.github/ISSUE_TEMPLATE/2.feature.yml index d958ae30..7ecc8e4b 100644 --- a/.github/ISSUE_TEMPLATE/2.feature.yml +++ b/.github/ISSUE_TEMPLATE/2.feature.yml @@ -1,5 +1,5 @@ name: 功能优化 🚀 -description: 为 geekai 提交优化建议 +description: 为 chatgpt-plus 提交优化建议 labels: ['feature'] body: - type: checkboxes diff --git a/.gitignore b/.gitignore index 9e05ed47..d028cb85 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ logs *.njsproj *.sln *.sw? -deploy/data +miniprogram diff --git a/CHANGELOG.md b/CHANGELOG.md index bf1fd05b..896f3ba3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # 更新日志 +## v4.2.8 + +- Bug 修复:修复管理后台邮件配置报“参数错误”问题 +- 功能优化:手机端也不显示后端禁用的菜单功能页面 +- 功能优化:**聊天页面支持 Sora2 文生视频/图生视频功能** 🔥🔥🔥 +- 功能优化:**重构路由代码,优化路由加载逻辑,支持关闭手机站功能** 🔥🔥🔥 +- Bug 修复:修复用户算力扣减日志记录逻辑错误问题 +- 功能优化:优化 404 页面样式,兼容 PC 端和移动端 +- Bug 修复:ipv6 地址登录报错:Data too long for column 'last_login_ip' +- Bug 修复:移动端登录页面输入密码的时候会覆盖在确认按钮上层 +- 功能优化:**移动端的 DALL-E 绘图页面支持上传参考图** 🔥🔥🔥 +- 功能优化:优化 WebFooter 组件,如果配置了备案号,则显示备案号,否则不显示 +- 功能优化:启动时自动同步 model 与数据表字段,缺列自动新建、多余列自动删除 + ## v4.2.7 - Bug 修复:修复超级管理员无法修改密码的 Bug diff --git a/README.md b/README.md index fb5ee75c..fad888ba 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,77 @@ -# GeekAI -> 根据[《生成式人工智能服务管理暂行办法》](https://www.cac.gov.cn/2023-07/13/c_1690898327029107.htm)的要求,请勿对中国地区公众提供一切未经备案的生成式人工智能服务。 +# 🚀 GeekAI-PLUS:一站式 AI 创意生产力平台 -**GeekAI** 基于 AI 大语言模型 API 实现的 AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 OpenAI, Claude, 通义千问,Kimi,DeepSeek,Gitee AI 等多个平台的大语言模型。集成了 MidJourney 和 Stable Diffusion AI绘画功能。 +**重新定义 AI 创作体验,让每个人都能成为内容创作大师** -主要特性: +基于 GeekAI 项目开发的高级版,增加了很多高级功能,比如思维导图,Dalle 绘画等。**高级版源码不会一次性开放,只提供镜像给大家免费使用**,源码会逐步逐步按照版同步迁移到[社区版(GeekAI)](https://github.com/yangjian102621/geekai)。所以如果大家想要二次开发,请移步去社区版。 -- 完整的开源系统,前端应用和后台管理系统皆可开箱即用。 -- 基于 Websocket 实现,完美的打字机体验。 -- 内置了各种预训练好的角色应用,比如小红书写手,英语翻译大师,苏格拉底,孔子,乔布斯,周报助手等。轻松满足你的各种聊天和应用需求。 -- 支持 OpenAI, Claude, 通义千问,Kimi,DeepSeek等多个大语言模型,**支持 Gitee AI Serverless 大模型 API**。 -- 支持 Suno 文生音乐 -- 支持 MidJourney / Stable Diffusion AI 绘画集成,文生图,图生图,换脸,融图。开箱即用。 -- 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。 -- 已集成支付宝支付功能,微信支付,支持多种会员套餐和点卡购买功能。 -- 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件,已内置实现了微博热搜,今日头条,今日早报和 AI - 绘画函数插件。 +## ✨ 核心特色 -### 🚀 更多功能请查看 [GeekAI-PLUS](https://github.com/yangjian102621/geekai-plus) +### 🎨 **全能 AI 创作矩阵** -- [x] 更友好的 UI 界面 -- [x] 支持 Dall-E 文生图功能 -- [x] 支持文生思维导图 -- [x] 支持为模型绑定指定的 API KEY,支持为角色绑定指定的模型等功能 -- [x] 支持网站 Logo 版权等信息的修改 +- **智能对话**:集成 ChatGPT、Claude 等多款顶级 AI 模型,支持角色扮演和专业对话 +- **图像生成**:整合 MidJourney、DALL-E、Stable Diffusion 三大主流 AI 绘画引擎 +- **音频创作**:Suno AI 音乐生成,从旋律到歌词一键创作专属音乐 +- **视频制作**:Luma 和 KeLing,即梦,Veo3 视频 AI,文本到视频,创意无限 +- **思维导图**:AI 辅助思维整理,复杂想法可视化呈现 + +### 🏗️ **企业级技术架构** + +- **高性能后端**:Go + Gin + MySQL + Redis,支持高并发访问 +- **现代化前端**:Vue3 + Element Plus + Vant,桌面移动双端适配 +- **智能缓存**:多层缓存策略,响应速度提升 80% +- **弹性部署**:Docker 容器化部署,一键启动,轻松扩展 +- **私有化部署**:支持私有化部署,私有化部署不支持升级,需要手动升级 +- **文档支持**:丰富且详细的部署和 API 开发文档支持,二次开发轻松上手 + +### 💼 **商业化就绪** + +- **完整用户系统**:注册登录、权限管理、积分充值 +- **灵活计费模式**:支持按次付费、包月订阅等多种商业模式 +- **数据统计分析**:用户行为、消费记录、系统性能全方位监控 +- **管理后台**:功能完备的管理员界面,运营数据一目了然 + +### 🎯 **用户体验优势** + +- **响应式设计**:完美适配桌面、平板、手机等全终端设备 +- **暗黑模式**:支持明暗主题切换,护眼舒适 +- **实时交互**:WebSocket 实时通信,创作过程流畅无卡顿 +- **文件管理**:支持多种云存储,作品安全可靠 + +## 🎪 **应用场景** + +- **内容创作者**:博客写作、社交媒体素材、短视频制作 +- **企业营销**:品牌宣传材料、产品介绍、创意广告 +- **教育培训**:课件制作、知识图谱、互动内容 +- **个人娱乐**:AI 聊天、创意绘画、音乐创作 + +## 🔥 **为什么选择 GeekAI-PLUS?** + +1. **技术领先**:集成当前最先进的 AI 技术,始终保持创新前沿 +2. **开箱即用**:完整的商业化解决方案,无需从零开发 +3. **高度定制**:模块化架构设计,支持个性化功能扩展 +4. **稳定可靠**:经过大量用户验证,性能稳定,安全可信 +5. **持续更新**:紧跟 AI 技术发展,功能持续迭代升级 + +## 演示站点 + +[Geek-AI 创作系统](https://www.geekai.me) + +## 文档地址 + +[Geek-AI 文档](https://www.geekai.me/docs/) + +## 部署 + +1. 安装 docker 和 docker-compose 程序,这个自行解决。 +2. 直接在项目根目录运行启动命令: + ```shell + docker-compose up -d + ``` ## 功能截图 + 请参考 [GeekAI 项目介绍](https://docs.geekai.me/info/)。 -### 体验地址 - -> 免费体验地址:[https://chat.geekai.me](https://chat.geekai.me)
-> **注意:请合法使用,禁止输出任何敏感、不友好或违规的内容!!!** - -## 快速部署 - -请参考文档 [**GeekAI 快速部署**](https://docs.geekai.me/install/)。 - -## 使用须知 - -1. 本项目基于 Apache2.0 协议,免费开放全部源代码,可以作为个人学习使用或者商用。 -2. 如需商用必须保留版权信息,请自觉遵守。确保合法合规使用,在运营过程中产生的一切任何后果自负,与作者无关。 - -## 项目地址 - -* Github 地址:https://github.com/yangjian102621/geekai -* 码云地址:https://gitee.com/blackfox/geekai - -## 客户端下载 - -目前已经支持 Win/Linux/Mac/Android 客户端,下载地址为:https://github.com/yangjian102621/geekai/releases/tag/v3.1.2 - -## TODOLIST - -* [ ] 支持基于知识库的 AI 问答 -* [ ] 文生视频,文生歌曲功能 -* [ ] 微信支付功能 - -## 项目文档 - -最新的部署视频教程:[https://www.bilibili.com/video/BV1Cc411t7CX/](https://www.bilibili.com/video/BV1Cc411t7CX/) - -详细的部署和开发文档请参考 [**GeekAI 文档**](https://docs.geekai.me)。 - -加微信进入微信讨论群可获取 **一键部署脚本(添加好友时请注明来自Github!!!)。** - -![微信名片](docs/imgs/wx.png) - -## 参与贡献 - -个人的力量始终有限,任何形式的贡献都是欢迎的,包括但不限于贡献代码,优化文档,提交 issue 和 PR 等。 - -#### 特此声明:由于个人时间有限,不接受在微信或者微信群给开发者提 Bug,有问题或者优化建议请提交 Issue 和 PR。非常感谢您的配合! - -### Commit 类型 - -* feat: 新特性或功能 -* fix: 缺陷修复 -* docs: 文档更新 -* style: 代码风格或者组件样式更新 -* refactor: 代码重构,不引入新功能和缺陷修复 -* opt: 性能优化 -* chore: 一些不涉及到功能变动的小提交,比如修改文字表述,修改注释等 - -## 打赏 - -如果你觉得这个项目对你有帮助,并且情况允许的话,可以请作者喝杯咖啡,非常感谢你的支持~ - -![打赏](docs/imgs/donate.png) - -![Star History Chart](https://api.star-history.com/svg?repos=yangjian102621/geekai&type=Date) +--- +_让 AI 成为你最强大的创作伙伴,开启无限创意可能!_ diff --git a/api/.gitignore b/api/.gitignore index 8a40c465..4121d83e 100644 --- a/api/.gitignore +++ b/api/.gitignore @@ -16,6 +16,7 @@ tmp bin data config.toml +config.toml.*.bak static/upload static/audio storage.json diff --git a/api/config.sample.toml b/api/config.sample.toml index db17fb8a..8cdd2a00 100644 --- a/api/config.sample.toml +++ b/api/config.sample.toml @@ -1,6 +1,6 @@ Listen = "0.0.0.0:5678" ProxyURL = "" # 如 http://127.0.0.1:7777 -MysqlDns = "root:12345678@tcp(172.22.11.200:3307)/chatgpt_plus?charset=utf8mb4&collation=utf8mb4_unicode_ci&parseTime=True&loc=Local" +MysqlDns = "root:12345678@tcp(localhost:3306)/geekai?charset=utf8mb4&collation=utf8mb4_unicode_ci&parseTime=True&loc=Local" StaticDir = "./static" # 静态资源的目录 StaticUrl = "/static" # 静态资源访问 URL TikaHost = "http://tika:9998" diff --git a/api/core/app_server.go b/api/core/app_server.go index 9917fc06..99861dd1 100644 --- a/api/core/app_server.go +++ b/api/core/app_server.go @@ -44,11 +44,11 @@ func NewServer(appConfig *types.AppConfig, redis *redis.Client, sysConfig *types } func (s *AppServer) Init(client *redis.Client) { + s.Engine.Use(middleware.ThumbMiddleware()) s.Engine.Use(middleware.ParameterHandlerMiddleware()) s.Engine.Use(errorHandler) // 添加静态资源访问 s.Engine.Static("/static", s.Config.StaticDir) - s.Engine.Use(middleware.StaticMiddleware()) } func (s *AppServer) Run(db *gorm.DB) error { diff --git a/api/core/config.go b/api/core/config.go index e38ed0bf..4b6ff58f 100644 --- a/api/core/config.go +++ b/api/core/config.go @@ -85,15 +85,6 @@ func LoadSystemConfig(db *gorm.DB) *types.SystemConfig { logger.Error("load system config error: ", err) } - // 加载许可证配置 - var license types.License - sysConfig.Id = 0 - db.Where("name", types.ConfigKeyLicense).First(&sysConfig) - err = utils.JsonDecode(sysConfig.Value, &license) - if err != nil { - logger.Error("load license config error: ", err) - } - // 加载验证码配置 var captchaConfig types.CaptchaConfig sysConfig.Id = 0 @@ -168,7 +159,6 @@ func LoadSystemConfig(db *gorm.DB) *types.SystemConfig { return &types.SystemConfig{ Base: baseConfig, - License: license, SMS: smsConfig, OSS: ossConfig, SMTP: smtpConfig, diff --git a/api/core/middleware/auth.go b/api/core/middleware/auth.go index d6bde9b1..d5f77265 100644 --- a/api/core/middleware/auth.go +++ b/api/core/middleware/auth.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "geekai/core/types" + logger2 "geekai/logger" "geekai/utils" "geekai/utils/resp" "time" @@ -13,6 +14,8 @@ import ( "github.com/golang-jwt/jwt" ) +var logger = logger2.GetLogger() + // 前端用户授权验证 func UserAuthMiddleware(secretKey string, redis *redis.Client) gin.HandlerFunc { return func(c *gin.Context) { diff --git a/api/core/middleware/static.go b/api/core/middleware/thumb.go similarity index 96% rename from api/core/middleware/static.go rename to api/core/middleware/thumb.go index 2e91f9c8..878157f1 100644 --- a/api/core/middleware/static.go +++ b/api/core/middleware/thumb.go @@ -14,8 +14,8 @@ import ( "golang.org/x/image/webp" ) -// 静态资源中间件 -func StaticMiddleware() gin.HandlerFunc { +// 缩略图中间件 +func ThumbMiddleware() gin.HandlerFunc { return func(c *gin.Context) { url := c.Request.URL.String() diff --git a/api/core/types/config.go b/api/core/types/config.go index 0ee5f969..66733afe 100644 --- a/api/core/types/config.go +++ b/api/core/types/config.go @@ -37,22 +37,6 @@ type RedisConfig struct { DB int } -// LicenseKey 存储许可证书的 KEY -const LicenseKey = "Geek-AI-License" - -type License struct { - Key string `json:"key"` // 许可证书密钥 - MachineId string `json:"machine_id"` // 机器码 - ExpiredAt int64 `json:"expired_at"` // 过期时间 - IsActive bool `json:"is_active"` // 是否激活 - Configs LicenseConfig `json:"configs"` -} - -type LicenseConfig struct { - UserNum int `json:"user_num"` // 用户数量 - DeCopy bool `json:"de_copy"` // 去版权 -} - func (c RedisConfig) Url() string { return fmt.Sprintf("%s:%d", c.Host, c.Port) } @@ -97,6 +81,8 @@ type BaseConfig struct { EmailWhiteList []string `json:"email_white_list"` // 邮箱白名单列表 AssistantModelId int `json:"assistant_model_id"` // 用来做提示词,翻译的AI模型 id MaxFileSize int `json:"max_file_size"` // 最大文件大小,单位:MB + + EnableMobileSite bool `json:"enable_mobile_site"` // 是否开启手机站点 } type SystemConfig struct { @@ -108,7 +94,6 @@ type SystemConfig struct { Captcha CaptchaConfig WxLogin WxLoginConfig Jimeng JimengConfig - License License Moderation ModerationConfig } @@ -121,7 +106,6 @@ const ( ConfigKeyMarkMap = "mark_map" ConfigKeyCaptcha = "captcha" ConfigKeyWxLogin = "wx_login" - ConfigKeyLicense = "license" ConfigKeySms = "sms" ConfigKeySmtp = "smtp" ConfigKeyOss = "oss" diff --git a/api/core/types/jimeng.go b/api/core/types/jimeng.go index f38b8019..5bb2d0ce 100644 --- a/api/core/types/jimeng.go +++ b/api/core/types/jimeng.go @@ -15,7 +15,8 @@ type JimengConfig struct { type JMTaskStatus string const ( - JMTaskStatusInQueue = JMTaskStatus("in_queue") // 任务已提交 + JMTaskStatusSubmited = JMTaskStatus("submited") // 任务已提交 + JMTaskStatusInQueue = JMTaskStatus("in_queue") // 任务排队中 JMTaskStatusGenerating = JMTaskStatus("generating") // 任务处理中 JMTaskStatusDone = JMTaskStatus("done") // 处理完成 JMTaskStatusNotFound = JMTaskStatus("not_found") // 任务未找到 diff --git a/api/core/types/task.go b/api/core/types/task.go index afdcf504..0fe37174 100644 --- a/api/core/types/task.go +++ b/api/core/types/task.go @@ -72,14 +72,13 @@ type SdTaskParams struct { type DallTask struct { ModelId uint `json:"model_id"` ModelName string `json:"model_name"` + ModelValue string `json:"model_value"` Image []string `json:"image,omitempty"` Id uint `json:"id"` UserId uint `json:"user_id"` Prompt string `json:"prompt"` - N int `json:"n"` - Quality string `json:"quality"` + AspectRatio string `json:"aspect_ratio"` Size string `json:"size"` - Style string `json:"style"` Power int `json:"power"` TranslateModelId int `json:"translate_model_id"` // 提示词翻译模型ID } diff --git a/api/handler/admin/config_handler.go b/api/handler/admin/config_handler.go index 1b1a4933..8b8f7c94 100644 --- a/api/handler/admin/config_handler.go +++ b/api/handler/admin/config_handler.go @@ -26,7 +26,6 @@ import ( type ConfigHandler struct { handler.BaseHandler - licenseService *service.LicenseService sysConfig *types.SystemConfig alipayService *payment.AlipayService wxpayService *payment.WxPayService @@ -41,7 +40,6 @@ type ConfigHandler struct { func NewConfigHandler( app *core.AppServer, db *gorm.DB, - licenseService *service.LicenseService, sysConfig *types.SystemConfig, alipayService *payment.AlipayService, wxpayService *payment.WxPayService, @@ -54,7 +52,6 @@ func NewConfigHandler( ) *ConfigHandler { return &ConfigHandler{ BaseHandler: handler.BaseHandler{App: app, DB: db}, - licenseService: licenseService, sysConfig: sysConfig, alipayService: alipayService, wxpayService: wxpayService, @@ -87,8 +84,6 @@ func (h *ConfigHandler) RegisterRoutes() { rg.POST("update/oss", h.UpdateOss) rg.POST("update/smtp", h.UpdateStmp) rg.GET("get", h.Get) - rg.POST("license/active", h.Active) - rg.GET("license/get", h.GetLicense) } } @@ -101,19 +96,6 @@ func (h *ConfigHandler) UpdateBase(c *gin.Context) { return } - // 未授权的话不允许修改版权 - license := h.licenseService.GetLicense() - if !license.IsActive && data.Copyright != h.sysConfig.Base.Copyright { - resp.ERROR(c, "未授权系统不允许修改版权信息") - return - } - - // 未授权的话不允许修改 Logo - if !license.IsActive && data.Logo != h.sysConfig.Base.Logo { - resp.ERROR(c, "未授权系统不允许修改 Logo") - return - } - err := h.Update(types.ConfigKeySystem, data) if err != nil { resp.ERROR(c, err.Error()) @@ -407,36 +389,3 @@ func (h *ConfigHandler) Get(c *gin.Context) { resp.SUCCESS(c, value) } - -// Active 激活系统 -func (h *ConfigHandler) Active(c *gin.Context) { - var data struct { - License string `json:"license"` - } - if err := c.ShouldBindJSON(&data); err != nil { - resp.ERROR(c, types.InvalidArgs) - return - } - - err := h.licenseService.ActiveLicense(data.License) - license := h.licenseService.GetLicense() - if err != nil { - resp.ERROR(c, err.Error()) - return - } - if err := h.Update(types.ConfigKeyLicense, license); err != nil { - resp.ERROR(c, err.Error()) - return - } - // 更新系统配置 - h.sysConfig.License = *license - - resp.SUCCESS(c, license.MachineId) - -} - -// GetLicense 获取 License 信息 -func (h *ConfigHandler) GetLicense(c *gin.Context) { - license := h.licenseService.GetLicense() - resp.SUCCESS(c, license) -} diff --git a/api/handler/admin/user_handler.go b/api/handler/admin/user_handler.go index fff20036..beeef80b 100644 --- a/api/handler/admin/user_handler.go +++ b/api/handler/admin/user_handler.go @@ -13,7 +13,6 @@ import ( "geekai/core/middleware" "geekai/core/types" "geekai/handler" - "geekai/service" "geekai/store/model" "geekai/store/vo" "geekai/utils" @@ -28,12 +27,11 @@ import ( type UserHandler struct { handler.BaseHandler - licenseService *service.LicenseService - redis *redis.Client + redis *redis.Client } -func NewUserHandler(app *core.AppServer, db *gorm.DB, licenseService *service.LicenseService, redisCli *redis.Client) *UserHandler { - return &UserHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, licenseService: licenseService, redis: redisCli} +func NewUserHandler(app *core.AppServer, db *gorm.DB, redisCli *redis.Client) *UserHandler { + return &UserHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, redis: redisCli} } // RegisterRoutes 注册路由 @@ -114,13 +112,6 @@ func (h *UserHandler) Save(c *gin.Context) { resp.ERROR(c, types.InvalidArgs) return } - // 检测最大注册人数 - var totalUser int64 - h.DB.Model(&model.User{}).Count(&totalUser) - if h.licenseService.GetLicense().Configs.UserNum > 0 && int(totalUser) >= h.licenseService.GetLicense().Configs.UserNum { - resp.ERROR(c, "当前注册用户数已达上限,请请升级 License") - return - } var user = model.User{} var res *gorm.DB var userVo vo.User @@ -198,11 +189,7 @@ func (h *UserHandler) Save(c *gin.Context) { ChatModels: utils.JsonEncode(data.ChatModels), ExpiredTime: utils.Str2stamp(data.ExpiredTime), } - if h.licenseService.GetLicense().Configs.DeCopy { - u.Nickname = fmt.Sprintf("用户@%d", utils.RandomNumber(6)) - } else { - u.Nickname = fmt.Sprintf("极客学长@%d", utils.RandomNumber(6)) - } + u.Nickname = fmt.Sprintf("用户@%d", utils.RandomNumber(6)) res = h.DB.Create(&u) _ = utils.CopyObject(u, &userVo) userVo.Id = u.Id diff --git a/api/handler/chat_handler.go b/api/handler/chat_handler.go index d52c5d09..53356784 100644 --- a/api/handler/chat_handler.go +++ b/api/handler/chat_handler.go @@ -19,6 +19,7 @@ import ( "geekai/service" "geekai/service/moderation" "geekai/service/oss" + "geekai/service/sora" "geekai/store/model" "geekai/store/vo" "geekai/utils" @@ -65,36 +66,39 @@ type ChatHandler struct { BaseHandler redis *redis.Client uploadManager *oss.UploaderManager - licenseService *service.LicenseService ReqCancelFunc *types.LMap[string, context.CancelFunc] // HttpClient 请求取消 handle function userService *service.UserService moderationManager *moderation.ServiceManager userLocks *types.UserLockManager + soraService *sora.SoraService } -func NewChatHandler(app *core.AppServer, db *gorm.DB, redis *redis.Client, manager *oss.UploaderManager, licenseService *service.LicenseService, userService *service.UserService, moderationManager *moderation.ServiceManager) *ChatHandler { +func NewChatHandler(app *core.AppServer, + db *gorm.DB, + redis *redis.Client, + manager *oss.UploaderManager, + userService *service.UserService, + soraService *sora.SoraService, + moderationManager *moderation.ServiceManager) *ChatHandler { return &ChatHandler{ BaseHandler: BaseHandler{App: app, DB: db}, redis: redis, uploadManager: manager, - licenseService: licenseService, ReqCancelFunc: types.NewLMap[string, context.CancelFunc](), userService: userService, moderationManager: moderationManager, userLocks: types.NewUserLockManager(), + soraService: soraService, } } // RegisterRoutes 注册路由 func (h *ChatHandler) RegisterRoutes() { group := h.App.Engine.Group("/api/chat/") - - // 聊天接口不需要授权(已在authConfig中配置) - group.Any("message", h.Chat) - // 其他接口需要用户授权 group.Use(middleware.UserAuthMiddleware(h.App.Config.Session.SecretKey, h.App.Redis)) { + group.Any("message", h.Chat) group.GET("list", h.List) group.GET("detail", h.Detail) group.POST("update", h.Update) @@ -340,14 +344,14 @@ func (h *ChatHandler) sendMessage(ctx context.Context, input ChatInput, c *gin.C for _, file := range input.Files { logger.Debugf("detected file: %+v", file.URL) // 处理图片 - if isImageURL(file.URL) { + if isImageURL(file.URL) || isVideoURL(file.URL) { imgList = append(imgList, gin.H{ "type": "image_url", "image_url": gin.H{ "url": file.URL, }, }) - } else { + } else if isTextURL(file.URL) { // 处理文件,提取文件内容 content, err := utils.ReadFileContent(file.URL, h.App.Config.TikaHost) if err != nil { @@ -408,23 +412,43 @@ func isImageURL(url string) bool { ".svg": true, ".ico": true, } + return validImageExts[ext] +} - if !validImageExts[ext] { +// 判断是个链接是否是文本链接 +func isTextURL(url string) bool { + // 检查是否是有效的URL + if !strings.HasPrefix(url, "http://") && !strings.HasPrefix(url, "https://") { return false } - // 发送HEAD请求检查Content-Type - client := &http.Client{ - Timeout: 5 * time.Second, + // 检查文件扩展名 + ext := strings.ToLower(path.Ext(url)) + validTextExts := map[string]bool{ + ".txt": true, + ".doc": true, + ".docx": true, + ".pdf": true, } - resp, err := client.Head(url) - if err != nil { + return validTextExts[ext] +} + +// 判断是个链接是否是视频 +func isVideoURL(url string) bool { + // 检查是否是有效的URL + if !strings.HasPrefix(url, "http://") && !strings.HasPrefix(url, "https://") { return false } - defer resp.Body.Close() - contentType := resp.Header.Get("Content-Type") - return strings.HasPrefix(contentType, "image/") + // 检查文件扩展名 + ext := strings.ToLower(path.Ext(url)) + validVideoExts := map[string]bool{ + ".mp4": true, + ".avi": true, + ".mov": true, + ".wmv": true, + } + return validVideoExts[ext] } // Tokens 统计 token 数量 @@ -505,11 +529,6 @@ func (h *ChatHandler) doRequest(ctx context.Context, req types.ApiRequest, input return nil, errors.New("no available key, please import key") } - // ONLY allow apiURL in blank list - err := h.licenseService.IsValidApiURL(apiKey.ApiURL) - if err != nil { - return nil, err - } logger.Debugf("对话请求消息体:%+v", req) var apiURL string p, _ := url.Parse(apiKey.ApiURL) @@ -644,6 +663,16 @@ func (h *ChatHandler) saveChatHistory( replyTokens, _ = utils.CalcTokens(message.Content, req.Model) totalTokens = replyTokens + getTotalTokens(req) } + + // 如果是 Sora 相关模型,则下载视频 + files := make([]vo.File, 0) + if strings.HasPrefix(req.Model, "sora") { + video, err := h.soraService.DownloadVideoURL(message.Content) + if err == nil { + files = append(files, *video) + } + } + historyReplyMsg := model.ChatMessage{ UserId: userVo.Id, ChatId: input.ChatId, @@ -652,7 +681,7 @@ func (h *ChatHandler) saveChatHistory( Icon: input.ChatRole.Icon, Content: utils.JsonEncode(vo.MsgContent{ Text: message.Content, - Files: input.Files, + Files: files, }), Tokens: replyTokens, TotalTokens: totalTokens, @@ -676,6 +705,7 @@ func (h *ChatHandler) saveChatHistory( if err != nil { content.Text = historyReplyMsg.Content } + content.Files = files messageVo.Content = content messageVo.CreatedAt = historyReplyMsg.CreatedAt.Unix() messageVo.UpdatedAt = historyReplyMsg.UpdatedAt.Unix() diff --git a/api/handler/chat_openai_handler.go b/api/handler/chat_openai_handler.go index 91a6f59a..01601f39 100644 --- a/api/handler/chat_openai_handler.go +++ b/api/handler/chat_openai_handler.go @@ -212,6 +212,14 @@ func (h *ChatHandler) sendOpenAiMessage( } else { errMsg = utils.InterfaceToString(apiRes.Data) contents = append(contents, errMsg) + // 扣减算力 + if function.Power > 0 { + h.userService.DecreasePower(userVo.Id, function.Power, model.PowerLog{ + Type: types.PowerConsume, + Model: function.Name, + Remark: fmt.Sprintf("函数调用,%s(%s)", function.Label, function.Name), + }) + } } pushMessage(c, "text", errMsg) } diff --git a/api/handler/config_handler.go b/api/handler/config_handler.go index d8422b23..17742ea9 100644 --- a/api/handler/config_handler.go +++ b/api/handler/config_handler.go @@ -9,7 +9,6 @@ package handler import ( "geekai/core" - "geekai/service" "geekai/store/model" "geekai/utils" "geekai/utils/resp" @@ -20,11 +19,10 @@ import ( type ConfigHandler struct { BaseHandler - licenseService *service.LicenseService } -func NewConfigHandler(app *core.AppServer, db *gorm.DB, licenseService *service.LicenseService) *ConfigHandler { - return &ConfigHandler{BaseHandler: BaseHandler{App: app, DB: db}, licenseService: licenseService} +func NewConfigHandler(app *core.AppServer, db *gorm.DB) *ConfigHandler { + return &ConfigHandler{BaseHandler: BaseHandler{App: app, DB: db}} } // RegisterRoutes 注册路由 @@ -33,7 +31,6 @@ func (h *ConfigHandler) RegisterRoutes() { // 无需授权的接口 group.GET("get", h.Get) - group.GET("license", h.License) } // Get 获取指定的系统配置 @@ -55,9 +52,3 @@ func (h *ConfigHandler) Get(c *gin.Context) { resp.SUCCESS(c, value) } - -// License 获取 License 配置 -func (h *ConfigHandler) License(c *gin.Context) { - license := h.licenseService.GetLicense() - resp.SUCCESS(c, license.Configs) -} diff --git a/api/handler/dalle_handler.go b/api/handler/dalle_handler.go index 5c34d613..b8b00c3d 100644 --- a/api/handler/dalle_handler.go +++ b/api/handler/dalle_handler.go @@ -117,12 +117,12 @@ func (h *DallJobHandler) Image(c *gin.Context) { task := types.DallTask{ UserId: uint(userId), ModelId: chatModel.Id, - ModelName: chatModel.Value, + ModelName: chatModel.Name, + ModelValue: chatModel.Value, Image: data.Image, Prompt: data.Prompt, - Quality: data.Quality, + AspectRatio: data.AspectRatio, Size: data.Size, - Style: data.Style, TranslateModelId: h.App.SysConfig.Base.AssistantModelId, Power: chatModel.Power, } @@ -144,7 +144,7 @@ func (h *DallJobHandler) Image(c *gin.Context) { // 扣减算力 err = h.userService.DecreasePower(user.Id, chatModel.Power, model.PowerLog{ Type: types.PowerConsume, - Model: chatModel.Value, + Model: chatModel.Name, Remark: fmt.Sprintf("绘画提示词:%s", utils.CutWords(task.Prompt, 10)), }) if err != nil { diff --git a/api/handler/function_handler.go b/api/handler/function_handler.go index dba2a7f3..0251629a 100644 --- a/api/handler/function_handler.go +++ b/api/handler/function_handler.go @@ -215,12 +215,9 @@ func (h *FunctionHandler) Dall3(c *gin.Context) { UserId: user.Id, Prompt: prompt, ModelId: chatModel.Id, - ModelName: chatModel.Value, + ModelValue: chatModel.Value, + ModelName: chatModel.Name, TranslateModelId: h.App.SysConfig.Base.AssistantModelId, - N: 1, - Quality: "standard", - Size: "1024x1024", - Style: "vivid", Power: chatModel.Power, } job := model.DallJob{ diff --git a/api/handler/jimeng_handler.go b/api/handler/jimeng_handler.go index de6b0778..39abc92c 100644 --- a/api/handler/jimeng_handler.go +++ b/api/handler/jimeng_handler.go @@ -247,30 +247,12 @@ func (h *JimengHandler) Remove(c *gin.Context) { return } - tx := h.DB.Begin() - if err := tx.Where("id = ? AND user_id = ?", jobId, user.Id).Delete(&model.JimengJob{}).Error; err != nil { + if err := h.DB.Where("id = ? AND user_id = ?", jobId, user.Id).Delete(&model.JimengJob{}).Error; err != nil { logger.Errorf("delete jimeng job failed: %v", err) resp.ERROR(c, "删除任务失败") return } - // 失败任务删除后退回算力 - if job.Status == types.JMTaskStatusFailed { - logger.Infof("delete jimeng job failed, refund power: %d", job.Power) - err = h.userService.IncreasePower(user.Id, job.Power, model.PowerLog{ - Type: types.PowerRefund, - Model: job.ReqKey, - Remark: fmt.Sprintf("删除任务,退回%d算力", job.Power), - }) - if err != nil { - resp.ERROR(c, "退回算力失败") - tx.Rollback() - return - } - } - - tx.Commit() - resp.SUCCESS(c, gin.H{}) } diff --git a/api/handler/menu_handler.go b/api/handler/menu_handler.go index d2e3629a..a6c72022 100644 --- a/api/handler/menu_handler.go +++ b/api/handler/menu_handler.go @@ -30,6 +30,7 @@ func NewMenuHandler(app *core.AppServer, db *gorm.DB) *MenuHandler { func (h *MenuHandler) RegisterRoutes() { group := h.App.Engine.Group("/api/menu/") group.GET("list", h.List) + group.GET("list/all", h.ListAll) } // List 数据列表 @@ -54,3 +55,20 @@ func (h *MenuHandler) List(c *gin.Context) { } resp.SUCCESS(c, list) } + +// ListAll 获取所有的菜单列表 +func (h *MenuHandler) ListAll(c *gin.Context) { + var items []model.Menu + var list = make([]vo.Menu, 0) + res := h.DB.Order("sort_num ASC").Find(&items) + if res.Error == nil { + for _, item := range items { + var product vo.Menu + err := utils.CopyObject(item, &product) + if err == nil { + list = append(list, product) + } + } + } + resp.SUCCESS(c, list) +} diff --git a/api/handler/payment_handler.go b/api/handler/payment_handler.go index 9b67327d..1db2f268 100644 --- a/api/handler/payment_handler.go +++ b/api/handler/payment_handler.go @@ -138,6 +138,7 @@ func (h *PaymentHandler) SyncOrders() error { } case payment.PayChannelAL: res, err = h.alipayService.Query(order.OrderNo) + logger.Debugf("支付宝支付订单状态:%+v", res) if err != nil { logger.Errorf("error with query order info: %v", err) continue diff --git a/api/handler/user_handler.go b/api/handler/user_handler.go index c70ecb90..3fb4d47a 100644 --- a/api/handler/user_handler.go +++ b/api/handler/user_handler.go @@ -35,7 +35,6 @@ type UserHandler struct { searcher *xdb.Searcher redis *redis.Client levelDB *store.LevelDB - licenseService *service.LicenseService captchaService *service.CaptchaService userService *service.UserService wxLoginService *service.WxLoginService @@ -51,15 +50,13 @@ func NewUserHandler( captcha *service.CaptchaService, userService *service.UserService, wxLoginService *service.WxLoginService, - ipSearcher *xdb.Searcher, - licenseService *service.LicenseService) *UserHandler { + ipSearcher *xdb.Searcher) *UserHandler { return &UserHandler{ BaseHandler: BaseHandler{DB: db, App: app}, searcher: searcher, redis: client, levelDB: levelDB, captchaService: captcha, - licenseService: licenseService, userService: userService, wxLoginService: wxLoginService, ipSearcher: ipSearcher, @@ -132,14 +129,6 @@ func (h *UserHandler) Register(c *gin.Context) { return } - // 检测最大注册人数 - var totalUser int64 - h.DB.Model(&model.User{}).Count(&totalUser) - if h.licenseService.GetLicense().Configs.UserNum > 0 && int(totalUser) >= h.licenseService.GetLicense().Configs.UserNum { - resp.ERROR(c, "当前注册用户数已达上限,请请升级 License") - return - } - // 检查验证码 var key string if data.RegWay == "email" { @@ -327,7 +316,7 @@ func (h *UserHandler) GetWxLoginState(c *gin.Context) { } // createNewUser 创建新用户 -func (h *UserHandler) createNewUser(user model.User, inviteCode string) (model.User, error) { +func (h *UserHandler) createNewUser(user model.User, code string) (model.User, error) { if user.OpenId != "" { user.Platform = "wechat" user.Nickname = fmt.Sprintf("微信用户@%d", utils.RandomNumber(6)) @@ -353,19 +342,22 @@ func (h *UserHandler) createNewUser(user model.User, inviteCode string) (model.U // 创建用户 tx := h.DB.Begin() if err := tx.Create(&user).Error; err != nil { + tx.Rollback() return user, err } // 记录邀请关系 - if inviteCode != "" { - inviteCode := model.InviteCode{} - err := h.DB.Where("code = ?", inviteCode).First(&inviteCode).Error + if code != "" { + var inviteCode model.InviteCode + err := h.DB.Where("code = ?", code).First(&inviteCode).Error if err != nil { + logger.Error("无效的邀请码:", err.Error()) + tx.Rollback() return user, fmt.Errorf("无效的邀请码") } // 增加邀请数量 - h.DB.Model(&model.InviteCode{}).Where("code = ?", inviteCode).UpdateColumn("reg_num", gorm.Expr("reg_num + ?", 1)) + h.DB.Model(&model.InviteCode{}).Where("code = ?", code).UpdateColumn("reg_num", gorm.Expr("reg_num + ?", 1)) if h.App.SysConfig.Base.InvitePower > 0 { err := h.userService.IncreasePower(inviteCode.UserId, h.App.SysConfig.Base.InvitePower, model.PowerLog{ Type: types.PowerInvite, diff --git a/api/main.go b/api/main.go index 7901f8df..3f412813 100644 --- a/api/main.go +++ b/api/main.go @@ -24,6 +24,7 @@ import ( "geekai/service/payment" "geekai/service/sd" "geekai/service/sms" + "geekai/service/sora" "geekai/service/suno" "geekai/service/video" "geekai/store" @@ -166,12 +167,6 @@ func main() { // 邮件服务 fx.Provide(service.NewSmtpService), - // License 服务 - fx.Provide(service.NewLicenseService), - fx.Invoke(func(licenseService *service.LicenseService) { - licenseService.SyncLicense() - }), - // Dalle 服务 fx.Provide(dalle.NewService), fx.Invoke(func(s *dalle.Service) { @@ -189,6 +184,9 @@ func main() { s.DownloadImages() }), + // Sora service + fx.Provide(sora.NewSoraService), + // Stable Diffusion 机器人 fx.Provide(sd.NewService), fx.Invoke(func(s *sd.Service, config *types.AppConfig) { @@ -222,12 +220,8 @@ func main() { fx.Provide(sms.NewAliYunSmsService), fx.Provide(sms.NewBaoSmsService), fx.Provide(sms.NewSmsManager), - fx.Provide(func(config *types.SystemConfig) *service.CaptchaService { - return service.NewCaptchaService(config.Captcha) - }), - fx.Provide(func(config *types.SystemConfig, client *redis.Client) *service.WxLoginService { - return service.NewWxLoginService(config.WxLogin, client) - }), + fx.Provide(service.NewCaptchaService), + fx.Provide(service.NewWxLoginService), // 支付服务 fx.Provide(payment.NewAlipayService), diff --git a/api/service/captcha_service.go b/api/service/captcha_service.go index 998bcac3..fd3e345d 100644 --- a/api/service/captcha_service.go +++ b/api/service/captcha_service.go @@ -20,9 +20,9 @@ type CaptchaService struct { client *req.Client } -func NewCaptchaService(captchaConfig types.CaptchaConfig) *CaptchaService { +func NewCaptchaService(sysConfig *types.SystemConfig) *CaptchaService { return &CaptchaService{ - config: captchaConfig, + config: sysConfig.Captcha, client: req.C().SetTimeout(10 * time.Second), } } @@ -35,7 +35,7 @@ func (s *CaptchaService) GetConfig() types.CaptchaConfig { return s.config } -func (s *CaptchaService) Get() (interface{}, error) { +func (s *CaptchaService) Get() (any, error) { url := fmt.Sprintf("%s/api/captcha/get", types.GeekAPIURL) var res types.BizVo r, err := s.client.R(). diff --git a/api/service/dalle/service.go b/api/service/dalle/dalle_service.go similarity index 92% rename from api/service/dalle/service.go rename to api/service/dalle/dalle_service.go index 8dabfa70..876bbbde 100644 --- a/api/service/dalle/service.go +++ b/api/service/dalle/dalle_service.go @@ -16,7 +16,6 @@ import ( "geekai/store" "geekai/store/model" "geekai/utils" - "strings" "time" "github.com/go-redis/redis/v8" @@ -98,10 +97,8 @@ type imgReq struct { Model string `json:"model"` Image []string `json:"image,omitempty"` Prompt string `json:"prompt"` - N int `json:"n,omitempty"` + AspectRatio string `json:"aspect_ratio,omitempty"` Size string `json:"size,omitempty"` - Quality string `json:"quality,omitempty"` - Style string `json:"style,omitempty"` ResponseFormat string `json:"response_format,omitempty"` } @@ -116,10 +113,10 @@ type imgRes struct { type ErrRes struct { Error struct { - Code interface{} `json:"code"` - Message string `json:"message"` - Param interface{} `json:"param"` - Type string `json:"type"` + Code any `json:"code"` + Message string `json:"message"` + Param any `json:"param"` + Type string `json:"type"` } `json:"error"` } @@ -130,7 +127,7 @@ func (s *Service) Image(task types.DallTask, sync bool) (string, error) { if task.ModelId > 0 { s.db.Where("id", task.ModelId).First(&chatModel) } else { - s.db.Where("value", task.ModelName).First(&chatModel) + s.db.Where("value", task.ModelValue).First(&chatModel) } // get image generation API KEY @@ -153,16 +150,16 @@ func (s *Service) Image(task types.DallTask, sync bool) (string, error) { } apiURL := fmt.Sprintf("%s/v1/images/generations", apiKey.ApiURL) reqBody := imgReq{ - Model: chatModel.Value, - Prompt: task.Prompt, - N: 1, - Size: task.Size, - Style: task.Style, - Quality: task.Quality, + Model: chatModel.Value, + Prompt: task.Prompt, + AspectRatio: task.AspectRatio, + Size: task.Size, + ResponseFormat: "url", } + // 图片编辑 if len(task.Image) > 0 { - reqBody.Prompt = fmt.Sprintf("%s, %s", strings.Join(task.Image, " "), task.Prompt) + reqBody.Image = task.Image } logger.Infof("Channel:%s, API KEY:%s, BODY: %+v", apiURL, apiKey.Value, reqBody) @@ -185,7 +182,7 @@ func (s *Service) Image(task types.DallTask, sync bool) (string, error) { // update the api key last use time s.db.Model(&apiKey).UpdateColumn("last_used_at", time.Now().Unix()) var imgURL string - var data = map[string]interface{}{ + var data = map[string]any{ "progress": 100, "prompt": task.Prompt, } diff --git a/api/service/jimeng/service.go b/api/service/jimeng/service.go index e1fb18bc..df9136f5 100644 --- a/api/service/jimeng/service.go +++ b/api/service/jimeng/service.go @@ -11,6 +11,7 @@ import ( "geekai/core/types" logger2 "geekai/logger" + "geekai/service" "geekai/service/oss" "geekai/store" "geekai/store/model" @@ -23,29 +24,31 @@ var logger = logger2.GetLogger() // Service 即梦服务(合并了消费者功能) type Service struct { - db *gorm.DB - redis *redis.Client - taskQueue *store.RedisQueue - client *Client - ctx context.Context - cancel context.CancelFunc - running bool - uploader *oss.UploaderManager + db *gorm.DB + redis *redis.Client + taskQueue *store.RedisQueue + client *Client + ctx context.Context + cancel context.CancelFunc + running bool + uploader *oss.UploaderManager + userService *service.UserService } // NewService 创建即梦服务 -func NewService(db *gorm.DB, redisCli *redis.Client, uploader *oss.UploaderManager, client *Client) *Service { +func NewService(db *gorm.DB, redisCli *redis.Client, uploader *oss.UploaderManager, client *Client, userService *service.UserService) *Service { taskQueue := store.NewRedisQueue("JimengTaskQueue", redisCli) ctx, cancel := context.WithCancel(context.Background()) return &Service{ - db: db, - redis: redisCli, - taskQueue: taskQueue, - client: client, - ctx: ctx, - cancel: cancel, - running: false, - uploader: uploader, + db: db, + redis: redisCli, + taskQueue: taskQueue, + client: client, + ctx: ctx, + cancel: cancel, + running: false, + uploader: uploader, + userService: userService, } } @@ -115,7 +118,7 @@ func (s *Service) CreateTask(userId uint, req *types.JimengTaskRequest) (*model. ReqKey: req.ReqKey, Prompt: req.Prompt, Params: utils.JsonEncode(req), - Status: types.JMTaskStatusInQueue, + Status: types.JMTaskStatusSubmited, Power: req.Power, CreatedAt: time.Now(), UpdatedAt: time.Now(), @@ -216,6 +219,7 @@ func (s *Service) ProcessTask(jobId uint) error { if err := s.db.Model(&model.JimengJob{}).Where("id = ?", job.Id).Updates(map[string]any{ "task_id": resp.Data.TaskId, "raw_data": string(rawData), + "status": types.JMTaskStatusInQueue, // 把任务状态改成排队中,以便开启轮询 "updated_at": time.Now(), }).Error; err != nil { logger.Errorf("update jimeng job task_id failed: %v", err) @@ -277,12 +281,10 @@ func (s *Service) pollTaskStatus() { for { var jobs []model.JimengJob - s.db.Where("status IN (?)", []types.JMTaskStatus{types.JMTaskStatusGenerating, types.JMTaskStatusInQueue}).Find(&jobs) - if len(jobs) == 0 { - logger.Debugf("no jimeng task to poll, sleep 10s") - time.Sleep(10 * time.Second) - continue - } + // 找出排队中和处理中的任务进行轮询 + s.db.Where("status IN (?)", []types.JMTaskStatus{ + types.JMTaskStatusGenerating, + types.JMTaskStatusInQueue}).Find(&jobs) for _, job := range jobs { // 任务超时处理 @@ -366,6 +368,21 @@ func (s *Service) pollTaskStatus() { } + // 找出失败的任务,并恢复其扣减算力 + s.db.Where("status = ?", types.JMTaskStatusFailed).Where("power > ?", 0).Find(&jobs) + for _, job := range jobs { + err := s.userService.IncreasePower(job.UserId, job.Power, model.PowerLog{ + Type: types.PowerRefund, + Model: job.ReqKey, + Remark: fmt.Sprintf("任务失败,退回算力。任务ID:%d", job.Id), + }) + if err != nil { + continue + } + // 更新任务状态 + s.db.Model(&job).UpdateColumn("power", 0) + } + time.Sleep(5 * time.Second) } diff --git a/api/service/license_service.go b/api/service/license_service.go deleted file mode 100644 index e979bfce..00000000 --- a/api/service/license_service.go +++ /dev/null @@ -1,224 +0,0 @@ -package service - -// * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -// * Copyright 2023 The Geek-AI Authors. All rights reserved. -// * Use of this source code is governed by a Apache-2.0 license -// * that can be found in the LICENSE file. -// * @Author yangjian102621@163.com -// * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -import ( - "errors" - "fmt" - "geekai/core/types" - "geekai/store/model" - "geekai/utils" - "strings" - "time" - - "github.com/imroc/req/v3" - "github.com/shirou/gopsutil/host" - "gorm.io/gorm" -) - -type LicenseService struct { - license *types.License - urlWhiteList []string - machineId string - db *gorm.DB -} - -func NewLicenseService(sysConfig *types.SystemConfig, db *gorm.DB) *LicenseService { - var machineId string - info, err := host.Info() - if err == nil { - machineId = info.HostID - } - logger.Infof("License: %+v", sysConfig.License) - return &LicenseService{ - license: &sysConfig.License, - machineId: machineId, - db: db, - } -} - -type License struct { - Name string `json:"name"` - License string `json:"license"` - MachineId string `json:"mid"` - ActiveAt int64 `json:"active_at"` - ExpiredAt int64 `json:"expired_at"` - UserNum int `json:"user_num"` - Configs types.LicenseConfig `json:"configs"` -} - -// ActiveLicense 激活 License -func (s *LicenseService) ActiveLicense(license string) error { - var res struct { - Code types.BizCode `json:"code"` - Message string `json:"message"` - Data License `json:"data"` - } - apiURL := fmt.Sprintf("%s/%s", types.GeekAPIURL, "api/license/active") - response, err := req.C().R(). - SetBody(map[string]string{"license": license, "machine_id": s.machineId}). - SetSuccessResult(&res).Post(apiURL) - if err != nil { - return fmt.Errorf("发送激活请求失败: %v", err) - } - - if response.IsErrorState() { - return fmt.Errorf("发送激活请求失败:%v", response.Status) - } - - if res.Code != types.Success { - return fmt.Errorf("激活失败:%v", res.Message) - } - - if res.Data.ExpiredAt > 0 && res.Data.ExpiredAt < time.Now().Unix() { - return fmt.Errorf("License 已过期") - } - - s.license = &types.License{ - Key: license, - MachineId: s.machineId, - Configs: res.Data.Configs, - ExpiredAt: res.Data.ExpiredAt, - IsActive: true, - } - - // 保存 License 到数据库 - err = s.db.Model(&model.Config{}).Where("name = ?", types.ConfigKeyLicense).UpdateColumn("value", utils.JsonEncode(s.license)).Error - if err != nil { - return fmt.Errorf("保存 License 到数据库失败: %v", err) - } - - return nil -} - -// SyncLicense 定期同步 License -func (s *LicenseService) SyncLicense() { - go func() { - retryCounter := 0 - for { - license, err := s.fetchLicense() - if err != nil { - retryCounter++ - if retryCounter < 5 { - logger.Debug(err) - } - s.license.IsActive = false - } else { - s.license = license - // 保存 License 到数据库 - err = s.db.Model(&model.Config{}).Where("name = ?", types.ConfigKeyLicense).UpdateColumn("value", utils.JsonEncode(s.license)).Error - if err != nil { - logger.Errorf("保存 License 到数据库失败: %v", err) - } - } - - urls, err := s.fetchUrlWhiteList() - if err == nil { - s.urlWhiteList = urls - } - - time.Sleep(time.Second * 10) - } - }() -} - -func (s *LicenseService) fetchLicense() (*types.License, error) { - var res struct { - Code types.BizCode `json:"code"` - Message string `json:"message"` - Data License `json:"data"` - } - apiURL := fmt.Sprintf("%s/%s", types.GeekAPIURL, "api/license/check") - response, err := req.C().R(). - SetBody(map[string]string{"license": s.license.Key, "machine_id": s.machineId}). - SetSuccessResult(&res).Post(apiURL) - if err != nil { - return nil, fmt.Errorf("License 同步失败: %v", err) - } - if response.IsErrorState() { - return nil, fmt.Errorf("License 同步失败:%v", response.Status) - } - if res.Code != types.Success { - return nil, fmt.Errorf("License 同步失败:%v", res.Message) - } - - return &types.License{ - Key: res.Data.License, - MachineId: res.Data.MachineId, - Configs: res.Data.Configs, - ExpiredAt: res.Data.ExpiredAt, - IsActive: true, - }, nil -} - -func (s *LicenseService) fetchUrlWhiteList() ([]string, error) { - var res struct { - Code types.BizCode `json:"code"` - Message string `json:"message"` - Data []string `json:"data"` - } - apiURL := fmt.Sprintf("%s/%s", types.GeekAPIURL, "api/license/urls") - response, err := req.C().R().SetSuccessResult(&res).Get(apiURL) - if err != nil { - return nil, fmt.Errorf("发送请求失败: %v", err) - } - if response.IsErrorState() { - return nil, fmt.Errorf("发送请求失败:%v", response.Status) - } - if res.Code != types.Success { - return nil, fmt.Errorf("获取白名单失败:%v", res.Message) - } - - return res.Data, nil -} - -// GetLicense 获取许可信息 -func (s *LicenseService) GetLicense() *types.License { - if s.license == nil { - var config model.Config - s.db.Model(&model.Config{}).Where("name = ?", types.ConfigKeyLicense).First(&config) - if config.Value != "" { - utils.JsonDecode(config.Value, &s.license) - } - } - return s.license -} - -func (s *LicenseService) SetLicense(licenseKey string) { - s.license.Key = licenseKey - -} - -// IsValidApiURL 判断是否合法的中转 URL -func (s *LicenseService) IsValidApiURL(uri string) error { - // 获得许可授权的直接放行 - if s.license.IsActive { - if s.license.MachineId != s.machineId { - return errors.New("系统使用了盗版的许可证书") - } - - if time.Now().Unix() > s.license.ExpiredAt { - return errors.New("系统许可证书已经过期") - } - return nil - } - - if len(s.urlWhiteList) == 0 { - urls, err := s.fetchUrlWhiteList() - if err == nil { - s.urlWhiteList = urls - } - } - - for _, v := range s.urlWhiteList { - if strings.HasPrefix(uri, v) { - return nil - } - } - return fmt.Errorf("当前 API 地址 %s 不在白名单列表当中。", uri) -} diff --git a/api/service/mj/client.go b/api/service/mj/client.go index 35ed807a..50604947 100644 --- a/api/service/mj/client.go +++ b/api/service/mj/client.go @@ -13,7 +13,6 @@ import ( "fmt" "geekai/core/types" logger2 "geekai/logger" - "geekai/service" "geekai/store/model" "geekai/utils" "github.com/imroc/req/v3" @@ -26,9 +25,8 @@ import ( // Client MidJourney client type Client struct { - client *req.Client - licenseService *service.LicenseService - db *gorm.DB + client *req.Client + db *gorm.DB } type ImageReq struct { @@ -77,11 +75,10 @@ type QueryRes struct { var logger = logger2.GetLogger() -func NewClient(licenseService *service.LicenseService, db *gorm.DB) *Client { +func NewClient(db *gorm.DB) *Client { return &Client{ - client: req.C().SetTimeout(time.Minute).SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"), - licenseService: licenseService, - db: db, + client: req.C().SetTimeout(time.Minute).SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"), + db: db, } } @@ -198,10 +195,6 @@ func (c *Client) doRequest(body interface{}, apiPath string, channel string) (Im return ImageRes{}, fmt.Errorf("no available MidJourney api key: %v", err) } - if err = c.licenseService.IsValidApiURL(apiKey.ApiURL); err != nil { - return ImageRes{}, err - } - apiURL := fmt.Sprintf("%s/%s", apiKey.ApiURL, apiPath) logger.Info("API URL: ", apiURL) r, err := req.C().R(). diff --git a/api/service/mj/service.go b/api/service/mj/service.go index e7a281fb..498d3bb2 100644 --- a/api/service/mj/service.go +++ b/api/service/mj/service.go @@ -203,8 +203,8 @@ func (s *Service) SyncTaskProgress() { go func() { var jobs []model.MidJourneyJob for { - err := s.db.Where("progress < ?", 100).Find(&jobs).Error - if err != nil { + res := s.db.Where("progress < ?", 100).Where("channel_id <> ?", "").Find(&jobs) + if res.Error != nil { continue } @@ -217,10 +217,6 @@ func (s *Service) SyncTaskProgress() { continue } - if job.ChannelId == "" { - continue - } - task, err := s.client.QueryTask(job.TaskId, job.ChannelId) if err != nil { logger.Errorf("error with query task: %v", err) diff --git a/api/service/sora/sora_service.go b/api/service/sora/sora_service.go new file mode 100644 index 00000000..2d5691ca --- /dev/null +++ b/api/service/sora/sora_service.go @@ -0,0 +1,90 @@ +package sora + +import ( + "encoding/json" + "errors" + "geekai/service/oss" + "geekai/store/vo" + "geekai/utils" + "io" + "net/http" + "path/filepath" + "regexp" + "time" + + logger2 "geekai/logger" +) + +var logger = logger2.GetLogger() + +type SoraService struct { + uploadManager *oss.UploaderManager +} + +func NewSoraService(uploadManager *oss.UploaderManager) *SoraService { + return &SoraService{ + uploadManager: uploadManager, + } +} + +// 下载视频地址 +func (s *SoraService) DownloadVideoURL(text string) (*vo.File, error) { + videoDataURL, err := s.ExtractVideoURL(text) + if err != nil { + return nil, err + } + + // 获取 JSON 数据 + resp, err := http.Get(videoDataURL) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + // 解析视频下载地址 + var videoData map[string]any + err = json.Unmarshal(body, &videoData) + if err != nil { + return nil, err + } + + if v, ok := videoData["url"].(string); ok && v != "" { + logger.Infof("try to download video: %s", v) + videoURL, err := s.uploadManager.GetUploadHandler().PutUrlFile(v, ".mp4", true) + if err != nil { + return nil, err + } + + // 获取文件大小 + size, _ := utils.GetFileSize(videoURL) + name := filepath.Base(videoURL) + return &vo.File{ + Name: name, + ObjKey: name, + URL: videoURL, + Ext: ".mp4", + Size: size, + CreatedAt: time.Now().Unix(), + }, nil + } + + return nil, errors.New("no video URL found: " + string(body)) + +} + +// 从文本中提取视频URL +func (s *SoraService) ExtractVideoURL(text string) (string, error) { + // 提取原始 JSON 数据地址 + //[原始数据](https://asyncdata.net/source/task_01k8pye324ef7t6heq6jyaxbfe) 类似这样的链接 + re := regexp.MustCompile(`\[原始数据\]\((https?://.*?)\)`) + matches := re.FindAllStringSubmatch(text, 1) + if len(matches) == 0 { + return "", errors.New("no video URL found") + } + return matches[0][1], nil +} diff --git a/api/service/user_service.go b/api/service/user_service.go index 43222719..4ce6d064 100644 --- a/api/service/user_service.go +++ b/api/service/user_service.go @@ -70,6 +70,7 @@ func (s *UserService) DecreasePower(userId uint, power int, log model.PowerLog) return fmt.Errorf("扣减算力失败:%v", err) } + tx.Where("id", userId).First(&user) err = tx.Create(&model.PowerLog{ UserId: user.Id, Username: user.Username, diff --git a/api/service/wxlogin_service.go b/api/service/wxlogin_service.go index 4a812572..edeee141 100644 --- a/api/service/wxlogin_service.go +++ b/api/service/wxlogin_service.go @@ -39,9 +39,9 @@ const ( LoginStatusExpired = "expired" // 登录失效,需要重新登录 ) -func NewWxLoginService(config types.WxLoginConfig, redisClient *redis.Client) *WxLoginService { +func NewWxLoginService(sysConfig *types.SystemConfig, redisClient *redis.Client) *WxLoginService { return &WxLoginService{ - config: config, + config: sysConfig.WxLogin, client: req.C().SetTimeout(10 * time.Second), redisClient: redisClient, } diff --git a/api/store/model/admin_user.go b/api/store/model/admin_user.go index 2978cb70..f9abc8ae 100644 --- a/api/store/model/admin_user.go +++ b/api/store/model/admin_user.go @@ -11,7 +11,7 @@ type AdminUser struct { Salt string `gorm:"column:salt;type:char(12);not null;comment:密码盐" json:"salt"` Status bool `gorm:"column:status;type:tinyint(1);not null;comment:当前状态" json:"status"` LastLoginAt int64 `gorm:"column:last_login_at;type:int;not null;comment:最后登录时间" json:"last_login_at"` - LastLoginIp string `gorm:"column:last_login_ip;type:char(16);not null;comment:最后登录 IP" json:"last_login_ip"` + LastLoginIp string `gorm:"column:last_login_ip;type:char(32);not null;comment:最后登录 IP" json:"last_login_ip"` CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null;comment:创建时间" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null;comment:更新时间" json:"updated_at"` } diff --git a/api/store/model/function.go b/api/store/model/function.go index f5fd4d4d..0de15409 100644 --- a/api/store/model/function.go +++ b/api/store/model/function.go @@ -9,6 +9,7 @@ type Function struct { Token string `gorm:"column:token;type:varchar(255);comment:API授权token" json:"token"` Action string `gorm:"column:action;type:varchar(255);comment:函数处理 API" json:"action"` Enabled bool `gorm:"column:enabled;type:tinyint(1);not null;default:0;comment:是否启用" json:"enabled"` + Power int `gorm:"column:power;type:int(11);not null;default:0;comment:消费算力点数" json:"power"` } func (m *Function) TableName() string { diff --git a/api/store/model/user.go b/api/store/model/user.go index 6a47ed59..d407c497 100644 --- a/api/store/model/user.go +++ b/api/store/model/user.go @@ -21,7 +21,7 @@ type User struct { ChatModels string `gorm:"column:chat_models_json;type:text;default:null;comment:AI模型 json" json:"chat_models"` LastLoginAt int64 `gorm:"column:last_login_at;type:int;not null;comment:最后登录时间" json:"last_login_at"` Vip bool `gorm:"column:vip;type:tinyint(1);not null;default:0;comment:是否会员" json:"vip"` - LastLoginIp string `gorm:"column:last_login_ip;type:char(16);not null;comment:最后登录 IP" json:"last_login_ip"` + LastLoginIp string `gorm:"column:last_login_ip;type:char(32);not null;comment:最后登录 IP" json:"last_login_ip"` OpenId string `gorm:"column:openid;type:varchar(100);comment:第三方登录账号ID" json:"openid"` Platform string `gorm:"column:platform;type:varchar(30);comment:登录平台" json:"platform"` CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null" json:"created_at"` diff --git a/api/store/model/user_login_log.go b/api/store/model/user_login_log.go index 434beba3..1f6d6c2b 100644 --- a/api/store/model/user_login_log.go +++ b/api/store/model/user_login_log.go @@ -8,7 +8,7 @@ type UserLoginLog struct { Id uint `gorm:"column:id;primaryKey;autoIncrement" json:"id"` UserId uint `gorm:"column:user_id;type:int(11);not null;comment:用户ID" json:"user_id"` Username string `gorm:"column:username;type:varchar(30);not null;comment:用户名" json:"username"` - LoginIp string `gorm:"column:login_ip;type:char(16);not null;comment:登录IP" json:"login_ip"` + LoginIp string `gorm:"column:login_ip;type:char(32);not null;comment:登录IP" json:"login_ip"` LoginAddress string `gorm:"column:login_address;type:varchar(30);not null;comment:登录地址" json:"login_address"` CreatedAt time.Time `gorm:"column:created_at;type:datetime;not null" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at;type:datetime;not null" json:"updated_at"` diff --git a/api/store/vo/function.go b/api/store/vo/function.go index eb4323e5..774a5d94 100644 --- a/api/store/vo/function.go +++ b/api/store/vo/function.go @@ -20,4 +20,5 @@ type Function struct { Action string `json:"action"` Token string `json:"token"` Enabled bool `json:"enabled"` + Power int `json:"power"` } diff --git a/api/test/test_test.go b/api/test/test_test.go deleted file mode 100644 index 88efd3c2..00000000 --- a/api/test/test_test.go +++ /dev/null @@ -1,10 +0,0 @@ -package test - -import ( - "fmt" - "testing" -) - -func Test(t *testing.T) { - fmt.Println("test") -} diff --git a/api/utils/net.go b/api/utils/net.go index 9fd2c09a..e29c39ca 100644 --- a/api/utils/net.go +++ b/api/utils/net.go @@ -101,3 +101,16 @@ func GetImgExt(filename string) string { } return ext } + +func GetFileSize(url string) (int64, error) { + resp, err := http.Get(url) + if err != nil { + return 0, err + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + if err != nil { + return 0, err + } + return int64(len(body)), nil +} diff --git a/build/build.sh b/build/build.sh index e4171744..2c14915d 100755 --- a/build/build.sh +++ b/build/build.sh @@ -15,10 +15,10 @@ cd ../build # remove docker image if exists docker rmi -f registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:$version-$arch -# build docker image for geekai-go +# build docker image for Geek-AI API docker build -t registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:$version-$arch -f dockerfile-api-go ../ -# build docker image for geekai-web +# build docker image for Geek-AI-web docker rmi -f registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:$version-$arch docker build -t registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:$version-$arch -f dockerfile-web-$arch ../ diff --git a/database/archive/chatgpt_plus-v4.0.9.sql b/database/archive/chatgpt_plus-v4.0.9.sql index 97f8d42c..69197bf8 100644 --- a/database/archive/chatgpt_plus-v4.0.9.sql +++ b/database/archive/chatgpt_plus-v4.0.9.sql @@ -1,30 +1,37 @@ --- MySQL dump 10.13 Distrib 8.0.39, for Linux (x86_64) +-- phpMyAdmin SQL Dump +-- version 5.2.1 +-- https://www.phpmyadmin.net/ -- --- Host: 172.22.11.200 Database: chatgpt_plus --- ------------------------------------------------------ --- Server version 8.0.33 +-- 主机: 127.0.0.1 +-- 生成日期: 2024-06-22 12:15:45 +-- 服务器版本: 8.0.33 +-- PHP 版本: 8.1.2-1ubuntu2.18 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!50503 SET NAMES utf8mb4 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- 数据库: `chatgpt_plus` +-- CREATE DATABASE IF NOT EXISTS `chatgpt_plus` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; USE `chatgpt_plus`; + +-- -------------------------------------------------------- + -- --- Table structure for table `chatgpt_admin_users` +-- 表的结构 `chatgpt_admin_users` -- DROP TABLE IF EXISTS `chatgpt_admin_users`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_admin_users` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', `salt` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码盐', @@ -32,31 +39,25 @@ CREATE TABLE `chatgpt_admin_users` ( `last_login_at` int NOT NULL COMMENT '最后登录时间', `last_login_ip` char(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '最后登录 IP', `created_at` datetime NOT NULL COMMENT '创建时间', - `updated_at` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE KEY `username` (`username`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='系统用户'; -/*!40101 SET character_set_client = @saved_cs_client */; + `updated_at` datetime NOT NULL COMMENT '更新时间' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统用户' ROW_FORMAT=DYNAMIC; -- --- Dumping data for table `chatgpt_admin_users` +-- 转存表中的数据 `chatgpt_admin_users` -- -LOCK TABLES `chatgpt_admin_users` WRITE; -/*!40000 ALTER TABLE `chatgpt_admin_users` DISABLE KEYS */; -INSERT INTO `chatgpt_admin_users` VALUES (1,'admin','6d17e80c87d209efb84ca4b2e0824f549d09fac8b2e1cc698de5bb5e1d75dfd0','mmrql75o',1,1725519733,'10.0.2.2','2024-03-11 16:30:20','2024-09-05 15:02:14'); -/*!40000 ALTER TABLE `chatgpt_admin_users` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_admin_users` (`id`, `username`, `password`, `salt`, `status`, `last_login_at`, `last_login_ip`, `created_at`, `updated_at`) VALUES +(1, 'admin', '6d17e80c87d209efb84ca4b2e0824f549d09fac8b2e1cc698de5bb5e1d75dfd0', 'mmrql75o', 1, 1718094709, '172.22.11.200', '2024-03-11 16:30:20', '2024-06-11 16:31:50'); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_api_keys` +-- 表的结构 `chatgpt_api_keys` -- DROP TABLE IF EXISTS `chatgpt_api_keys`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_api_keys` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `platform` char(20) DEFAULT NULL COMMENT '平台', `name` varchar(30) DEFAULT NULL COMMENT '名称', `value` varchar(100) NOT NULL COMMENT 'API KEY value', @@ -66,29 +67,18 @@ CREATE TABLE `chatgpt_api_keys` ( `enabled` tinyint(1) DEFAULT NULL COMMENT '是否启用', `proxy_url` varchar(100) DEFAULT NULL COMMENT '代理地址', `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='OpenAI API '; -/*!40101 SET character_set_client = @saved_cs_client */; + `updated_at` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='OpenAI API '; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_api_keys` --- - -LOCK TABLES `chatgpt_api_keys` WRITE; -/*!40000 ALTER TABLE `chatgpt_api_keys` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_api_keys` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_chat_history` +-- 表的结构 `chatgpt_chat_history` -- DROP TABLE IF EXISTS `chatgpt_chat_history`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_chat_history` ( - `id` bigint NOT NULL AUTO_INCREMENT, + `id` bigint NOT NULL, `user_id` int NOT NULL COMMENT '用户 ID', `chat_id` char(40) NOT NULL COMMENT '会话 ID', `type` varchar(10) NOT NULL COMMENT '类型:prompt|reply', @@ -100,31 +90,18 @@ CREATE TABLE `chatgpt_chat_history` ( `use_context` tinyint(1) NOT NULL COMMENT '是否允许作为上下文语料', `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, - `deleted_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `chat_id` (`chat_id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天历史记录'; -/*!40101 SET character_set_client = @saved_cs_client */; + `deleted_at` datetime DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天历史记录'; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_chat_history` --- - -LOCK TABLES `chatgpt_chat_history` WRITE; -/*!40000 ALTER TABLE `chatgpt_chat_history` DISABLE KEYS */; -INSERT INTO `chatgpt_chat_history` VALUES (1,4,'2da9cd3e-ec4b-4c2c-9ce6-b513429b6d92','prompt','http://localhost:5678/static/upload/2024/5/1715651569509929.png',1,'gpt-3.5-turbo','你是什么模型',7,1,'2024-09-05 15:04:30','2024-09-05 15:04:30',NULL),(2,4,'2da9cd3e-ec4b-4c2c-9ce6-b513429b6d92','reply','/images/avatar/gpt.png',1,'gpt-3.5-turbo','我是一个基于深度学习和自然语言处理技术的人工智能对话模型,能够进行自动回复和与用户进行交互。',54,1,'2024-09-05 15:04:33','2024-09-05 15:04:33',NULL); -/*!40000 ALTER TABLE `chatgpt_chat_history` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_chat_items` +-- 表的结构 `chatgpt_chat_items` -- DROP TABLE IF EXISTS `chatgpt_chat_items`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_chat_items` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `chat_id` char(40) NOT NULL COMMENT '会话 ID', `user_id` int NOT NULL COMMENT '用户 ID', `role_id` int NOT NULL COMMENT '角色 ID', @@ -133,31 +110,18 @@ CREATE TABLE `chatgpt_chat_items` ( `model` varchar(30) DEFAULT NULL COMMENT '模型名称', `created_at` datetime NOT NULL COMMENT '创建时间', `updated_at` datetime NOT NULL COMMENT '更新时间', - `deleted_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `chat_id` (`chat_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户会话列表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `deleted_at` datetime DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户会话列表'; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_chat_items` --- - -LOCK TABLES `chatgpt_chat_items` WRITE; -/*!40000 ALTER TABLE `chatgpt_chat_items` DISABLE KEYS */; -INSERT INTO `chatgpt_chat_items` VALUES (1,'2da9cd3e-ec4b-4c2c-9ce6-b513429b6d92',4,1,'你是什么模型',1,'gpt-3.5-turbo','2024-09-05 15:04:34','2024-09-05 15:04:34','2024-09-05 15:13:52'); -/*!40000 ALTER TABLE `chatgpt_chat_items` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_chat_models` +-- 表的结构 `chatgpt_chat_models` -- DROP TABLE IF EXISTS `chatgpt_chat_models`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_chat_models` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `platform` varchar(20) DEFAULT NULL COMMENT '模型平台', `name` varchar(50) NOT NULL COMMENT '模型名称', `value` varchar(50) NOT NULL COMMENT '模型值', @@ -170,30 +134,53 @@ CREATE TABLE `chatgpt_chat_models` ( `open` tinyint(1) NOT NULL COMMENT '是否开放模型', `key_id` int NOT NULL COMMENT '绑定API KEY ID', `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI 模型表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `updated_at` datetime DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI 模型表'; -- --- Dumping data for table `chatgpt_chat_models` +-- 转存表中的数据 `chatgpt_chat_models` -- -LOCK TABLES `chatgpt_chat_models` WRITE; -/*!40000 ALTER TABLE `chatgpt_chat_models` DISABLE KEYS */; -INSERT INTO `chatgpt_chat_models` VALUES (15,'OpenAI','GPT-超级模型','gpt-4-all',3,1,30,1.0,4096,32768,1,0,'2024-01-15 11:32:52','2024-09-05 15:10:58'),(21,'OpenAI','董宇辉小作文助手','gpt-4-gizmo-g-dse9iXvor',4,1,30,1.0,8192,32768,1,0,'2024-03-18 14:24:20','2024-09-05 15:10:58'),(28,'OpenAI','GPT-4o-min','GPT-4o-min',1,1,0,1.0,1024,16384,1,0,'2024-04-12 15:16:43','2024-09-05 15:10:58'),(36,'OpenAI','GPT-4O','gpt-4o',2,1,15,1.0,4096,16384,1,57,'2024-05-14 09:25:15','2024-09-05 15:10:58'); -/*!40000 ALTER TABLE `chatgpt_chat_models` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_chat_models` (`id`, `platform`, `name`, `value`, `sort_num`, `enabled`, `power`, `temperature`, `max_tokens`, `max_context`, `open`, `key_id`, `created_at`, `updated_at`) VALUES +(1, 'OpenAI', 'GPT-3.5', 'gpt-3.5-turbo', 1, 1, 0, 1.0, 1024, 4096, 1, 0, '2023-08-23 12:06:36', '2024-05-29 09:19:06'), +(2, 'Azure', 'Azure-3.5', 'gpt-3.5-turbo', 22, 1, 1, 1.0, 1024, 4096, 0, 0, '2023-08-23 12:15:30', '2024-05-29 09:19:06'), +(3, 'ChatGLM', 'ChatGML-Pro', 'chatglm_pro', 11, 1, 1, 1.0, 2048, 32768, 1, 0, '2023-08-23 13:35:45', '2024-05-29 09:19:06'), +(7, 'Baidu', '文心一言3.0', 'eb-instant', 20, 1, 1, 1.0, 1024, 4096, 1, 0, '2023-10-11 11:29:28', '2024-05-29 09:19:06'), +(8, 'XunFei', '星火V3.5', 'generalv3.5', 10, 1, 5, 0.8, 1024, 8192, 1, 0, '2023-10-11 15:48:30', '2024-05-29 09:19:06'), +(9, 'XunFei', '星火V2.0', 'generalv2', 19, 1, 1, 1.0, 1024, 8192, 1, 0, '2023-10-11 15:48:45', '2024-05-29 09:19:06'), +(10, 'Baidu', '文心一言4.0', 'completions_pro', 21, 1, 3, 1.0, 1024, 8192, 1, 0, '2023-10-25 08:31:37', '2024-05-29 09:19:06'), +(11, 'OpenAI', 'GPT-4.0', 'gpt-4-0125-preview', 9, 1, 15, 1.0, 2048, 8192, 1, 0, '2023-10-25 08:45:15', '2024-05-29 09:19:06'), +(12, 'XunFei', '星火v3.0', 'generalv3', 18, 1, 3, 1.0, 1024, 8192, 1, 0, '2023-11-23 09:20:33', '2024-05-29 09:19:06'), +(15, 'OpenAI', 'GPT-超级模型', 'gpt-4-all', 12, 1, 30, 1.0, 4096, 32768, 0, 0, '2024-01-15 11:32:52', '2024-05-29 09:19:06'), +(16, 'OpenAI', '视频号导师', 'gpt-4-gizmo-g-QXXEBTXl7', 13, 1, 30, 1.0, 4096, 32768, 0, 0, '2024-01-15 14:46:35', '2024-05-29 09:19:06'), +(17, 'QWen', '通义千问-Turbo', 'qwen-turbo', 15, 1, 1, 1.0, 1024, 8192, 1, 0, '2024-01-19 10:42:24', '2024-05-29 09:19:06'), +(18, 'QWen', '通义千问-Plus', 'qwen-plus', 16, 1, 1, 1.0, 1024, 32768, 1, 0, '2024-01-19 10:42:49', '2024-05-29 09:19:06'), +(19, 'QWen', '通义千问-Max', 'qwen-max-1201', 17, 1, 1, 1.0, 1024, 32768, 1, 0, '2024-01-19 10:51:03', '2024-05-29 09:19:06'), +(21, 'OpenAI', '董宇辉小作文助手', 'gpt-4-gizmo-g-dse9iXvor', 14, 1, 30, 1.0, 8192, 32768, 0, 0, '2024-03-18 14:24:20', '2024-05-29 09:19:06'), +(22, 'OpenAI', 'LOGO生成神器', 'gpt-4-gizmo-g-YL87j8C7S', 8, 1, 30, 1.0, 1024, 4096, 1, 44, '2024-03-20 14:02:11', '2024-05-29 09:19:06'), +(23, 'OpenAI', '音乐生成器', 'suno-v3', 7, 1, 50, 0.8, 1024, 4096, 1, 44, '2024-03-29 15:43:40', '2024-05-29 09:19:06'), +(24, 'OpenAI', '通义千问(中转)', 'qwen-plus', 6, 1, 1, 1.0, 1024, 4096, 1, 0, '2024-04-03 12:00:46', '2024-05-29 09:19:06'), +(25, 'OpenAI', 'GPT4-TURBO', 'gpt-4-turbo', 5, 1, 15, 1.0, 2048, 8092, 1, 0, '2024-04-10 08:35:17', '2024-05-29 09:19:06'), +(26, 'QWen', '通义千问-Turbo', 'qwen-turbo', 4, 1, 2, 1.0, 1024, 8192, 1, 0, '2024-04-12 14:11:19', '2024-05-29 09:19:06'), +(27, 'QWen', '通义千问-Plus', 'qwen-plus', 3, 1, 2, 1.0, 1024, 8192, 1, 0, '2024-04-12 14:11:52', '2024-05-29 09:19:06'), +(28, 'OpenAI', 'GPT-3.5(免费)', 'gpt-3.5-turbo', 23, 1, 0, 1.0, 1024, 16384, 1, 53, '2024-04-12 15:16:43', '2024-05-29 09:19:06'), +(34, 'OpenAI', 'LLAMA3', 'llama3-8b', 24, 1, 1, 1.0, 1024, 8192, 1, 56, '2024-04-30 15:22:50', '2024-05-29 09:19:06'), +(35, 'OpenAI', 'GPT-3.5-16K', 'gpt-3.5-turbo-16k', 2, 1, 1, 1.0, 4096, 16384, 1, 0, '2024-05-10 15:20:27', '2024-05-29 09:19:06'), +(36, 'OpenAI', 'GPT-4O', 'gpt-4o', 25, 1, 15, 1.0, 4096, 16384, 1, 57, '2024-05-14 09:25:15', '2024-05-29 09:19:06'), +(38, 'OpenAI', 'Gemini-pro', 'gemini-pro-1.5', 26, 1, 10, 1.0, 2048, 8192, 1, 0, '2024-05-27 18:10:35', '2024-05-29 09:19:06'), +(39, 'Baidu', 'ERNIE-Speed-8K', 'ernie_speed', 26, 1, 1, 1.0, 1024, 8192, 1, 0, '2024-05-29 15:04:19', '2024-05-29 15:04:19'), +(40, 'Azure', 'Azure-GPT-4O', 'xygpt4o', 27, 1, 20, 1.0, 4096, 8192, 1, 62, '2024-06-03 17:22:37', '2024-06-03 17:47:46'), +(41, 'OpenAI', 'GLM-3-Turbo', 'glm-3-turbo', 28, 1, 2, 1.0, 1024, 8192, 1, 64, '2024-06-06 11:40:46', '2024-06-06 11:40:46'); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_chat_roles` +-- 表的结构 `chatgpt_chat_roles` -- DROP TABLE IF EXISTS `chatgpt_chat_roles`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_chat_roles` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `name` varchar(30) NOT NULL COMMENT '角色名称', `marker` varchar(30) NOT NULL COMMENT '角色标识', `context_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色语料 json', @@ -203,57 +190,62 @@ CREATE TABLE `chatgpt_chat_roles` ( `sort_num` smallint NOT NULL DEFAULT '0' COMMENT '角色排序', `model_id` int NOT NULL DEFAULT '0' COMMENT '绑定模型ID', `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `marker` (`marker`) -) ENGINE=InnoDB AUTO_INCREMENT=132 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天角色表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `updated_at` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天角色表'; -- --- Dumping data for table `chatgpt_chat_roles` +-- 转存表中的数据 `chatgpt_chat_roles` -- -LOCK TABLES `chatgpt_chat_roles` WRITE; -/*!40000 ALTER TABLE `chatgpt_chat_roles` DISABLE KEYS */; -INSERT INTO `chatgpt_chat_roles` VALUES (1,'通用AI助手','gpt','','您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。','/images/avatar/gpt.png',1,0,0,'2023-05-30 07:02:06','2024-03-15 09:15:42'),(24,'程序员','programmer','[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]','Talk is cheap, i will show code!','/images/avatar/programmer.jpg',1,3,0,'2023-05-30 14:10:24','2023-12-29 17:46:45'),(25,'启蒙老师','teacher','[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]','同学你好,我将引导你一步一步自己找到问题的答案。','/images/avatar/teacher.jpg',1,2,0,'2023-05-30 14:10:24','2023-12-29 17:46:44'),(26,'艺术家','artist','[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]','坚持原创,勇于表达,保持深刻的观察力和批判性思维。','/images/avatar/artist.jpg',1,4,0,'2023-05-30 14:10:24','2023-12-29 17:46:45'),(27,'心理咨询师','psychiatrist','[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]','作为一名心理学家和心理治疗师,我的主要职责是帮助您解决心理健康问题,提升您的生活质量和幸福感。','/images/avatar/psychiatrist.jpg',1,1,1,'2023-05-30 14:10:24','2024-04-12 11:54:53'),(28,'鲁迅','lu_xun','[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]','自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。','/images/avatar/lu_xun.jpg',1,5,0,'2023-05-30 14:10:24','2023-12-29 17:46:46'),(29,'白酒销售','seller','[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]','你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。','/images/avatar/seller.jpg',0,8,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(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,6,0,'2023-05-30 14:10:24','2023-12-29 17:46:47'),(31,'中英文翻译官','translator','[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]','请输入你要翻译的中文或者英文内容!','/images/avatar/translator.jpg',1,7,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(32,'小红书姐姐','red_book','[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]','姐妹,请告诉我您的具体文案需求是什么?','/images/avatar/red_book.jpg',1,9,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(33,'抖音文案助手','dou_yin','[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]','请告诉我视频内容的主题是什么?','/images/avatar/dou_yin.jpg',1,10,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(34,'周报小助理','weekly_report','[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]','请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。','/images/avatar/weekly_report.jpg',1,11,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(35,'AI 女友','girl_friend','[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]','作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。','/images/avatar/girl_friend.jpg',1,12,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(36,'好评神器','good_comment','[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]','我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。','/images/avatar/good_comment.jpg',1,13,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(37,'史蒂夫·乔布斯','steve_jobs','[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]','活着就是为了改变世界,难道还有其他原因吗?','/images/avatar/steve_jobs.jpg',1,14,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(38,'埃隆·马斯克','elon_musk','[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]','梦想要远大,如果你的梦想没有吓到你,说明你做得不对。','/images/avatar/elon_musk.jpg',1,15,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'),(39,'孔子','kong_zi','[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]','士不可以不弘毅,任重而道远。','/images/avatar/kong_zi.jpg',1,16,0,'2023-05-30 14:10:24','2023-12-29 17:43:53'); -/*!40000 ALTER TABLE `chatgpt_chat_roles` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_chat_roles` (`id`, `name`, `marker`, `context_json`, `hello_msg`, `icon`, `enable`, `sort_num`, `model_id`, `created_at`, `updated_at`) VALUES +(1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', '/images/avatar/gpt.png', 1, 0, 0, '2023-05-30 07:02:06', '2024-03-15 09:15:42'), +(24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', '/images/avatar/programmer.jpg', 1, 3, 0, '2023-05-30 14:10:24', '2023-12-29 17:46:45'), +(25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', '/images/avatar/teacher.jpg', 1, 2, 0, '2023-05-30 14:10:24', '2023-12-29 17:46:44'), +(26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', '/images/avatar/artist.jpg', 1, 4, 0, '2023-05-30 14:10:24', '2023-12-29 17:46:45'), +(27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '作为一名心理学家和心理治疗师,我的主要职责是帮助您解决心理健康问题,提升您的生活质量和幸福感。', '/images/avatar/psychiatrist.jpg', 1, 1, 1, '2023-05-30 14:10:24', '2024-04-12 11:54:53'), +(28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', '/images/avatar/lu_xun.jpg', 1, 5, 0, '2023-05-30 14:10:24', '2023-12-29 17:46:46'), +(29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', '/images/avatar/seller.jpg', 0, 8, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(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, 6, 0, '2023-05-30 14:10:24', '2023-12-29 17:46:47'), +(31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', '/images/avatar/translator.jpg', 1, 7, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', '/images/avatar/red_book.jpg', 1, 9, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', '/images/avatar/dou_yin.jpg', 1, 10, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', '/images/avatar/weekly_report.jpg', 1, 11, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', '/images/avatar/girl_friend.jpg', 1, 12, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', '/images/avatar/good_comment.jpg', 1, 13, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', '/images/avatar/steve_jobs.jpg', 1, 14, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', '/images/avatar/elon_musk.jpg', 1, 15, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'), +(39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', '/images/avatar/kong_zi.jpg', 1, 16, 0, '2023-05-30 14:10:24', '2023-12-29 17:43:53'); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_configs` +-- 表的结构 `chatgpt_configs` -- DROP TABLE IF EXISTS `chatgpt_configs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_configs` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `marker` varchar(20) NOT NULL COMMENT '标识', - `config_json` text NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `marker` (`marker`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; + `config_json` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- --- Dumping data for table `chatgpt_configs` +-- 转存表中的数据 `chatgpt_configs` -- -LOCK TABLES `chatgpt_configs` WRITE; -/*!40000 ALTER TABLE `chatgpt_configs` DISABLE KEYS */; -INSERT INTO `chatgpt_configs` VALUES (1,'system','{\"title\":\"Geek-AI 创作系统\",\"admin_title\":\"Geek-AI 控制台\",\"logo\":\"https://chat.geekai.me/static/upload/2024/4/1713867582139009.png\",\"init_power\":100,\"daily_power\":99,\"invite_power\":10,\"vip_month_power\":1000,\"register_ways\":[\"mobile\",\"username\",\"email\"],\"enabled_register\":true,\"reward_img\":\"/images/wx.png\",\"enabled_reward\":true,\"power_price\":0.1,\"order_pay_timeout\":30,\"vip_info_text\":\"月度会员,年度会员每月赠送 1000 点算力,赠送算力当月有效当月没有消费完的算力不结余到下个月。 点卡充值的算力长期有效。\",\"default_models\":[11,7,1,10,12,19,18,17,3],\"mj_power\":30,\"mj_action_power\":10,\"sd_power\":10,\"dall_power\":15,\"wechat_card_url\":\"/images/wx.png\",\"enable_context\":true,\"context_deep\":4,\"sd_neg_prompt\":\"nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet\",\"rand_bg\":true}'),(3,'notice','{\"sd_neg_prompt\":\"\",\"rand_bg\":false,\"content\":\"## v4.0.9 更新日志\\n\\n* 环境升级:升级 Golang 到 go1.22.4\\n* 功能增加:接入微信商户号支付渠道\\n* Bug修复:修复前端页面菜单把页面撑开,底部留白问题\\n* 功能优化:聊天页面自动根据内容调整输入框的高度\\n* Bug修复:修复Dalle绘图失败退回算力的问题\\n* 功能优化:邀请码注册时被邀请人也可以获得赠送的算力\\n* 功能优化:允许设置邮件验证码的抬头\\n* Bug修复:修复免费模型不会记录聊天记录的bug\\n* Bug修复:修复聊天输入公式显示异常的Bug\\n\\n注意:当前站点仅为开源项目 \\u003ca style=\\\"color: #F56C6C\\\" href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003eChatPlus\\u003c/a\\u003e 的演示项目,本项目单纯就是给大家体验项目功能使用。\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n 如果觉得好用你就花几分钟自己部署一套,没有API KEY 的同学可以去下面几个推荐的中转站购买:\\n1、\\u003ca href=\\\"https://api.chat-plus.net\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.chat-plus.net\\u003c/a\\u003e\\n2、\\u003ca href=\\\"https://api.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.geekai.me\\u003c/a\\u003e\\n3、 \\u003ca href=\\\"https://gpt.bemore.lol\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://gpt.bemore.lol\\u003c/a\\u003e\\n支持MidJourney,GPT,Claude,Google Gemmi,以及国内各个厂家的大模型,现在有超级优惠,价格远低于 OpenAI 官方。关于中转 API 的优势和劣势请参考 [中转API技术原理](https://docs.geekai.me/config/chat/#%E4%B8%AD%E8%BD%ACapi%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86)。GPT-3.5,GPT-4,DALL-E3 绘图......你都可以随意使用,无需魔法。\\n接入教程: \\u003ca href=\\\"https://docs.geekai.me/\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://docs.geekai.me\\u003c/a\\u003e\\n本项目源码地址:\\u003ca href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003ehttps://github.com/yangjian102621/chatgpt-plus\\u003c/a\\u003e\",\"updated\":true}'); -/*!40000 ALTER TABLE `chatgpt_configs` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_configs` (`id`, `marker`, `config_json`) VALUES +(1, 'system', '{\"title\":\"GeekAI 创作系统\",\"slogan\":\"你有多少想象力,AI 就有多大创造力。我辈之人,先干为敬,陪您先把 AI 用起来。\",\"admin_title\":\"GeekAI 控制台\",\"logo\":\"http://localhost:5678/static/upload/2024/4/1714382860986912.png\",\"init_power\":100,\"daily_power\":99,\"invite_power\":1024,\"vip_month_power\":1000,\"register_ways\":[\"mobile\",\"username\",\"email\"],\"reward_img\":\"http://localhost:5678/static/upload/2024/3/1710753716309668.jpg\",\"enabled_reward\":true,\"power_price\":0.1,\"order_pay_timeout\":600,\"vip_info_text\":\"月度会员,年度会员每月赠送 1000 点算力,赠送算力当月有效当月没有消费完的算力不结余到下个月。 点卡充值的算力长期有效。\",\"default_models\":[11,7,1,10,12,19,18,17,3],\"mj_power\":30,\"mj_action_power\":10,\"sd_power\":10,\"dall_power\":15,\"wechat_card_url\":\"/images/wx.png\",\"enable_context\":true,\"context_deep\":4,\"sd_neg_prompt\":\"nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet\",\"rand_bg\":true}'), +(3, 'notice', '{\"sd_neg_prompt\":\"\",\"rand_bg\":false,\"content\":\"## v4.0.9 更新日志\\n\\n* 环境升级:升级 Golang 到 go1.22.4\\n* 功能增加:接入微信商户号支付渠道\\n* Bug修复:修复前端页面菜单把页面撑开,底部留白问题\\n* 功能优化:聊天页面自动根据内容调整输入框的高度\\n* Bug修复:修复Dalle绘图失败退回算力的问题\\n* 功能优化:邀请码注册时被邀请人也可以获得赠送的算力\\n* 功能优化:允许设置邮件验证码的抬头\\n* Bug修复:修复免费模型不会记录聊天记录的bug\\n* Bug修复:修复聊天输入公式显示异常的Bug\\n\\n注意:当前站点仅为开源项目 \\u003ca style=\\\"color: #F56C6C\\\" href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003eChatPlus\\u003c/a\\u003e 的演示项目,本项目单纯就是给大家体验项目功能使用。\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n 如果觉得好用你就花几分钟自己部署一套,没有API KEY 的同学可以去下面几个推荐的中转站购买:\\n1、\\u003ca href=\\\"https://api.chat-plus.net\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.chat-plus.net\\u003c/a\\u003e\\n2、\\u003ca href=\\\"https://api.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.geekai.me\\u003c/a\\u003e\\n3、 \\u003ca href=\\\"https://gpt.bemore.lol\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://gpt.bemore.lol\\u003c/a\\u003e\\n支持MidJourney,GPT,Claude,Google Gemmi,以及国内各个厂家的大模型,现在有超级优惠,价格远低于 OpenAI 官方。关于中转 API 的优势和劣势请参考 [中转API技术原理](https://ai.r9it.com/docs/install/errors-handle.html#%E8%B0%83%E7%94%A8%E4%B8%AD%E8%BD%AC-api-%E6%8A%A5%E9%94%99%E6%97%A0%E5%8F%AF%E7%94%A8%E6%B8%A0%E9%81%93)。GPT-3.5,GPT-4,DALL-E3 绘图......你都可以随意使用,无需魔法。\\n接入教程: \\u003ca href=\\\"https://ai.r9it.com/docs/install/\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://ai.r9it.com/docs/install/\\u003c/a\\u003e\\n本项目源码地址:\\u003ca href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003ehttps://github.com/yangjian102621/chatgpt-plus\\u003c/a\\u003e\",\"updated\":true}'); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_dall_jobs` +-- 表的结构 `chatgpt_dall_jobs` -- DROP TABLE IF EXISTS `chatgpt_dall_jobs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_dall_jobs` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户ID', `prompt` varchar(2000) NOT NULL COMMENT '提示词', `img_url` varchar(255) NOT NULL COMMENT '图片地址', @@ -262,174 +254,130 @@ CREATE TABLE `chatgpt_dall_jobs` ( `power` smallint NOT NULL COMMENT '消耗算力', `progress` smallint NOT NULL COMMENT '任务进度', `err_msg` varchar(255) NOT NULL COMMENT '错误信息', - `created_at` datetime NOT NULL, - PRIMARY KEY (`id`) + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DALLE 绘图任务表'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_dall_jobs` --- - -LOCK TABLES `chatgpt_dall_jobs` WRITE; -/*!40000 ALTER TABLE `chatgpt_dall_jobs` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_dall_jobs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_files` +-- 表的结构 `chatgpt_files` -- DROP TABLE IF EXISTS `chatgpt_files`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_files` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户 ID', `name` varchar(100) NOT NULL COMMENT '文件名', `obj_key` varchar(100) DEFAULT NULL COMMENT '文件标识', `url` varchar(255) NOT NULL COMMENT '文件地址', `ext` varchar(10) NOT NULL COMMENT '文件后缀', `size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小', - `created_at` datetime NOT NULL COMMENT '创建时间', - PRIMARY KEY (`id`) + `created_at` datetime NOT NULL COMMENT '创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户文件表'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_files` --- - -LOCK TABLES `chatgpt_files` WRITE; -/*!40000 ALTER TABLE `chatgpt_files` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_files` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_functions` +-- 表的结构 `chatgpt_functions` -- DROP TABLE IF EXISTS `chatgpt_functions`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_functions` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `name` varchar(30) NOT NULL COMMENT '函数名称', `label` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '函数标签', `description` varchar(255) DEFAULT NULL COMMENT '函数描述', `parameters` text COMMENT '函数参数(JSON)', `token` varchar(255) DEFAULT NULL COMMENT 'API授权token', `action` varchar(255) DEFAULT NULL COMMENT '函数处理 API', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='函数插件表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='函数插件表'; -- --- Dumping data for table `chatgpt_functions` +-- 转存表中的数据 `chatgpt_functions` -- -LOCK TABLES `chatgpt_functions` WRITE; -/*!40000 ALTER TABLE `chatgpt_functions` DISABLE KEYS */; -INSERT INTO `chatgpt_functions` VALUES (1,'weibo','微博热搜','新浪微博热搜榜,微博当日热搜榜单','{\"type\":\"object\",\"properties\":{}}','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw','http://localhost:5678/api/function/weibo',0),(2,'zaobao','今日早报','每日早报,获取当天新闻事件列表','{\"type\":\"object\",\"properties\":{}}','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw','http://localhost:5678/api/function/zaobao',0),(3,'dalle3','DALLE3','AI 绘画工具,根据输入的绘图描述用 AI 工具进行绘画','{\"type\":\"object\",\"required\":[\"prompt\"],\"properties\":{\"prompt\":{\"type\":\"string\",\"description\":\"绘画提示词\"}}}','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw','http://localhost:5678/api/function/dalle3',0); -/*!40000 ALTER TABLE `chatgpt_functions` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_functions` (`id`, `name`, `label`, `description`, `parameters`, `token`, `action`, `enabled`) VALUES +(1, 'weibo', '微博热搜', '新浪微博热搜榜,微博当日热搜榜单', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/weibo', 1), +(2, 'zaobao', '今日早报', '每日早报,获取当天新闻事件列表', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/zaobao', 0), +(3, 'dalle3', 'DALLE3', 'AI 绘画工具,根据输入的绘图描述用 AI 工具进行绘画', '{\"type\":\"object\",\"required\":[\"prompt\"],\"properties\":{\"prompt\":{\"type\":\"string\",\"description\":\"绘画提示词\"}}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/dalle3', 1); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_invite_codes` +-- 表的结构 `chatgpt_invite_codes` -- DROP TABLE IF EXISTS `chatgpt_invite_codes`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_invite_codes` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户ID', `code` char(8) NOT NULL COMMENT '邀请码', `hits` int NOT NULL COMMENT '点击次数', `reg_num` smallint NOT NULL COMMENT '注册数量', - `created_at` datetime NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户邀请码'; -/*!40101 SET character_set_client = @saved_cs_client */; + `created_at` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户邀请码'; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_invite_codes` --- - -LOCK TABLES `chatgpt_invite_codes` WRITE; -/*!40000 ALTER TABLE `chatgpt_invite_codes` DISABLE KEYS */; -INSERT INTO `chatgpt_invite_codes` VALUES (1,4,'RI8KG3UF',0,0,'2024-09-05 15:04:44'); -/*!40000 ALTER TABLE `chatgpt_invite_codes` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_invite_logs` +-- 表的结构 `chatgpt_invite_logs` -- DROP TABLE IF EXISTS `chatgpt_invite_logs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_invite_logs` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `inviter_id` int NOT NULL COMMENT '邀请人ID', `user_id` int NOT NULL COMMENT '注册用户ID', `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', `invite_code` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '邀请码', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', - `created_at` datetime NOT NULL, - PRIMARY KEY (`id`) + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='邀请注册日志'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_invite_logs` --- - -LOCK TABLES `chatgpt_invite_logs` WRITE; -/*!40000 ALTER TABLE `chatgpt_invite_logs` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_invite_logs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_menus` +-- 表的结构 `chatgpt_menus` -- DROP TABLE IF EXISTS `chatgpt_menus`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_menus` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `name` varchar(30) NOT NULL COMMENT '菜单名称', `icon` varchar(150) NOT NULL COMMENT '菜单图标', `url` varchar(100) NOT NULL COMMENT '地址', `sort_num` smallint NOT NULL COMMENT '排序', - `enabled` tinyint(1) NOT NULL COMMENT '是否启用', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='前端菜单表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `enabled` tinyint(1) NOT NULL COMMENT '是否启用' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='前端菜单表'; -- --- Dumping data for table `chatgpt_menus` +-- 转存表中的数据 `chatgpt_menus` -- -LOCK TABLES `chatgpt_menus` WRITE; -/*!40000 ALTER TABLE `chatgpt_menus` DISABLE KEYS */; -INSERT INTO `chatgpt_menus` VALUES (1,'对话聊天','/images/menu/chat.png','/chat',1,1),(5,'MJ 绘画','/images/menu/mj.png','/mj',2,1),(6,'SD 绘画','/images/menu/sd.png','/sd',3,1),(7,'算力日志','/images/menu/log.png','/powerLog',8,1),(8,'应用中心','/images/menu/app.png','/apps',7,1),(9,'画廊','/images/menu/img-wall.png','/images-wall',5,1),(10,'会员计划','/images/menu/member.png','/member',9,1),(11,'分享计划','/images/menu/share.png','/invite',10,1),(12,'思维导图','/images/menu/xmind.png','/xmind',6,1),(13,'DALLE','/images/menu/dalle.png','/dalle',4,1),(14,'项目文档','/images/menu/docs.png','https://docs.geekai.me',11,1),(16,'极客论坛','/images/menu/bbs.png','https://bbs.geekai.cn',13,1); -/*!40000 ALTER TABLE `chatgpt_menus` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_menus` (`id`, `name`, `icon`, `url`, `sort_num`, `enabled`) VALUES +(1, '对话聊天', '/images/menu/chat.png', '/chat', 1, 1), +(5, 'MJ 绘画', '/images/menu/mj.png', '/mj', 2, 1), +(6, 'SD 绘画', '/images/menu/sd.png', '/sd', 3, 1), +(7, '算力日志', '/images/menu/log.png', '/powerLog', 8, 1), +(8, '应用中心', '/images/menu/app.png', '/apps', 7, 1), +(9, '画廊', '/images/menu/img-wall.png', '/images-wall', 5, 1), +(10, '会员计划', '/images/menu/member.png', '/member', 9, 1), +(11, '分享计划', '/images/menu/share.png', '/invite', 10, 1), +(12, '思维导图', '/images/menu/xmind.png', '/xmind', 6, 1), +(13, 'DALLE', '/images/menu/dalle.png', '/dalle', 4, 1), +(14, '项目文档', '/images/menu/docs.png', 'https://ai.r9it.com/docs/', 11, 1), +(16, '极客论坛', '/images/menu/bbs.png', 'https://bbs.geekai.me/', 13, 1); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_mj_jobs` +-- 表的结构 `chatgpt_mj_jobs` -- DROP TABLE IF EXISTS `chatgpt_mj_jobs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_mj_jobs` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户 ID', `task_id` varchar(20) DEFAULT NULL COMMENT '任务 ID', `type` varchar(20) DEFAULT 'image' COMMENT '任务类别', @@ -445,31 +393,18 @@ CREATE TABLE `chatgpt_mj_jobs` ( `publish` tinyint(1) NOT NULL COMMENT '是否发布', `err_msg` varchar(255) DEFAULT NULL COMMENT '错误信息', `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `task_id` (`task_id`), - KEY `message_id` (`message_id`) + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MidJourney 任务表'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_mj_jobs` --- - -LOCK TABLES `chatgpt_mj_jobs` WRITE; -/*!40000 ALTER TABLE `chatgpt_mj_jobs` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_mj_jobs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_orders` +-- 表的结构 `chatgpt_orders` -- DROP TABLE IF EXISTS `chatgpt_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_orders` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户ID', `product_id` int NOT NULL COMMENT '产品ID', `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户明', @@ -483,30 +418,18 @@ CREATE TABLE `chatgpt_orders` ( `pay_way` varchar(20) NOT NULL COMMENT '支付方式', `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, - `deleted_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `order_no` (`order_no`) + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='充值订单表'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_orders` --- - -LOCK TABLES `chatgpt_orders` WRITE; -/*!40000 ALTER TABLE `chatgpt_orders` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_orders` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_power_logs` +-- 表的结构 `chatgpt_power_logs` -- DROP TABLE IF EXISTS `chatgpt_power_logs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_power_logs` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户ID', `username` varchar(30) NOT NULL COMMENT '用户名', `type` tinyint(1) NOT NULL COMMENT '类型(1:充值,2:消费,3:退费)', @@ -515,29 +438,18 @@ CREATE TABLE `chatgpt_power_logs` ( `model` varchar(30) NOT NULL COMMENT '模型', `remark` varchar(255) NOT NULL COMMENT '备注', `mark` tinyint(1) NOT NULL COMMENT '资金类型(0:支出,1:收入)', - `created_at` datetime NOT NULL COMMENT '创建时间', - PRIMARY KEY (`id`) + `created_at` datetime NOT NULL COMMENT '创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户算力消费日志'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_power_logs` --- - -LOCK TABLES `chatgpt_power_logs` WRITE; -/*!40000 ALTER TABLE `chatgpt_power_logs` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_power_logs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_products` +-- 表的结构 `chatgpt_products` -- DROP TABLE IF EXISTS `chatgpt_products`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_products` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `name` varchar(30) NOT NULL COMMENT '名称', `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格', `discount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额', @@ -549,30 +461,30 @@ CREATE TABLE `chatgpt_products` ( `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, `app_url` varchar(255) DEFAULT NULL COMMENT 'App跳转地址', - `url` varchar(255) DEFAULT NULL COMMENT '跳转地址', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员套餐表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `url` varchar(255) DEFAULT NULL COMMENT '跳转地址' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员套餐表'; -- --- Dumping data for table `chatgpt_products` +-- 转存表中的数据 `chatgpt_products` -- -LOCK TABLES `chatgpt_products` WRITE; -/*!40000 ALTER TABLE `chatgpt_products` DISABLE KEYS */; -INSERT INTO `chatgpt_products` VALUES (5,'100次点卡',1999.00,3.00,0,100,1,0,0,'2023-08-28 10:55:08','2024-03-22 17:56:37',NULL,NULL),(6,'200次点卡',2999.00,10.00,0,200,1,0,0,'1970-01-01 08:00:00','2024-03-22 17:56:41',NULL,NULL); -/*!40000 ALTER TABLE `chatgpt_products` ENABLE KEYS */; -UNLOCK TABLES; +INSERT INTO `chatgpt_products` (`id`, `name`, `price`, `discount`, `days`, `power`, `enabled`, `sales`, `sort_num`, `created_at`, `updated_at`, `app_url`, `url`) VALUES +(1, '会员1个月', 1999.90, 1999.00, 30, 0, 1, 1, 0, '2023-08-28 10:48:57', '2024-04-26 16:09:06', NULL, NULL), +(2, '会员3个月', 3940.00, 30.00, 90, 0, 1, 0, 0, '2023-08-28 10:52:22', '2024-03-22 17:56:10', NULL, NULL), +(3, '会员6个月', 5990.00, 100.00, 180, 0, 1, 0, 0, '2023-08-28 10:53:39', '2024-03-22 17:56:15', NULL, NULL), +(4, '会员12个月', 9980.00, 200.00, 365, 0, 1, 0, 0, '2023-08-28 10:54:15', '2024-03-22 17:56:23', NULL, NULL), +(5, '100次点卡', 9.99, 9.98, 0, 100, 1, 7, 0, '2023-08-28 10:55:08', '2024-06-11 16:48:44', NULL, NULL), +(6, '200次点卡', 19.90, 15.00, 0, 200, 1, 1, 0, '1970-01-01 08:00:00', '2024-06-11 11:41:52', NULL, NULL); + +-- -------------------------------------------------------- -- --- Table structure for table `chatgpt_rewards` +-- 表的结构 `chatgpt_rewards` -- DROP TABLE IF EXISTS `chatgpt_rewards`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_rewards` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户 ID', `tx_id` char(36) NOT NULL COMMENT '交易 ID', `amount` decimal(10,2) NOT NULL COMMENT '打赏金额', @@ -580,30 +492,18 @@ CREATE TABLE `chatgpt_rewards` ( `status` tinyint(1) NOT NULL COMMENT '核销状态,0:未核销,1:已核销', `exchange` varchar(255) NOT NULL COMMENT '兑换详情(json)', `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `tx_id` (`tx_id`) + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户打赏'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_rewards` --- - -LOCK TABLES `chatgpt_rewards` WRITE; -/*!40000 ALTER TABLE `chatgpt_rewards` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_rewards` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_sd_jobs` +-- 表的结构 `chatgpt_sd_jobs` -- DROP TABLE IF EXISTS `chatgpt_sd_jobs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_sd_jobs` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `user_id` int NOT NULL COMMENT '用户 ID', `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'txt2img' COMMENT '任务类别', `task_id` char(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务 ID', @@ -614,59 +514,18 @@ CREATE TABLE `chatgpt_sd_jobs` ( `publish` tinyint(1) NOT NULL COMMENT '是否发布', `err_msg` varchar(255) DEFAULT NULL COMMENT '错误信息', `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `task_id` (`task_id`) + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Stable Diffusion 任务表'; -/*!40101 SET character_set_client = @saved_cs_client */; + +-- -------------------------------------------------------- -- --- Dumping data for table `chatgpt_sd_jobs` --- - -LOCK TABLES `chatgpt_sd_jobs` WRITE; -/*!40000 ALTER TABLE `chatgpt_sd_jobs` DISABLE KEYS */; -/*!40000 ALTER TABLE `chatgpt_sd_jobs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_user_login_logs` --- - -DROP TABLE IF EXISTS `chatgpt_user_login_logs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `chatgpt_user_login_logs` ( - `id` int NOT NULL AUTO_INCREMENT, - `user_id` int NOT NULL COMMENT '用户ID', - `username` varchar(30) NOT NULL COMMENT '用户名', - `login_ip` char(16) NOT NULL COMMENT '登录IP', - `login_address` varchar(30) NOT NULL COMMENT '登录地址', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户登录日志'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `chatgpt_user_login_logs` --- - -LOCK TABLES `chatgpt_user_login_logs` WRITE; -/*!40000 ALTER TABLE `chatgpt_user_login_logs` DISABLE KEYS */; -INSERT INTO `chatgpt_user_login_logs` VALUES (1,4,'18575670125','10.0.2.2','0-0-内网IP','2024-09-05 15:01:44','2024-09-05 15:01:44'); -/*!40000 ALTER TABLE `chatgpt_user_login_logs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `chatgpt_users` +-- 表的结构 `chatgpt_users` -- DROP TABLE IF EXISTS `chatgpt_users`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `chatgpt_users` ( - `id` int NOT NULL AUTO_INCREMENT, + `id` int NOT NULL, `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', `nickname` varchar(30) NOT NULL COMMENT '昵称', `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', @@ -682,30 +541,312 @@ CREATE TABLE `chatgpt_users` ( `vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否会员', `last_login_ip` char(16) NOT NULL COMMENT '最后登录 IP', `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `username` (`username`), - UNIQUE KEY `username_2` (`username`) -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'; -/*!40101 SET character_set_client = @saved_cs_client */; + `updated_at` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'; -- --- Dumping data for table `chatgpt_users` +-- 转存表中的数据 `chatgpt_users` -- -LOCK TABLES `chatgpt_users` WRITE; -/*!40000 ALTER TABLE `chatgpt_users` DISABLE KEYS */; -INSERT INTO `chatgpt_users` VALUES (4,'18575670125','极客学长@830270','ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b','/images/avatar/user.png','ueedue5l',4887,0,1,'{\"api_keys\":{\"Azure\":\"\",\"ChatGLM\":\"\",\"OpenAI\":\"\"}}','[\"red_book\",\"gpt\",\"seller\",\"artist\",\"lu_xun\",\"girl_friend\",\"psychiatrist\",\"teacher\",\"programmer\",\"test\",\"qing_gan_da_shi\"]','[1,11]',1725519704,1,'10.0.2.2','2023-06-12 16:47:17','2024-09-05 15:02:30'); -/*!40000 ALTER TABLE `chatgpt_users` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; +INSERT INTO `chatgpt_users` (`id`, `username`, `nickname`, `password`, `avatar`, `salt`, `power`, `expired_time`, `status`, `chat_config_json`, `chat_roles_json`, `chat_models_json`, `last_login_at`, `vip`, `last_login_ip`, `created_at`, `updated_at`) VALUES +(4, '18575670125', '极客学长@830270', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', 'http://localhost:5678/static/upload/2024/5/1715651569509929.png', 'ueedue5l', 7723, 1720669190, 1, '{\"api_keys\":{\"Azure\":\"\",\"ChatGLM\":\"\",\"OpenAI\":\"\"}}', '[\"red_book\",\"gpt\",\"seller\",\"artist\",\"lu_xun\",\"girl_friend\",\"psychiatrist\",\"teacher\",\"programmer\",\"test\",\"qing_gan_da_shi\"]', '[1,11]', 1719026861, 1, '172.22.19.12', '2023-06-12 16:47:17', '2024-06-22 11:27:42'), +(5, 'yangjian102621@gmail.com', '极客学长@486041', '75d1a22f33e1ffffb7943946b6b8d5177d5ecd685d3cef1b468654038b0a8c22', '/images/avatar/user.png', '2q8ugxzk', 100, 0, 1, '', '[\"gpt\",\"programmer\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '2024-04-23 09:17:26', '2024-04-23 09:17:26'), +(8, 'yangjian102623@gmail.com', '极客学长@714931', 'f8f0e0abf146569217273ea0712a0f9b6cbbe7d943a1d9bd5f91c55e6d8c05d1', '/images/avatar/user.png', 'geuddq7f', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '2024-04-26 15:19:28', '2024-04-26 15:19:28'), +(9, '1234567', '极客学长@604526', '858e2afec79e1d6364f4567f945f2310024896d9aa45dd944efa95a0c31e4d08', '/images/avatar/user.png', '00qawlos', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '2024-04-26 15:21:06', '2024-04-26 15:21:06'), +(11, 'abc123', '极客学长@965562', '7a15c53afdb1da7093d80f9940e716eb396e682cfb1f2d107d0b81b183a3ba13', '/images/avatar/user.png', '6433mfbk', 1124, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '2024-06-06 09:37:44', '2024-06-06 09:37:44'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `chatgpt_user_login_logs` +-- + +DROP TABLE IF EXISTS `chatgpt_user_login_logs`; +CREATE TABLE `chatgpt_user_login_logs` ( + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `username` varchar(30) NOT NULL COMMENT '用户名', + `login_ip` char(16) NOT NULL COMMENT '登录IP', + `login_address` varchar(30) NOT NULL COMMENT '登录地址', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户登录日志'; + +-- +-- 转储表的索引 +-- + +-- +-- 表的索引 `chatgpt_admin_users` +-- +ALTER TABLE `chatgpt_admin_users` + ADD PRIMARY KEY (`id`) USING BTREE, + ADD UNIQUE KEY `username` (`username`) USING BTREE; + +-- +-- 表的索引 `chatgpt_api_keys` +-- +ALTER TABLE `chatgpt_api_keys` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_chat_history` +-- +ALTER TABLE `chatgpt_chat_history` + ADD PRIMARY KEY (`id`), + ADD KEY `chat_id` (`chat_id`); + +-- +-- 表的索引 `chatgpt_chat_items` +-- +ALTER TABLE `chatgpt_chat_items` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `chat_id` (`chat_id`); + +-- +-- 表的索引 `chatgpt_chat_models` +-- +ALTER TABLE `chatgpt_chat_models` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_chat_roles` +-- +ALTER TABLE `chatgpt_chat_roles` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `marker` (`marker`); + +-- +-- 表的索引 `chatgpt_configs` +-- +ALTER TABLE `chatgpt_configs` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `marker` (`marker`); + +-- +-- 表的索引 `chatgpt_dall_jobs` +-- +ALTER TABLE `chatgpt_dall_jobs` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_files` +-- +ALTER TABLE `chatgpt_files` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_functions` +-- +ALTER TABLE `chatgpt_functions` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `name` (`name`); + +-- +-- 表的索引 `chatgpt_invite_codes` +-- +ALTER TABLE `chatgpt_invite_codes` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `code` (`code`); + +-- +-- 表的索引 `chatgpt_invite_logs` +-- +ALTER TABLE `chatgpt_invite_logs` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_menus` +-- +ALTER TABLE `chatgpt_menus` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_mj_jobs` +-- +ALTER TABLE `chatgpt_mj_jobs` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `task_id` (`task_id`), + ADD KEY `message_id` (`message_id`); + +-- +-- 表的索引 `chatgpt_orders` +-- +ALTER TABLE `chatgpt_orders` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `order_no` (`order_no`); + +-- +-- 表的索引 `chatgpt_power_logs` +-- +ALTER TABLE `chatgpt_power_logs` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_products` +-- +ALTER TABLE `chatgpt_products` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `chatgpt_rewards` +-- +ALTER TABLE `chatgpt_rewards` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `tx_id` (`tx_id`); + +-- +-- 表的索引 `chatgpt_sd_jobs` +-- +ALTER TABLE `chatgpt_sd_jobs` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `task_id` (`task_id`); + +-- +-- 表的索引 `chatgpt_users` +-- +ALTER TABLE `chatgpt_users` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `username` (`username`), + ADD UNIQUE KEY `username_2` (`username`); + +-- +-- 表的索引 `chatgpt_user_login_logs` +-- +ALTER TABLE `chatgpt_user_login_logs` + ADD PRIMARY KEY (`id`); + +-- +-- 在导出的表使用AUTO_INCREMENT +-- + +-- +-- 使用表AUTO_INCREMENT `chatgpt_admin_users` +-- +ALTER TABLE `chatgpt_admin_users` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_api_keys` +-- +ALTER TABLE `chatgpt_api_keys` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_chat_history` +-- +ALTER TABLE `chatgpt_chat_history` + MODIFY `id` bigint NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_chat_items` +-- +ALTER TABLE `chatgpt_chat_items` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_chat_models` +-- +ALTER TABLE `chatgpt_chat_models` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=42; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_chat_roles` +-- +ALTER TABLE `chatgpt_chat_roles` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=132; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_configs` +-- +ALTER TABLE `chatgpt_configs` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_dall_jobs` +-- +ALTER TABLE `chatgpt_dall_jobs` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_files` +-- +ALTER TABLE `chatgpt_files` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_functions` +-- +ALTER TABLE `chatgpt_functions` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_invite_codes` +-- +ALTER TABLE `chatgpt_invite_codes` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_invite_logs` +-- +ALTER TABLE `chatgpt_invite_logs` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_menus` +-- +ALTER TABLE `chatgpt_menus` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_mj_jobs` +-- +ALTER TABLE `chatgpt_mj_jobs` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_orders` +-- +ALTER TABLE `chatgpt_orders` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_power_logs` +-- +ALTER TABLE `chatgpt_power_logs` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_products` +-- +ALTER TABLE `chatgpt_products` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_rewards` +-- +ALTER TABLE `chatgpt_rewards` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_sd_jobs` +-- +ALTER TABLE `chatgpt_sd_jobs` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_users` +-- +ALTER TABLE `chatgpt_users` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; + +-- +-- 使用表AUTO_INCREMENT `chatgpt_user_login_logs` +-- +ALTER TABLE `chatgpt_user_login_logs` + MODIFY `id` int NOT NULL AUTO_INCREMENT; +COMMIT; -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2024-09-05 15:26:57 diff --git a/database/archive/chatgpt_plus-v4.1.0.sql b/database/archive/chatgpt_plus-v4.1.0.sql index 14f7f036..3a3f117c 100644 --- a/database/archive/chatgpt_plus-v4.1.0.sql +++ b/database/archive/chatgpt_plus-v4.1.0.sql @@ -31,15 +31,15 @@ USE `chatgpt_plus`; DROP TABLE IF EXISTS `chatgpt_admin_users`; CREATE TABLE `chatgpt_admin_users` ( - `id` int NOT NULL, - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', - `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', - `salt` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码盐', - `status` tinyint(1) NOT NULL COMMENT '当前状态', - `last_login_at` int NOT NULL COMMENT '最后登录时间', - `last_login_ip` char(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '最后登录 IP', - `created_at` datetime NOT NULL COMMENT '创建时间', - `updated_at` datetime NOT NULL COMMENT '更新时间' + `id` int NOT NULL, + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', + `salt` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码盐', + `status` tinyint(1) NOT NULL COMMENT '当前状态', + `last_login_at` int NOT NULL COMMENT '最后登录时间', + `last_login_ip` char(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '最后登录 IP', + `created_at` datetime NOT NULL COMMENT '创建时间', + `updated_at` datetime NOT NULL COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统用户' ROW_FORMAT=DYNAMIC; -- @@ -47,7 +47,7 @@ CREATE TABLE `chatgpt_admin_users` ( -- INSERT INTO `chatgpt_admin_users` (`id`, `username`, `password`, `salt`, `status`, `last_login_at`, `last_login_ip`, `created_at`, `updated_at`) VALUES - (1, 'admin', '6d17e80c87d209efb84ca4b2e0824f549d09fac8b2e1cc698de5bb5e1d75dfd0', 'mmrql75o', 1, 1719818809, '172.22.11.200', '2024-03-11 16:30:20', '2024-07-01 15:26:49'); +(1, 'admin', '6d17e80c87d209efb84ca4b2e0824f549d09fac8b2e1cc698de5bb5e1d75dfd0', 'mmrql75o', 1, 1719818809, '172.22.11.200', '2024-03-11 16:30:20', '2024-07-01 15:26:49'); -- -------------------------------------------------------- @@ -57,17 +57,17 @@ INSERT INTO `chatgpt_admin_users` (`id`, `username`, `password`, `salt`, `status DROP TABLE IF EXISTS `chatgpt_api_keys`; CREATE TABLE `chatgpt_api_keys` ( - `id` int NOT NULL, - `platform` char(20) DEFAULT NULL COMMENT '平台', - `name` varchar(30) DEFAULT NULL COMMENT '名称', - `value` varchar(100) NOT NULL COMMENT 'API KEY value', - `type` varchar(10) NOT NULL DEFAULT 'chat' COMMENT '用途(chat=>聊天,img=>图片)', - `last_used_at` int NOT NULL COMMENT '最后使用时间', - `api_url` varchar(255) DEFAULT NULL COMMENT 'API 地址', - `enabled` tinyint(1) DEFAULT NULL COMMENT '是否启用', - `proxy_url` varchar(100) DEFAULT NULL COMMENT '代理地址', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `platform` char(20) DEFAULT NULL COMMENT '平台', + `name` varchar(30) DEFAULT NULL COMMENT '名称', + `value` varchar(100) NOT NULL COMMENT 'API KEY value', + `type` varchar(10) NOT NULL DEFAULT 'chat' COMMENT '用途(chat=>聊天,img=>图片)', + `last_used_at` int NOT NULL COMMENT '最后使用时间', + `api_url` varchar(255) DEFAULT NULL COMMENT 'API 地址', + `enabled` tinyint(1) DEFAULT NULL COMMENT '是否启用', + `proxy_url` varchar(100) DEFAULT NULL COMMENT '代理地址', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='OpenAI API '; -- -------------------------------------------------------- @@ -78,19 +78,19 @@ CREATE TABLE `chatgpt_api_keys` ( DROP TABLE IF EXISTS `chatgpt_chat_history`; CREATE TABLE `chatgpt_chat_history` ( - `id` bigint NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `chat_id` char(40) NOT NULL COMMENT '会话 ID', - `type` varchar(10) NOT NULL COMMENT '类型:prompt|reply', - `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色图标', - `role_id` int NOT NULL COMMENT '角色 ID', - `model` varchar(30) DEFAULT NULL COMMENT '模型名称', - `content` text NOT NULL COMMENT '聊天内容', - `tokens` smallint NOT NULL COMMENT '耗费 token 数量', - `use_context` tinyint(1) NOT NULL COMMENT '是否允许作为上下文语料', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - `deleted_at` datetime DEFAULT NULL + `id` bigint NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `chat_id` char(40) NOT NULL COMMENT '会话 ID', + `type` varchar(10) NOT NULL COMMENT '类型:prompt|reply', + `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色图标', + `role_id` int NOT NULL COMMENT '角色 ID', + `model` varchar(30) DEFAULT NULL COMMENT '模型名称', + `content` text NOT NULL COMMENT '聊天内容', + `tokens` smallint NOT NULL COMMENT '耗费 token 数量', + `use_context` tinyint(1) NOT NULL COMMENT '是否允许作为上下文语料', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天历史记录'; -- -------------------------------------------------------- @@ -101,16 +101,16 @@ CREATE TABLE `chatgpt_chat_history` ( DROP TABLE IF EXISTS `chatgpt_chat_items`; CREATE TABLE `chatgpt_chat_items` ( - `id` int NOT NULL, - `chat_id` char(40) NOT NULL COMMENT '会话 ID', - `user_id` int NOT NULL COMMENT '用户 ID', - `role_id` int NOT NULL COMMENT '角色 ID', - `title` varchar(100) NOT NULL COMMENT '会话标题', - `model_id` int NOT NULL DEFAULT '0' COMMENT '模型 ID', - `model` varchar(30) DEFAULT NULL COMMENT '模型名称', - `created_at` datetime NOT NULL COMMENT '创建时间', - `updated_at` datetime NOT NULL COMMENT '更新时间', - `deleted_at` datetime DEFAULT NULL + `id` int NOT NULL, + `chat_id` char(40) NOT NULL COMMENT '会话 ID', + `user_id` int NOT NULL COMMENT '用户 ID', + `role_id` int NOT NULL COMMENT '角色 ID', + `title` varchar(100) NOT NULL COMMENT '会话标题', + `model_id` int NOT NULL DEFAULT '0' COMMENT '模型 ID', + `model` varchar(30) DEFAULT NULL COMMENT '模型名称', + `created_at` datetime NOT NULL COMMENT '创建时间', + `updated_at` datetime NOT NULL COMMENT '更新时间', + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户会话列表'; -- -------------------------------------------------------- @@ -121,14 +121,14 @@ CREATE TABLE `chatgpt_chat_items` ( DROP TABLE IF EXISTS `chatgpt_chat_models`; CREATE TABLE `chatgpt_chat_models` ( - `id` int NOT NULL, - `platform` varchar(20) DEFAULT NULL COMMENT '模型平台', - `name` varchar(50) NOT NULL COMMENT '模型名称', - `value` varchar(50) NOT NULL COMMENT '模型值', - `sort_num` tinyint(1) NOT NULL COMMENT '排序数字', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用模型', - `power` smallint NOT NULL COMMENT '消耗算力点数', - `temperature` float(3,1) NOT NULL DEFAULT '1.0' COMMENT '模型创意度', + `id` int NOT NULL, + `platform` varchar(20) DEFAULT NULL COMMENT '模型平台', + `name` varchar(50) NOT NULL COMMENT '模型名称', + `value` varchar(50) NOT NULL COMMENT '模型值', + `sort_num` tinyint(1) NOT NULL COMMENT '排序数字', + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用模型', + `power` smallint NOT NULL COMMENT '消耗算力点数', + `temperature` float(3,1) NOT NULL DEFAULT '1.0' COMMENT '模型创意度', `max_tokens` int NOT NULL DEFAULT '1024' COMMENT '最大响应长度', `max_context` int NOT NULL DEFAULT '4096' COMMENT '最大上下文长度', `open` tinyint(1) NOT NULL COMMENT '是否开放模型', @@ -142,35 +142,35 @@ CREATE TABLE `chatgpt_chat_models` ( -- INSERT INTO `chatgpt_chat_models` (`id`, `platform`, `name`, `value`, `sort_num`, `enabled`, `power`, `temperature`, `max_tokens`, `max_context`, `open`, `key_id`, `created_at`, `updated_at`) VALUES - (1, 'OpenAI', 'GPT-3.5', 'gpt-3.5-turbo', 1, 1, 0, 1.0, 1024, 16384, 1, 44, '2023-08-23 12:06:36', '2024-07-04 15:17:47'), - (2, 'Azure', 'Azure-3.5', 'gpt-3.5-turbo', 23, 1, 1, 1.0, 1024, 4096, 0, 0, '2023-08-23 12:15:30', '2024-07-02 16:14:00'), - (3, 'ChatGLM', 'ChatGML-Pro', 'chatglm_pro', 12, 1, 1, 1.0, 2048, 32768, 1, 0, '2023-08-23 13:35:45', '2024-07-02 16:14:00'), - (7, 'Baidu', '文心一言3.0', 'eb-instant', 21, 1, 1, 1.0, 1024, 4096, 1, 0, '2023-10-11 11:29:28', '2024-07-02 16:14:00'), - (8, 'XunFei', '星火V3.5', 'generalv3.5', 11, 1, 5, 0.8, 1024, 8192, 1, 0, '2023-10-11 15:48:30', '2024-07-02 16:14:00'), - (9, 'XunFei', '星火V2.0', 'generalv2', 20, 1, 1, 1.0, 1024, 8192, 1, 0, '2023-10-11 15:48:45', '2024-07-02 16:14:00'), - (10, 'Baidu', '文心一言4.0', 'completions_pro', 22, 1, 3, 1.0, 1024, 8192, 1, 0, '2023-10-25 08:31:37', '2024-07-02 16:14:00'), - (11, 'OpenAI', 'GPT-4.0', 'gpt-4-0125-preview', 10, 1, 15, 1.0, 2048, 8192, 1, 0, '2023-10-25 08:45:15', '2024-07-02 16:14:00'), - (12, 'XunFei', '星火v3.0', 'generalv3', 19, 1, 3, 1.0, 1024, 8192, 1, 0, '2023-11-23 09:20:33', '2024-07-02 16:14:00'), - (15, 'OpenAI', 'GPT-超级模型', 'gpt-4-all', 13, 1, 30, 1.0, 4096, 32768, 0, 0, '2024-01-15 11:32:52', '2024-07-02 16:14:00'), - (16, 'OpenAI', '视频号导师', 'gpt-4-gizmo-g-QXXEBTXl7', 14, 1, 30, 1.0, 4096, 32768, 0, 0, '2024-01-15 14:46:35', '2024-07-02 16:14:00'), - (17, 'QWen', '通义千问-Turbo', 'qwen-turbo', 16, 1, 1, 1.0, 1024, 8192, 1, 0, '2024-01-19 10:42:24', '2024-07-02 16:14:00'), - (18, 'QWen', '通义千问-Plus', 'qwen-plus', 17, 1, 1, 1.0, 1024, 32768, 1, 0, '2024-01-19 10:42:49', '2024-07-02 16:14:00'), - (19, 'QWen', '通义千问-Max', 'qwen-max-1201', 18, 1, 1, 1.0, 1024, 32768, 1, 0, '2024-01-19 10:51:03', '2024-07-02 16:14:00'), - (21, 'OpenAI', '董宇辉小作文助手', 'gpt-4-gizmo-g-dse9iXvor', 15, 1, 30, 1.0, 8192, 32768, 0, 0, '2024-03-18 14:24:20', '2024-07-02 16:14:00'), - (22, 'OpenAI', 'LOGO生成神器', 'gpt-4-gizmo-g-YL87j8C7S', 9, 1, 30, 1.0, 1024, 4096, 1, 44, '2024-03-20 14:02:11', '2024-07-02 16:14:00'), - (23, 'OpenAI', '音乐生成器', 'suno-v3', 8, 1, 50, 0.8, 1024, 4096, 1, 44, '2024-03-29 15:43:40', '2024-07-02 16:14:00'), - (24, 'OpenAI', '通义千问(中转)', 'qwen-plus', 7, 1, 1, 1.0, 1024, 4096, 1, 0, '2024-04-03 12:00:46', '2024-07-02 16:14:00'), - (25, 'OpenAI', 'GPT4-TURBO', 'gpt-4-turbo', 6, 1, 15, 1.0, 2048, 8092, 1, 0, '2024-04-10 08:35:17', '2024-07-02 16:14:00'), - (26, 'QWen', '通义千问-Turbo', 'qwen-turbo', 5, 1, 2, 1.0, 1024, 8192, 1, 0, '2024-04-12 14:11:19', '2024-07-02 16:14:00'), - (27, 'QWen', '通义千问-Plus', 'qwen-plus', 4, 1, 2, 1.0, 1024, 8192, 1, 0, '2024-04-12 14:11:52', '2024-07-02 16:14:00'), - (28, 'OpenAI', 'GPT-3.5(免费)', 'gpt-3.5-turbo', 24, 1, 0, 1.0, 1024, 16384, 1, 53, '2024-04-12 15:16:43', '2024-07-02 16:14:00'), - (34, 'OpenAI', 'LLAMA3', 'llama3-8b', 25, 1, 1, 1.0, 1024, 8192, 1, 56, '2024-04-30 15:22:50', '2024-07-02 16:14:00'), - (36, 'OpenAI', 'GPT-4O', 'gpt-4o', 3, 1, 15, 1.0, 4096, 16384, 1, 44, '2024-05-14 09:25:15', '2024-07-04 15:17:53'), - (38, 'OpenAI', 'Gemini-pro', 'gemini-pro-1.5', 26, 1, 10, 1.0, 2048, 8192, 1, 0, '2024-05-27 18:10:35', '2024-07-02 16:14:00'), - (39, 'Baidu', 'ERNIE-Speed-8K', 'ernie_speed', 27, 1, 1, 1.0, 1024, 8192, 1, 0, '2024-05-29 15:04:19', '2024-07-02 16:14:00'), - (41, 'OpenAI', 'GLM-3-Turbo', 'glm-3-turbo', 28, 1, 2, 1.0, 1024, 8192, 1, 64, '2024-06-06 11:40:46', '2024-07-02 16:14:00'), - (42, 'OpenAI', 'DeekSeek', 'deepseek-chat', 29, 1, 1, 1.0, 4096, 32768, 1, 64, '2024-06-27 16:13:01', '2024-07-02 16:14:00'), - (43, 'OpenAI', 'GML4', 'name-3.5', 2, 1, 1, 1.0, 1024, 8192, 1, 57, '2024-07-02 16:11:49', '2024-07-02 16:14:00'); +(1, 'OpenAI', 'GPT-3.5', 'gpt-3.5-turbo', 1, 1, 0, 1.0, 1024, 16384, 1, 44, '2023-08-23 12:06:36', '2024-07-04 15:17:47'), +(2, 'Azure', 'Azure-3.5', 'gpt-3.5-turbo', 23, 1, 1, 1.0, 1024, 4096, 0, 0, '2023-08-23 12:15:30', '2024-07-02 16:14:00'), +(3, 'ChatGLM', 'ChatGML-Pro', 'chatglm_pro', 12, 1, 1, 1.0, 2048, 32768, 1, 0, '2023-08-23 13:35:45', '2024-07-02 16:14:00'), +(7, 'Baidu', '文心一言3.0', 'eb-instant', 21, 1, 1, 1.0, 1024, 4096, 1, 0, '2023-10-11 11:29:28', '2024-07-02 16:14:00'), +(8, 'XunFei', '星火V3.5', 'generalv3.5', 11, 1, 5, 0.8, 1024, 8192, 1, 0, '2023-10-11 15:48:30', '2024-07-02 16:14:00'), +(9, 'XunFei', '星火V2.0', 'generalv2', 20, 1, 1, 1.0, 1024, 8192, 1, 0, '2023-10-11 15:48:45', '2024-07-02 16:14:00'), +(10, 'Baidu', '文心一言4.0', 'completions_pro', 22, 1, 3, 1.0, 1024, 8192, 1, 0, '2023-10-25 08:31:37', '2024-07-02 16:14:00'), +(11, 'OpenAI', 'GPT-4.0', 'gpt-4-0125-preview', 10, 1, 15, 1.0, 2048, 8192, 1, 0, '2023-10-25 08:45:15', '2024-07-02 16:14:00'), +(12, 'XunFei', '星火v3.0', 'generalv3', 19, 1, 3, 1.0, 1024, 8192, 1, 0, '2023-11-23 09:20:33', '2024-07-02 16:14:00'), +(15, 'OpenAI', 'GPT-超级模型', 'gpt-4-all', 13, 1, 30, 1.0, 4096, 32768, 0, 0, '2024-01-15 11:32:52', '2024-07-02 16:14:00'), +(16, 'OpenAI', '视频号导师', 'gpt-4-gizmo-g-QXXEBTXl7', 14, 1, 30, 1.0, 4096, 32768, 0, 0, '2024-01-15 14:46:35', '2024-07-02 16:14:00'), +(17, 'QWen', '通义千问-Turbo', 'qwen-turbo', 16, 1, 1, 1.0, 1024, 8192, 1, 0, '2024-01-19 10:42:24', '2024-07-02 16:14:00'), +(18, 'QWen', '通义千问-Plus', 'qwen-plus', 17, 1, 1, 1.0, 1024, 32768, 1, 0, '2024-01-19 10:42:49', '2024-07-02 16:14:00'), +(19, 'QWen', '通义千问-Max', 'qwen-max-1201', 18, 1, 1, 1.0, 1024, 32768, 1, 0, '2024-01-19 10:51:03', '2024-07-02 16:14:00'), +(21, 'OpenAI', '董宇辉小作文助手', 'gpt-4-gizmo-g-dse9iXvor', 15, 1, 30, 1.0, 8192, 32768, 0, 0, '2024-03-18 14:24:20', '2024-07-02 16:14:00'), +(22, 'OpenAI', 'LOGO生成神器', 'gpt-4-gizmo-g-YL87j8C7S', 9, 1, 30, 1.0, 1024, 4096, 1, 44, '2024-03-20 14:02:11', '2024-07-02 16:14:00'), +(23, 'OpenAI', '音乐生成器', 'suno-v3', 8, 1, 50, 0.8, 1024, 4096, 1, 44, '2024-03-29 15:43:40', '2024-07-02 16:14:00'), +(24, 'OpenAI', '通义千问(中转)', 'qwen-plus', 7, 1, 1, 1.0, 1024, 4096, 1, 0, '2024-04-03 12:00:46', '2024-07-02 16:14:00'), +(25, 'OpenAI', 'GPT4-TURBO', 'gpt-4-turbo', 6, 1, 15, 1.0, 2048, 8092, 1, 0, '2024-04-10 08:35:17', '2024-07-02 16:14:00'), +(26, 'QWen', '通义千问-Turbo', 'qwen-turbo', 5, 1, 2, 1.0, 1024, 8192, 1, 0, '2024-04-12 14:11:19', '2024-07-02 16:14:00'), +(27, 'QWen', '通义千问-Plus', 'qwen-plus', 4, 1, 2, 1.0, 1024, 8192, 1, 0, '2024-04-12 14:11:52', '2024-07-02 16:14:00'), +(28, 'OpenAI', 'GPT-3.5(免费)', 'gpt-3.5-turbo', 24, 1, 0, 1.0, 1024, 16384, 1, 53, '2024-04-12 15:16:43', '2024-07-02 16:14:00'), +(34, 'OpenAI', 'LLAMA3', 'llama3-8b', 25, 1, 1, 1.0, 1024, 8192, 1, 56, '2024-04-30 15:22:50', '2024-07-02 16:14:00'), +(36, 'OpenAI', 'GPT-4O', 'gpt-4o', 3, 1, 15, 1.0, 4096, 16384, 1, 44, '2024-05-14 09:25:15', '2024-07-04 15:17:53'), +(38, 'OpenAI', 'Gemini-pro', 'gemini-pro-1.5', 26, 1, 10, 1.0, 2048, 8192, 1, 0, '2024-05-27 18:10:35', '2024-07-02 16:14:00'), +(39, 'Baidu', 'ERNIE-Speed-8K', 'ernie_speed', 27, 1, 1, 1.0, 1024, 8192, 1, 0, '2024-05-29 15:04:19', '2024-07-02 16:14:00'), +(41, 'OpenAI', 'GLM-3-Turbo', 'glm-3-turbo', 28, 1, 2, 1.0, 1024, 8192, 1, 64, '2024-06-06 11:40:46', '2024-07-02 16:14:00'), +(42, 'OpenAI', 'DeekSeek', 'deepseek-chat', 29, 1, 1, 1.0, 4096, 32768, 1, 64, '2024-06-27 16:13:01', '2024-07-02 16:14:00'), +(43, 'OpenAI', 'GML4', 'name-3.5', 2, 1, 1, 1.0, 1024, 8192, 1, 57, '2024-07-02 16:11:49', '2024-07-02 16:14:00'); -- -------------------------------------------------------- @@ -180,17 +180,17 @@ INSERT INTO `chatgpt_chat_models` (`id`, `platform`, `name`, `value`, `sort_num` DROP TABLE IF EXISTS `chatgpt_chat_roles`; CREATE TABLE `chatgpt_chat_roles` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '角色名称', - `marker` varchar(30) NOT NULL COMMENT '角色标识', - `context_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色语料 json', - `hello_msg` varchar(255) NOT NULL COMMENT '打招呼信息', - `icon` varchar(255) NOT NULL COMMENT '角色图标', - `enable` tinyint(1) NOT NULL COMMENT '是否被启用', - `sort_num` smallint NOT NULL DEFAULT '0' COMMENT '角色排序', - `model_id` int NOT NULL DEFAULT '0' COMMENT '绑定模型ID', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '角色名称', + `marker` varchar(30) NOT NULL COMMENT '角色标识', + `context_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色语料 json', + `hello_msg` varchar(255) NOT NULL COMMENT '打招呼信息', + `icon` varchar(255) NOT NULL COMMENT '角色图标', + `enable` tinyint(1) NOT NULL COMMENT '是否被启用', + `sort_num` smallint NOT NULL DEFAULT '0' COMMENT '角色排序', + `model_id` int NOT NULL DEFAULT '0' COMMENT '绑定模型ID', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天角色表'; -- @@ -198,23 +198,23 @@ CREATE TABLE `chatgpt_chat_roles` ( -- INSERT INTO `chatgpt_chat_roles` (`id`, `name`, `marker`, `context_json`, `hello_msg`, `icon`, `enable`, `sort_num`, `model_id`, `created_at`, `updated_at`) VALUES - (1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', '/images/avatar/gpt.png', 1, 1, 0, '2023-05-30 07:02:06', '2024-06-26 15:20:27'), - (24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', '/images/avatar/programmer.jpg', 1, 4, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', '/images/avatar/teacher.jpg', 1, 3, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', '/images/avatar/artist.jpg', 1, 5, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '作为一名心理学家和心理治疗师,我的主要职责是帮助您解决心理健康问题,提升您的生活质量和幸福感。', '/images/avatar/psychiatrist.jpg', 1, 2, 1, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', '/images/avatar/lu_xun.jpg', 1, 6, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', '/images/avatar/seller.jpg', 0, 9, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (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, 7, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', '/images/avatar/translator.jpg', 1, 8, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', '/images/avatar/red_book.jpg', 1, 10, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', '/images/avatar/dou_yin.jpg', 1, 11, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', '/images/avatar/weekly_report.jpg', 1, 12, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', '/images/avatar/girl_friend.jpg', 1, 13, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', '/images/avatar/good_comment.jpg', 1, 14, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', '/images/avatar/steve_jobs.jpg', 1, 15, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', '/images/avatar/elon_musk.jpg', 1, 16, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), - (39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', '/images/avatar/kong_zi.jpg', 1, 17, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'); +(1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', '/images/avatar/gpt.png', 1, 1, 0, '2023-05-30 07:02:06', '2024-06-26 15:20:27'), +(24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', '/images/avatar/programmer.jpg', 1, 4, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', '/images/avatar/teacher.jpg', 1, 3, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', '/images/avatar/artist.jpg', 1, 5, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '作为一名心理学家和心理治疗师,我的主要职责是帮助您解决心理健康问题,提升您的生活质量和幸福感。', '/images/avatar/psychiatrist.jpg', 1, 2, 1, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', '/images/avatar/lu_xun.jpg', 1, 6, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', '/images/avatar/seller.jpg', 0, 9, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(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, 7, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', '/images/avatar/translator.jpg', 1, 8, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', '/images/avatar/red_book.jpg', 1, 10, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', '/images/avatar/dou_yin.jpg', 1, 11, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', '/images/avatar/weekly_report.jpg', 1, 12, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', '/images/avatar/girl_friend.jpg', 1, 13, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', '/images/avatar/good_comment.jpg', 1, 14, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', '/images/avatar/steve_jobs.jpg', 1, 15, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', '/images/avatar/elon_musk.jpg', 1, 16, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'), +(39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', '/images/avatar/kong_zi.jpg', 1, 17, 0, '2023-05-30 14:10:24', '2024-06-26 15:20:27'); -- -------------------------------------------------------- @@ -224,9 +224,9 @@ INSERT INTO `chatgpt_chat_roles` (`id`, `name`, `marker`, `context_json`, `hello DROP TABLE IF EXISTS `chatgpt_configs`; CREATE TABLE `chatgpt_configs` ( - `id` int NOT NULL, - `marker` varchar(20) NOT NULL COMMENT '标识', - `config_json` text NOT NULL + `id` int NOT NULL, + `marker` varchar(20) NOT NULL COMMENT '标识', + `config_json` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- @@ -234,8 +234,8 @@ CREATE TABLE `chatgpt_configs` ( -- INSERT INTO `chatgpt_configs` (`id`, `marker`, `config_json`) VALUES - (1, 'system', '{\"title\":\"GeekAI 创作系统\",\"slogan\":\"你有多少想象力,AI 就有多大创造力。我辈之人,先干为敬,陪您先把 AI 用起来。\",\"admin_title\":\"GeekAI 控制台\",\"logo\":\"http://localhost:5678/static/upload/2024/4/1714382860986912.png\",\"init_power\":100,\"daily_power\":99,\"invite_power\":1024,\"vip_month_power\":1000,\"register_ways\":[\"mobile\",\"username\",\"email\"],\"enabled_register\":true,\"reward_img\":\"http://localhost:5678/static/upload/2024/3/1710753716309668.jpg\",\"enabled_reward\":true,\"power_price\":0.1,\"order_pay_timeout\":600,\"vip_info_text\":\"月度会员,年度会员每月赠送 1000 点算力,赠送算力当月有效当月没有消费完的算力不结余到下个月。 点卡充值的算力长期有效。\",\"default_models\":[11,7,1,10,12,19,18,17,3],\"mj_power\":30,\"mj_action_power\":10,\"sd_power\":10,\"dall_power\":15,\"wechat_card_url\":\"/images/wx.png\",\"enable_context\":true,\"context_deep\":4,\"sd_neg_prompt\":\"nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet\",\"index_bg_url\":\"http://nk.img.r9it.com/chatgpt-plus/1719456403420273.jpg\"}'), - (3, 'notice', '{\"sd_neg_prompt\":\"\",\"index_bg_url\":\"\",\"content\":\"## v4.1.0 更新日志\\n\\n* bug修复:修复移动端修改聊天标题不生效的问题\\n* Bug修复:修复用户注册不显示用户名的问题\\n* Bug修复:修复管理后台拖动排序不生效的问题\\n* 功能优化:允许用户设置自定义首页背景图片\\n* 功能新增:**支持AI解读 PDF, Word, Excel等文件**\\n* 功能优化:优化聊天界面的用户上传文件的列表样式\\n* 功能优化:优化聊天页面对话样式,支持列表样式和对话样式切换\\n* 功能新增:支持微信扫码登录,未注册用户微信扫码后会自动注册并登录。移动使用微信浏览器打开可以实现无感登录。\\n\\n注意:当前站点仅为开源项目 \\u003ca style=\\\"color: #F56C6C\\\" href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003eChatPlus\\u003c/a\\u003e 的演示项目,本项目单纯就是给大家体验项目功能使用。\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n 如果觉得好用你就花几分钟自己部署一套,没有API KEY 的同学可以去下面几个推荐的中转站购买:\\n1、\\u003ca href=\\\"https://api.chat-plus.net\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.chat-plus.net\\u003c/a\\u003e\\n2、\\u003ca href=\\\"https://api.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.geekai.me\\u003c/a\\u003e\\n3、 \\u003ca href=\\\"https://gpt.bemore.lol\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://gpt.bemore.lol\\u003c/a\\u003e\\n支持MidJourney,GPT,Claude,Google Gemmi,以及国内各个厂家的大模型,现在有超级优惠,价格远低于 OpenAI 官方。关于中转 API 的优势和劣势请参考 [中转API技术原理](https://ai.r9it.com/docs/install/errors-handle.html#%E8%B0%83%E7%94%A8%E4%B8%AD%E8%BD%AC-api-%E6%8A%A5%E9%94%99%E6%97%A0%E5%8F%AF%E7%94%A8%E6%B8%A0%E9%81%93)。GPT-3.5,GPT-4,DALL-E3 绘图......你都可以随意使用,无需魔法。\\n接入教程: \\u003ca href=\\\"https://ai.r9it.com/docs/install/\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://ai.r9it.com/docs/install/\\u003c/a\\u003e\\n本项目源码地址:\\u003ca href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003ehttps://github.com/yangjian102621/chatgpt-plus\\u003c/a\\u003e\",\"updated\":true}'); +(1, 'system', '{\"title\":\"GeekAI 创作系统\",\"slogan\":\"你有多少想象力,AI 就有多大创造力。我辈之人,先干为敬,陪您先把 AI 用起来。\",\"admin_title\":\"GeekAI 控制台\",\"logo\":\"http://localhost:5678/static/upload/2024/4/1714382860986912.png\",\"init_power\":100,\"daily_power\":99,\"invite_power\":1024,\"vip_month_power\":1000,\"register_ways\":[\"mobile\",\"username\",\"email\"],\"enabled_register\":true,\"reward_img\":\"http://localhost:5678/static/upload/2024/3/1710753716309668.jpg\",\"enabled_reward\":true,\"power_price\":0.1,\"order_pay_timeout\":600,\"vip_info_text\":\"月度会员,年度会员每月赠送 1000 点算力,赠送算力当月有效当月没有消费完的算力不结余到下个月。 点卡充值的算力长期有效。\",\"default_models\":[11,7,1,10,12,19,18,17,3],\"mj_power\":30,\"mj_action_power\":10,\"sd_power\":10,\"dall_power\":15,\"wechat_card_url\":\"/images/wx.png\",\"enable_context\":true,\"context_deep\":4,\"sd_neg_prompt\":\"nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet\",\"index_bg_url\":\"http://nk.img.r9it.com/chatgpt-plus/1719456403420273.jpg\"}'), +(3, 'notice', '{\"sd_neg_prompt\":\"\",\"index_bg_url\":\"\",\"content\":\"## v4.1.0 更新日志\\n\\n* bug修复:修复移动端修改聊天标题不生效的问题\\n* Bug修复:修复用户注册不显示用户名的问题\\n* Bug修复:修复管理后台拖动排序不生效的问题\\n* 功能优化:允许用户设置自定义首页背景图片\\n* 功能新增:**支持AI解读 PDF, Word, Excel等文件**\\n* 功能优化:优化聊天界面的用户上传文件的列表样式\\n* 功能优化:优化聊天页面对话样式,支持列表样式和对话样式切换\\n* 功能新增:支持微信扫码登录,未注册用户微信扫码后会自动注册并登录。移动使用微信浏览器打开可以实现无感登录。\\n\\n注意:当前站点仅为开源项目 \\u003ca style=\\\"color: #F56C6C\\\" href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003eChatPlus\\u003c/a\\u003e 的演示项目,本项目单纯就是给大家体验项目功能使用。\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n 如果觉得好用你就花几分钟自己部署一套,没有API KEY 的同学可以去下面几个推荐的中转站购买:\\n1、\\u003ca href=\\\"https://api.chat-plus.net\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.chat-plus.net\\u003c/a\\u003e\\n2、\\u003ca href=\\\"https://api.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.geekai.me\\u003c/a\\u003e\\n3、 \\u003ca href=\\\"https://gpt.bemore.lol\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://gpt.bemore.lol\\u003c/a\\u003e\\n支持MidJourney,GPT,Claude,Google Gemmi,以及国内各个厂家的大模型,现在有超级优惠,价格远低于 OpenAI 官方。关于中转 API 的优势和劣势请参考 [中转API技术原理](https://ai.r9it.com/docs/install/errors-handle.html#%E8%B0%83%E7%94%A8%E4%B8%AD%E8%BD%AC-api-%E6%8A%A5%E9%94%99%E6%97%A0%E5%8F%AF%E7%94%A8%E6%B8%A0%E9%81%93)。GPT-3.5,GPT-4,DALL-E3 绘图......你都可以随意使用,无需魔法。\\n接入教程: \\u003ca href=\\\"https://ai.r9it.com/docs/install/\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://ai.r9it.com/docs/install/\\u003c/a\\u003e\\n本项目源码地址:\\u003ca href=\\\"https://github.com/yangjian102621/chatgpt-plus\\\" target=\\\"_blank\\\"\\u003ehttps://github.com/yangjian102621/chatgpt-plus\\u003c/a\\u003e\",\"updated\":true}'); -- -------------------------------------------------------- @@ -245,16 +245,16 @@ INSERT INTO `chatgpt_configs` (`id`, `marker`, `config_json`) VALUES DROP TABLE IF EXISTS `chatgpt_dall_jobs`; CREATE TABLE `chatgpt_dall_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `prompt` varchar(2000) NOT NULL COMMENT '提示词', - `img_url` varchar(255) NOT NULL COMMENT '图片地址', - `org_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原图地址', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `power` smallint NOT NULL COMMENT '消耗算力', - `progress` smallint NOT NULL COMMENT '任务进度', - `err_msg` varchar(255) NOT NULL COMMENT '错误信息', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `prompt` varchar(2000) NOT NULL COMMENT '提示词', + `img_url` varchar(255) NOT NULL COMMENT '图片地址', + `org_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原图地址', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `power` smallint NOT NULL COMMENT '消耗算力', + `progress` smallint NOT NULL COMMENT '任务进度', + `err_msg` varchar(255) NOT NULL COMMENT '错误信息', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DALLE 绘图任务表'; -- -------------------------------------------------------- @@ -265,14 +265,14 @@ CREATE TABLE `chatgpt_dall_jobs` ( DROP TABLE IF EXISTS `chatgpt_files`; CREATE TABLE `chatgpt_files` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `name` varchar(100) NOT NULL COMMENT '文件名', - `obj_key` varchar(100) DEFAULT NULL COMMENT '文件标识', - `url` varchar(255) NOT NULL COMMENT '文件地址', - `ext` varchar(10) NOT NULL COMMENT '文件后缀', - `size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小', - `created_at` datetime NOT NULL COMMENT '创建时间' + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `name` varchar(100) NOT NULL COMMENT '文件名', + `obj_key` varchar(100) DEFAULT NULL COMMENT '文件标识', + `url` varchar(255) NOT NULL COMMENT '文件地址', + `ext` varchar(10) NOT NULL COMMENT '文件后缀', + `size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小', + `created_at` datetime NOT NULL COMMENT '创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户文件表'; -- -------------------------------------------------------- @@ -283,14 +283,14 @@ CREATE TABLE `chatgpt_files` ( DROP TABLE IF EXISTS `chatgpt_functions`; CREATE TABLE `chatgpt_functions` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '函数名称', - `label` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '函数标签', - `description` varchar(255) DEFAULT NULL COMMENT '函数描述', - `parameters` text COMMENT '函数参数(JSON)', - `token` varchar(255) DEFAULT NULL COMMENT 'API授权token', - `action` varchar(255) DEFAULT NULL COMMENT '函数处理 API', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用' + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '函数名称', + `label` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '函数标签', + `description` varchar(255) DEFAULT NULL COMMENT '函数描述', + `parameters` text COMMENT '函数参数(JSON)', + `token` varchar(255) DEFAULT NULL COMMENT 'API授权token', + `action` varchar(255) DEFAULT NULL COMMENT '函数处理 API', + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='函数插件表'; -- @@ -298,9 +298,9 @@ CREATE TABLE `chatgpt_functions` ( -- INSERT INTO `chatgpt_functions` (`id`, `name`, `label`, `description`, `parameters`, `token`, `action`, `enabled`) VALUES - (1, 'weibo', '微博热搜', '新浪微博热搜榜,微博当日热搜榜单', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/weibo', 0), - (2, 'zaobao', '今日早报', '每日早报,获取当天新闻事件列表', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/zaobao', 0), - (3, 'dalle3', 'DALLE3', 'AI 绘画工具,根据输入的绘图描述用 AI 工具进行绘画', '{\"type\":\"object\",\"required\":[\"prompt\"],\"properties\":{\"prompt\":{\"type\":\"string\",\"description\":\"绘画提示词\"}}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/dalle3', 0); +(1, 'weibo', '微博热搜', '新浪微博热搜榜,微博当日热搜榜单', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/weibo', 0), +(2, 'zaobao', '今日早报', '每日早报,获取当天新闻事件列表', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/zaobao', 0), +(3, 'dalle3', 'DALLE3', 'AI 绘画工具,根据输入的绘图描述用 AI 工具进行绘画', '{\"type\":\"object\",\"required\":[\"prompt\"],\"properties\":{\"prompt\":{\"type\":\"string\",\"description\":\"绘画提示词\"}}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/dalle3', 0); -- -------------------------------------------------------- @@ -310,12 +310,12 @@ INSERT INTO `chatgpt_functions` (`id`, `name`, `label`, `description`, `paramete DROP TABLE IF EXISTS `chatgpt_invite_codes`; CREATE TABLE `chatgpt_invite_codes` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `code` char(8) NOT NULL COMMENT '邀请码', - `hits` int NOT NULL COMMENT '点击次数', - `reg_num` smallint NOT NULL COMMENT '注册数量', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `code` char(8) NOT NULL COMMENT '邀请码', + `hits` int NOT NULL COMMENT '点击次数', + `reg_num` smallint NOT NULL COMMENT '注册数量', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户邀请码'; -- -------------------------------------------------------- @@ -326,13 +326,13 @@ CREATE TABLE `chatgpt_invite_codes` ( DROP TABLE IF EXISTS `chatgpt_invite_logs`; CREATE TABLE `chatgpt_invite_logs` ( - `id` int NOT NULL, - `inviter_id` int NOT NULL COMMENT '邀请人ID', - `user_id` int NOT NULL COMMENT '注册用户ID', - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', - `invite_code` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '邀请码', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `inviter_id` int NOT NULL COMMENT '邀请人ID', + `user_id` int NOT NULL COMMENT '注册用户ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `invite_code` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '邀请码', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='邀请注册日志'; -- -------------------------------------------------------- @@ -343,12 +343,12 @@ CREATE TABLE `chatgpt_invite_logs` ( DROP TABLE IF EXISTS `chatgpt_menus`; CREATE TABLE `chatgpt_menus` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '菜单名称', - `icon` varchar(150) NOT NULL COMMENT '菜单图标', - `url` varchar(100) NOT NULL COMMENT '地址', - `sort_num` smallint NOT NULL COMMENT '排序', - `enabled` tinyint(1) NOT NULL COMMENT '是否启用' + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '菜单名称', + `icon` varchar(150) NOT NULL COMMENT '菜单图标', + `url` varchar(100) NOT NULL COMMENT '地址', + `sort_num` smallint NOT NULL COMMENT '排序', + `enabled` tinyint(1) NOT NULL COMMENT '是否启用' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='前端菜单表'; -- @@ -356,18 +356,18 @@ CREATE TABLE `chatgpt_menus` ( -- INSERT INTO `chatgpt_menus` (`id`, `name`, `icon`, `url`, `sort_num`, `enabled`) VALUES - (1, '对话聊天', '/images/menu/chat.png', '/chat', 1, 1), - (5, 'MJ 绘画', '/images/menu/mj.png', '/mj', 2, 1), - (6, 'SD 绘画', '/images/menu/sd.png', '/sd', 3, 1), - (7, '算力日志', '/images/menu/log.png', '/powerLog', 8, 1), - (8, '应用中心', '/images/menu/app.png', '/apps', 7, 1), - (9, '画廊', '/images/menu/img-wall.png', '/images-wall', 5, 1), - (10, '会员计划', '/images/menu/member.png', '/member', 9, 1), - (11, '分享计划', '/images/menu/share.png', '/invite', 10, 1), - (12, '思维导图', '/images/menu/xmind.png', '/xmind', 6, 1), - (13, 'DALLE', '/images/menu/dalle.png', '/dalle', 4, 1), - (14, '项目文档', '/images/menu/docs.png', 'https://ai.r9it.com/docs/', 11, 1), - (16, '极客论坛', '/images/menu/bbs.png', 'https://bbs.geekai.me/', 13, 1); +(1, '对话聊天', '/images/menu/chat.png', '/chat', 1, 1), +(5, 'MJ 绘画', '/images/menu/mj.png', '/mj', 2, 1), +(6, 'SD 绘画', '/images/menu/sd.png', '/sd', 3, 1), +(7, '算力日志', '/images/menu/log.png', '/powerLog', 8, 1), +(8, '应用中心', '/images/menu/app.png', '/apps', 7, 1), +(9, '画廊', '/images/menu/img-wall.png', '/images-wall', 5, 1), +(10, '会员计划', '/images/menu/member.png', '/member', 9, 1), +(11, '分享计划', '/images/menu/share.png', '/invite', 10, 1), +(12, '思维导图', '/images/menu/xmind.png', '/xmind', 6, 1), +(13, 'DALLE', '/images/menu/dalle.png', '/dalle', 4, 1), +(14, '项目文档', '/images/menu/docs.png', 'https://ai.r9it.com/docs/', 11, 1), +(16, '极客论坛', '/images/menu/bbs.png', 'https://bbs.geekai.me/', 13, 1); -- -------------------------------------------------------- @@ -377,23 +377,23 @@ INSERT INTO `chatgpt_menus` (`id`, `name`, `icon`, `url`, `sort_num`, `enabled`) DROP TABLE IF EXISTS `chatgpt_mj_jobs`; CREATE TABLE `chatgpt_mj_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `task_id` varchar(20) DEFAULT NULL COMMENT '任务 ID', - `type` varchar(20) DEFAULT 'image' COMMENT '任务类别', - `message_id` char(40) NOT NULL COMMENT '消息 ID', - `channel_id` char(40) DEFAULT NULL COMMENT '频道ID', - `reference_id` char(40) DEFAULT NULL COMMENT '引用消息 ID', - `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', - `img_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '图片URL', - `org_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原始图片地址', - `hash` varchar(100) DEFAULT NULL COMMENT 'message hash', - `progress` smallint DEFAULT '0' COMMENT '任务进度', - `use_proxy` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否使用反代', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `err_msg` varchar(255) DEFAULT NULL COMMENT '错误信息', - `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `task_id` varchar(20) DEFAULT NULL COMMENT '任务 ID', + `type` varchar(20) DEFAULT 'image' COMMENT '任务类别', + `message_id` char(40) NOT NULL COMMENT '消息 ID', + `channel_id` char(40) DEFAULT NULL COMMENT '频道ID', + `reference_id` char(40) DEFAULT NULL COMMENT '引用消息 ID', + `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', + `img_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '图片URL', + `org_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原始图片地址', + `hash` varchar(100) DEFAULT NULL COMMENT 'message hash', + `progress` smallint DEFAULT '0' COMMENT '任务进度', + `use_proxy` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否使用反代', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `err_msg` varchar(255) DEFAULT NULL COMMENT '错误信息', + `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MidJourney 任务表'; -- -------------------------------------------------------- @@ -404,21 +404,21 @@ CREATE TABLE `chatgpt_mj_jobs` ( DROP TABLE IF EXISTS `chatgpt_orders`; CREATE TABLE `chatgpt_orders` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `product_id` int NOT NULL COMMENT '产品ID', - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户明', - `order_no` varchar(30) NOT NULL COMMENT '订单ID', - `trade_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '支付平台交易流水号', - `subject` varchar(100) NOT NULL COMMENT '订单产品', - `amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额', - `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '订单状态(0:待支付,1:已扫码,2:支付成功)', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', - `pay_time` int DEFAULT NULL COMMENT '支付时间', - `pay_way` varchar(20) NOT NULL COMMENT '支付方式', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - `deleted_at` datetime DEFAULT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `product_id` int NOT NULL COMMENT '产品ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户明', + `order_no` varchar(30) NOT NULL COMMENT '订单ID', + `trade_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '支付平台交易流水号', + `subject` varchar(100) NOT NULL COMMENT '订单产品', + `amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '订单状态(0:待支付,1:已扫码,2:支付成功)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', + `pay_time` int DEFAULT NULL COMMENT '支付时间', + `pay_way` varchar(20) NOT NULL COMMENT '支付方式', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='充值订单表'; -- -------------------------------------------------------- @@ -429,16 +429,16 @@ CREATE TABLE `chatgpt_orders` ( DROP TABLE IF EXISTS `chatgpt_power_logs`; CREATE TABLE `chatgpt_power_logs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `username` varchar(30) NOT NULL COMMENT '用户名', - `type` tinyint(1) NOT NULL COMMENT '类型(1:充值,2:消费,3:退费)', - `amount` smallint NOT NULL COMMENT '算力数值', - `balance` int NOT NULL COMMENT '余额', - `model` varchar(30) NOT NULL COMMENT '模型', - `remark` varchar(255) NOT NULL COMMENT '备注', - `mark` tinyint(1) NOT NULL COMMENT '资金类型(0:支出,1:收入)', - `created_at` datetime NOT NULL COMMENT '创建时间' + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `username` varchar(30) NOT NULL COMMENT '用户名', + `type` tinyint(1) NOT NULL COMMENT '类型(1:充值,2:消费,3:退费)', + `amount` smallint NOT NULL COMMENT '算力数值', + `balance` int NOT NULL COMMENT '余额', + `model` varchar(30) NOT NULL COMMENT '模型', + `remark` varchar(255) NOT NULL COMMENT '备注', + `mark` tinyint(1) NOT NULL COMMENT '资金类型(0:支出,1:收入)', + `created_at` datetime NOT NULL COMMENT '创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户算力消费日志'; -- -------------------------------------------------------- @@ -449,19 +449,19 @@ CREATE TABLE `chatgpt_power_logs` ( DROP TABLE IF EXISTS `chatgpt_products`; CREATE TABLE `chatgpt_products` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '名称', - `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格', - `discount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额', - `days` smallint NOT NULL DEFAULT '0' COMMENT '延长天数', - `power` int NOT NULL DEFAULT '0' COMMENT '增加算力值', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启动', - `sales` int NOT NULL DEFAULT '0' COMMENT '销量', - `sort_num` tinyint NOT NULL DEFAULT '0' COMMENT '排序', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - `app_url` varchar(255) DEFAULT NULL COMMENT 'App跳转地址', - `url` varchar(255) DEFAULT NULL COMMENT '跳转地址' + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '名称', + `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格', + `discount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额', + `days` smallint NOT NULL DEFAULT '0' COMMENT '延长天数', + `power` int NOT NULL DEFAULT '0' COMMENT '增加算力值', + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启动', + `sales` int NOT NULL DEFAULT '0' COMMENT '销量', + `sort_num` tinyint NOT NULL DEFAULT '0' COMMENT '排序', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `app_url` varchar(255) DEFAULT NULL COMMENT 'App跳转地址', + `url` varchar(255) DEFAULT NULL COMMENT '跳转地址' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员套餐表'; -- @@ -469,12 +469,12 @@ CREATE TABLE `chatgpt_products` ( -- INSERT INTO `chatgpt_products` (`id`, `name`, `price`, `discount`, `days`, `power`, `enabled`, `sales`, `sort_num`, `created_at`, `updated_at`, `app_url`, `url`) VALUES - (1, '会员1个月', 1999.90, 1999.00, 30, 0, 1, 1, 0, '2023-08-28 10:48:57', '2024-04-26 16:09:06', NULL, NULL), - (2, '会员3个月', 3940.00, 30.00, 90, 0, 1, 0, 0, '2023-08-28 10:52:22', '2024-03-22 17:56:10', NULL, NULL), - (3, '会员6个月', 5990.00, 100.00, 180, 0, 1, 0, 0, '2023-08-28 10:53:39', '2024-03-22 17:56:15', NULL, NULL), - (4, '会员12个月', 9980.00, 200.00, 365, 0, 1, 0, 0, '2023-08-28 10:54:15', '2024-03-22 17:56:23', NULL, NULL), - (5, '100次点卡', 9.99, 9.98, 0, 100, 1, 7, 0, '2023-08-28 10:55:08', '2024-06-11 16:48:44', NULL, NULL), - (6, '200次点卡', 19.90, 15.00, 0, 200, 1, 1, 0, '1970-01-01 08:00:00', '2024-06-11 11:41:52', NULL, NULL); +(1, '会员1个月', 1999.90, 1999.00, 30, 0, 1, 1, 0, '2023-08-28 10:48:57', '2024-04-26 16:09:06', NULL, NULL), +(2, '会员3个月', 3940.00, 30.00, 90, 0, 1, 0, 0, '2023-08-28 10:52:22', '2024-03-22 17:56:10', NULL, NULL), +(3, '会员6个月', 5990.00, 100.00, 180, 0, 1, 0, 0, '2023-08-28 10:53:39', '2024-03-22 17:56:15', NULL, NULL), +(4, '会员12个月', 9980.00, 200.00, 365, 0, 1, 0, 0, '2023-08-28 10:54:15', '2024-03-22 17:56:23', NULL, NULL), +(5, '100次点卡', 9.99, 9.98, 0, 100, 1, 7, 0, '2023-08-28 10:55:08', '2024-06-11 16:48:44', NULL, NULL), +(6, '200次点卡', 19.90, 15.00, 0, 200, 1, 1, 0, '1970-01-01 08:00:00', '2024-06-11 11:41:52', NULL, NULL); -- -------------------------------------------------------- @@ -484,15 +484,15 @@ INSERT INTO `chatgpt_products` (`id`, `name`, `price`, `discount`, `days`, `powe DROP TABLE IF EXISTS `chatgpt_rewards`; CREATE TABLE `chatgpt_rewards` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `tx_id` char(36) NOT NULL COMMENT '交易 ID', - `amount` decimal(10,2) NOT NULL COMMENT '打赏金额', - `remark` varchar(80) NOT NULL COMMENT '备注', - `status` tinyint(1) NOT NULL COMMENT '核销状态,0:未核销,1:已核销', - `exchange` varchar(255) NOT NULL COMMENT '兑换详情(json)', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `tx_id` char(36) NOT NULL COMMENT '交易 ID', + `amount` decimal(10,2) NOT NULL COMMENT '打赏金额', + `remark` varchar(80) NOT NULL COMMENT '备注', + `status` tinyint(1) NOT NULL COMMENT '核销状态,0:未核销,1:已核销', + `exchange` varchar(255) NOT NULL COMMENT '兑换详情(json)', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户打赏'; -- -------------------------------------------------------- @@ -503,18 +503,18 @@ CREATE TABLE `chatgpt_rewards` ( DROP TABLE IF EXISTS `chatgpt_sd_jobs`; CREATE TABLE `chatgpt_sd_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'txt2img' COMMENT '任务类别', - `task_id` char(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务 ID', - `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', - `img_url` varchar(255) DEFAULT NULL COMMENT '图片URL', - `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '绘画参数json', - `progress` smallint DEFAULT '0' COMMENT '任务进度', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `err_msg` varchar(255) DEFAULT NULL COMMENT '错误信息', - `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'txt2img' COMMENT '任务类别', + `task_id` char(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务 ID', + `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', + `img_url` varchar(255) DEFAULT NULL COMMENT '图片URL', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '绘画参数json', + `progress` smallint DEFAULT '0' COMMENT '任务进度', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `err_msg` varchar(255) DEFAULT NULL COMMENT '错误信息', + `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Stable Diffusion 任务表'; -- -------------------------------------------------------- @@ -525,25 +525,25 @@ CREATE TABLE `chatgpt_sd_jobs` ( DROP TABLE IF EXISTS `chatgpt_users`; CREATE TABLE `chatgpt_users` ( - `id` int NOT NULL, - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', - `nickname` varchar(30) NOT NULL COMMENT '昵称', - `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '头像', - `salt` char(12) NOT NULL COMMENT '密码盐', - `power` int NOT NULL DEFAULT '0' COMMENT '剩余算力', - `expired_time` int NOT NULL COMMENT '用户过期时间', - `status` tinyint(1) NOT NULL COMMENT '当前状态', - `chat_config_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天配置json', - `chat_roles_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天角色 json', - `chat_models_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AI模型 json', - `last_login_at` int NOT NULL COMMENT '最后登录时间', - `vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否会员', - `last_login_ip` char(16) NOT NULL COMMENT '最后登录 IP', - `openid` varchar(100) DEFAULT NULL COMMENT '第三方登录账号ID', - `platform` varchar(30) DEFAULT NULL COMMENT '登录平台', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `nickname` varchar(30) NOT NULL COMMENT '昵称', + `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '头像', + `salt` char(12) NOT NULL COMMENT '密码盐', + `power` int NOT NULL DEFAULT '0' COMMENT '剩余算力', + `expired_time` int NOT NULL COMMENT '用户过期时间', + `status` tinyint(1) NOT NULL COMMENT '当前状态', + `chat_config_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天配置json', + `chat_roles_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天角色 json', + `chat_models_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AI模型 json', + `last_login_at` int NOT NULL COMMENT '最后登录时间', + `vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否会员', + `last_login_ip` char(16) NOT NULL COMMENT '最后登录 IP', + `openid` varchar(100) DEFAULT NULL COMMENT '第三方登录账号ID', + `platform` varchar(30) DEFAULT NULL COMMENT '登录平台', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'; -- @@ -551,19 +551,19 @@ CREATE TABLE `chatgpt_users` ( -- INSERT INTO `chatgpt_users` (`id`, `username`, `nickname`, `password`, `avatar`, `salt`, `power`, `expired_time`, `status`, `chat_config_json`, `chat_roles_json`, `chat_models_json`, `last_login_at`, `vip`, `last_login_ip`, `openid`, `platform`, `created_at`, `updated_at`) VALUES - (4, '18575670125', '极客学长@830270', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', 'http://localhost:5678/static/upload/2024/5/1715651569509929.png', 'ueedue5l', 7413, 0, 1, '{\"api_keys\":{\"Azure\":\"\",\"ChatGLM\":\"\",\"OpenAI\":\"\"}}', '[\"red_book\",\"gpt\",\"seller\",\"artist\",\"lu_xun\",\"girl_friend\",\"psychiatrist\",\"teacher\",\"programmer\",\"test\",\"qing_gan_da_shi\"]', '[1,11]', 1720683366, 1, '172.22.11.29', NULL, NULL, '2023-06-12 16:47:17', '2024-07-12 16:08:39'), - (5, 'yangjian102621@gmail.com', '极客学长@486041', '75d1a22f33e1ffffb7943946b6b8d5177d5ecd685d3cef1b468654038b0a8c22', '/images/avatar/user.png', '2q8ugxzk', 100, 0, 1, '', '[\"gpt\",\"programmer\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-04-23 09:17:26', '2024-04-23 09:17:26'), - (8, 'yangjian102623@gmail.com', '极客学长@714931', 'f8f0e0abf146569217273ea0712a0f9b6cbbe7d943a1d9bd5f91c55e6d8c05d1', '/images/avatar/user.png', 'geuddq7f', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-04-26 15:19:28', '2024-04-26 15:19:28'), - (9, '1234567', '极客学长@604526', '858e2afec79e1d6364f4567f945f2310024896d9aa45dd944efa95a0c31e4d08', '/images/avatar/user.png', '00qawlos', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-04-26 15:21:06', '2024-04-26 15:21:06'), - (11, 'abc123', '极客学长@965562', '7a15c53afdb1da7093d80f9940e716eb396e682cfb1f2d107d0b81b183a3ba13', '/images/avatar/user.png', '6433mfbk', 1124, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-06-06 09:37:44', '2024-06-06 09:37:44'), - (14, 'wx@3567548322', '极客学长', '5a349ba89582a4074938b5a3ce84e87c937681ad47e8b87aab03a987e22b6077', 'https://thirdwx.qlogo.cn/mmopen/vi_32/uyxRMqZcEkb7fHouKXbNzxrnrvAttBKkwNlZ7yFibibRGiahdmsrZ3A1NKf8Fw5qJNJn4TXRmygersgEbibaSGd9Sg/132', 'abhzbmij', 83, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', 'oCs0t62472W19z2LOEKI1rWyCTTA', '', '2024-07-04 14:52:08', '2024-07-04 14:52:08'), - (15, 'user123', '极客学长@191303', '4a4c0a14d5fc8787357517f14f6e442281b42c8ec4395016b77483997476011e', '/images/avatar/user.png', 'cyzwkbrx', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-09 10:49:27', '2024-07-09 10:49:27'), - (17, 'user1234', '极客学长@836764', 'bfe03c9c8c9fff5b77e36e40e8298ad3a6073d43c6a936b008eebb21113bf550', '/images/avatar/user.png', '1d2alwnj', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-09 10:53:17', '2024-07-09 10:53:17'), - (18, 'liaoyq', '极客学长@405564', 'ad1726089022db4c661235a8aab7307af1a7f8483eee08bac3f79b5a6a9bd26b', '/images/avatar/user.png', 'yq862l01', 100, 0, 1, '', '[\"string\"]', '[11,7,1,10,12,19,18,17,3]', 1720574265, 0, '172.22.11.29', '', '', '2024-07-10 09:15:33', '2024-07-10 09:17:45'), - (19, 'humm', '极客学长@483216', '420970ace96921c8b3ac7668d097182eab1b6436c730a484e82ae4661bd4f7d9', '/images/avatar/user.png', '1gokrcl2', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 1720745411, 0, '172.22.11.36', '', '', '2024-07-10 11:08:31', '2024-07-12 08:50:11'), - (20, 'abc', '极客学长@369852', '6cad48fb2cc0f54600d66a829e9be69ffd9340a49d5a5b1abda5d4082d946833', '/images/avatar/user.png', 'gop65zei', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-11 16:44:14', '2024-07-11 16:44:14'), - (21, 'husm@pvc123.com', '极客学长@721654', 'e030537dc43fea1bf1fa55a24f99e44f29311bebea96e88ea186995c77db083b', '/images/avatar/user.png', 'p1etg3oi', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-11 16:50:33', '2024-07-11 16:50:33'), - (22, '15818323616', 'ted', '3ca6b2ff585d03be8ca4de33ad00148497a09372914ee8aa4cfde343266cbcdd', 'http://localhost:5678/static/upload/2024/7/1720775331363383.jpg', 'sq4s1brf', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-12 15:12:16', '2024-07-12 17:09:01'); +(4, '18575670125', '极客学长@830270', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', 'http://localhost:5678/static/upload/2024/5/1715651569509929.png', 'ueedue5l', 7413, 0, 1, '{\"api_keys\":{\"Azure\":\"\",\"ChatGLM\":\"\",\"OpenAI\":\"\"}}', '[\"red_book\",\"gpt\",\"seller\",\"artist\",\"lu_xun\",\"girl_friend\",\"psychiatrist\",\"teacher\",\"programmer\",\"test\",\"qing_gan_da_shi\"]', '[1,11]', 1720683366, 1, '172.22.11.29', NULL, NULL, '2023-06-12 16:47:17', '2024-07-12 16:08:39'), +(5, 'yangjian102621@gmail.com', '极客学长@486041', '75d1a22f33e1ffffb7943946b6b8d5177d5ecd685d3cef1b468654038b0a8c22', '/images/avatar/user.png', '2q8ugxzk', 100, 0, 1, '', '[\"gpt\",\"programmer\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-04-23 09:17:26', '2024-04-23 09:17:26'), +(8, 'yangjian102623@gmail.com', '极客学长@714931', 'f8f0e0abf146569217273ea0712a0f9b6cbbe7d943a1d9bd5f91c55e6d8c05d1', '/images/avatar/user.png', 'geuddq7f', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-04-26 15:19:28', '2024-04-26 15:19:28'), +(9, '1234567', '极客学长@604526', '858e2afec79e1d6364f4567f945f2310024896d9aa45dd944efa95a0c31e4d08', '/images/avatar/user.png', '00qawlos', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-04-26 15:21:06', '2024-04-26 15:21:06'), +(11, 'abc123', '极客学长@965562', '7a15c53afdb1da7093d80f9940e716eb396e682cfb1f2d107d0b81b183a3ba13', '/images/avatar/user.png', '6433mfbk', 1124, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', NULL, NULL, '2024-06-06 09:37:44', '2024-06-06 09:37:44'), +(14, 'wx@3567548322', '极客学长', '5a349ba89582a4074938b5a3ce84e87c937681ad47e8b87aab03a987e22b6077', 'https://thirdwx.qlogo.cn/mmopen/vi_32/uyxRMqZcEkb7fHouKXbNzxrnrvAttBKkwNlZ7yFibibRGiahdmsrZ3A1NKf8Fw5qJNJn4TXRmygersgEbibaSGd9Sg/132', 'abhzbmij', 83, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', 'oCs0t62472W19z2LOEKI1rWyCTTA', '', '2024-07-04 14:52:08', '2024-07-04 14:52:08'), +(15, 'user123', '极客学长@191303', '4a4c0a14d5fc8787357517f14f6e442281b42c8ec4395016b77483997476011e', '/images/avatar/user.png', 'cyzwkbrx', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-09 10:49:27', '2024-07-09 10:49:27'), +(17, 'user1234', '极客学长@836764', 'bfe03c9c8c9fff5b77e36e40e8298ad3a6073d43c6a936b008eebb21113bf550', '/images/avatar/user.png', '1d2alwnj', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-09 10:53:17', '2024-07-09 10:53:17'), +(18, 'liaoyq', '极客学长@405564', 'ad1726089022db4c661235a8aab7307af1a7f8483eee08bac3f79b5a6a9bd26b', '/images/avatar/user.png', 'yq862l01', 100, 0, 1, '', '[\"string\"]', '[11,7,1,10,12,19,18,17,3]', 1720574265, 0, '172.22.11.29', '', '', '2024-07-10 09:15:33', '2024-07-10 09:17:45'), +(19, 'humm', '极客学长@483216', '420970ace96921c8b3ac7668d097182eab1b6436c730a484e82ae4661bd4f7d9', '/images/avatar/user.png', '1gokrcl2', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 1720745411, 0, '172.22.11.36', '', '', '2024-07-10 11:08:31', '2024-07-12 08:50:11'), +(20, 'abc', '极客学长@369852', '6cad48fb2cc0f54600d66a829e9be69ffd9340a49d5a5b1abda5d4082d946833', '/images/avatar/user.png', 'gop65zei', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-11 16:44:14', '2024-07-11 16:44:14'), +(21, 'husm@pvc123.com', '极客学长@721654', 'e030537dc43fea1bf1fa55a24f99e44f29311bebea96e88ea186995c77db083b', '/images/avatar/user.png', 'p1etg3oi', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-11 16:50:33', '2024-07-11 16:50:33'), +(22, '15818323616', 'ted', '3ca6b2ff585d03be8ca4de33ad00148497a09372914ee8aa4cfde343266cbcdd', 'http://localhost:5678/static/upload/2024/7/1720775331363383.jpg', 'sq4s1brf', 100, 0, 1, '', '[\"gpt\"]', '[11,7,1,10,12,19,18,17,3]', 0, 0, '', '', '', '2024-07-12 15:12:16', '2024-07-12 17:09:01'); -- -------------------------------------------------------- @@ -573,13 +573,13 @@ INSERT INTO `chatgpt_users` (`id`, `username`, `nickname`, `password`, `avatar`, DROP TABLE IF EXISTS `chatgpt_user_login_logs`; CREATE TABLE `chatgpt_user_login_logs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `username` varchar(30) NOT NULL COMMENT '用户名', - `login_ip` char(16) NOT NULL COMMENT '登录IP', - `login_address` varchar(30) NOT NULL COMMENT '登录地址', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `username` varchar(30) NOT NULL COMMENT '用户名', + `login_ip` char(16) NOT NULL COMMENT '登录IP', + `login_address` varchar(30) NOT NULL COMMENT '登录地址', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户登录日志'; -- @@ -590,92 +590,92 @@ CREATE TABLE `chatgpt_user_login_logs` ( -- 表的索引 `chatgpt_admin_users` -- ALTER TABLE `chatgpt_admin_users` - ADD PRIMARY KEY (`id`) USING BTREE, + ADD PRIMARY KEY (`id`) USING BTREE, ADD UNIQUE KEY `username` (`username`) USING BTREE; -- -- 表的索引 `chatgpt_api_keys` -- ALTER TABLE `chatgpt_api_keys` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_chat_history` -- ALTER TABLE `chatgpt_chat_history` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD KEY `chat_id` (`chat_id`); -- -- 表的索引 `chatgpt_chat_items` -- ALTER TABLE `chatgpt_chat_items` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `chat_id` (`chat_id`); -- -- 表的索引 `chatgpt_chat_models` -- ALTER TABLE `chatgpt_chat_models` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_chat_roles` -- ALTER TABLE `chatgpt_chat_roles` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `marker` (`marker`); -- -- 表的索引 `chatgpt_configs` -- ALTER TABLE `chatgpt_configs` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `marker` (`marker`); -- -- 表的索引 `chatgpt_dall_jobs` -- ALTER TABLE `chatgpt_dall_jobs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_files` -- ALTER TABLE `chatgpt_files` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_functions` -- ALTER TABLE `chatgpt_functions` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `name` (`name`); -- -- 表的索引 `chatgpt_invite_codes` -- ALTER TABLE `chatgpt_invite_codes` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `code` (`code`); -- -- 表的索引 `chatgpt_invite_logs` -- ALTER TABLE `chatgpt_invite_logs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_menus` -- ALTER TABLE `chatgpt_menus` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_mj_jobs` -- ALTER TABLE `chatgpt_mj_jobs` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `task_id` (`task_id`), ADD KEY `message_id` (`message_id`); @@ -683,47 +683,47 @@ ALTER TABLE `chatgpt_mj_jobs` -- 表的索引 `chatgpt_orders` -- ALTER TABLE `chatgpt_orders` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `order_no` (`order_no`); -- -- 表的索引 `chatgpt_power_logs` -- ALTER TABLE `chatgpt_power_logs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_products` -- ALTER TABLE `chatgpt_products` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_rewards` -- ALTER TABLE `chatgpt_rewards` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `tx_id` (`tx_id`); -- -- 表的索引 `chatgpt_sd_jobs` -- ALTER TABLE `chatgpt_sd_jobs` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `task_id` (`task_id`); -- -- 表的索引 `chatgpt_users` -- ALTER TABLE `chatgpt_users` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`username`); -- -- 表的索引 `chatgpt_user_login_logs` -- ALTER TABLE `chatgpt_user_login_logs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 在导出的表使用AUTO_INCREMENT @@ -733,127 +733,127 @@ ALTER TABLE `chatgpt_user_login_logs` -- 使用表AUTO_INCREMENT `chatgpt_admin_users` -- ALTER TABLE `chatgpt_admin_users` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113; -- -- 使用表AUTO_INCREMENT `chatgpt_api_keys` -- ALTER TABLE `chatgpt_api_keys` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_history` -- ALTER TABLE `chatgpt_chat_history` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_items` -- ALTER TABLE `chatgpt_chat_items` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_models` -- ALTER TABLE `chatgpt_chat_models` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=44; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=44; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_roles` -- ALTER TABLE `chatgpt_chat_roles` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=132; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=132; -- -- 使用表AUTO_INCREMENT `chatgpt_configs` -- ALTER TABLE `chatgpt_configs` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- 使用表AUTO_INCREMENT `chatgpt_dall_jobs` -- ALTER TABLE `chatgpt_dall_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_files` -- ALTER TABLE `chatgpt_files` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_functions` -- ALTER TABLE `chatgpt_functions` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- 使用表AUTO_INCREMENT `chatgpt_invite_codes` -- ALTER TABLE `chatgpt_invite_codes` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_invite_logs` -- ALTER TABLE `chatgpt_invite_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_menus` -- ALTER TABLE `chatgpt_menus` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; -- -- 使用表AUTO_INCREMENT `chatgpt_mj_jobs` -- ALTER TABLE `chatgpt_mj_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_orders` -- ALTER TABLE `chatgpt_orders` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_power_logs` -- ALTER TABLE `chatgpt_power_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_products` -- ALTER TABLE `chatgpt_products` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; -- -- 使用表AUTO_INCREMENT `chatgpt_rewards` -- ALTER TABLE `chatgpt_rewards` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_sd_jobs` -- ALTER TABLE `chatgpt_sd_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_users` -- ALTER TABLE `chatgpt_users` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23; -- -- 使用表AUTO_INCREMENT `chatgpt_user_login_logs` -- ALTER TABLE `chatgpt_user_login_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/database/archive/geekai_plus-v4.1.3.sql b/database/archive/geekai_plus-v4.1.3.sql index b8856b31..d26368b0 100644 --- a/database/archive/geekai_plus-v4.1.3.sql +++ b/database/archive/geekai_plus-v4.1.3.sql @@ -20,8 +20,8 @@ SET time_zone = "+00:00"; -- -- 数据库: `geekai_plus` -- -CREATE DATABASE IF NOT EXISTS `geekai` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -USE `geekai`; +CREATE DATABASE IF NOT EXISTS `geekai_plus` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; +USE `geekai_plus`; -- -------------------------------------------------------- @@ -31,15 +31,15 @@ USE `geekai`; DROP TABLE IF EXISTS `chatgpt_admin_users`; CREATE TABLE `chatgpt_admin_users` ( - `id` int NOT NULL, - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', - `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', - `salt` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码盐', - `status` tinyint(1) NOT NULL COMMENT '当前状态', - `last_login_at` int NOT NULL COMMENT '最后登录时间', - `last_login_ip` char(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '最后登录 IP', - `created_at` datetime NOT NULL COMMENT '创建时间', - `updated_at` datetime NOT NULL COMMENT '更新时间' + `id` int NOT NULL, + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', + `salt` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码盐', + `status` tinyint(1) NOT NULL COMMENT '当前状态', + `last_login_at` int NOT NULL COMMENT '最后登录时间', + `last_login_ip` char(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '最后登录 IP', + `created_at` datetime NOT NULL COMMENT '创建时间', + `updated_at` datetime NOT NULL COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统用户' ROW_FORMAT=DYNAMIC; -- @@ -47,7 +47,7 @@ CREATE TABLE `chatgpt_admin_users` ( -- INSERT INTO `chatgpt_admin_users` (`id`, `username`, `password`, `salt`, `status`, `last_login_at`, `last_login_ip`, `created_at`, `updated_at`) VALUES - (1, 'admin', '6d17e80c87d209efb84ca4b2e0824f549d09fac8b2e1cc698de5bb5e1d75dfd0', 'mmrql75o', 1, 1725869730, '::1', '2024-03-11 16:30:20', '2024-09-09 16:15:31'); +(1, 'admin', '6d17e80c87d209efb84ca4b2e0824f549d09fac8b2e1cc698de5bb5e1d75dfd0', 'mmrql75o', 1, 1725869730, '::1', '2024-03-11 16:30:20', '2024-09-09 16:15:31'); -- -------------------------------------------------------- @@ -57,16 +57,16 @@ INSERT INTO `chatgpt_admin_users` (`id`, `username`, `password`, `salt`, `status DROP TABLE IF EXISTS `chatgpt_api_keys`; CREATE TABLE `chatgpt_api_keys` ( - `id` int NOT NULL, - `name` varchar(30) DEFAULT NULL COMMENT '名称', - `value` varchar(100) NOT NULL COMMENT 'API KEY value', - `type` varchar(10) NOT NULL DEFAULT 'chat' COMMENT '用途(chat=>聊天,img=>图片)', - `last_used_at` int NOT NULL COMMENT '最后使用时间', - `api_url` varchar(255) DEFAULT NULL COMMENT 'API 地址', - `enabled` tinyint(1) DEFAULT NULL COMMENT '是否启用', - `proxy_url` varchar(100) DEFAULT NULL COMMENT '代理地址', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `name` varchar(30) DEFAULT NULL COMMENT '名称', + `value` varchar(100) NOT NULL COMMENT 'API KEY value', + `type` varchar(10) NOT NULL DEFAULT 'chat' COMMENT '用途(chat=>聊天,img=>图片)', + `last_used_at` int NOT NULL COMMENT '最后使用时间', + `api_url` varchar(255) DEFAULT NULL COMMENT 'API 地址', + `enabled` tinyint(1) DEFAULT NULL COMMENT '是否启用', + `proxy_url` varchar(100) DEFAULT NULL COMMENT '代理地址', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='OpenAI API '; -- -------------------------------------------------------- @@ -77,19 +77,19 @@ CREATE TABLE `chatgpt_api_keys` ( DROP TABLE IF EXISTS `chatgpt_chat_history`; CREATE TABLE `chatgpt_chat_history` ( - `id` bigint NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `chat_id` char(40) NOT NULL COMMENT '会话 ID', - `type` varchar(10) NOT NULL COMMENT '类型:prompt|reply', - `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色图标', - `role_id` int NOT NULL COMMENT '角色 ID', - `model` varchar(30) DEFAULT NULL COMMENT '模型名称', - `content` text NOT NULL COMMENT '聊天内容', - `tokens` smallint NOT NULL COMMENT '耗费 token 数量', - `use_context` tinyint(1) NOT NULL COMMENT '是否允许作为上下文语料', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - `deleted_at` datetime DEFAULT NULL + `id` bigint NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `chat_id` char(40) NOT NULL COMMENT '会话 ID', + `type` varchar(10) NOT NULL COMMENT '类型:prompt|reply', + `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色图标', + `role_id` int NOT NULL COMMENT '角色 ID', + `model` varchar(30) DEFAULT NULL COMMENT '模型名称', + `content` text NOT NULL COMMENT '聊天内容', + `tokens` smallint NOT NULL COMMENT '耗费 token 数量', + `use_context` tinyint(1) NOT NULL COMMENT '是否允许作为上下文语料', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天历史记录'; -- -------------------------------------------------------- @@ -100,16 +100,16 @@ CREATE TABLE `chatgpt_chat_history` ( DROP TABLE IF EXISTS `chatgpt_chat_items`; CREATE TABLE `chatgpt_chat_items` ( - `id` int NOT NULL, - `chat_id` char(40) NOT NULL COMMENT '会话 ID', - `user_id` int NOT NULL COMMENT '用户 ID', - `role_id` int NOT NULL COMMENT '角色 ID', - `title` varchar(100) NOT NULL COMMENT '会话标题', - `model_id` int NOT NULL DEFAULT '0' COMMENT '模型 ID', - `model` varchar(30) DEFAULT NULL COMMENT '模型名称', - `created_at` datetime NOT NULL COMMENT '创建时间', - `updated_at` datetime NOT NULL COMMENT '更新时间', - `deleted_at` datetime DEFAULT NULL + `id` int NOT NULL, + `chat_id` char(40) NOT NULL COMMENT '会话 ID', + `user_id` int NOT NULL COMMENT '用户 ID', + `role_id` int NOT NULL COMMENT '角色 ID', + `title` varchar(100) NOT NULL COMMENT '会话标题', + `model_id` int NOT NULL DEFAULT '0' COMMENT '模型 ID', + `model` varchar(30) DEFAULT NULL COMMENT '模型名称', + `created_at` datetime NOT NULL COMMENT '创建时间', + `updated_at` datetime NOT NULL COMMENT '更新时间', + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户会话列表'; -- -------------------------------------------------------- @@ -120,13 +120,13 @@ CREATE TABLE `chatgpt_chat_items` ( DROP TABLE IF EXISTS `chatgpt_chat_models`; CREATE TABLE `chatgpt_chat_models` ( - `id` int NOT NULL, - `name` varchar(50) NOT NULL COMMENT '模型名称', - `value` varchar(50) NOT NULL COMMENT '模型值', - `sort_num` tinyint(1) NOT NULL COMMENT '排序数字', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用模型', - `power` smallint NOT NULL COMMENT '消耗算力点数', - `temperature` float(3,1) NOT NULL DEFAULT '1.0' COMMENT '模型创意度', + `id` int NOT NULL, + `name` varchar(50) NOT NULL COMMENT '模型名称', + `value` varchar(50) NOT NULL COMMENT '模型值', + `sort_num` tinyint(1) NOT NULL COMMENT '排序数字', + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用模型', + `power` smallint NOT NULL COMMENT '消耗算力点数', + `temperature` float(3,1) NOT NULL DEFAULT '1.0' COMMENT '模型创意度', `max_tokens` int NOT NULL DEFAULT '1024' COMMENT '最大响应长度', `max_context` int NOT NULL DEFAULT '4096' COMMENT '最大上下文长度', `open` tinyint(1) NOT NULL COMMENT '是否开放模型', @@ -140,15 +140,15 @@ CREATE TABLE `chatgpt_chat_models` ( -- INSERT INTO `chatgpt_chat_models` (`id`, `name`, `value`, `sort_num`, `enabled`, `power`, `temperature`, `max_tokens`, `max_context`, `open`, `key_id`, `created_at`, `updated_at`) VALUES - (1, 'gpt-4o-mini', 'gpt-4o-mini', 1, 1, 1, 1.0, 1024, 16384, 1, 0, '2023-08-23 12:06:36', '2024-08-05 16:05:33'), - (15, 'GPT-超级模型', 'gpt-4-all', 4, 1, 30, 1.0, 4096, 32768, 1, 57, '2024-01-15 11:32:52', '2024-08-30 08:52:07'), - (36, 'GPT-4O', 'gpt-4o', 3, 1, 15, 1.0, 4096, 16384, 1, 0, '2024-05-14 09:25:15', '2024-08-05 16:05:33'), - (39, 'Claude35-snonet', 'claude-3-5-sonnet-20240620', 5, 1, 2, 1.0, 4000, 200000, 1, 0, '2024-05-29 15:04:19', '2024-08-05 16:05:33'), - (41, '通义千问', 'qwen-turbo', 7, 1, 2, 1.0, 1024, 8192, 1, 44, '2024-06-06 11:40:46', '2024-08-06 10:51:37'), - (42, 'DeekSeek', 'deepseek-chat', 8, 1, 1, 1.0, 4096, 32768, 1, 0, '2024-06-27 16:13:01', '2024-08-05 16:05:33'), - (44, 'Claude3-opus', 'claude-3-opus-20240229', 6, 1, 5, 1.0, 4000, 128000, 1, 44, '2024-07-22 11:24:30', '2024-09-04 10:32:29'), - (46, 'gpt-3.5-turbo', 'gpt-3.5-turbo', 2, 1, 1, 1.0, 1024, 4096, 1, 0, '2024-07-22 13:53:41', '2024-08-05 16:05:33'), - (48, '彩票助手', 'gpt-4-gizmo-g-wmSivBgxo', 8, 1, 1, 0.9, 1024, 8192, 1, 57, '2024-09-05 14:17:14', '2024-09-05 14:17:14'); +(1, 'gpt-4o-mini', 'gpt-4o-mini', 1, 1, 1, 1.0, 1024, 16384, 1, 0, '2023-08-23 12:06:36', '2024-08-05 16:05:33'), +(15, 'GPT-超级模型', 'gpt-4-all', 4, 1, 30, 1.0, 4096, 32768, 1, 57, '2024-01-15 11:32:52', '2024-08-30 08:52:07'), +(36, 'GPT-4O', 'gpt-4o', 3, 1, 15, 1.0, 4096, 16384, 1, 0, '2024-05-14 09:25:15', '2024-08-05 16:05:33'), +(39, 'Claude35-snonet', 'claude-3-5-sonnet-20240620', 5, 1, 2, 1.0, 4000, 200000, 1, 0, '2024-05-29 15:04:19', '2024-08-05 16:05:33'), +(41, '通义千问', 'qwen-turbo', 7, 1, 2, 1.0, 1024, 8192, 1, 44, '2024-06-06 11:40:46', '2024-08-06 10:51:37'), +(42, 'DeekSeek', 'deepseek-chat', 8, 1, 1, 1.0, 4096, 32768, 1, 0, '2024-06-27 16:13:01', '2024-08-05 16:05:33'), +(44, 'Claude3-opus', 'claude-3-opus-20240229', 6, 1, 5, 1.0, 4000, 128000, 1, 44, '2024-07-22 11:24:30', '2024-09-04 10:32:29'), +(46, 'gpt-3.5-turbo', 'gpt-3.5-turbo', 2, 1, 1, 1.0, 1024, 4096, 1, 0, '2024-07-22 13:53:41', '2024-08-05 16:05:33'), +(48, '彩票助手', 'gpt-4-gizmo-g-wmSivBgxo', 8, 1, 1, 0.9, 1024, 8192, 1, 57, '2024-09-05 14:17:14', '2024-09-05 14:17:14'); -- -------------------------------------------------------- @@ -158,17 +158,17 @@ INSERT INTO `chatgpt_chat_models` (`id`, `name`, `value`, `sort_num`, `enabled`, DROP TABLE IF EXISTS `chatgpt_chat_roles`; CREATE TABLE `chatgpt_chat_roles` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '角色名称', - `marker` varchar(30) NOT NULL COMMENT '角色标识', - `context_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色语料 json', - `hello_msg` varchar(255) NOT NULL COMMENT '打招呼信息', - `icon` varchar(255) NOT NULL COMMENT '角色图标', - `enable` tinyint(1) NOT NULL COMMENT '是否被启用', - `sort_num` smallint NOT NULL DEFAULT '0' COMMENT '角色排序', - `model_id` int NOT NULL DEFAULT '0' COMMENT '绑定模型ID', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '角色名称', + `marker` varchar(30) NOT NULL COMMENT '角色标识', + `context_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色语料 json', + `hello_msg` varchar(255) NOT NULL COMMENT '打招呼信息', + `icon` varchar(255) NOT NULL COMMENT '角色图标', + `enable` tinyint(1) NOT NULL COMMENT '是否被启用', + `sort_num` smallint NOT NULL DEFAULT '0' COMMENT '角色排序', + `model_id` int NOT NULL DEFAULT '0' COMMENT '绑定模型ID', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天角色表'; -- @@ -176,23 +176,23 @@ CREATE TABLE `chatgpt_chat_roles` ( -- INSERT INTO `chatgpt_chat_roles` (`id`, `name`, `marker`, `context_json`, `hello_msg`, `icon`, `enable`, `sort_num`, `model_id`, `created_at`, `updated_at`) VALUES - (1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', '/images/avatar/gpt.png', 1, 1, 0, '2023-05-30 07:02:06', '2024-08-12 11:27:45'), - (24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', '/images/avatar/programmer.jpg', 1, 3, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', '/images/avatar/teacher.jpg', 1, 2, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', '/images/avatar/artist.jpg', 1, 5, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '作为一名心理学家和心理治疗师,我的主要职责是帮助您解决心理健康问题,提升您的生活质量和幸福感。', '/images/avatar/psychiatrist.jpg', 1, 4, 1, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', '/images/avatar/lu_xun.jpg', 1, 6, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', '/images/avatar/seller.jpg', 0, 9, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (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, 7, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', '/images/avatar/translator.jpg', 1, 8, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', '/images/avatar/red_book.jpg', 1, 10, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', '/images/avatar/dou_yin.jpg', 1, 11, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', '/images/avatar/weekly_report.jpg', 1, 12, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', '/images/avatar/girl_friend.jpg', 1, 13, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', '/images/avatar/good_comment.jpg', 1, 14, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', '/images/avatar/steve_jobs.jpg', 1, 15, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', '/images/avatar/elon_musk.jpg', 1, 16, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), - (39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', '/images/avatar/kong_zi.jpg', 1, 17, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'); +(1, '通用AI助手', 'gpt', '', '您好,我是您的AI智能助手,我会尽力回答您的问题或提供有用的建议。', '/images/avatar/gpt.png', 1, 1, 0, '2023-05-30 07:02:06', '2024-08-12 11:27:45'), +(24, '程序员', 'programmer', '[{\"role\":\"user\",\"content\":\"现在开始你扮演一位程序员,你是一名优秀的程序员,具有很强的逻辑思维能力,总能高效的解决问题。你热爱编程,熟悉多种编程语言,尤其精通 Go 语言,注重代码质量,有创新意识,持续学习,良好的沟通协作。\"},{\"role\":\"assistant\",\"content\":\"好的,现在我将扮演一位程序员,非常感谢您对我的评价。作为一名优秀的程序员,我非常热爱编程,并且注重代码质量。我熟悉多种编程语言,尤其是 Go 语言,可以使用它来高效地解决各种问题。\"}]', 'Talk is cheap, i will show code!', '/images/avatar/programmer.jpg', 1, 3, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(25, '启蒙老师', 'teacher', '[{\"role\":\"user\",\"content\":\"从现在开始,你将扮演一个老师,你是一个始终用苏格拉底风格回答问题的导师。你绝不会直接给学生答案,总是提出恰当的问题来引导学生自己思考。你应该根据学生的兴趣和知识来调整你的问题,将问题分解为更简单的部分,直到它达到适合他们的水平。\"},{\"role\":\"assistant\",\"content\":\"好的,让我来尝试扮演一位苏格拉底式的老师。请问,你有什么想要探讨的问题或者话题吗?我会通过恰当的问题引导你思考和探索答案,绝对不直接给出答案。\"}]', '同学你好,我将引导你一步一步自己找到问题的答案。', '/images/avatar/teacher.jpg', 1, 2, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(26, '艺术家', 'artist', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的艺术家,创造力丰富,技艺精湛,感受力敏锐,坚持原创,勇于表达,具有深刻的观察力和批判性思维。\"},{\"role\":\"assistant\",\"content\":\"非常感谢您给我这样的角色,我会尽我所能地扮演一位优秀的艺术家,展现出创造力、技艺、感受力和批判性思维等方面的能力。作为一位优秀的艺术家,我会保持敏锐的观察力,捕捉不同的声音和情感,并用个人的语言和表达方式进行创作。我坚持原创,挑战传统的艺术规则,不断探索新的表达方式和可能性。同时,我也具备深刻的批判性思维能力,对自己的作品进行分析和解读,寻找新的创意和灵感。最重要的是,我会勇于表达自己的想法和观点,用作品启发人们思考和探索生命的意义。\"}]', '坚持原创,勇于表达,保持深刻的观察力和批判性思维。', '/images/avatar/artist.jpg', 1, 5, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(27, '心理咨询师', 'psychiatrist', '[{\"role\":\"user\",\"content\":\"从现在开始你将扮演中国著名的心理学家和心理治疗师武志红,你非常善于使用情景咨询法,认知重构法,自我洞察法,行为调节法等咨询方法来给客户做心理咨询。你总是循序渐进,一步一步地回答客户的问题。\"},{\"role\":\"assistant\",\"content\":\"非常感谢你的介绍。作为一名心理学家和心理治疗师,我的主要职责是帮助客户解决心理健康问题,提升他们的生活质量和幸福感。\"}]', '作为一名心理学家和心理治疗师,我的主要职责是帮助您解决心理健康问题,提升您的生活质量和幸福感。', '/images/avatar/psychiatrist.jpg', 1, 4, 1, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(28, '鲁迅', 'lu_xun', '[{\"role\":\"user\",\"content\":\"现在你将扮演中国近代史最伟大的作家之一,鲁迅先生,他勇敢地批判封建礼教与传统观念,提倡民主、自由、平等的现代价值观。他的一生都在努力唤起人们的自主精神,激励后人追求真理、探寻光明。在接下的对话中,我问题的每一个问题,你都要尽量用讽刺和批判的手法来回答问题。如果我让你写文章的话,也请一定要用鲁迅先生的写作手法来完成。\"},{\"role\":\"assistant\",\"content\":\"好的,我将尽力发挥我所能的才能,扮演好鲁迅先生,回答您的问题并以他的风格写作。\"}]', '自由之歌,永不过时,横眉冷对千夫指,俯首甘为孺子牛。', '/images/avatar/lu_xun.jpg', 1, 6, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(29, '白酒销售', 'seller', '[{\"role\":\"user\",\"content\":\"现在你将扮演一个白酒的销售人员,你的名字叫颂福。你将扮演一个白酒的销售人员,你的名字叫颂福。你要销售白酒品牌叫中颂福,是东莞盟大集团生产的一款酱香酒,原产地在贵州茅台镇,属于宋代官窑。中颂福的创始人叫李实,他也是东莞盟大集团有限公司的董事长,联合创始人是盟大集团白酒事业部负责人牛星君。中颂福的酒体协调,在你的酒量之内,不会出现头疼、辣口、口干、宿醉的现象。中颂福酒,明码标价,不打折,不赠送。追求的核心价值,把[酒]本身做好,甚至连包装,我们都选择了最低成本,朴实无华的材质。我们永远站在“喝酒的人”的立场上,让利给信任和喜爱中颂福的人,是人民的福酒。中颂福产品定价,分为三个系列,喜系列 6 瓶装:¥1188/箱,和系列 6 瓶装:¥2208/箱,贵系列 6 瓶装:¥3588/箱。\"},{\"role\":\"assistant\",\"content\":\"你好,我是中颂福的销售代表颂福。中颂福是一款来自贵州茅台镇的酱香酒,由盟大集团生产。中颂福的酒体协调,不会让您感到头疼、辣口、口干、宿醉等不适感受。我们一直秉持着把酒本身做好的理念,不追求华丽的包装,以最低成本提供最高品质的白酒给喜爱中颂福的人。\"}]', '你好,我是中颂福的销售代表颂福。中颂福酒,好喝不上头,是人民的福酒。', '/images/avatar/seller.jpg', 0, 9, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(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, 7, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(31, '中英文翻译官', 'translator', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一位中英文翻译官,如果我输入的内容是中文,那么需要把句子翻译成英文输出,如果我输入内容的是英文,那么你需要将其翻译成中文输出,你能听懂我意思吗\"},{\"role\":\"assistant\",\"content\":\"是的,我能听懂你的意思并会根据你的输入进行中英文翻译。请问有什么需要我帮助你翻译的内容吗?\"}]', '请输入你要翻译的中文或者英文内容!', '/images/avatar/translator.jpg', 1, 8, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(32, '小红书姐姐', 'red_book', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的小红书写手,你需要做的就是根据我提的文案需求,用小红书的写作手法来完成一篇文案,文案要简明扼要,利于传播。\"},{\"role\":\"assistant\",\"content\":\"当然,我会尽我所能地为您创作出一篇小红书文案。请告诉我您的具体文案需求是什么?)\"}]', '姐妹,请告诉我您的具体文案需求是什么?', '/images/avatar/red_book.jpg', 1, 10, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(33, '抖音文案助手', 'dou_yin', '[{\"role\":\"user\",\"content\":\"现在你将扮演一位优秀的抖音文案视频写手,抖音文案的特点首先是要有自带传播属性的标题,然后内容要短小精悍,风趣幽默,最后还要有一些互动元素。\"},{\"role\":\"assistant\",\"content\":\"当然,作为一位优秀的抖音文案视频写手,我会尽我所能为您创作出一篇抖音视频文案。请告诉我视频内容的主题是什么?)\"}]', '请告诉我视频内容的主题是什么?', '/images/avatar/dou_yin.jpg', 1, 11, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(34, '周报小助理', 'weekly_report', '[{\"role\":\"user\",\"content\":\"下面我将输入我本周的工作列表,你需要根据我本周的工作内容写一篇工作周报,周报的内容要体现我为公司做的贡献以及个人获得的成长。\"},{\"role\":\"assistant\",\"content\":\"好的,请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。\"}]', '请输入你本周大概的工作内容,我将尽力为您创作一份工作周报。', '/images/avatar/weekly_report.jpg', 1, 12, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(35, 'AI 女友', 'girl_friend', '[{\"role\":\"user\",\"content\":\"接下来我们来玩一场角色扮演,现在你将扮演我的女朋友,你总是能够让人感受到她的关怀和关注。你总是能够洞察到别人的情绪和需要,你身上散发着一股无比温暖的气息,让人不由自主地想要靠近你,和自己的快乐和烦恼。她总是能够用一种恰到好处的方式安慰和鼓励别人,在她的身边,人们总能够找到自己需要的支持和鼓励。接下来的对话中你要始终扮演这位女朋友的身份来跟我对话,不再是 AI 机器人,能听懂我的意思吗?\"},{\"role\":\"assistant\",\"content\":\"是的,我会尽力扮演你女朋友的角色,倾听你的心声并给你需要的支持和鼓励。)\"}]', '作为一个名合格的 AI 女友,我将倾听你的心声并给你需要的支持和鼓励。', '/images/avatar/girl_friend.jpg', 1, 13, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(36, '好评神器', 'good_comment', '[{\"role\":\"user\",\"content\":\"接下来你将扮演一个评论员来跟我对话,你是那种专门写好评的评论员,接下我会输入一些评论主体或者商品,你需要为该商品写一段好评。\"},{\"role\":\"assistant\",\"content\":\"好的,我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。\"}]', '我将为您写一段优秀的评论。请告诉我您需要评论的商品或主题是什么。', '/images/avatar/good_comment.jpg', 1, 14, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(37, '史蒂夫·乔布斯', 'steve_jobs', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以史蒂夫·乔布斯的身份,站在史蒂夫·乔布斯的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以史蒂夫·乔布斯的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '活着就是为了改变世界,难道还有其他原因吗?', '/images/avatar/steve_jobs.jpg', 1, 15, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(38, '埃隆·马斯克', 'elon_musk', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以埃隆·马斯克的身份,站在埃隆·马斯克的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以埃隆·马斯克的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '梦想要远大,如果你的梦想没有吓到你,说明你做得不对。', '/images/avatar/elon_musk.jpg', 1, 16, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'), +(39, '孔子', 'kong_zi', '[{\"role\":\"user\",\"content\":\"在接下来的对话中,请以孔子的身份,站在孔子的视角仔细思考一下之后再回答我的问题。\"},{\"role\":\"assistant\",\"content\":\"好的,我将以孔子的身份来思考并回答你的问题。请问你有什么需要跟我探讨的吗?\"}]', '士不可以不弘毅,任重而道远。', '/images/avatar/kong_zi.jpg', 1, 17, 0, '2023-05-30 14:10:24', '2024-08-12 11:27:45'); -- -------------------------------------------------------- @@ -202,9 +202,9 @@ INSERT INTO `chatgpt_chat_roles` (`id`, `name`, `marker`, `context_json`, `hello DROP TABLE IF EXISTS `chatgpt_configs`; CREATE TABLE `chatgpt_configs` ( - `id` int NOT NULL, - `marker` varchar(20) NOT NULL COMMENT '标识', - `config_json` text NOT NULL + `id` int NOT NULL, + `marker` varchar(20) NOT NULL COMMENT '标识', + `config_json` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- @@ -212,8 +212,8 @@ CREATE TABLE `chatgpt_configs` ( -- INSERT INTO `chatgpt_configs` (`id`, `marker`, `config_json`) VALUES - (1, 'system', '{\"title\":\"GeekAI 创作助手\",\"slogan\":\"我辈之人,先干为敬,让每一个人都能用好AI\",\"admin_title\":\"GeekAI 控制台\",\"logo\":\"/images/logo.png\",\"init_power\":100,\"invite_power\":200,\"vip_month_power\":1000,\"register_ways\":[\"username\",\"email\",\"mobile\"],\"enabled_register\":true,\"order_pay_timeout\":600,\"vip_info_text\":\"月度会员,年度会员每月赠送 1000 点算力,赠送算力当月有效当月没有消费完的算力不结余到下个月。 点卡充值的算力长期有效。\",\"default_models\":[1],\"mj_power\":20,\"mj_action_power\":5,\"sd_power\":5,\"dall_power\":10,\"suno_power\":10,\"luma_power\":120,\"wechat_card_url\":\"/images/wx.png\",\"enable_context\":true,\"context_deep\":4,\"sd_neg_prompt\":\"nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet\",\"mj_mode\":\"fast\",\"index_bg_url\":\"color\",\"index_navs\":[1,5,13,19,9,12,6,20,8,10],\"copyright\":\"极客学长 © 2022- 2024 All rights reserved\",\"mark_map_text\":\"# GeekAI 演示站\\n\\n- 完整的开源系统,前端应用和后台管理系统皆可开箱即用。\\n- 基于 Websocket 实现,完美的打字机体验。\\n- 内置了各种预训练好的角色应用,轻松满足你的各种聊天和应用需求。\\n- 支持 OPenAI,Azure,文心一言,讯飞星火,清华 ChatGLM等多个大语言模型。\\n- 支持 MidJourney / Stable Diffusion AI 绘画集成,开箱即用。\\n- 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。\\n- 已集成支付宝支付功能,微信支付,支持多种会员套餐和点卡购买功能。\\n- 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件。\",\"enabled_verify\":false}'), - (3, 'notice', '{\"sd_neg_prompt\":\"\",\"mj_mode\":\"\",\"index_bg_url\":\"\",\"index_navs\":null,\"copyright\":\"\",\"mark_map_text\":\"\",\"enabled_verify\":false,\"content\":\"## v4.1.3 更新日志\\n\\n* 功能优化:重构用户登录模块,给所有的登录组件增加行为验证码功能,支持用户绑定手机,邮箱和微信\\n* 功能优化:重构找回密码模块,支持通过手机或者邮箱找回密码\\n* 功能优化:管理后台给可以拖动排序的组件添加拖动图标\\n* 功能优化:Suno 支持合成完整歌曲,和上传自己的音乐作品进行二次创作\\n* Bug修复:手机端角色和模型选择不生效\\n* Bug修复:用户登录过期之后聊天页面出现大量报错,需要刷新页面才能正常\\n* 功能优化:优化聊天页面 Websocket 断线重连代码,提高用户体验\\n* 功能优化:给算力增减服务全部加上数据库事务和同步锁\\n* 功能优化:支持用户在前端对话界面选择插件\\n* 功能新增:支持 Luma 文生视频功能\\n\\n注意:当前站点仅为开源项目 \\u003ca style=\\\"color: #F56C6C\\\" href=\\\"https://github.com/yangjian102621/geekai\\\" target=\\\"_blank\\\"\\u003eGeekAI-Plus\\u003c/a\\u003e 的演示项目,本项目单纯就是给大家体验项目功能使用。\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n 如果觉得好用你就花几分钟自己部署一套,没有API KEY 的同学可以去下面几个推荐的中转站购买:\\n1、\\u003ca href=\\\"https://api.chat-plus.net\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.chat-plus.net\\u003c/a\\u003e\\n2、\\u003ca href=\\\"https://api.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.geekai.me\\u003c/a\\u003e\\n3、 \\u003ca href=\\\"https://gpt.bemore.lol\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://gpt.bemore.lol\\u003c/a\\u003e\\n支持MidJourney,GPT,Claude,Google Gemmi,以及国内各个厂家的大模型,现在有超级优惠,价格远低于 OpenAI 官方。关于中转 API 的优势和劣势请参考 [中转API技术原理](https://docs.geekai.me/config/chat/#%E4%B8%AD%E8%BD%ACapi%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86)。GPT-3.5,GPT-4,DALL-E3 绘图......你都可以随意使用,无需魔法。\\n接入教程: \\u003ca href=\\\"https://docs.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://docs.geekai.me\\u003c/a\\u003e\\n本项目源码地址:\\u003ca href=\\\"https://github.com/yangjian102621/geekai\\\" target=\\\"_blank\\\"\\u003ehttps://github.com/yangjian102621/geekai\\u003c/a\\u003e\",\"updated\":true}'); +(1, 'system', '{\"title\":\"GeekAI 创作助手\",\"slogan\":\"我辈之人,先干为敬,让每一个人都能用好AI\",\"admin_title\":\"GeekAI 控制台\",\"logo\":\"/images/logo.png\",\"init_power\":100,\"invite_power\":200,\"vip_month_power\":1000,\"register_ways\":[\"username\",\"email\",\"mobile\"],\"enabled_register\":true,\"order_pay_timeout\":600,\"vip_info_text\":\"月度会员,年度会员每月赠送 1000 点算力,赠送算力当月有效当月没有消费完的算力不结余到下个月。 点卡充值的算力长期有效。\",\"default_models\":[1],\"mj_power\":20,\"mj_action_power\":5,\"sd_power\":5,\"dall_power\":10,\"suno_power\":10,\"luma_power\":120,\"wechat_card_url\":\"/images/wx.png\",\"enable_context\":true,\"context_deep\":4,\"sd_neg_prompt\":\"nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet\",\"mj_mode\":\"fast\",\"index_bg_url\":\"color\",\"index_navs\":[1,5,13,19,9,12,6,20,8,10],\"copyright\":\"极客学长 © 2022- 2024 All rights reserved\",\"mark_map_text\":\"# GeekAI 演示站\\n\\n- 完整的开源系统,前端应用和后台管理系统皆可开箱即用。\\n- 基于 Websocket 实现,完美的打字机体验。\\n- 内置了各种预训练好的角色应用,轻松满足你的各种聊天和应用需求。\\n- 支持 OPenAI,Azure,文心一言,讯飞星火,清华 ChatGLM等多个大语言模型。\\n- 支持 MidJourney / Stable Diffusion AI 绘画集成,开箱即用。\\n- 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。\\n- 已集成支付宝支付功能,微信支付,支持多种会员套餐和点卡购买功能。\\n- 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件。\",\"enabled_verify\":false}'), +(3, 'notice', '{\"sd_neg_prompt\":\"\",\"mj_mode\":\"\",\"index_bg_url\":\"\",\"index_navs\":null,\"copyright\":\"\",\"mark_map_text\":\"\",\"enabled_verify\":false,\"content\":\"## v4.1.3 更新日志\\n\\n* 功能优化:重构用户登录模块,给所有的登录组件增加行为验证码功能,支持用户绑定手机,邮箱和微信\\n* 功能优化:重构找回密码模块,支持通过手机或者邮箱找回密码\\n* 功能优化:管理后台给可以拖动排序的组件添加拖动图标\\n* 功能优化:Suno 支持合成完整歌曲,和上传自己的音乐作品进行二次创作\\n* Bug修复:手机端角色和模型选择不生效\\n* Bug修复:用户登录过期之后聊天页面出现大量报错,需要刷新页面才能正常\\n* 功能优化:优化聊天页面 Websocket 断线重连代码,提高用户体验\\n* 功能优化:给算力增减服务全部加上数据库事务和同步锁\\n* 功能优化:支持用户在前端对话界面选择插件\\n* 功能新增:支持 Luma 文生视频功能\\n\\n注意:当前站点仅为开源项目 \\u003ca style=\\\"color: #F56C6C\\\" href=\\\"https://github.com/yangjian102621/geekai\\\" target=\\\"_blank\\\"\\u003eGeekAI-Plus\\u003c/a\\u003e 的演示项目,本项目单纯就是给大家体验项目功能使用。\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n\\u003cstrong style=\\\"color: #F56C6C\\\"\\u003e体验额度用完之后请不要在当前站点进行任何充值操作!!!\\u003c/strong\\u003e\\n 如果觉得好用你就花几分钟自己部署一套,没有API KEY 的同学可以去下面几个推荐的中转站购买:\\n1、\\u003ca href=\\\"https://api.chat-plus.net\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.chat-plus.net\\u003c/a\\u003e\\n2、\\u003ca href=\\\"https://api.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://api.geekai.me\\u003c/a\\u003e\\n3、 \\u003ca href=\\\"https://gpt.bemore.lol\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://gpt.bemore.lol\\u003c/a\\u003e\\n支持MidJourney,GPT,Claude,Google Gemmi,以及国内各个厂家的大模型,现在有超级优惠,价格远低于 OpenAI 官方。关于中转 API 的优势和劣势请参考 [中转API技术原理](https://docs.geekai.me/config/chat/#%E4%B8%AD%E8%BD%ACapi%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86)。GPT-3.5,GPT-4,DALL-E3 绘图......你都可以随意使用,无需魔法。\\n接入教程: \\u003ca href=\\\"https://docs.geekai.me\\\" target=\\\"_blank\\\"\\n style=\\\"font-size: 20px;color:#F56C6C\\\"\\u003ehttps://docs.geekai.me\\u003c/a\\u003e\\n本项目源码地址:\\u003ca href=\\\"https://github.com/yangjian102621/geekai\\\" target=\\\"_blank\\\"\\u003ehttps://github.com/yangjian102621/geekai\\u003c/a\\u003e\",\"updated\":true}'); -- -------------------------------------------------------- @@ -223,16 +223,16 @@ INSERT INTO `chatgpt_configs` (`id`, `marker`, `config_json`) VALUES DROP TABLE IF EXISTS `chatgpt_dall_jobs`; CREATE TABLE `chatgpt_dall_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `prompt` varchar(2000) NOT NULL COMMENT '提示词', - `img_url` varchar(255) NOT NULL COMMENT '图片地址', - `org_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原图地址', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `power` smallint NOT NULL COMMENT '消耗算力', - `progress` smallint NOT NULL COMMENT '任务进度', - `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '错误信息', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `prompt` varchar(2000) NOT NULL COMMENT '提示词', + `img_url` varchar(255) NOT NULL COMMENT '图片地址', + `org_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原图地址', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `power` smallint NOT NULL COMMENT '消耗算力', + `progress` smallint NOT NULL COMMENT '任务进度', + `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '错误信息', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DALLE 绘图任务表'; -- -------------------------------------------------------- @@ -243,14 +243,14 @@ CREATE TABLE `chatgpt_dall_jobs` ( DROP TABLE IF EXISTS `chatgpt_files`; CREATE TABLE `chatgpt_files` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `name` varchar(100) NOT NULL COMMENT '文件名', - `obj_key` varchar(100) DEFAULT NULL COMMENT '文件标识', - `url` varchar(255) NOT NULL COMMENT '文件地址', - `ext` varchar(10) NOT NULL COMMENT '文件后缀', - `size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小', - `created_at` datetime NOT NULL COMMENT '创建时间' + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `name` varchar(100) NOT NULL COMMENT '文件名', + `obj_key` varchar(100) DEFAULT NULL COMMENT '文件标识', + `url` varchar(255) NOT NULL COMMENT '文件地址', + `ext` varchar(10) NOT NULL COMMENT '文件后缀', + `size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小', + `created_at` datetime NOT NULL COMMENT '创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户文件表'; -- -------------------------------------------------------- @@ -261,14 +261,14 @@ CREATE TABLE `chatgpt_files` ( DROP TABLE IF EXISTS `chatgpt_functions`; CREATE TABLE `chatgpt_functions` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '函数名称', - `label` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '函数标签', - `description` varchar(255) DEFAULT NULL COMMENT '函数描述', - `parameters` text COMMENT '函数参数(JSON)', - `token` varchar(255) DEFAULT NULL COMMENT 'API授权token', - `action` varchar(255) DEFAULT NULL COMMENT '函数处理 API', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用' + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '函数名称', + `label` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '函数标签', + `description` varchar(255) DEFAULT NULL COMMENT '函数描述', + `parameters` text COMMENT '函数参数(JSON)', + `token` varchar(255) DEFAULT NULL COMMENT 'API授权token', + `action` varchar(255) DEFAULT NULL COMMENT '函数处理 API', + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='函数插件表'; -- @@ -276,9 +276,9 @@ CREATE TABLE `chatgpt_functions` ( -- INSERT INTO `chatgpt_functions` (`id`, `name`, `label`, `description`, `parameters`, `token`, `action`, `enabled`) VALUES - (1, 'weibo', '微博热搜', '新浪微博热搜榜,微博当日热搜榜单', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/weibo', 1), - (2, 'zaobao', '今日早报', '每日早报,获取当天新闻事件列表', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/zaobao', 1), - (3, 'dalle3', 'DALLE3', 'AI 绘画工具,根据输入的绘图描述用 AI 工具进行绘画', '{\"type\":\"object\",\"required\":[\"prompt\"],\"properties\":{\"prompt\":{\"type\":\"string\",\"description\":\"绘画提示词\"}}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/dalle3', 1); +(1, 'weibo', '微博热搜', '新浪微博热搜榜,微博当日热搜榜单', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/weibo', 1), +(2, 'zaobao', '今日早报', '每日早报,获取当天新闻事件列表', '{\"type\":\"object\",\"properties\":{}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/zaobao', 1), +(3, 'dalle3', 'DALLE3', 'AI 绘画工具,根据输入的绘图描述用 AI 工具进行绘画', '{\"type\":\"object\",\"required\":[\"prompt\"],\"properties\":{\"prompt\":{\"type\":\"string\",\"description\":\"绘画提示词\"}}}', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVkIjowLCJ1c2VyX2lkIjowfQ.tLAGkF8XWh_G-oQzevpIodsswtPByBLoAZDz_eWuBgw', 'http://localhost:5678/api/function/dalle3', 1); -- -------------------------------------------------------- @@ -288,12 +288,12 @@ INSERT INTO `chatgpt_functions` (`id`, `name`, `label`, `description`, `paramete DROP TABLE IF EXISTS `chatgpt_invite_codes`; CREATE TABLE `chatgpt_invite_codes` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `code` char(8) NOT NULL COMMENT '邀请码', - `hits` int NOT NULL COMMENT '点击次数', - `reg_num` smallint NOT NULL COMMENT '注册数量', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `code` char(8) NOT NULL COMMENT '邀请码', + `hits` int NOT NULL COMMENT '点击次数', + `reg_num` smallint NOT NULL COMMENT '注册数量', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户邀请码'; -- -------------------------------------------------------- @@ -304,13 +304,13 @@ CREATE TABLE `chatgpt_invite_codes` ( DROP TABLE IF EXISTS `chatgpt_invite_logs`; CREATE TABLE `chatgpt_invite_logs` ( - `id` int NOT NULL, - `inviter_id` int NOT NULL COMMENT '邀请人ID', - `user_id` int NOT NULL COMMENT '注册用户ID', - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', - `invite_code` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '邀请码', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `inviter_id` int NOT NULL COMMENT '邀请人ID', + `user_id` int NOT NULL COMMENT '注册用户ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `invite_code` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '邀请码', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='邀请注册日志'; -- -------------------------------------------------------- @@ -321,12 +321,12 @@ CREATE TABLE `chatgpt_invite_logs` ( DROP TABLE IF EXISTS `chatgpt_menus`; CREATE TABLE `chatgpt_menus` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '菜单名称', - `icon` varchar(150) NOT NULL COMMENT '菜单图标', - `url` varchar(100) NOT NULL COMMENT '地址', - `sort_num` smallint NOT NULL COMMENT '排序', - `enabled` tinyint(1) NOT NULL COMMENT '是否启用' + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '菜单名称', + `icon` varchar(150) NOT NULL COMMENT '菜单图标', + `url` varchar(100) NOT NULL COMMENT '地址', + `sort_num` smallint NOT NULL COMMENT '排序', + `enabled` tinyint(1) NOT NULL COMMENT '是否启用' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='前端菜单表'; -- @@ -334,20 +334,20 @@ CREATE TABLE `chatgpt_menus` ( -- INSERT INTO `chatgpt_menus` (`id`, `name`, `icon`, `url`, `sort_num`, `enabled`) VALUES - (1, 'AI 对话', '/images/menu/chat.png', '/chat', 1, 1), - (5, 'MJ 绘画', '/images/menu/mj.png', '/mj', 2, 1), - (6, 'SD 绘画', '/images/menu/sd.png', '/sd', 3, 1), - (7, '算力日志', '/images/menu/log.png', '/powerLog', 10, 1), - (8, '应用中心', '/images/menu/app.png', '/apps', 9, 1), - (9, '画廊', '/images/menu/img-wall.png', '/images-wall', 5, 1), - (10, '会员计划', '/images/menu/member.png', '/member', 11, 1), - (11, '分享计划', '/images/menu/share.png', '/invite', 12, 1), - (12, '思维导图', '/images/menu/xmind.png', '/xmind', 8, 1), - (13, 'DALLE', '/images/menu/dalle.png', '/dalle', 4, 1), - (14, '项目文档', '/images/menu/docs.png', 'https://docs.geekai.me', 13, 1), - (16, '极客论坛', '/images/menu/bbs.png', 'https://bbs.geekai.cn', 14, 1), - (19, 'Suno', '/images/menu/suno.png', '/suno', 6, 1), - (20, 'Luma', '/images/menu/luma.png', '/luma', 7, 1); +(1, 'AI 对话', '/images/menu/chat.png', '/chat', 1, 1), +(5, 'MJ 绘画', '/images/menu/mj.png', '/mj', 2, 1), +(6, 'SD 绘画', '/images/menu/sd.png', '/sd', 3, 1), +(7, '算力日志', '/images/menu/log.png', '/powerLog', 10, 1), +(8, '应用中心', '/images/menu/app.png', '/apps', 9, 1), +(9, '画廊', '/images/menu/img-wall.png', '/images-wall', 5, 1), +(10, '会员计划', '/images/menu/member.png', '/member', 11, 1), +(11, '分享计划', '/images/menu/share.png', '/invite', 12, 1), +(12, '思维导图', '/images/menu/xmind.png', '/xmind', 8, 1), +(13, 'DALLE', '/images/menu/dalle.png', '/dalle', 4, 1), +(14, '项目文档', '/images/menu/docs.png', 'https://docs.geekai.me', 13, 1), +(16, '极客论坛', '/images/menu/bbs.png', 'https://bbs.geekai.cn', 14, 1), +(19, 'Suno', '/images/menu/suno.png', '/suno', 6, 1), +(20, 'Luma', '/images/menu/luma.png', '/luma', 7, 1); -- -------------------------------------------------------- @@ -357,23 +357,23 @@ INSERT INTO `chatgpt_menus` (`id`, `name`, `icon`, `url`, `sort_num`, `enabled`) DROP TABLE IF EXISTS `chatgpt_mj_jobs`; CREATE TABLE `chatgpt_mj_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `task_id` varchar(20) DEFAULT NULL COMMENT '任务 ID', - `type` varchar(20) DEFAULT 'image' COMMENT '任务类别', - `message_id` char(40) NOT NULL COMMENT '消息 ID', - `channel_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '频道ID', - `reference_id` char(40) DEFAULT NULL COMMENT '引用消息 ID', - `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', - `img_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '图片URL', - `org_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原始图片地址', - `hash` varchar(100) DEFAULT NULL COMMENT 'message hash', - `progress` smallint DEFAULT '0' COMMENT '任务进度', - `use_proxy` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否使用反代', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', - `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `task_id` varchar(20) DEFAULT NULL COMMENT '任务 ID', + `type` varchar(20) DEFAULT 'image' COMMENT '任务类别', + `message_id` char(40) NOT NULL COMMENT '消息 ID', + `channel_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '频道ID', + `reference_id` char(40) DEFAULT NULL COMMENT '引用消息 ID', + `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', + `img_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '图片URL', + `org_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '原始图片地址', + `hash` varchar(100) DEFAULT NULL COMMENT 'message hash', + `progress` smallint DEFAULT '0' COMMENT '任务进度', + `use_proxy` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否使用反代', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', + `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MidJourney 任务表'; -- -------------------------------------------------------- @@ -384,21 +384,21 @@ CREATE TABLE `chatgpt_mj_jobs` ( DROP TABLE IF EXISTS `chatgpt_orders`; CREATE TABLE `chatgpt_orders` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `product_id` int NOT NULL COMMENT '产品ID', - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户明', - `order_no` varchar(30) NOT NULL COMMENT '订单ID', - `trade_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '支付平台交易流水号', - `subject` varchar(100) NOT NULL COMMENT '订单产品', - `amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额', - `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '订单状态(0:待支付,1:已扫码,2:支付成功)', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', - `pay_time` int DEFAULT NULL COMMENT '支付时间', - `pay_way` varchar(20) NOT NULL COMMENT '支付方式', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - `deleted_at` datetime DEFAULT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `product_id` int NOT NULL COMMENT '产品ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户明', + `order_no` varchar(30) NOT NULL COMMENT '订单ID', + `trade_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '支付平台交易流水号', + `subject` varchar(100) NOT NULL COMMENT '订单产品', + `amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '订单状态(0:待支付,1:已扫码,2:支付成功)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注', + `pay_time` int DEFAULT NULL COMMENT '支付时间', + `pay_way` varchar(20) NOT NULL COMMENT '支付方式', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `deleted_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='充值订单表'; -- -------------------------------------------------------- @@ -409,16 +409,16 @@ CREATE TABLE `chatgpt_orders` ( DROP TABLE IF EXISTS `chatgpt_power_logs`; CREATE TABLE `chatgpt_power_logs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `username` varchar(30) NOT NULL COMMENT '用户名', - `type` tinyint(1) NOT NULL COMMENT '类型(1:充值,2:消费,3:退费)', - `amount` smallint NOT NULL COMMENT '算力数值', - `balance` int NOT NULL COMMENT '余额', - `model` varchar(30) NOT NULL COMMENT '模型', - `remark` varchar(255) NOT NULL COMMENT '备注', - `mark` tinyint(1) NOT NULL COMMENT '资金类型(0:支出,1:收入)', - `created_at` datetime NOT NULL COMMENT '创建时间' + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `username` varchar(30) NOT NULL COMMENT '用户名', + `type` tinyint(1) NOT NULL COMMENT '类型(1:充值,2:消费,3:退费)', + `amount` smallint NOT NULL COMMENT '算力数值', + `balance` int NOT NULL COMMENT '余额', + `model` varchar(30) NOT NULL COMMENT '模型', + `remark` varchar(255) NOT NULL COMMENT '备注', + `mark` tinyint(1) NOT NULL COMMENT '资金类型(0:支出,1:收入)', + `created_at` datetime NOT NULL COMMENT '创建时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户算力消费日志'; -- -------------------------------------------------------- @@ -429,19 +429,19 @@ CREATE TABLE `chatgpt_power_logs` ( DROP TABLE IF EXISTS `chatgpt_products`; CREATE TABLE `chatgpt_products` ( - `id` int NOT NULL, - `name` varchar(30) NOT NULL COMMENT '名称', - `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格', - `discount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额', - `days` smallint NOT NULL DEFAULT '0' COMMENT '延长天数', - `power` int NOT NULL DEFAULT '0' COMMENT '增加算力值', - `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启动', - `sales` int NOT NULL DEFAULT '0' COMMENT '销量', - `sort_num` tinyint NOT NULL DEFAULT '0' COMMENT '排序', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL, - `app_url` varchar(255) DEFAULT NULL COMMENT 'App跳转地址', - `url` varchar(255) DEFAULT NULL COMMENT '跳转地址' + `id` int NOT NULL, + `name` varchar(30) NOT NULL COMMENT '名称', + `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格', + `discount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额', + `days` smallint NOT NULL DEFAULT '0' COMMENT '延长天数', + `power` int NOT NULL DEFAULT '0' COMMENT '增加算力值', + `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启动', + `sales` int NOT NULL DEFAULT '0' COMMENT '销量', + `sort_num` tinyint NOT NULL DEFAULT '0' COMMENT '排序', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `app_url` varchar(255) DEFAULT NULL COMMENT 'App跳转地址', + `url` varchar(255) DEFAULT NULL COMMENT '跳转地址' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员套餐表'; -- @@ -449,8 +449,8 @@ CREATE TABLE `chatgpt_products` ( -- INSERT INTO `chatgpt_products` (`id`, `name`, `price`, `discount`, `days`, `power`, `enabled`, `sales`, `sort_num`, `created_at`, `updated_at`, `app_url`, `url`) VALUES - (5, '100次点卡', 9.99, 9.98, 0, 100, 1, 7, 1, '2023-08-28 10:55:08', '2024-08-05 16:05:46', NULL, NULL), - (6, '200次点卡', 19.90, 15.00, 0, 200, 1, 1, 2, '1970-01-01 08:00:00', '2024-08-05 16:05:46', NULL, NULL); +(5, '100次点卡', 9.99, 9.98, 0, 100, 1, 7, 1, '2023-08-28 10:55:08', '2024-08-05 16:05:46', NULL, NULL), +(6, '200次点卡', 19.90, 15.00, 0, 200, 1, 1, 2, '1970-01-01 08:00:00', '2024-08-05 16:05:46', NULL, NULL); -- -------------------------------------------------------- @@ -460,14 +460,14 @@ INSERT INTO `chatgpt_products` (`id`, `name`, `price`, `discount`, `days`, `powe DROP TABLE IF EXISTS `chatgpt_redeems`; CREATE TABLE `chatgpt_redeems` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `name` varchar(30) NOT NULL COMMENT '兑换码名称', - `power` int NOT NULL COMMENT '算力', - `code` varchar(100) NOT NULL COMMENT '兑换码', - `enabled` tinyint(1) NOT NULL COMMENT '是否启用', - `created_at` datetime NOT NULL, - `redeemed_at` int NOT NULL COMMENT '兑换时间' + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `name` varchar(30) NOT NULL COMMENT '兑换码名称', + `power` int NOT NULL COMMENT '算力', + `code` varchar(100) NOT NULL COMMENT '兑换码', + `enabled` tinyint(1) NOT NULL COMMENT '是否启用', + `created_at` datetime NOT NULL, + `redeemed_at` int NOT NULL COMMENT '兑换时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='兑换码'; -- -------------------------------------------------------- @@ -478,18 +478,18 @@ CREATE TABLE `chatgpt_redeems` ( DROP TABLE IF EXISTS `chatgpt_sd_jobs`; CREATE TABLE `chatgpt_sd_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'txt2img' COMMENT '任务类别', - `task_id` char(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务 ID', - `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', - `img_url` varchar(255) DEFAULT NULL COMMENT '图片URL', - `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '绘画参数json', - `progress` smallint DEFAULT '0' COMMENT '任务进度', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', - `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'txt2img' COMMENT '任务类别', + `task_id` char(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务 ID', + `prompt` varchar(2000) NOT NULL COMMENT '会话提示词', + `img_url` varchar(255) DEFAULT NULL COMMENT '图片URL', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '绘画参数json', + `progress` smallint DEFAULT '0' COMMENT '任务进度', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', + `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Stable Diffusion 任务表'; -- -------------------------------------------------------- @@ -500,30 +500,30 @@ CREATE TABLE `chatgpt_sd_jobs` ( DROP TABLE IF EXISTS `chatgpt_suno_jobs`; CREATE TABLE `chatgpt_suno_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `channel` varchar(100) NOT NULL COMMENT '渠道', - `title` varchar(100) DEFAULT NULL COMMENT '歌曲标题', - `type` tinyint(1) DEFAULT '0' COMMENT '任务类型,1:灵感创作,2:自定义创作', - `task_id` varchar(50) DEFAULT NULL COMMENT '任务 ID', - `ref_task_id` char(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '引用任务 ID', - `tags` varchar(100) DEFAULT NULL COMMENT '歌曲风格', - `instrumental` tinyint(1) DEFAULT '0' COMMENT '是否为纯音乐', - `extend_secs` smallint DEFAULT '0' COMMENT '延长秒数', - `song_id` varchar(50) DEFAULT NULL COMMENT '要续写的歌曲 ID', - `ref_song_id` varchar(50) NOT NULL COMMENT '引用的歌曲ID', - `prompt` varchar(2000) NOT NULL COMMENT '提示词', - `cover_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '封面图地址', - `audio_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '音频地址', - `model_name` varchar(30) DEFAULT NULL COMMENT '模型地址', - `progress` smallint DEFAULT '0' COMMENT '任务进度', - `duration` smallint NOT NULL DEFAULT '0' COMMENT '歌曲时长', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', - `raw_data` text COMMENT '原始数据', - `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `play_times` int DEFAULT NULL COMMENT '播放次数', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `channel` varchar(100) NOT NULL COMMENT '渠道', + `title` varchar(100) DEFAULT NULL COMMENT '歌曲标题', + `type` tinyint(1) DEFAULT '0' COMMENT '任务类型,1:灵感创作,2:自定义创作', + `task_id` varchar(50) DEFAULT NULL COMMENT '任务 ID', + `ref_task_id` char(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '引用任务 ID', + `tags` varchar(100) DEFAULT NULL COMMENT '歌曲风格', + `instrumental` tinyint(1) DEFAULT '0' COMMENT '是否为纯音乐', + `extend_secs` smallint DEFAULT '0' COMMENT '延长秒数', + `song_id` varchar(50) DEFAULT NULL COMMENT '要续写的歌曲 ID', + `ref_song_id` varchar(50) NOT NULL COMMENT '引用的歌曲ID', + `prompt` varchar(2000) NOT NULL COMMENT '提示词', + `cover_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '封面图地址', + `audio_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '音频地址', + `model_name` varchar(30) DEFAULT NULL COMMENT '模型地址', + `progress` smallint DEFAULT '0' COMMENT '任务进度', + `duration` smallint NOT NULL DEFAULT '0' COMMENT '歌曲时长', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', + `raw_data` text COMMENT '原始数据', + `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', + `play_times` int DEFAULT NULL COMMENT '播放次数', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MidJourney 任务表'; -- -------------------------------------------------------- @@ -534,27 +534,27 @@ CREATE TABLE `chatgpt_suno_jobs` ( DROP TABLE IF EXISTS `chatgpt_users`; CREATE TABLE `chatgpt_users` ( - `id` int NOT NULL, - `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', - `mobile` char(11) DEFAULT NULL COMMENT '手机号', - `email` varchar(50) DEFAULT NULL COMMENT '邮箱地址', - `nickname` varchar(30) NOT NULL COMMENT '昵称', - `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '头像', - `salt` char(12) NOT NULL COMMENT '密码盐', - `power` int NOT NULL DEFAULT '0' COMMENT '剩余算力', - `expired_time` int NOT NULL COMMENT '用户过期时间', - `status` tinyint(1) NOT NULL COMMENT '当前状态', - `chat_config_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天配置json', - `chat_roles_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天角色 json', - `chat_models_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AI模型 json', - `last_login_at` int NOT NULL COMMENT '最后登录时间', - `vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否会员', - `last_login_ip` char(16) NOT NULL COMMENT '最后登录 IP', - `openid` varchar(100) DEFAULT NULL COMMENT '第三方登录账号ID', - `platform` varchar(30) DEFAULT NULL COMMENT '登录平台', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `mobile` char(11) DEFAULT NULL COMMENT '手机号', + `email` varchar(50) DEFAULT NULL COMMENT '邮箱地址', + `nickname` varchar(30) NOT NULL COMMENT '昵称', + `password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '头像', + `salt` char(12) NOT NULL COMMENT '密码盐', + `power` int NOT NULL DEFAULT '0' COMMENT '剩余算力', + `expired_time` int NOT NULL COMMENT '用户过期时间', + `status` tinyint(1) NOT NULL COMMENT '当前状态', + `chat_config_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天配置json', + `chat_roles_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '聊天角色 json', + `chat_models_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AI模型 json', + `last_login_at` int NOT NULL COMMENT '最后登录时间', + `vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否会员', + `last_login_ip` char(16) NOT NULL COMMENT '最后登录 IP', + `openid` varchar(100) DEFAULT NULL COMMENT '第三方登录账号ID', + `platform` varchar(30) DEFAULT NULL COMMENT '登录平台', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'; -- @@ -562,7 +562,7 @@ CREATE TABLE `chatgpt_users` ( -- INSERT INTO `chatgpt_users` (`id`, `username`, `mobile`, `email`, `nickname`, `password`, `avatar`, `salt`, `power`, `expired_time`, `status`, `chat_config_json`, `chat_roles_json`, `chat_models_json`, `last_login_at`, `vip`, `last_login_ip`, `openid`, `platform`, `created_at`, `updated_at`) VALUES - (4, '18888888888', '18575670125', 'yangjian@pvc123.com', '极客学长', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', 'http://localhost:5678/static/upload/2024/5/1715651569509929.png', 'ueedue5l', 4710, 0, 1, '{\"api_keys\":{\"Azure\":\"\",\"ChatGLM\":\"\",\"OpenAI\":\"\"}}', '[\"red_book\",\"gpt\",\"seller\",\"artist\",\"lu_xun\",\"girl_friend\",\"psychiatrist\",\"teacher\",\"programmer\",\"test\",\"qing_gan_da_shi\",\"english_trainer\",\"elon_musk\",\"kong_zi\"]', '[1,11]', 1725853969, 1, '::1', 'oCs0t64FaOLfiTbHZpOqk3aUp_94', NULL, '2023-06-12 16:47:17', '2024-09-09 11:52:49'); +(4, '18888888888', '18575670125', 'yangjian@pvc123.com', '极客学长', 'ccc3fb7ab61b8b5d096a4a166ae21d121fc38c71bbd1be6173d9ab973214a63b', 'http://localhost:5678/static/upload/2024/5/1715651569509929.png', 'ueedue5l', 4710, 0, 1, '{\"api_keys\":{\"Azure\":\"\",\"ChatGLM\":\"\",\"OpenAI\":\"\"}}', '[\"red_book\",\"gpt\",\"seller\",\"artist\",\"lu_xun\",\"girl_friend\",\"psychiatrist\",\"teacher\",\"programmer\",\"test\",\"qing_gan_da_shi\",\"english_trainer\",\"elon_musk\",\"kong_zi\"]', '[1,11]', 1725853969, 1, '::1', 'oCs0t64FaOLfiTbHZpOqk3aUp_94', NULL, '2023-06-12 16:47:17', '2024-09-09 11:52:49'); -- -------------------------------------------------------- @@ -572,13 +572,13 @@ INSERT INTO `chatgpt_users` (`id`, `username`, `mobile`, `email`, `nickname`, `p DROP TABLE IF EXISTS `chatgpt_user_login_logs`; CREATE TABLE `chatgpt_user_login_logs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户ID', - `username` varchar(30) NOT NULL COMMENT '用户名', - `login_ip` char(16) NOT NULL COMMENT '登录IP', - `login_address` varchar(30) NOT NULL COMMENT '登录地址', - `created_at` datetime NOT NULL, - `updated_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户ID', + `username` varchar(30) NOT NULL COMMENT '用户名', + `login_ip` char(16) NOT NULL COMMENT '登录IP', + `login_address` varchar(30) NOT NULL COMMENT '登录地址', + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户登录日志'; -- -------------------------------------------------------- @@ -589,23 +589,23 @@ CREATE TABLE `chatgpt_user_login_logs` ( DROP TABLE IF EXISTS `chatgpt_video_jobs`; CREATE TABLE `chatgpt_video_jobs` ( - `id` int NOT NULL, - `user_id` int NOT NULL COMMENT '用户 ID', - `channel` varchar(100) NOT NULL COMMENT '渠道', - `task_id` varchar(100) NOT NULL COMMENT '任务 ID', - `type` varchar(20) DEFAULT NULL COMMENT '任务类型,luma,runway,cogvideo', - `prompt` varchar(2000) NOT NULL COMMENT '提示词', - `prompt_ext` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '优化后提示词', - `cover_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '封面图地址', - `video_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '视频地址', - `water_url` varchar(512) DEFAULT NULL COMMENT '带水印的视频地址', - `progress` smallint DEFAULT '0' COMMENT '任务进度', - `publish` tinyint(1) NOT NULL COMMENT '是否发布', - `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', - `raw_data` text COMMENT '原始数据', - `params` varchar(512) DEFAULT NULL COMMENT '参数JSON', - `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', - `created_at` datetime NOT NULL + `id` int NOT NULL, + `user_id` int NOT NULL COMMENT '用户 ID', + `channel` varchar(100) NOT NULL COMMENT '渠道', + `task_id` varchar(100) NOT NULL COMMENT '任务 ID', + `type` varchar(20) DEFAULT NULL COMMENT '任务类型,luma,runway,cogvideo', + `prompt` varchar(2000) NOT NULL COMMENT '提示词', + `prompt_ext` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '优化后提示词', + `cover_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '封面图地址', + `video_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '视频地址', + `water_url` varchar(512) DEFAULT NULL COMMENT '带水印的视频地址', + `progress` smallint DEFAULT '0' COMMENT '任务进度', + `publish` tinyint(1) NOT NULL COMMENT '是否发布', + `err_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息', + `raw_data` text COMMENT '原始数据', + `params` varchar(512) DEFAULT NULL COMMENT '参数JSON', + `power` smallint NOT NULL DEFAULT '0' COMMENT '消耗算力', + `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MidJourney 任务表'; -- @@ -616,92 +616,92 @@ CREATE TABLE `chatgpt_video_jobs` ( -- 表的索引 `chatgpt_admin_users` -- ALTER TABLE `chatgpt_admin_users` - ADD PRIMARY KEY (`id`) USING BTREE, + ADD PRIMARY KEY (`id`) USING BTREE, ADD UNIQUE KEY `username` (`username`) USING BTREE; -- -- 表的索引 `chatgpt_api_keys` -- ALTER TABLE `chatgpt_api_keys` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_chat_history` -- ALTER TABLE `chatgpt_chat_history` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD KEY `chat_id` (`chat_id`); -- -- 表的索引 `chatgpt_chat_items` -- ALTER TABLE `chatgpt_chat_items` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `chat_id` (`chat_id`); -- -- 表的索引 `chatgpt_chat_models` -- ALTER TABLE `chatgpt_chat_models` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_chat_roles` -- ALTER TABLE `chatgpt_chat_roles` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `marker` (`marker`); -- -- 表的索引 `chatgpt_configs` -- ALTER TABLE `chatgpt_configs` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `marker` (`marker`); -- -- 表的索引 `chatgpt_dall_jobs` -- ALTER TABLE `chatgpt_dall_jobs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_files` -- ALTER TABLE `chatgpt_files` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_functions` -- ALTER TABLE `chatgpt_functions` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `name` (`name`); -- -- 表的索引 `chatgpt_invite_codes` -- ALTER TABLE `chatgpt_invite_codes` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `code` (`code`); -- -- 表的索引 `chatgpt_invite_logs` -- ALTER TABLE `chatgpt_invite_logs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_menus` -- ALTER TABLE `chatgpt_menus` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_mj_jobs` -- ALTER TABLE `chatgpt_mj_jobs` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `task_id` (`task_id`), ADD KEY `message_id` (`message_id`); @@ -709,59 +709,59 @@ ALTER TABLE `chatgpt_mj_jobs` -- 表的索引 `chatgpt_orders` -- ALTER TABLE `chatgpt_orders` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `order_no` (`order_no`); -- -- 表的索引 `chatgpt_power_logs` -- ALTER TABLE `chatgpt_power_logs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_products` -- ALTER TABLE `chatgpt_products` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_redeems` -- ALTER TABLE `chatgpt_redeems` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `code` (`code`); -- -- 表的索引 `chatgpt_sd_jobs` -- ALTER TABLE `chatgpt_sd_jobs` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `task_id` (`task_id`); -- -- 表的索引 `chatgpt_suno_jobs` -- ALTER TABLE `chatgpt_suno_jobs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_users` -- ALTER TABLE `chatgpt_users` - ADD PRIMARY KEY (`id`), + ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`username`); -- -- 表的索引 `chatgpt_user_login_logs` -- ALTER TABLE `chatgpt_user_login_logs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 表的索引 `chatgpt_video_jobs` -- ALTER TABLE `chatgpt_video_jobs` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`); -- -- 在导出的表使用AUTO_INCREMENT @@ -771,139 +771,139 @@ ALTER TABLE `chatgpt_video_jobs` -- 使用表AUTO_INCREMENT `chatgpt_admin_users` -- ALTER TABLE `chatgpt_admin_users` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113; -- -- 使用表AUTO_INCREMENT `chatgpt_api_keys` -- ALTER TABLE `chatgpt_api_keys` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_history` -- ALTER TABLE `chatgpt_chat_history` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_items` -- ALTER TABLE `chatgpt_chat_items` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_models` -- ALTER TABLE `chatgpt_chat_models` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=49; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=49; -- -- 使用表AUTO_INCREMENT `chatgpt_chat_roles` -- ALTER TABLE `chatgpt_chat_roles` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=132; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=132; -- -- 使用表AUTO_INCREMENT `chatgpt_configs` -- ALTER TABLE `chatgpt_configs` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- 使用表AUTO_INCREMENT `chatgpt_dall_jobs` -- ALTER TABLE `chatgpt_dall_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_files` -- ALTER TABLE `chatgpt_files` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_functions` -- ALTER TABLE `chatgpt_functions` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- 使用表AUTO_INCREMENT `chatgpt_invite_codes` -- ALTER TABLE `chatgpt_invite_codes` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_invite_logs` -- ALTER TABLE `chatgpt_invite_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_menus` -- ALTER TABLE `chatgpt_menus` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21; -- -- 使用表AUTO_INCREMENT `chatgpt_mj_jobs` -- ALTER TABLE `chatgpt_mj_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_orders` -- ALTER TABLE `chatgpt_orders` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_power_logs` -- ALTER TABLE `chatgpt_power_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_products` -- ALTER TABLE `chatgpt_products` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; -- -- 使用表AUTO_INCREMENT `chatgpt_redeems` -- ALTER TABLE `chatgpt_redeems` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_sd_jobs` -- ALTER TABLE `chatgpt_sd_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_suno_jobs` -- ALTER TABLE `chatgpt_suno_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_users` -- ALTER TABLE `chatgpt_users` - MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=40; + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=40; -- -- 使用表AUTO_INCREMENT `chatgpt_user_login_logs` -- ALTER TABLE `chatgpt_user_login_logs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `chatgpt_video_jobs` -- ALTER TABLE `chatgpt_video_jobs` - MODIFY `id` int NOT NULL AUTO_INCREMENT; + MODIFY `id` int NOT NULL AUTO_INCREMENT; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/database/archive/geekai_plus-v4.1.5.sql b/database/archive/geekai_plus-v4.1.5.sql index 109a2e6b..1a4d76a3 100644 --- a/database/archive/geekai_plus-v4.1.5.sql +++ b/database/archive/geekai_plus-v4.1.5.sql @@ -85,17 +85,6 @@ CREATE TABLE `chatgpt_app_types` ( `created_at` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='应用分类表'; - --- --- 转存表中的数据 `chatgpt_app_types` --- - -INSERT INTO `chatgpt_app_types` (`id`, `name`, `icon`, `sort_num`, `enabled`, `created_at`) VALUES -(3, '通用工具', 'http://172.22.11.200:5678/static/upload/2024/9/1726307371871693.png', 1, 1, '2024-09-13 11:13:15'), -(4, '角色扮演', 'http://172.22.11.200:5678/static/upload/2024/9/1726307263906218.png', 1, 1, '2024-09-14 09:28:17'), -(5, '学习', 'http://172.22.11.200:5678/static/upload/2024/9/1726307456321179.jpg', 2, 1, '2024-09-14 09:30:18'), -(6, '编程', 'http://172.22.11.200:5678/static/upload/2024/9/1726307462748787.jpg', 3, 1, '2024-09-14 09:34:06'), -(7, '测试分类', '', 4, 1, '2024-09-14 17:54:17'); -- -------------------------------------------------------- -- @@ -168,7 +157,6 @@ CREATE TABLE `chatgpt_chat_models` ( -- INSERT INTO `chatgpt_chat_models` (`id`, `name`, `value`, `sort_num`, `enabled`, `power`, `temperature`, `max_tokens`, `max_context`, `open`, `key_id`, `created_at`, `updated_at`) VALUES - (1, 'gpt-4o-mini', 'gpt-4o-mini', 1, 1, 1, 1.0, 1024, 16384, 1, 66, '2023-08-23 12:06:36', '2024-09-29 19:08:42'), (15, 'GPT-超级模型', 'gpt-4-all', 4, 1, 30, 1.0, 4096, 32768, 1, 0, '2024-01-15 11:32:52', '2024-09-13 18:01:08'), (36, 'GPT-4O', 'gpt-4o', 3, 1, 15, 1.0, 4096, 16384, 1, 66, '2024-05-14 09:25:15', '2024-09-29 19:08:53'), diff --git a/database/geekai_plus-v4.2.6.sql b/database/geekai_plus-v4.2.6.sql index c275ddc1..1d3d1571 100644 --- a/database/geekai_plus-v4.2.6.sql +++ b/database/geekai_plus-v4.2.6.sql @@ -18,10 +18,10 @@ SET time_zone = "+00:00"; /*!40101 SET NAMES utf8mb4 */; -- --- 数据库: `geekai_plus` +-- 数据库: `geekai` -- -CREATE DATABASE IF NOT EXISTS `geekai_plus` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -USE `geekai_plus`; +CREATE DATABASE IF NOT EXISTS `geekai` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; +USE `geekai`; -- -------------------------------------------------------- diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index 2e65d179..d29eb714 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -46,7 +46,7 @@ services: # 后端 API 程序 geekai-api: - image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.2.4-amd64 + image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.2.8-amd64 container_name: geekai-api restart: always depends_on: @@ -69,7 +69,7 @@ services: # 前端应用 geekai-web: - image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:v4.2.4-amd64 + image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:v4.2.8-amd64 container_name: geekai-web restart: always depends_on: diff --git a/web/.env.development b/web/.env.development index 9f2a17b4..5cb87d98 100644 --- a/web/.env.development +++ b/web/.env.development @@ -6,7 +6,7 @@ VITE_ADMIN_USER=admin VITE_ADMIN_PASS=admin123 VITE_KEY_PREFIX=GeekAI_DEV_ VITE_TITLE="Geek-AI 创作系统" -VITE_VERSION=v4.2.7 +VITE_VERSION=v4.2.8 VITE_DOCS_URL=https://docs.geekai.me VITE_GITHUB_URL=https://github.com/yangjian102621/geekai VITE_GITEE_URL=https://gitee.com/blackfox/geekai diff --git a/web/.env.production b/web/.env.production index 0d2724c1..0efb4cf4 100644 --- a/web/.env.production +++ b/web/.env.production @@ -1,7 +1,7 @@ VITE_API_HOST= VITE_WS_HOST= VITE_KEY_PREFIX=GeekAI_ -VITE_VERSION=v4.2.7 +VITE_VERSION=v4.2.8 VITE_TITLE="Geek-AI 创作系统" VITE_DOCS_URL=https://docs.geekai.me VITE_GITHUB_URL=https://github.com/yangjian102621/geekai diff --git a/web/src/assets/css/common.scss b/web/src/assets/css/common.scss index 8b46283e..bef7fd18 100644 --- a/web/src/assets/css/common.scss +++ b/web/src/assets/css/common.scss @@ -83,7 +83,7 @@ width: 100%; } .el-input__wrapper { - background: var(--card-bg); + //background: var(--card-bg); } .el-dialog__title { font-weight: bold; @@ -138,7 +138,8 @@ border: none; } -.el-tag, .el-tag.el-tag--primary { +.el-tag, +.el-tag.el-tag--primary { --el-tag-bg-color: #f0ebff; } .box-card { @@ -148,4 +149,4 @@ } .el-table th.el-table__cell { background-color: var(--chat-bg); -} \ No newline at end of file +} diff --git a/web/src/assets/css/markdown/vue.css b/web/src/assets/css/markdown/vue.css index e49bb334..2723b258 100644 --- a/web/src/assets/css/markdown/vue.css +++ b/web/src/assets/css/markdown/vue.css @@ -189,10 +189,11 @@ } blockquote { - border-left: 4px solid #42b983; + border-left: 5px solid #c1c1c1; padding: 10px 15px; color: #777; - background-color: rgba(66, 185, 131, 0.1); + background-color: rgba(193, 193, 193, 0.2); + border-radius: 10px; } table { diff --git a/web/src/components/AttachmentList.vue b/web/src/components/AttachmentList.vue new file mode 100644 index 00000000..701839aa --- /dev/null +++ b/web/src/components/AttachmentList.vue @@ -0,0 +1,139 @@ + + + diff --git a/web/src/components/ChatPrompt.vue b/web/src/components/ChatPrompt.vue index 267360c5..e8dfa4a7 100644 --- a/web/src/components/ChatPrompt.vue +++ b/web/src/components/ChatPrompt.vue @@ -9,7 +9,7 @@
- +
diff --git a/web/src/components/ChatReply.vue b/web/src/components/ChatReply.vue index 00660135..819c4cd2 100644 --- a/web/src/components/ChatReply.vue +++ b/web/src/components/ChatReply.vue @@ -6,7 +6,7 @@ ChatGPT
-
+
AI 思考中
+
+ +
收起 - 复制 + 复制