AI通过对话挖掘用户需求,并自动生成专业的提示词,支持系统/用户提示词优化、效果对比,版本管理和支持即时渲染的操练场
- AI引导对话挖掘用户需求后生成专业系统提示词
- 系统/用户(支持构建对话上下文)优化、效果对比
- 提示词版本管理与历史回滚
- 操练场支持多种输出类型即时渲染,效果看得见
- 多认证:Linux.do OAuth、飞书 OAuth、本地用户名密码
- 双数据库:SQLite(默认)+ MySQL(可选)
- 响应式设计(桌面/移动端)
- 新增绘图功能(实验),暂时没保存配置入数据库
- 多轮对话生图、改图
- 支持拖拽上传图片、拖拽调整图片附件顺序,图片附件预览
- 支持并发生成1-4张图片
- 支持提示词翻译
- 右侧生成结果区可以对图片预览、下载、删除,可以查看详细参数和提示词
YPrompt/
├── frontend/ # Vue 3 + TypeScript 前端
│ └── dist/ # 构建产物
├── backend/ # Sanic Python 后端
│ ├── apps/ # 应用代码
│ ├── config/ # 配置文件
│ └── migrations/ # 数据库脚本
├── data/ # 数据目录(持久化)
│ ├── yprompt.db # SQLite数据库
│ ├── cache/ # 缓存文件
│ ├── logs/ # 日志文件
│ │ ├── backend/ # 后端日志
│ │ └── nginx/ # Nginx日志
│ └── ssl/ # SSL证书(可选)
│ ├── fullchain.pem # 证书链
│ └── privkey.pem # 私钥
├── Dockerfile # Docker镜像
├── docker-compose.yml # Docker Compose配置
└── start.sh # 容器启动脚本
docker run -d \ --name yprompt \ -p 80:80 \ -v ./data:/app/data \ -e DOMAIN=yourdomain.com \ -e SECRET_KEY=your-random-secret-key \ -e LINUX_DO_CLIENT_ID=your_client_id \ -e LINUX_DO_CLIENT_SECRET=your_client_secret \ -e LINUX_DO_REDIRECT_URI=https://yourdomain.com/auth/callback \ -e FEISHU_APP_ID=your_feishu_app_id \ -e FEISHU_APP_SECRET=your_feishu_app_secret \ -e FEISHU_REDIRECT_URI=https://yourdomain.com/auth/callback \ -e REGISTRATION_ENABLED=false \ ghcr.io/fish2018/yprompt:latest
创建 docker-compose.yml:
version: '3.8' services: yprompt: image: ghcr.io/fish2018/yprompt:latest container_name: yprompt restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./data:/app/data environment: - DOMAIN=yourdomain.com - SECRET_KEY=your-random-secret-key - LINUX_DO_CLIENT_ID=your_client_id - LINUX_DO_CLIENT_SECRET=your_client_secret - LINUX_DO_REDIRECT_URI=https://yourdomain.com/auth/callback - FEISHU_APP_ID=your_feishu_app_id - FEISHU_APP_SECRET=your_feishu_app_secret - FEISHU_REDIRECT_URI=https://yourdomain.com/auth/callback - REGISTRATION_ENABLED=false
启动:
docker-compose up -d
| 变量 | 说明 | 示例 |
|---|---|---|
SECRET_KEY |
JWT密钥(至少32位随机字符) | a1b2c3d4e5f6... |
| 变量 | 默认值 | 说明 |
|---|---|---|
DOMAIN |
localhost |
域名或IP地址 |
| 变量 | 默认值 | 说明 |
|---|---|---|
DB_TYPE |
sqlite |
数据库类型:sqlite 或 mysql |
SQLITE_DB_PATH |
../data/yprompt.db |
SQLite数据库文件路径 |
DB_HOST |
localhost |
MySQL主机地址 |
DB_USER |
root |
MySQL用户名 |
DB_PASS |
- | MySQL密码 |
DB_NAME |
yprompt |
MySQL数据库名 |
DB_PORT |
3306 |
MySQL端口 |
| 变量 | 说明 | 示例 |
|---|---|---|
LINUX_DO_CLIENT_ID |
应用Client ID | WMYxs1aE2NOdBkj1le... |
LINUX_DO_CLIENT_SECRET |
应用Client Secret | QGl30etmvXbLM0d... |
LINUX_DO_REDIRECT_URI |
OAuth回调地址 | https://yourdomain.com/auth/callback |
申请地址:https://connect.linux.do/my/preferences/apps
| 变量 | 说明 | 示例 |
|---|---|---|
FEISHU_APP_ID |
飞书应用ID | cli_xxxxx |
FEISHU_APP_SECRET |
飞书应用Secret | xxxxxxxx |
FEISHU_REDIRECT_URI |
OAuth回调地址 | https://yourdomain.com/auth/callback |
| 变量 | 默认值 | 说明 |
|---|---|---|
ADMIN_USERNAME |
admin |
默认管理员用户名 |
ADMIN_PASSWORD |
admin123 |
默认管理员密码 |
REGISTRATION_ENABLED |
false |
是否允许用户自助注册(true/false) |
⚠️ 当DEFAULT_ADMIN_USERNAME(或ADMIN_USERNAME环境变量)为空且未开放注册时,系统不会显示账号密码登录入口,仅保留 OAuth 登录方式。
| 变量 | 默认值 | 说明 |
|---|---|---|
HEALTH_CHECK_INTERVAL |
30 |
健康检查间隔(秒) |
HEALTH_CHECK_TIMEOUT |
10 |
健康检查超时(秒) |
HEALTH_CHECK_RETRIES |
3 |
健康检查重试次数 |
将SSL证书放置在数据目录:
data/ssl/ ├── fullchain.pem # 完整证书链 └── privkey.pem # 私钥
容器启动时会自动检测并启用HTTPS。
MIT License