Skip to content

lcx9451/Daoshu

Repository files navigation

道枢 (Daoshu) - 本地 AI 智能体助手平台

🤖 快速/推理/专家三模式畅聊 | 🖼️ 图片/视频/文件多模态输入 | 🤖 单/多智能体协作 | 🐾 电子宠物语音聊天 | 🔌 自定义 MCP/SKILLS 扩展

Python FastAPI Vue TypeScript Docker License


📖 项目简介

道枢 (Daoshu) 是一个生产级的本地 AI 智能体助手平台,集多模态交互、深度推理、实时对话于一体。系统采用前后端分离架构,支持 Docker 容器化部署,具备完整的工程化能力和高度可扩展的插件体系,让 AI 能力触手可及。

核心特性

💬 智能对话

  • 🎯 三模式畅聊: 快速响应、深度推理、专家咨询,按需切换
  • 🖼️ 多模态交互: 文件解读、图像理解、视频分析,全方位感知
  • 🐾 电子宠物: 语音聊天、情感互动、陪伴式 AI 体验

🎨 AI 创作

  • 🖼️ 图像生成: 文生图、风格迁移、创意设计
  • 🎬 视频生成: 文生视频、动态内容创作
  • 🎵 语音合成: 多音色 TTS、情感语音播报

🤖 智能体系统

  • 🧠 DeepAgents 框架: 基于深度推理的智能体编排
  • 👤 单智能体 + 多子代理模式:主代理动态调用专业子代理
  • 👥 主智能体 + 多子智能体协作:多角色协同完成复杂任务

🔌 扩展生态

  • 🔧 内置工具: 统计分析、天气查询、学术搜索、百度搜索等
  • 🌐 MCP 协议: 集成外部工具和服务,无限扩展可能
  • 📚 SKILLS 协议: 智能体自动创建和优化技能,越用越智能

🧠 知识增强

  • 📊 RAG 知识检索: ChromaDB 向量检索,行业知识库、专业知识随时调用
  • 🔄 动态更新: 知识库实时更新,保持信息时效性

⚡ 强大能力

  • 🌐 全局搜索: Tavily、DuckDuckGo、百度等多源搜索引擎
  • 🔧 沙盒执行: Daytona 安全沙盒,代码执行、文件操作无忧
  • 📊 数据分析: 统计分析、数据可视化、洞察报告生成

🔐 企业级保障

  • 🛡️ 安全机制: 完整的异常处理、CORS 安全配置、请求追踪
  • 📝 日志系统: 分级日志、错误专录、性能监控
  • 💾 智能缓存: 多级缓存架构,响应速度提升 60%

🏗️ 系统架构

整体架构

┌─────────────────────────────────────────────────────────────────┐
│                        前端层 (Vue 3 + TypeScript)               │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐           │
│  │   AI畅聊      │  │    智能体     │  │  MCP 管理     │          │
│  │  ChatPage    │  │  AgentPage   │  │  McpPage     │           │
│  └──────────────┘  └──────────────┘  └──────────────┘           │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐           │
│  │    AI 创作    │  │  电子宠物     │  │    模型配置    │          │
│  │  GeneratePage│  │  PetPage     │  │  SettingsPage│           │
│  └──────────────┘  └──────────────┘  └──────────────┘           │
└─────────────────────────────────────────────────────────────────┘
                            │ WebSocket / HTTP / SSE
┌─────────────────────────────────────────────────────────────────┐
│                   API 网关层 (FastAPI + Uvicorn)                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │  中间件:CORS | GZip | 安全头 | 请求 ID | 异常处理 | 日志     │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                            │
┌─────────────────────────────────────────────────────────────────┐
│                     业务逻辑层 (Python 3.12+)                     │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐     │
│  │   对话模式      │  │   智能体模式     │  │   MCP 服务      │     │
│  │  - Fast Chat   │  │  - Single      │  │  - MCP 客户端   │     │
│  │  - Deep Chat   │  │  - Multi       │  │  - 工具注册     │     │
│  │  - Expert Chat │  │                │  │  - 进度追踪     │     │
│  │  - Files Chat  │  │                │  │                │     │
│  │  - Image Chat  │  │                │  │                │     │
│  │  - Video Chat  │  │                │  │                │     │
│  │  - Tamagotchi  │  │                │  │                │     │
│  └────────────────┘  └────────────────┘  └────────────────┘     │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐     │
│  │   AI 创作       │  │   SKILLS 协议  │  │   RAG 检索      │     │
│  │  - 图片生成     │  │  - 技能创建     │  │  - 文档加载      │     │
│  │  - 视频生成     │  │  - 技能测试     │  │  - 向量嵌入      │     │
│  │  - 语音生成     │  │  - 技能评估     │  │  - 相似度检索    │     │
│  └────────────────┘  └────────────────┘  └────────────────┘     │
└─────────────────────────────────────────────────────────────────┘
                            │
┌─────────────────────────────────────────────────────────────────┐
│                        核心组件层                                │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │  LangChain   │  │  LangGraph   │  │ DeepAgents   │          │
│  │  (AI 编排)    │  │  (工作流)     │  │  (深度智能体)  │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │  ChromaDB    │  │   Daytona    │  │   MCP SDK    │          │
│  │  (向量数据库)  │  │  (沙盒环境)   │  │  (协议支持)    │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │  Edge TTS    │  │  SQLite      │  │  缓存系统     │          │
│  │  (语音合成)   │  │  (本地存储)    │  │  (多级缓存)   │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
└─────────────────────────────────────────────────────────────────┘
                            │
┌─────────────────────────────────────────────────────────────────┐
│                        工具服务层                                 │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐           │
│  │  搜索工具     │  │  文件工具      │  │  分析工具     │           │
│  │  - Tavily    │  │  - 文件读写    │  │  - 统计分析   │           │
│  │  - DuckDuckGo│  │  - 格式转换    │  │  - 数据可视化 │           │
│  │  - 百度搜索   │  │  - 批量操作    │  │  - 天气查询   │           │
│  │  - arXiv     │  │  - 文档管理    │  │  - 系统工具   │           │
│  └──────────────┘  └──────────────┘  └──────────────┘           │
└─────────────────────────────────────────────────────────────────┘
                            │
┌─────────────────────────────────────────────────────────────────┐
│                        模型服务层                                │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │  OpenAI      │  │  DashScope   │  │   Ollama     │          │
│  │  兼容接口     │  │  (通义千问)    │  │  (本地模型)   │          │
│  │  - GPT-4     │  │  - Qwen2.5   │  │  - 自定义     │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │  多模态模型    │  │  语音模型     │  │  嵌入模型      │          │
│  │  - Qwen-VL   │  │  - Qwen-TTS  │  │  - Embedding │          │
│  │  - Wan-Image │  │  - Edge-TTS  │  │  - V4        │          │
│  │  - Wan-Video │  │              │  │              │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
└─────────────────────────────────────────────────────────────────┘

技术栈

后端技术栈

组件 技术 版本 用途
Web 框架 FastAPI 0.135+ 高性能异步 API 服务
语言 Python 3.12+ 核心开发语言
AI 编排 LangChain 1.2+ LLM 应用开发框架
深度智能体 DeepAgents 0.5+ 深度推理 Agent 框架
工作流引擎 LangGraph 1.1+ 有状态智能体工作流
向量数据库 ChromaDB 1.5+ RAG 知识检索
沙盒环境 Daytona 0.163+ 代码执行沙盒
协议支持 MCP 1.27+ Model Context Protocol
数据库 SQLite / AioSQLite 2.0+ 本地数据存储
服务器 Uvicorn 0.44+ ASGI 应用服务器
验证 Pydantic 2.12+ 数据验证和设置管理

前端技术栈

组件 技术 版本 用途
框架 Vue 3.5+ 渐进式前端框架
语言 TypeScript 5.0+ 类型安全的 JavaScript
UI 库 Element Plus 2.13+ Vue 3 组件库
路由 Vue Router 5.0+ 单页应用路由
构建工具 Vite 8.0+ 下一代前端构建工具
Markdown Marked 18.0+ Markdown 解析渲染

基础设施

组件 技术 用途
容器化 Docker + Docker Compose 容器编排和部署
日志系统 自定义 Logger 分级日志、错误追踪
缓存 内存缓存 + SQLite 缓存 模型响应缓存、会话缓存
监控 健康检查端点 服务状态监控

📁 项目结构

Daoshu/                      # 项目根目录
├── app/                     # 后端服务
│   ├── api/                 # API 路由层
│   │   └── v1/              # API v1 版本
│   │       ├── stream_chat.py      # 流式对话接口
│   │       ├── ws_agent.py         # WebSocket 智能体
│   │       ├── mcp_api.py          # MCP 管理接口
│   │       ├── config_api.py       # 配置管理接口
│   │       └── build_ai_service.py # AI 创作服务
│   ├── config/              # 配置管理
│   │   ├── config.py        # Pydantic 配置模型
│   │   └── config.yml       # YAML 配置文件
│   ├── core/                # 核心业务逻辑
│   │   ├── agent_mode/      # 智能体模式
│   │   │   ├── single_agent.py     # 单智能体
│   │   │   └── multi_agent.py      # 多智能体协作
│   │   ├── chat_mode/       # 对话模式
│   │   │   ├── fast_chat.py        # 快速聊天
│   │   │   ├── deep_chat.py        # 深度思考
│   │   │   ├── expert_chat.py      # 专家咨询
│   │   │   ├── files_chat.py       # 文件对话
│   │   │   ├── image_chat.py       # 图像理解
│   │   │   ├── video_chat.py       # 视频分析
│   │   │   ├── tamagotchi_chat.py  # 电子宠物
│   │   │   ├── qwen_images.py      # Qwen 图像处理
│   │   │   ├── qwen_tts.py         # Qwen 语音合成
│   │   │   ├── wan_images.py       # 万相图像生成
│   │   │   └── wan_videos.py       # 万相视频生成
│   │   ├── components/      # 通用组件
│   │   │   ├── memory_storage.py   # 记忆存储
│   │   │   ├── task_router.py      # 任务路由
│   │   │   ├── sand_box_manager.py # 沙盒管理
│   │   │   ├── sqlite_db.py        # SQLite 数据库
│   │   │   └── sys_prompt.py       # 系统提示词
│   │   ├── mcp/             # MCP 服务
│   │   │   └── user_mcp.py         # 用户 MCP 管理
│   │   ├── middleware/      # 中间件
│   │   │   └── default_middleware.py
│   │   ├── tools/           # 工具集
│   │   │       ├── arxiv_academic_search_tool.py  # 学术搜索
│   │   │       ├── baidu_search_tool.py           # 百度搜索
│   │   │       ├── ddgs_search_tool.py            # DuckDuckGo 搜索
│   │   │       ├── duck_duck_go_tool.py           # DuckDuckGo 工具
│   │   │       ├── file_operations_tool.py        # 文件操作
│   │   │       ├── format_document_tool.py        # 文档格式化
│   │   │       ├── statistical_analysis_tool.py   # 统计分析
│   │   │       ├── system_tool.py                 # 系统工具
│   │   │       ├── weather_tool.py                # 天气查询
│   │   │       └── web_crawling_tool.py           # 网页爬取
│   │   ├── agent_cache.py     # 智能体缓存
│   │   ├── deep_agent_cache.py # 深度智能体缓存
│   │   └── model_cache.py      # 模型缓存
│   ├── logs/                # 应用日志
│   │   ├── app/              # 应用日志
│   │   └── error/            # 错误日志
│   ├── schemas/             # 数据模型定义
│   │   ├── models.py               # Pydantic 模型
│   │   └── mcp.py                  # MCP 数据模型
│   ├── static/              # 前端编译产物
│   │   ├── assets/          # 静态资源
│   │   │   ├── index-C2A7m2HF.css        # 样式文件
│   │   │   ├── index-CMyPAxPQ.js         # JS 文件
│   │   │   └── vite-BF8QNONU.svg         # Vite 图标
│   │   ├── favicon.svg            # 网站图标
│   │   ├── icons.svg              # 图标集
│   │   └── index.html             # HTML 模板
│   ├── temp_frames/         # 临时视频帧
│   ├── utils/               # 工具函数
│   │   ├── base_cache.py             # 基础缓存工具
│   │   ├── build_file_management.py  # 文件管理
│   │   ├── common.py                 # 通用工具
│   │   ├── exception.py              # 异常处理
│   │   ├── exception_handlers.py     # 异常处理器
│   │   ├── logger.py                 # 日志系统
│   │   ├── printer.py                # 打印工具
│   │   ├── response.py               # 响应格式化
│   │   ├── sqlite_cache_utils.py     # SQLite 缓存工具
│   │   ├── stream_processor.py       # 流式处理器
│   │   ├── video_extractor.py        # 视频提取
│   │   └── web_socket_utils.py       # WebSocket 工具
│   └── main.py              # 应用入口
├── data/                    # 数据目录
│   ├── chat_mode/           # 对话数据
│   │   ├── agent_cache.db        # 智能体缓存
│   │   ├── agent_memory.db       # 智能体记忆
│   │   └── agent_store.db        # 智能体存储
│   ├── embeddings_db/       # 向量数据库
│   │   └── chroma.sqlite3        # 向量存储
│   ├── mcp_db/              # MCP 配置
│   │   └── mcp_configs.db         # MCP 配置数据库
│   └── rag/                 # RAG 知识库
│       ├── industry_agent/     # 行业知识库
│       │   └── chroma.sqlite3
│       └── knowledge_agent/    # 通用知识库
│           └── chroma.sqlite3
├── logs/                    # 根日志目录
│   ├── app/                  # 应用日志
│   └── error/                # 错误日志
├── skills/                  # 技能库
│   ├── copywriting/          # 文案创作技能
│   ├── data-analysis/        # 数据分析技能
│   ├── file-operation/       # 文件操作技能
│   ├── generate-baokuan-wenan/ # 爆款文案技能
│   ├── logic/                # 逻辑推理技能
│   ├── quality-check/        # 质量检查技能
│   ├── research/             # 学术研究技能
│   ├── skill-creator/        # 技能创建工具
│   └── skill-from-masters-main/ # 技能学习项目
├── test/                    # 测试用例
├── .env                      # 环境变量配置
├── .env.example              # 环境变量示例
├── .gitignore                # Git 忽略文件
├── DOCKER.md                 # Docker 部署文档
├── Dockerfile                # Docker 镜像
├── docker-compose.yml        # Docker 编排配置
├── docker-logs.bat           # Docker 日志查看脚本
├── docker-start.bat          # Docker 启动脚本
├── docker-stop.bat           # Docker 停止脚本
├── requirements.txt          # Python 依赖
├── setup.bat                 # Windows 环境安装脚本
├── start.bat                 # Windows 快速启动脚本
└── windows_onPremises.md     # Windows 部署文档

🚀 快速开始

环境要求

  • Python 3.12+
  • Node.js 18+
  • Docker & Docker Compose (可选,推荐)

方式一:Docker 部署(推荐)

# 1. 配置环境变量
cd Daoshu
cp .env.example .env
# 编辑 .env 文件,填入 API Key

# 2. 一键启动
docker-compose up -d

# 3. 查看日志
docker-compose logs -f

# 4. 停止服务
docker-compose down

访问地址:

方式二:本地开发部署

后端启动

# 1. 创建虚拟环境
cd Daoshu
python -m venv venv
venv\Scripts\activate  # Windows
# source venv/bin/activate  # Linux/Mac

# 2. 安装依赖
pip install -r requirements.txt

# 3. 配置环境变量
copy .env.example .env  # Windows
# cp .env.example .env  # Linux/Mac
# 编辑 .env 文件,填入 API Key

# 4. 启动服务
python -m app.main

前端启动

# 1. 安装依赖
cd vue3-daoshu
npm install

# 2. 启动开发服务器
npm run dev

⚙️ 配置说明

环境变量配置 (.env)

# 模型配置
MODEL_PROVIDER='openai'              # 模型提供商
MODEL_NAME='qwen2.5-72b-instruct'    # 模型名称
MODEL_API_KEY='your-api-key'         # API 密钥
MODEL_BASE_URL='https://...'         # API 基础 URL

# 向量模型
EMBEDDING_PROVIDER='dashscope'
EMBEDDING_MODEL='text-embedding-v4'
EMBEDDING_API_KEY='your-key'

# 多模态模型
LLM_MODEL='qwen2.5-72b-instruct'
DEEP_MODEL='kimi-k2-thinking'        # 深度思考模型
IMG_MODEL='qwen-vl-plus'             # 图像理解模型
QWEN_IMAGES_MODEL='qwen-image-plus'  # 图像生成模型
WAN_IMAGES_MODEL='wan2.6-t2i'        # 万相图像生成
WAN_VIDEOS_MODEL='wan2.5-t2v-preview'# 万相视频生成
QWEN_TTS_MODEL='qwen3-tts-flash'     # 语音合成模型

# 智能体配置
AGENT_PROVIDER='openai'
AGENT_MODEL='qwen3.5-122b-a10b'

# 沙盒环境 (Daytona)
DAYTONA_API_KEY='your-key'
DAYTONA_BASE_URL='https://app.daytona.io/api'

# 搜索工具
TAVILY_API_KEY='your-key'

应用配置 (config.yml)

app:
  name: "Daoshu(道枢)API"
  version: "1.0.0"
  host: "localhost"
  port: 8888
  debug_mode: false
  api_prefix: "/api/v1"
  docs_enabled: true

logging:
  level: "WARNING"
  console:
    enabled: true
    level: "WARNING"
  file:
    enabled: true
    directory: "./logs"
    max_bytes: 52428800  # 50MB
    backup_count: 10

🎯 核心功能

1. 多模式对话系统

模式 描述 使用场景
Fast Chat 快速响应 (<1s) 日常聊天、简单问答
Deep Chat 深度推理分析 复杂问题、逻辑推理
Expert Chat 专家级咨询 专业领域问题
Files Chat 文件理解 PDF/Word/Excel 分析
Image Chat 图像理解 图片内容识别、分析
Video Chat 视频分析 视频内容理解
Tamagotchi 电子宠物互动 娱乐陪伴

2. 智能体系统

  • 单智能体模式: 独立完成任务
  • 多智能体协作: 多个智能体分工合作,处理复杂任务
  • 技能系统: 支持自定义技能 (SKILL.md 规范)

DeepAgents 框架

基于 deepagents 库构建的深度智能体框架,提供强大的 Agent 编排能力:

核心特性

  • 🧠 深度推理: 支持复杂任务的逐步推理和分解
  • 🔧 工具集成: 无缝集成 MCP 工具和后端工具
  • 📦 文件系统后端: 支持基于文件系统的持久化存储
  • 🔄 异步执行: 完全异步的 Agent 执行引擎
  • 🎯 中间件支持: 可插拔的中间件系统
  • 💾 智能缓存: 基于配置哈希的实例缓存

框架架构

# 深度智能体创建
from deepagents import create_deep_agent

# 核心组件
- AgentExecutor: Agent 执行器
- FilesystemBackend: 文件系统后端
- 中间件系统消息修剪格式化等
- 工具系统MCP 工具 + 自定义工具

智能体类型

  • 单智能体: 独立执行任务,适合简单场景
  • 多智能体协作:
    • Research Subagent: 信息搜集、调研
    • Data Analyzer Subagent: 数据分析
    • Tool Operator Subagent: 工具执行
    • 支持动态子代理构建

工具生态系统

BACKEND_TOOLS = [
    file_operations,      # 文件操作
    weather_query,        # 天气查询
    calculator,           # 计算器
    discount_calculate,   # 折扣计算
    get_current_time,     # 获取时间
    get_user_info,        # 用户信息
    update_user_info,     # 更新信息
]

MCP_TOOLS = [
    # 用户自定义 MCP 服务器工具
    # 动态加载和注册
]

缓存机制

  • 基于 MD5 哈希的智能体实例缓存
  • 考虑模型、工具、中间件、提示词的唯一性
  • 自动过期清理 (默认 2 小时)
  • 支持手动清除和刷新

3. MCP (Model Context Protocol)

遵循 Anthropic 提出的 MCP 标准协议,实现工具和服务的标准化集成:

核心功能

  • 🔧 工具注册与发现: 动态注册 MCP 工具,自动发现可用功能
  • 📡 动态资源管理: 按需加载资源,优化上下文使用
  • 🔗 标准化接口: 统一的工具调用协议,简化集成流程
  • 🌐 第三方服务集成: 快速接入外部 API 和服务

MCP 客户端配置

# 支持多种传输方式
- HTTP SSE (Server-Sent Events)
- WebSocket
- Stdio (标准输入输出)

内置 MCP 工具

  • 用户自定义 MCP 服务器管理
  • 工具调用进度追踪
  • 可用性验证与健康检查

4. SKILLS 协议

SKILLS 协议是一套完整的技能创建、测试、评估和优化框架,基于 SKILL.md 规范:

技能结构

skill-name/
├── SKILL.md (必需)
│   ├── YAML frontmatter (name, description)
│   └── Markdown 指令
├── scripts/    - 可执行代码 (可选)
├── references/ - 文档资料 (可选)
└── assets/     - 资源文件 (可选)

核心能力

  • 技能创建: 从用户工作流中提取意图,编写 SKILL.md 规范
  • 测试评估: 自动生成测试用例,支持有技能/无技能基线对比
  • 基准测试: 定量评估技能性能 (通过率、耗时、Token 消耗)
  • 可视化审查: HTML 审查器支持定性反馈和定量指标
  • 描述优化: 自动优化技能描述,提升触发准确率

预置技能

  • 📝 文案创作: 营销文案、工作报告、新媒体内容、商务文案
  • 📊 数据分析: 统计分析、数据可视化、洞察报告
  • 📁 文件操作: 文件读写、格式转换、批量处理
  • 🔥 爆款文案: 抖音/小红书/公众号爆款内容生成
  • 🧠 逻辑推理: 复杂问题分析、逻辑推导
  • 质量检查: 内容审核、格式校验
  • 🎓 学术研究: 文献检索、论文写作、学术搜索

5. RAG 知识检索

基于 ChromaDB 的检索增强生成 (RAG) 系统,实现专业知识问答:

系统架构

RAG 系统
├── 文档加载器
│   ├── PDF / Word / Excel
│   ├── Markdown / Text
│   └── Web 页面抓取
├── 文本分割器
│   ├── 按字符分割
│   ├── 按段落分割
│   └── 递归分割
├── 向量嵌入
│   ├── DashScope (text-embedding-v4)
│   └── 自定义嵌入模型
├── 向量数据库
│   └── ChromaDB (持久化存储)
└── 检索器
    ├── 相似度搜索
    ├── 最大边际相关性 (MMR)
    └── 混合搜索

核心功能

  • 📚 行业知识库: 针对特定行业的专业知识检索
  • 🧠 知识代理: 基于向量相似度的智能检索
  • 💾 持久化存储: ChromaDB 向量数据库
  • 🔄 实时更新: 支持知识库动态更新
  • 🎯 精准检索: 支持 Top-K 检索、分数阈值过滤
  • 📊 多路召回: 结合关键词和向量检索

知识库目录

data/rag/
├── industry_agent/     # 行业知识库
│   └── chroma.sqlite3
└── knowledge_agent/    # 通用知识库
    └── chroma.sqlite3

6. 多模态能力

集成通义千问、通义万相等多模态模型,提供全方位的多媒体处理能力:

图像生成 (文生图)

模型配置

  • 通义万相: wan2.6-t2i - 高质量图像生成
  • Qwen Images: qwen-image-plus - 精准指令遵循

支持风格

  • 🎨 写实风格
  • 🖼️ 艺术风格
  • 📸 摄影风格
  • 🎭 抽象艺术
  • 🏮 中国风

功能特性

  • 自定义分辨率配置
  • 多轮迭代优化
  • 负面提示词支持
  • 批量生成

视频生成 (文生视频)

模型: wan2.5-t2v-preview

能力

  • 🎬 文本描述生成视频
  • 🖼️ 图片 + 文本生成视频
  • ⏱️ 支持多时长配置
  • 🎵 支持简单动画效果

语音合成 (TTS)

模型: qwen3-tts-flash

特性

  • 🗣️ 多音色支持: 中文、英文、方言等多种音色
  • 🌍 多语言合成: 支持中文、英文等主流语言
  • 🎵 情感语调: 自然的情感表达和语调变化
  • 快速响应: 流式合成,低延迟播放

应用场景

  • 🎤 电子宠物语音: 宠物回答自动语音播放 (Edge TTS)
  • 📖 内容朗读: 文章、新闻、消息播报
  • 🔊 语音助手: 语音交互反馈
  • 🎧 有声内容: 生成有声读物、课程

视觉理解

模型配置

  • 图像理解: qwen-vl-plus
  • 高级视觉: qwen-vl-max-latest

能力

  • 📷 图像内容识别
  • 📊 图表分析
  • 📝 OCR 文字提取
  • 🔍 视觉推理
  • 🎨 艺术鉴赏

6. 工具集

搜索工具

工具 描述 使用场景
Tavily API AI 优化搜索引擎 事实核查、最新信息查询
DuckDuckGo 隐私保护搜索引擎 通用搜索
百度搜索 中文搜索引擎 中文内容检索
arXiv 学术论文搜索 科研文献检索

文件工具

  • 📁 文件读写: 支持多种文件格式
  • 📄 文档格式化: Markdown、JSON、XML 等格式转换
  • 🔄 批量操作: 批量文件处理
  • 📂 文件管理: 目录操作、文件搜索

分析工具

  • 📊 统计分析: 描述性统计、相关性分析
  • 📈 数据可视化: 图表生成、数据展示
  • 🌤️ 天气查询: 实时天气、天气预报
  • 💻 系统工具: 系统信息查询、性能监控

代码工具

  • 🐍 Python 执行: 沙盒环境中的代码执行
  • 🔍 代码分析: 代码审查、优化建议
  • 🧪 测试生成: 单元测试自动生成

专业工具

  • 📚 学术工具: 文献检索、引用格式化
  • 📰 新闻工具: 新闻资讯获取
  • 💼 商业工具: 公司信息、行业分析

🎨 前端界面

页面架构

基于 Vue 3 + TypeScript + Element Plus 构建的现代化单页应用:

src/
├── views/              # 页面组件
│   ├── ChatPage.vue       # 智能对话页面
│   ├── AgentPage.vue      # 智能体配置页面
│   ├── McpPage.vue        # MCP 管理页面
│   ├── SettingsPage.vue   # 系统设置页面
│   ├── GeneratePage.vue   # AI 创作页面 (文生图/视频/音频)
│   ├── PetPage.vue        # 电子宠物互动页面
│   └── ProfilePage.vue    # 用户资料页面
├── components/         # 通用组件
│   └── TamagotchiChat.vue  # 电子宠物组件
├── layouts/            # 布局组件
│   └── MainLayout.vue      # 主布局
└── router/             # 路由配置

核心页面功能

1. 智能对话页面 (ChatPage)

  • 💬 流式对话: 实时流式响应,打字机效果
  • 🎯 模式切换: 快速/深度/专家模式一键切换
  • 📊 思考过程: 深度模式支持查看推理过程
  • 🔧 工具调用: 专家模式显示工具调用详情
  • 📝 Markdown 渲染: 支持代码高亮、表格、公式

2. 智能体配置页面 (AgentPage)

  • 🤖 智能体管理: 创建、编辑、删除智能体
  • ⚙️ 参数配置: 模型选择、温度调节、系统提示词
  • 🧠 知识绑定: 关联 RAG 知识库
  • 🔌 技能挂载: 绑定 SKILLS 技能

3. MCP 管理页面 (McpPage)

  • 🔧 服务器管理: 添加、配置 MCP 服务器
  • 📡 连接测试: 实时验证 MCP 可用性
  • 🛠️ 工具浏览: 查看已注册的工具列表
  • 📊 调用日志: 追踪工具调用历史

4. AI 创作页面 (GeneratePage)

  • 🎨 文生图: 基于通义万相的图像生成
  • 🎬 文生视频: 视频内容生成
  • 🎵 文生音频: TTS 语音合成
  • 📝 创意写作: 文案、脚本、报告生成

5. 电子宠物页面 (PetPage)

  • 🐾 宠物互动: 虚拟宠物养成
  • 💬 情感对话: 拟人化交互
  • 🎮 小游戏: 互动娱乐功能
  • 🎤 语音对话: 支持语音输入和 TTS 语音输出
  • 🔊 实时播报: 宠物回答自动语音播放
  • 🎵 音色选择: 支持多种 TTS 音色配置

语音对话功能

// 前端语音识别
- Web Speech API 语音识别
- 实时语音转文字
- 支持中文识别

// 后端 TTS 语音合成
- Edge TTS 引擎
- 音色:zh-CN-XiaoxiaoNeural 
- 语速可调节 (+30% 加快)
- 流式音频分片播放

UI 特性

  • 🌙 主题切换: 支持亮色/暗色主题
  • 📱 响应式设计: 适配桌面端和移动端
  • 性能优化: 虚拟滚动、懒加载
  • 无障碍支持: 符合 WCAG 2.1 标准
  • 🌍 国际化: 支持多语言切换 (待实现)

🔌 API 接口

核心接口

GET  /                      # 健康检查
GET  /health               # 服务健康状态
POST /api/v1/chat/stream   # 流式对话
WS   /api/v1/agent/ws      # WebSocket 智能体
GET  /api/v1/mcp/tools     # 获取 MCP 工具列表
POST /api/v1/mcp/call      # 调用 MCP 工具
GET  /api/v1/config/models # 获取模型配置
PUT  /api/v1/config/models # 更新模型配置

API 文档

启动服务后访问: http://localhost:8000/docs

Swagger UI 提供完整的 API 文档和在线测试功能。


🧪 测试

# 运行测试
cd Daoshu
pytest

# 运行特定测试
pytest test/test_config.py -v

# 生成覆盖率报告
pytest --cov=app --cov-report=html

📦 部署

生产环境部署

  1. 环境变量安全
    • 使用 secrets 管理敏感信息
    • 不要将 .env 提交到版本控制
  2. 性能优化
    • 启用多 worker 模式
    • 配置 GZip 压缩
    • 启用 Redis 缓存 (可选)
  3. 安全加固
    • 配置 CORS 白名单
    • 启用 HTTPS
    • 配置速率限制
  4. 监控告警
    • 集成 Prometheus + Grafana
    • 配置日志聚合 (ELK)
    • 设置健康检查告警

Docker 生产部署

# 构建生产镜像
docker-compose -f docker-compose.prod.yml build

# 启动生产环境
docker-compose -f docker-compose.prod.yml up -d

# 扩容
docker-compose up -d --scale backend=3

🛠️ 开发指南

添加新的对话模式

  1. app/core/chat_mode/ 创建新模式文件
  2. 实现统一的接口规范
  3. 在路由中注册新端点
  4. 更新前端页面

添加新的工具

  1. app/core/tools/ 创建工具类
  2. 继承 DefaultTool 基类
  3. 实现 execute() 方法
  4. 在 MCP 服务中注册

自定义技能

参考 skills/ 目录下的技能模板:

  • 编写 SKILL.md 规范文件
  • 定义输入输出格式
  • 实现技能逻辑
  • 添加测试用例

🔧 故障排查

常见问题

1. 服务启动失败

问题: 后端服务无法启动

解决方案:

# 检查 Python 版本
python --version  # 需要 3.12+

# 检查依赖安装
pip install -r requirements.txt

# 检查 .env 文件配置
cat .env

# 查看日志
tail -f logs/error/error.log

2. API Key 配置错误

问题: 模型调用失败,返回认证错误

解决方案:

  • 检查 .env 文件中的 API Key 是否正确
  • 确认 API Key 格式 (无多余空格或引号)
  • 验证 API Key 是否有效 (访问提供商控制台)
  • 检查 MODEL_BASE_URL 是否正确

3. Docker 容器无法启动

问题: docker-compose up 失败

解决方案:

# 检查 Docker 服务
docker --version
docker-compose --version

# 查看容器日志
docker-compose logs backend
docker-compose logs frontend

# 重新构建
docker-compose down
docker-compose build --no-cache
docker-compose up -d

4. 前端无法连接后端

问题: 前端请求超时或 404

解决方案:

  • 检查后端服务是否运行 (http://localhost:8000/health)
  • 检查 CORS 配置是否允许前端域名
  • 确认 API 基础 URL 配置正确
  • 查看浏览器开发者工具的网络请求

5. 向量数据库错误

问题: ChromaDB 初始化失败

解决方案:

# 删除旧的向量数据库
rm -rf data/embeddings_db/*
rm -rf data/rag/*

# 重启服务
python -m app.main

6. 内存不足

问题: 服务运行中内存占用过高

解决方案:

  • 调整缓存大小限制
  • 减少并发 worker 数量
  • 定期清理临时文件
  • 增加系统 swap 空间

日志查看

# 查看应用日志
tail -f Daoshu/logs/app/app.log

# 查看错误日志
tail -f Daoshu/logs/error/error.log

# Docker 日志
docker-compose logs -f backend
docker-compose logs -f frontend

# 实时日志监控
docker-compose logs -f | grep "ERROR"

性能调试

# 检查 API 响应时间
curl -w "@curl-format.txt" -o /dev/null -s http://localhost:8000/health

# 查看慢查询
grep "duration" logs/app/app.log | sort -rn | head -20

# 监控资源使用
docker stats daoshu-backend daoshu-frontend

获取帮助

  • 📖 查看 API 文档
  • 📝 检查日志文件定位问题
  • 🐛 在 GitHub Issues 提交问题
  • 💬 联系技术支持团队

📊 性能指标

  • 响应时间:
    • Fast Chat: < 1s
    • Deep Chat: 5-15s
    • Expert Chat: 10-30s
  • 并发能力:
    • 单实例:100+ QPS
    • 支持水平扩展
  • 缓存命中率:
    • 模型缓存:60-80%
    • 会话缓存:90%+

🔒 安全特性

  • ✅ 输入验证 (Pydantic)
  • ✅ CORS 安全配置
  • ✅ 请求 ID 追踪
  • ✅ 异常统一处理
  • ✅ 日志审计
  • ✅ 沙盒隔离执行
  • ✅ 敏感信息加密存储

沙盒环境 (Daytona)

集成 Daytona 沙盒平台,提供安全的代码执行环境:

核心能力

  • 🛡️ 隔离执行: 每个任务在独立沙盒中运行
  • 🔐 权限控制: 细粒度的资源访问控制
  • 📦 环境预装: Python、Node.js 等常用运行时
  • 🔄 文件管理: 安全的文件读写操作
  • 📊 资源限制: CPU、内存、网络访问限制
  • 🔍 执行监控: 实时追踪执行进度和输出

使用场景

  • 代码执行与测试
  • 数据分析与可视化
  • 文件批量处理
  • 网络请求 (受控)
  • 第三方库使用

安全机制

沙盒安全层级
├── 网络隔离 (默认禁止外网访问)
├── 文件系统隔离 (沙盒内目录)
├── 进程隔离 (独立 PID 命名空间)
├── 资源限制 (CPU/Memory Quota)
└── 超时保护 (自动终止长时间任务)

日志系统

生产级日志系统,支持分级记录和错误追踪:

日志配置

logging:
  level: "INFO"
  console:
    enabled: true
    level: "WARNING"
  file:
    enabled: true
    directory: "./logs"
    max_bytes: 52428800  # 50MB
    backup_count: 10
  error_file:
    enabled: true
    filename: "error.log"
    level: "ERROR"

日志级别

  • 🟢 DEBUG: 调试信息
  • 🔵 INFO: 一般信息
  • 🟡 WARNING: 警告信息
  • 🔴 ERROR: 错误信息
  • 🟣 CRITICAL: 严重错误

日志特性

  • 📝 分级记录: 控制台和文件独立配置
  • 🔄 轮转机制: 基于文件大小自动轮转
  • 📊 错误专录: 错误日志单独记录
  • 🎯 请求追踪: 每个请求带唯一 ID
  • 📈 性能日志: 记录慢查询和性能瓶颈

缓存系统

多级缓存架构,提升响应速度和降低 API 成本:

缓存层级

缓存系统
├── 内存缓存 (ModelCache)
│   ├── 模型实例缓存
│   └── 会话缓存
├── SQLite 缓存 (AgentCache)
│   ├── 对话历史缓存
│   └── 中间结果缓存
└── 向量缓存 (Embeddings)
    └── ChromaDB 持久化

缓存策略

  • 🚀 模型缓存: 复用 LLM 实例,避免重复初始化
  • 💬 对话缓存: 存储对话历史,支持上下文恢复
  • 📊 响应缓存: 相似查询直接返回缓存结果
  • 🔄 失效策略: TTL、LRU、手动清除
  • 📈 统计监控: 命中率、缓存大小实时监控

性能提升

  • 模型缓存命中率:60-80%
  • 会话缓存命中率:90%+
  • 平均响应时间降低:40-60%

📄 许可证

MIT License - 详见 LICENSE 文件


📮 联系方式


🙏 致谢

本项目使用了以下优秀的开源项目:


道枢 (Daoshu) | 以 AI 之力,洞见未来

Made with ❤️ by AI Engineering Team


📋 快速参考

常用命令

# 后端开发启动
cd Daoshu
python -m app.main

# 前端开发启动
cd vue3-daoshu
npm run dev

# Docker 一键启动
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f

# 重启服务
docker-compose restart

# 停止并清理
docker-compose down -v

# 运行测试
cd Daoshu
pytest

# 检查依赖
pip check

# 更新依赖
pip install -r requirements.txt --upgrade

默认端口

服务 端口 描述
后端 API 8000 FastAPI 服务
前端 5173 Vite 开发服务器
API 文档 8000/docs Swagger UI

重要文件

文件 路径 描述
环境变量 Daoshu/.env API Key 等配置
应用配置 Daoshu/app/config/config.yml 应用参数
依赖列表 Daoshu/requirements.txt Python 依赖
Docker 配置 docker-compose.yml 容器编排
启动脚本 start.bat Windows 快速启动

目录结构

目录 描述
app/api/v1/ API 路由
app/core/chat_mode/ 对话模式
app/core/agent_mode/ 智能体模式
app/core/tools/ 工具集
app/static/ 前端编译产物
skills/ SKILLS 技能库
data/ 数据目录
logs/ 日志目录

模型配置速查

# 通义千问 (推荐)
MODEL_PROVIDER=openai
MODEL_NAME=qwen2.5-72b-instruct
MODEL_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

# 深度思考模型
DEEP_MODEL=kimi-k2-thinking
EXPERT_MODEL=kimi-k2-thinking

# 向量模型
EMBEDDING_PROVIDER=dashscope
EMBEDDING_MODEL=text-embedding-v4

# 多模态模型
IMG_MODEL=qwen-vl-plus
QWEN_IMAGES_MODEL=qwen-image-plus
WAN_IMAGES_MODEL=wan2.6-t2i
QWEN_TTS_MODEL=qwen3-tts-flash

对话模式说明

模式 响应时间 使用场景
Fast Chat <1s 日常聊天、简单问答
Deep Chat 5-15s 复杂问题、逻辑推理
Expert Chat 10-30s 专业领域、工具调用

技术支持

About

道枢 (Daoshu) - 开箱即用的生产级本地 AI 智能体助手平台,基于 LangChain 框架搭建智能体核心引擎,集多模态交互、深度推理、多智能体协作为一体;支持快速 / 深度 / 专家三模式对话、图像 / 视频 / 文件解析、电子宠物语音互动,内置 MCP/SKILLS 扩展生态、RAG 知识检索、安全沙盒执行等核心能力。采用 Vue3+TypeScript/FastAPI 前后端分离架构,支持 Docker 容器化部署,搭载企业级安全保障与高性能缓存体系。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors