部署指南
建议大家尽可能的自己去部署,如果实在懒得搞,可以找我来帮你部署,详情参考 服务器代部署说明。
由于时间仓促,文档可能尚未详尽,我将在后续逐步补充详细的说明文档。
架构草图
项目依赖
必选依赖
MySQL 5.7+
Redis 7.0+ (低版本兼容性未知)
OpenAI Key
七牛云对象存储 Kodo 服务 (需要配置以下图片样式)
名称 接口
avatar imageView2/1/w/400/h/400/format/webp/q/75
thumb imageView2/2/w/1280/h/1280/format/webp/interlace/1/q/80|imageslim
thumb_500 imageView2/2/w/500/h/500/format/webp/q/75
square_500 imageView2/1/w/500/h/500/format/jpg/q/75
fix_square_1024 imageMogr2/auto-orient/thumbnail/!1024x1024r/gravity/Center/crop/1024x1024/blur/1x0/quality/75
resize1024x576 imageView2/1/w/1024/h/576/format/png/q/75
resize576x1024 imageView2/1/w/576/h/1024/format/png/q/75
resize768x768 imageView2/1/w/768/h/768/format/png/q/75
可选依赖
邮件服务器(邮箱登录、注册功能暂未开放)
短信服务(如需注册功能,则以下至少有一个)
阿里云短信服务
腾讯云短信服务
内容安全检测(使用阿里云的内容安全服务,用于检测提示语中是否包含敏感词汇)
有道翻译 API 接口(翻译功能、文生图及图生图提示语中文转英文)
百度文心千帆大模型 Keys,支持以下模型 【开通指南】
model_ernie_bot_turbo
model_ernie_bot
阿里灵积平台模型 Keys,支持以下模型
qwen-v1
讯飞星火大语言模型 Keys,支持以下模型
general
generalv2
Anthropic API Keys,支持以下模型
claude-instant
cluade-2.0
DeepAI 平台 Keys,用于图片超分辨率、上色
Stability AI Stable Diffusion 官方提供的 API,用于 SDXL 1.0 模型文生图、图生图
Leap 平台 Keys,用于 Leap 平台提供的文生图、图生图模型
Fromston 国内 6pen 团队提供的 Keys,用于文生图、图生图模型
getimg.ai 平台 Keys,用于文生图、图生图模型
支付宝在线支付
部署步骤
- 初始化 MySQL 数据库
创建数据库
CREATE DATABASE aidea_server CHARSET utf8mb4;
自 2023 年 11 月 29 日起,新装用户不需要执行下面的步骤,数据库迁移将自动完成,无需人为干预。
老用户依然需要将这里面所有的 sql 依次执行,直到 2023112901-mix.sql 文件为止,然后在配置文件 config.yaml 中,增加配置 enable-migrate: true,此后版本升级不在需要手动执行 SQL。
请注意:老用户一定要先执行完所有的 SQL 后再修改配置文件增加 enable-migrate: true!
按顺序执行 migrate/sql/*.sql 文件,完成数据库的初始化。
这里以 MySQL 命令行的方式为例:
mysql> CREATE DATABASE aidea_server CHARSET utf8mb4;
mysql> USE aidea_server;
mysql> SOURCE /Users/mylxsw/Workspace/codes/ai/ai-server/migrate/sql/2023090801-ddl.sql;
mysql> SOURCE /Users/mylxsw/Workspace/codes/ai/ai-server/migrate/sql/2023090802-dml.sql;
mysql> SOURCE /Users/mylxsw/Workspace/codes/ai/ai-server/migrate/sql/2023092501-dml.sql;
...
注意:在 migrate/sql 目录中包含很多 .sql 的文件,你需要按照时间顺序依次执行所有的 SQL 文件,以完成数据库的初始化。
- 创建配置文件
以 config.yaml 为范例,修改配置文件,放置在服务器的任意目录(建议目录 /etc/aidea-server.yaml)。
完整配置选项参考 config/flag.go 文件。
- 启动服务
将编译好的软件包放置在服务器的任意目录(建议目录 /usr/local/bin/aidea-server),执行以下命令启动服务
/usr/local/bin/aidea-server --conf /etc/aidea-server.yaml
也可以使用 Docker 容器启动服务,该部分文档待补充。
常见问题
部署过程中遇到问题,不知道该如何解决
请在 GitHub Issues 提出你的问题,有时间的时候我会尽快回复。
部署文档不详细,什么时候补充?
有空的时候会补充,但是不保证时间,大家普遍遇到的问题会随时更新。
部署了服务端之后,客户端要怎么修改才能使用自己的服务端呢?
请 Fork 项目 mylxsw/aidea,然后修改 lib/helper/constant.dart 文件,找到 apiServerURL 常量,修改为自己服务器的地址,然后重新打包客户端即可。
// API 服务器地址
const apiServerURL = 'https://api.aidea.com';
有没有详细的数据库设计文档?
没有,但是有一份简要版的说明文档,参考 常用表结构
我不想自己安装,能否帮我部署一套?
建议大家尽可能的自己去部署,遇到问题在 GitHub Issues 提出,如果实在懒得搞,可以找我来帮你部署,详情参考 服务器代部署说明。
七牛云对象存储 Kodo 在哪里配置图片样式?
新用户没有智慧果,无法使用聊天功能
请在数据库中,参考 users 表和 quota 表,手动为用户添加智慧果。
常用表结构
用户表 users
常用字段 备注
phone 手机号
email 邮箱
password 密码(加密存储)
realname 昵称
status 用户状态: active-正常, deleted-已注销
created_at 账号注册时间
invited_by 邀请人 ID
invite_code 用户的邀请码
系统默认数字人 room_gallery
常用字段 备注
name 数字人名称
model 数字人模型:gpt-3.5-turbo、gpt-4
vendor 厂商,默认全部 openai
prompt 提示语
max_context 最大保持的上下文长度,默认全部写 6
init_message 初次进入数字人时,默认显示的欢迎信息
avatar_url 数字人头像 URL 地址
tags 数字人分类
root_type 数字人类型:system/default-默认数字人
用户智慧果余额 quota
常用字段 备注
user_id 用户 ID
quota 总额度
rest 剩余额度
period_end_at 有效期截止时间
note 备注,可不填写
用户聊天历史记录 chat_messages
常用字段 备注
user_id 用户 ID
room_id 数字人 ID,首页聊一聊发起的,这里为 0
message 聊天消息内容
role 角色:1-用户,2-机器人
created_at 创建时间