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!!!)。**
-
-
-
-## 参与贡献
-
-个人的力量始终有限,任何形式的贡献都是欢迎的,包括但不限于贡献代码,优化文档,提交 issue 和 PR 等。
-
-#### 特此声明:由于个人时间有限,不接受在微信或者微信群给开发者提 Bug,有问题或者优化建议请提交 Issue 和 PR。非常感谢您的配合!
-
-### Commit 类型
-
-* feat: 新特性或功能
-* fix: 缺陷修复
-* docs: 文档更新
-* style: 代码风格或者组件样式更新
-* refactor: 代码重构,不引入新功能和缺陷修复
-* opt: 性能优化
-* chore: 一些不涉及到功能变动的小提交,比如修改文字表述,修改注释等
-
-## 打赏
-
-如果你觉得这个项目对你有帮助,并且情况允许的话,可以请作者喝杯咖啡,非常感谢你的支持~
-
-
-
-
+---
+_让 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 @@
+
+
+
${content}` + return `
\n\n${content}` } return '' }) diff --git a/web/src/views/404.vue b/web/src/views/404.vue index 1602cb3a..aeae7c50 100644 --- a/web/src/views/404.vue +++ b/web/src/views/404.vue @@ -1,39 +1,95 @@ -
抱歉,页面走丢了
+您访问的页面不存在或已被移动
+