Skip to content

Commit 44224ac

Browse files
authored
feat: Agent optimization and file upload enhancements (#182)
1 parent c8d8abc commit 44224ac

392 files changed

Lines changed: 14338 additions & 3617 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.python-version

Lines changed: 0 additions & 1 deletion
This file was deleted.

QUICKSTART.md

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# 零配置快速启动指南
2+
3+
## 快速启动
4+
5+
### 方式一:使用 `derisk quickstart` 命令(推荐)
6+
7+
```bash
8+
# 零配置启动(无需任何配置文件)
9+
derisk quickstart
10+
11+
# 指定端口启动
12+
derisk quickstart -p 8888
13+
14+
# 使用旧配置文件启动
15+
derisk quickstart -c configs/my/dev.toml
16+
```
17+
18+
启动后访问: http://localhost:7777
19+
20+
### 方式二:使用 `derisk start webserver` 命令
21+
22+
```bash
23+
# 零配置启动
24+
derisk start webserver
25+
26+
# 使用配置文件启动
27+
derisk start webserver -c configs/my/dev.toml
28+
29+
# 后台启动
30+
derisk start webserver -d
31+
```
32+
33+
### 方式三:直接运行 Python 脚本
34+
35+
```bash
36+
# 零配置启动
37+
python -m derisk_app.derisk_server
38+
39+
# 使用配置文件启动
40+
python -m derisk_app.derisk_server -c configs/derisk-minimal.toml
41+
```
42+
43+
## 配置说明
44+
45+
### 零配置模式
46+
47+
零配置模式下,服务会使用默认配置启动:
48+
- **服务端口**: 7777
49+
- **数据库**: SQLite (pilot/meta_data/derisk.db)
50+
- **向量存储**: Chroma (pilot/data)
51+
- **语言**: 中文
52+
53+
启动后通过 Web UI 配置:
54+
1. 访问 http://localhost:7777
55+
2. 进入"系统配置"页面
56+
3. 添加模型配置(LLM、Embedding、Reranker)
57+
4. 配置其他功能
58+
59+
### 使用配置文件
60+
61+
旧的 TOML 配置文件仍然完全支持:
62+
63+
```bash
64+
# 使用阿里云配置
65+
derisk quickstart -c configs/derisk-proxy-aliyun.toml
66+
67+
# 使用 OpenAI 配置
68+
derisk quickstart -c configs/derisk-proxy-openai.toml
69+
70+
# 使用自定义配置
71+
derisk quickstart -c configs/my/dev.toml
72+
```
73+
74+
### 配置优先级
75+
76+
1. **命令行参数**(最高优先级)
77+
- `-p/--port`: 服务端口
78+
- `-h/--host`: 服务主机
79+
80+
2. **TOML 配置文件**
81+
- 如果指定了 `-c` 参数,使用指定的 TOML 文件
82+
83+
3. **默认配置**(最低优先级)
84+
- 如果未指定配置文件,使用零配置模式
85+
86+
## 数据持久化
87+
88+
### 数据库存储
89+
90+
- **位置**: `pilot/meta_data/derisk.db`
91+
- **内容**: 用户配置、模型配置、对话历史等
92+
- **备份**: 直接复制该文件即可
93+
94+
### 向量数据存储
95+
96+
- **位置**: `pilot/data/`
97+
- **内容**: 向量索引、文档片段等
98+
99+
### JSON 配置存储
100+
101+
- **位置**: `~/.derisk/derisk.json`
102+
- **内容**: 应用配置(可通过 UI 修改)
103+
104+
## 停止服务
105+
106+
```bash
107+
# 如果是前台运行
108+
Ctrl+C
109+
110+
# 如果是后台运行
111+
derisk stop webserver
112+
```
113+
114+
## 常见问题
115+
116+
### 1. 端口被占用
117+
118+
```bash
119+
# 使用其他端口
120+
derisk quickstart -p 8888
121+
```
122+
123+
### 2. 数据库迁移警告
124+
125+
首次启动时可能会看到数据库迁移警告,这是正常的。数据库会自动创建和迁移。
126+
127+
### 3. 如何配置模型
128+
129+
启动服务后:
130+
1. 访问 http://localhost:7777
131+
2. 进入"模型管理"页面
132+
3. 添加你的模型配置(支持 OpenAI、阿里云、智谱等)
133+
4. 配置会自动保存到数据库
134+
135+
### 4. 如何恢复默认配置
136+
137+
```bash
138+
# 删除数据库(会清除所有配置)
139+
rm pilot/meta_data/derisk.db
140+
141+
# 重新启动
142+
derisk quickstart
143+
```
144+
145+
## 开发模式
146+
147+
### 使用最小配置文件开发
148+
149+
```bash
150+
# 创建最小配置文件
151+
# configs/derisk-minimal.toml 已存在
152+
153+
# 使用最小配置启动
154+
derisk quickstart -c configs/derisk-minimal.toml
155+
```
156+
157+
### 查看帮助
158+
159+
```bash
160+
derisk quickstart --help
161+
derisk start webserver --help
162+
derisk --help
163+
```

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,27 @@ uv sync --all-packages --frozen \
115115
116116
#### Start Server
117117

118+
**🚀 Quick Start (Zero Configuration, Recommended)**
119+
120+
Start without any configuration file:
121+
122+
```bash
123+
# Method 1: Use quickstart command
124+
uv run derisk quickstart
125+
126+
# Method 2: Use startup script
127+
./start.sh
128+
129+
# Method 3: Specify port
130+
uv run derisk quickstart -p 8888
131+
```
132+
133+
After starting, visit http://localhost:7777 and configure models and settings through the web UI.
134+
135+
For detailed instructions, see: [Quick Start Guide](QUICKSTART.md)
136+
137+
**📝 Start with Configuration File**
138+
118139
Configure the API_KEY in `derisk-proxy-aliyun.toml`, then run:
119140

120141
> Note: By default, we use the Telecom dataset from OpenRCA. Download via:
@@ -124,6 +145,10 @@ After downloading, move datasets to `pilot/datasets/`
124145

125146
Run the startup command:
126147
```bash
148+
# Start with configuration file
149+
uv run derisk quickstart -c configs/derisk-proxy-aliyun.toml
150+
151+
# Or use traditional method
127152
uv run python packages/derisk-app/src/derisk_app/derisk_server.py --config configs/derisk-proxy-aliyun.toml
128153
```
129154

README.zh.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,27 @@ uv sync --all-packages --frozen \
115115
116116
#### 启动服务
117117

118+
**🚀 快速启动(零配置,推荐)**
119+
120+
无需任何配置文件,直接启动:
121+
122+
```bash
123+
# 方式一:使用快速启动命令
124+
uv run derisk quickstart
125+
126+
# 方式二:使用启动脚本
127+
./start.sh
128+
129+
# 方式三:指定端口
130+
uv run derisk quickstart -p 8888
131+
```
132+
133+
启动后访问 http://localhost:7777,通过 Web UI 配置模型和其他设置。
134+
135+
详细说明请查看: [快速启动指南](QUICKSTART.md)
136+
137+
**📝 使用配置文件启动**
138+
118139
`derisk-proxy-aliyun.toml` 中配置 API_KEY,然后运行:
119140

120141
> 注意:默认使用 OpenRCA 的 Telecom 数据集。通过以下链接或命令下载:
@@ -124,6 +145,10 @@ uv sync --all-packages --frozen \
124145

125146
运行启动命令:
126147
```bash
148+
# 使用配置文件启动
149+
uv run derisk quickstart -c configs/derisk-proxy-aliyun.toml
150+
151+
# 或使用传统方式
127152
uv run python packages/derisk-app/src/derisk_app/derisk_server.py --config configs/derisk-proxy-aliyun.toml
128153
```
129154

assets/schema/derisk.sql

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use derisk;
99
-- MySQL DDL Script for Derisk
1010
-- Version: 0.3.0
1111
-- Generated from SQLAlchemy ORM Models
12-
-- Generated: 2026-03-24 19:23:14
12+
-- Generated: 2026-03-29 23:19:58
1313
-- ============================================================
1414

1515
SET NAMES utf8mb4;
@@ -114,6 +114,30 @@ CREATE TABLE IF NOT EXISTS `recommend_question` (
114114
`gmt_modify` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
115115
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
116116

117+
-- Table: agent_input_queue
118+
-- Source Model: AgentInputQueueEntity
119+
CREATE TABLE IF NOT EXISTS `agent_input_queue` (
120+
`id` BIGINT NOT NULL AUTO_INCREMENT,
121+
`conv_id` VARCHAR(255) NOT NULL COMMENT '对话ID (agent_conv_id)',
122+
`conv_session_id` VARCHAR(255) NOT NULL COMMENT '会话ID',
123+
`message_id` VARCHAR(64) NOT NULL COMMENT '消息唯一ID',
124+
`message_content` TEXT NOT NULL COMMENT '消息内容 (JSON)',
125+
`sender_name` VARCHAR(128) NULL COMMENT '发送者名称',
126+
`sender_type` VARCHAR(32) NULL COMMENT '发送者类型 (user/system)',
127+
`status` VARCHAR(20) NOT NULL COMMENT 'pending/processing/consumed',
128+
`consumed_at` DATETIME NULL COMMENT '消费时间',
129+
`consumed_by` VARCHAR(64) NULL COMMENT '消费的服务器实例ID',
130+
`priority` INT NULL DEFAULT 0 COMMENT '优先级 (数字越大越优先)',
131+
`extra` TEXT NULL COMMENT '扩展信息 (JSON)',
132+
`gmt_create` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
133+
`gmt_modified` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
134+
`gmt_modify` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
135+
PRIMARY KEY (`id`),
136+
KEY `idx_input_conv_session_status` (`conv_session_id`, `status`),
137+
KEY `idx_input_conv_id_status` (`conv_id`, `status`),
138+
KEY `idx_input_gmt_create` (`gmt_create`)
139+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
140+
117141
-- Table: authorization_audit_log
118142
-- Source Model: AuthorizationAuditLogEntity
119143
CREATE TABLE IF NOT EXISTS `authorization_audit_log` (
@@ -479,7 +503,7 @@ CREATE TABLE IF NOT EXISTS `gpts_app_config` (
479503
`system_prompt_template` TEXT NULL COMMENT '当前版本配置的system prompt模版',
480504
`user_prompt_template` TEXT NULL COMMENT '当前版本配置的user prompt模版',
481505
`layout` VARCHAR(255) NULL COMMENT '当前版本配置的布局配置',
482-
`custom_variables` VARCHAR(2000) NULL COMMENT '当前版本配置自定义参数配置',
506+
`custom_variables` TEXT NULL COMMENT '当前版本配置自定义参数配置',
483507
`llm_config` TEXT NULL COMMENT '当前版本配置的模型配置',
484508
`resource_knowledge` TEXT NULL COMMENT '当前版本配置的知识配置',
485509
`resource_tool` TEXT NULL COMMENT '当前版本配置的工具配置',

configs/derisk-proxy-aliyun.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,13 @@ max_new_tokens = 4096
5151
name = "qwen-vl-max"
5252
temperature = 0.7
5353
max_new_tokens = 4096
54+
is_multimodal = true # 多模态模型,支持图片输入
5455

5556
[[agent.llm.provider.model]]
5657
name = "glm-5"
5758
temperature = 0.7
5859
max_new_tokens = 4096
60+
is_multimodal = true # 多模态模型,支持图片输入
5961

6062
[[serves]]
6163
type = "file"

configs/derisk-proxy-openai.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,13 @@ max_new_tokens = 4096
5151
name = "qwen-vl-max"
5252
temperature = 0.7
5353
max_new_tokens = 4096
54+
is_multimodal = true # 多模态模型,支持图片输入
5455

5556
[[agent.llm.provider.model]]
5657
name = "glm-5"
5758
temperature = 0.7
5859
max_new_tokens = 4096
60+
is_multimodal = true # 多模态模型,支持图片输入
5961

6062
[[serves]]
6163
type = "file"

derisk.db

Whitespace-only changes.

0 commit comments

Comments
 (0)