catalog-agent/README.md
2025-10-14 08:59:19 +08:00

253 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Qwen Agent - 智能数据检索专家系统
## 项目概述
Qwen Agent 是一个基于 FastAPI 构建的智能数据检索专家系统,专门用于处理和分析结构化数据集。系统通过无状态的 ZIP 项目加载机制,支持动态加载多种数据集,并提供类似 OpenAI 的聊天接口,便于与现有 AI 应用集成。
## 核心功能
### 1. 智能数据检索
- 基于倒排索引和多层数据架构的专业数据检索
- 支持复杂查询优化和自主决策能力
- 动态制定最优检索策略
### 2. 无状态项目加载
- 通过 ZIP URL 动态加载数据集
- 自动缓存和解压,提高性能
- 支持多种数据结构和文件格式
### 3. 多层架构数据处理
- **文档层** (document.txt): 原始文本内容,提供完整上下文
- **序列化层** (serialization.txt): 结构化数据,支持高效匹配
- **索引层** (schema.json): 字段定义、枚举值映射、文件关联关系
## API 接口协议
### Chat Completions 接口
**端点**: `POST /api/v1/chat/completions`
**请求格式**:
```json
{
"messages": [
{
"role": "user",
"content": "HP Elite Mini 800 G9ってートPC"
}
],
"model": "qwen3-next",
"model_server": "https://openrouter.ai/api/v1",
"api_key": "your-api-key",
"zip_url": "http://127.0.0.1:8080/all_hp_product_spec_book2506.zip",
"stream": false,
"max_input_tokens": 58000,
"top_p": 0.8,
"temperature": 0.7,
"max_tokens": 2000
}
```
**参数说明**:
- `messages`: 聊天消息列表
- `model`: 模型名称(默认: "qwen3-next"
- `model_server`: 模型服务器地址(必须)
- `api_key`: API 密钥(可通过 Authorization header 传入)
- `zip_url`: ZIP 数据集的 URL必需
- `stream`: 是否流式响应(默认: false
- `max_input_tokens`: 最大输入tokens数
- `top_p`: 核采样参数
- `temperature`: 温度参数
- `max_tokens`: 最大生成tokens数
- 其他任意模型生成参数
**响应格式**(非流式):
```json
{
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "HP Elite Mini 800 G9はートPCではなく、小型のデスクトップPCです。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 18,
"total_tokens": 43
}
}
```
**流式响应**: 使用 Server-Sent Events (SSE) 格式,每个数据块采用 OpenAI 格式。
### 系统管理接口
#### 健康检查
- `GET /api/health` - 系统健康状态检查
#### 系统状态
- `GET /system/status` - 获取系统状态和缓存统计信息
#### 缓存管理
- `POST /system/cleanup-cache` - 清理所有缓存
- `POST /system/cleanup-agent-cache` - 清理助手实例缓存
- `GET /system/cached-projects` - 获取所有缓存的项目信息
- `POST /system/remove-project-cache` - 移除特定项目缓存
## ZIP_URL 数据包结构
### 压缩包内容要求
ZIP 压缩包应包含以下目录结构:
```
dataset_name/
├── README.md # 数据集说明文档
├── dataset/
│ └── data_collection/
│ ├── document.txt # 原始文本内容
│ ├── serialization.txt # 序列化结构数据
│ └── schema.json # 字段定义和元数据
├── mcp_settings.json # MCP 工具配置
└── system_prompt.md # 系统提示词(可选)
```
### 文件详细说明
#### 1. document.txt
- 包含原始 Markdown 文本内容
- 提供数据的完整上下文信息
- 检索时需要包含前后行的上下文才有意义
#### 2. serialization.txt
- 基于 document.txt 解析的格式化结构数据
- 每行格式:`字段1:值1;字段2:值2;...`
- 支持正则高效匹配和关键词检索
- 单行内容代表一条完整的数据
#### 3. schema.json
```json
{
"字段名": {
"txt_file_name": "document.txt",
"serialization_file_name": "serialization.txt",
"enums": ["枚举值1", "枚举值2"],
"description": "字段描述信息"
}
}
```
- 定义字段名、枚举值映射和文件关联关系
- 提供 serialization.txt 中所有字段的集合
- 用于字段预览和枚举值预览
#### 4. MCP 工具配置 (mcp_settings.json)
- 配置 Model Context Protocol 工具
- 支持数据检索和处理的工具集成
- 可包含 JSON reader、多关键词搜索等工具
### 示例数据集
项目中包含的 HP 产品规格书数据集示例:
```
all_hp_product_spec_book2506/
├── document.txt # HP 产品完整规格信息
├── serialization.txt # 结构化的产品规格数据
└── schema.json # 产品字段定义(类型、品牌、规格等)
```
数据包含:
- 商用/个人笔记本电脑 (EliteBook/OmniBook)
- 台式机 (Elite/OMEN)
- 工作站 (Z系列)
- 显示器 (Series 3/5/OMEN)
- Poly 通信设备
- HyperX 游戏配件
## 技术特性
### 智能检索策略
- **探索性查询**: 结构分析 → 模式发现 → 结果扩展
- **精确性查询**: 目标定位 → 直接搜索 → 结果验证
- **分析性查询**: 多维度分析 → 深度挖掘 → 洞察提取
### 专业工具体系
- **结构分析工具**: json-reader-get_all_keys, json-reader-get_multiple_values
- **搜索执行工具**: multi-keyword-search, ripgrep-count-matches, ripgrep-search
- **智能路径优化**: 根据查询复杂度选择最优搜索路径
### 缓存机制
- ZIP 文件基于 URL 的 MD5 哈希值进行缓存
- 助手实例缓存,提高响应速度
- 支持缓存清理和管理
## 部署方式
### Docker 部署
```bash
# 构建镜像
docker build -t qwen-agent .
# 运行容器
docker run -p 8001:8001 qwen-agent
```
### Docker Compose 部署
```bash
docker-compose up -d
```
### 本地开发部署
```bash
# 安装依赖
pip install -r requirements.txt
# 启动服务
python fastapi_app.py
```
## 系统要求
- Python 3.8+
- FastAPI
- Uvicorn
- Qwen Agent 库
- Requests用于 ZIP 下载)
- 足够的磁盘空间用于缓存
## 注意事项
1. **必需参数**: 所有请求都必须提供 zip_url 参数
2. **API 密钥**: 可通过 Authorization header 或请求参数传入
3. **URL 格式**: zip_url 必须是有效的 HTTP/HTTPS URL 或本地路径
4. **文件大小**: 建议 ZIP 文件不超过 100MB
5. **安全性**: 确保 ZIP 文件来源可信
6. **网络**: 需要能够访问 zip_url 指向的资源
## 项目结构
```
qwen-agent/
├── fastapi_app.py # FastAPI 主应用
├── gbase_agent.py # 助手服务逻辑
├── zip_project_handler.py # ZIP 项目处理器
├── file_loaded_agent_manager.py # 助助实例管理
├── agent_pool.py # 助手池管理
├── system_prompt.md # 系统提示词
├── requirements.txt # 依赖包列表
├── Dockerfile # Docker 构建文件
├── docker-compose.yml # Docker Compose 配置
├── mcp/ # MCP 工具配置
├── projects/ # 项目目录
│ ├── _cache/ # ZIP 文件缓存
│ └── {hash}/ # 解压后的项目目录
├── public/ # 静态文件
└── workspace/ # 工作空间
```
此系统提供了完整的智能数据检索解决方案,支持动态数据集加载和高效的查询处理,适用于各种数据分析和检索场景。