Configuration Parsing Warning:Invalid JSON for config file config.json

YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

Agentic RAG 智能问答系统

ReAct Agent 驱动 | 多模态知识库 | MCP 工具扩展 | 边缘/本地部署


基于 ReAct Agent 的多模态检索增强生成(RAG)系统,支持文本、图片、音频、视频的统一入库与跨模态检索,提供智能问答、工具调用、MCP 扩展、流式对话、语音交互等完整能力。支持 OpenAI / 本地 OpenAI-compatible 模型,可灵活部署在云端或边缘设备上。

Python 3.10+ FastAPI React 19 Milvus Lite License

当前版本:0.1.0。部分能力还需要进一步开发验证。


alt text

alt text


目录


项目背景

为什么需要 Agentic RAG?

传统 RAG 系统只能被动检索,而现实场景中的问题往往需要多步推理、工具调用和动态决策:

  • 静态检索局限 — 一次性检索难以回答需要多轮推理的复杂问题。
  • 模态割裂 — 文本、图片、音视频分散存储,无法统一检索,大量非文本信息被浪费。
  • 工具孤岛 — 检索、计算、外部 API 等能力各自独立,Agent 无法根据上下文自主选择工具。
  • 部署复杂 — 多数方案依赖云端服务,存在隐私泄露风险和高昂调用成本。

本项目的解决思路

本项目将 ReAct Agent多模态 RAG 深度融合,让 Agent 能够"思考→行动→观察→再思考",在推理过程中自主决定何时检索知识库、何时调用外部工具、何时生成最终答案:

  • 🧠 Agent 驱动检索 — Agent 根据问题复杂度自主决定检索策略,支持多轮推理和工具链调用。
  • 🔗 MCP 生态接入 — 通过 Model Context Protocol 接入外部工具,Agent 能力可无限扩展。
  • 🎨 多模态统一 — 文本、图片、音频、视频统一向量空间,跨模态语义检索。
  • 🏠 本地优先 — 支持本地 LLM / Embedding 服务,数据不出设备,隐私安全可控。

应用场景

领域 典型场景 核心价值
🏢 企业知识管理 智能客服、内部培训、文档问答 多轮对话理解上下文,自动调用内部工具查询数据
🔬 研发辅助 代码库问答、技术文档检索、API 集成 Agent 自主检索代码示例、调用调试工具、生成修复建议
📚 教育科研 文献综述、课件问答、实验数据分析 跨文献多轮推理,自动提取关键信息并生成综述
🎬 内容创作 素材检索、脚本生成、多模态内容理解 以文搜图/以图搜视频,Agent 辅助创作全流程
🏥 专业领域 医疗文献问答、法律条文检索、金融报告分析 严格的数据隐私要求下本地运行,专业工具链集成

核心特性

🚀 功能特性

  • ReAct Agent 引擎 — 支持 Thought → Action → Observation → Final Answer 循环,以及原生 Function Calling,Agent 可自主规划多步推理。
  • 多模式智能路由 — 按查询意图动态装配工具集(知识库检索、联网搜索、媒体理解及 MCP 扩展工具),Agent 每轮推理均可自主调用工具。
  • 四模态统一检索 — 文本、图片、音频、视频在同一向量空间中表示,支持以文搜图、以图搜视频等跨模态查询。
  • 混合检索策略 — 支持 naive 纯向量检索和 hybrid 向量 + 知识图谱混合检索,提升召回准确率。
  • 流式对话体验 — REST SSE 与 WebSocket 双通道流式输出,实时展示 Agent 思考过程和工具调用。
  • 多入口灵活接入 — Web UI、REST API、WebSocket、CLI、异步 Python SDK,满足不同场景需求。

🔧 技术特性

  • MCP 工具扩展 — 启动时自动连接外部 MCP Server,将工具注册到 Agent,实现能力热插拔。
  • 多提供商 LLM — 内置 OpenAI、以及任意 OpenAI-compatible 本地服务适配。
  • 模块化架构 — Agent 引擎、知识管线、向量存储、LLM 服务、记忆系统分层解耦,可独立替换升级。
  • 本地数据持久化 — SQLite 会话存储、Milvus Lite 向量库、JSON 知识图谱,零外部依赖即可运行。
  • 可配置预处理 — 文本分块大小、图片处理策略、音频切片参数等均可通过环境变量调节。

系统架构

整体架构

┌─────────────────────────────────────────────────────────────┐
│                    接入层 (Entry Points)                     │
│   Web UI  │  REST API  │  WebSocket  │  CLI  │  Python SDK  │
└──────────────────────────┬──────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────┐
│                   Agent 路由与引擎层                         │
│         AgentRouter (模式路由)  +  ReActEngine (推理循环)     │
│              ↓ Thought → Action → Observation ↑             │
└──────────────────────────┬──────────────────────────────────┘
                           │
           ┌───────────────┼───────────────┐
           ▼               ▼               ▼
      ┌─────────┐    ┌──────────┐    ┌──────────┐
      │ RAG 工具 │    │ MCP 工具 │    │ 媒体工具  │
      │(知识库) │    │(外部扩展)│    │(语音/图像)│
      └────┬────┘    └──────────┘    └──────────┘
           │
           ▼
┌─────────────────────────────────────────────────────────────┐
│                    知识管线 (Knowledge Pipeline)             │
│   Parse → Process → Embed → Milvus Lite                     │
│              └────────→ Knowledge Graph (可选)               │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                      数据持久化层                            │
│   SQLite (会话/消息)  │  Milvus Lite (向量)  │  JSON (KG)    │
└─────────────────────────────────────────────────────────────┘

知识管线流程

原始输入 (文本/图片/音频/视频/PDF/Office)
        │
        ▼
┌───────────────┐
│  统一解析层    │  → ContentList (统一内容表示)
│  Parse        │
└───────┬───────┘
        │
        ▼
┌───────────────┐
│  模态处理层    │  → 文本分块 / 图片处理 / 音频切片 / 视频帧提取
│  Process      │
└───────┬───────┘
        │
        ▼
┌───────────────┐     ┌───────────────┐
│  向量化层      │ ──→ │  知识图谱层    │ (可选,enable_kg=true)
│  Embed        │     │  KG Builder   │
└───────┬───────┘     └───────────────┘
        │
        ▼
┌───────────────┐
│  向量存储层    │  → Milvus Lite (本地持久化)
│  Vector Store │
└───────────────┘

Agent 推理流程

用户问题
    │
    ▼
┌─────────────┐
│  AgentRouter│  
└──────┬──────┘
       │
       ▼
┌────────────────────────────────────────┐
│           ReAct 推理循环                │
│  ┌─────────┐   ┌─────────┐   ┌────────┐ │
│  │ Thought │ → │ Action  │ → │Observe │ │
│  │ (思考)   │   │ (行动)   │   │ (观察)  │ │
│  └─────────┘   └─────────┘   └────────┘ │
│       ↑                           │      │
│       └───────────────────────────┘      │
│              (最多 N 轮)                  │
└────────────────────────────────────────┘
       │
       ▼
┌─────────────┐
│ Final Answer │  → 生成最终回答,附来源引用
└─────────────┘

项目结构

Agentic_RAG/
├── agentic_rag/                 # 后端核心代码
│   ├── agent/                   # ReAct 引擎、Prompt 模板、模式路由
│   ├── config/                  # Pydantic Settings、默认配置
│   ├── core/                    # MCP 客户端、多模态处理、STT/TTS
│   ├── data/                    # 数据模型、SQLite Repository
│   ├── entrypoints/             # 接入层
│   │   ├── rest/                # FastAPI REST API
│   │   ├── websocket/           # WebSocket 服务
│   │   ├── cli/                 # 命令行接口
│   │   ├── sdk/                 # Python SDK
│   │   └── gateway/             # 消息平台网关
│   ├── orchestration/           # L1 工具、L2 能力编排
│   ├── runtime/                 # 运行时上下文、流总线、轮次协调
│   ├── services/                # LLM、知识管线、记忆、会话、向量存储
│   └── utils/                   # 通用工具
├── frontend/                    # React 19 + Vite 8 前端
│   ├── src/
│   └── vite.config.js
├── static/                      # 前端构建产物(生产模式)
├── tests/                       # 测试
│   ├── unit/                    # 单元测试
│   ├── integration/             # 集成测试
│   └── dir/                     # 测试数据
├── scripts/                     # 辅助脚本(预留)
├── data/                        # SQLite 运行时数据
├── workspace/                   # 上传文件、向量库、知识图谱
├── .env                         # 环境变量配置(由 .env.example 复制)
├── .env.example                 # 环境变量模板
├── mcp_servers.json             # MCP 配置(JSON)
├── mcp_servers.yaml             # MCP 配置(YAML)
├── pyproject.toml               # Python 项目配置
└── README.md

快速开始

1. 环境要求

  • Python 3.10+
  • Node.js 18+(构建 Web UI 需要;生产环境直接使用已构建的 static/ 产物时可省略)

2. 安装

git clone <repository-url>
cd Agentic_RAG

python -m venv .venv
source .venv/bin/activate        # Linux/macOS
# .venv\Scripts\activate         # Windows PowerShell

python -m pip install --upgrade pip
pip install -e ".[dev]"

# 完整安装:Anthropic、语音、视频、文档解析和消息网关
# pip install -e ".[dev,anthropic,voice,media,documents,gateways]"

# 可选:PDF/Office 完整解析
pip install pymupdf              # PDF 文本提取及 OCR 页面渲染
# 或按 Docling 官方说明安装 docling

3. 配置环境变量

从模板创建 .env 文件:

cp .env.example .env

然后按需修改(配置使用无前缀变量名):

# ============ LLM 配置 ============
DEFAULT_PROVIDER=local

LLM_PROVIDERS__LOCAL__API_BASE=http://localhost:8009/v1
LLM_PROVIDERS__LOCAL__MODEL=your-chat-model
LLM_PROVIDERS__LOCAL__API_KEY=not-needed
LLM_PROVIDERS__LOCAL__VISION_MODEL=your-vision-model

# ============ Embedding 配置 ============
EMBEDDING__PROVIDER=local
EMBEDDING__API_BASE=http://localhost:8010/v1
EMBEDDING__API_KEY=not-needed
EMBEDDING__MODEL=your-embedding-model
EMBEDDING__DIM=768
EMBEDDING__BATCH_SIZE=4

# ============ 向量库配置 ============
MILVUS__DIM=768

# ============ API 服务配置 ============
API__HOST=0.0.0.0
API__PORT=8007

⚠️ EMBEDDING__DIMMILVUS__DIM 必须一致。若需修改已创建集合的维度,请先备份并删除旧的 workspace/milvus_lite.db,再重新建库。

使用官方云服务:

# OpenAI
DEFAULT_PROVIDER=openai
LLM_PROVIDERS__OPENAI__API_KEY=your-openai-api-key
LLM_PROVIDERS__OPENAI__API_BASE=https://api.openai.com/v1
LLM_PROVIDERS__OPENAI__MODEL=gpt-4o

# Anthropic Claude(Embedding 仍需单独配置)
DEFAULT_PROVIDER=claude
LLM_PROVIDERS__CLAUDE__API_KEY=your-anthropic-api-key
LLM_PROVIDERS__CLAUDE__API_BASE=https://api.anthropic.com
LLM_PROVIDERS__CLAUDE__MODEL=your-claude-model

4. 构建前端

cd frontend
npm run build
cd ..

Vite 产物输出到 static/,FastAPI 挂载 /static 并在 / 返回 SPA 首页。生产环境只需构建一次;前端源码未改动时无需重复执行。

5. 启动服务

# 生产模式
python -m agentic_rag serve --host 0.0.0.0 --port 8007

# 开发模式(自动重载)
python -m agentic_rag serve --port 8007 --reload
# 或
uvicorn agentic_rag.entrypoints.rest.app:app --host 0.0.0.0 --port 8007 --reload

6. 验证运行

curl http://localhost:8007/health
curl http://localhost:8007/ready
地址 说明
http://localhost:8007/ Web UI 主界面
http://localhost:8007/docs Swagger API 文档
http://localhost:8007/health 进程健康检查
http://localhost:8007/ready LLM 配置就绪检查

✅ 打开 http://localhost:8007/,看到聊天界面即部署成功。若页面空白或报资源加载失败,通常是 static/ 缺失或过期,请回到第 4 步重新执行 npm run build


使用方式

系统提供多种使用入口:Web UI 是浏览器中的完整交互界面,适合直接使用;CLI / REST API / WebSocket / Python SDK 面向脚本调用与二次开发。

Web UI

# 1. 构建前端(首次或前端有更新时执行)
cd frontend && npm install && npm run build && cd ..

# 2. 启动服务(后端托管 Web UI)
python -m agentic_rag serve --port 8007

启动后在浏览器打开 http://localhost:8007/

  • 对话交互 — 输入问题即开始问答,流式展示 Agent 的 Thought / Action / Observation 推理过程
  • 文件上传 — 上传文本、图片、音频、视频入库,对应 /api/v1/rag/upload
  • 会话管理 — 多会话切换,历史记录持久化在本地 SQLite

CLI 命令行

# 普通问答
python -m agentic_rag chat "什么是 RAG?"

# 自动路由或指定模式
python -m agentic_rag chat --mode research "深入总结知识库中的检索方法"

# 流式输出
python -m agentic_rag chat --stream "解释 ReAct 的执行过程"

# 指定已配置的 Provider
python -m agentic_rag chat --provider local "你好"

# 文本文件入库
python -m agentic_rag ingest --file document.txt --source cli

# 查看当前配置信息
python -m agentic_rag info

# 查看帮助
python -m agentic_rag --help

REST API

非流式聊天

curl -X POST http://localhost:8007/api/v1/chat \
  -H 'Content-Type: application/json' \
  -d '{"message":"什么是 RAG?","mode":"auto"}'

SSE 流式聊天

curl -N -X POST http://localhost:8007/api/v1/chat/stream \
  -H 'Content-Type: application/json' \
  -d '{"message":"检索知识库中的向量数据库资料","mode":"research"}'

主要事件类型:text_deltatool_call_starttool_call_resulterrordone

知识库检索

curl -X POST http://localhost:8007/api/v1/rag/search \
  -H 'Content-Type: application/json' \
  -d '{"query":"向量数据库","top_k":5,"mode":"hybrid"}'

文本入库

curl -X POST http://localhost:8007/api/v1/rag/ingest \
  -H 'Content-Type: application/json' \
  -d '{"content":"Milvus 是一个向量数据库。","source":"manual"}'

文件/多模态上传

curl -X POST http://localhost:8007/api/v1/rag/upload \
  -F 'file=@document.pdf' \
  -F 'source=manual-upload' \
  -F 'ingest_mode=multimodal' \
  -F 'mm_method=pure' \
  -F 'enable_kg=true'

支持的文件格式:

  • 文本/文档.txt .md .json .yaml .csv .py .html .pdf .docx
  • 图片.jpg .png .gif .webp .bmp .svg
  • 视频.mp4 .avi .mov .mkv .webm
  • 音频.mp3 .wav .m4a .ogg .flac

会话管理

# 创建会话(user_id 是查询参数)
curl -X POST 'http://localhost:8007/api/v1/session?user_id=user123'

# 获取会话列表
curl 'http://localhost:8007/api/v1/sessions?user_id=user123'

# 获取会话消息
curl http://localhost:8007/api/v1/session/<session_id>/messages

# 删除会话
curl -X DELETE http://localhost:8007/api/v1/session/<session_id>

WebSocket

const sessionId = crypto.randomUUID()
const ws = new WebSocket(`ws://localhost:8007/ws/${sessionId}`)

ws.addEventListener('open', () => {
  ws.send(JSON.stringify({
    type: 'chat',
    payload: {
      message: '检索知识库中的 ReAct 资料',
      mode: 'research',
    },
  }))
})

ws.addEventListener('message', (event) => {
  const message = JSON.parse(event.data)
  console.log(message.type, message.data)
})

Python SDK

import asyncio
from agentic_rag.entrypoints.sdk.client import AgenticRAGClient


async def main() -> None:
    async with AgenticRAGClient("http://localhost:8007") as client:
        # 非流式聊天
        response = await client.chat("什么是 RAG?", mode="auto")
        print(response["answer"])

        # 流式聊天
        async for event in client.chat_stream("检索知识库"):
            print(event)

        # 文本入库
        result = await client.rag_ingest(
            "这是一段需要写入知识库的文本。",
            source="sdk",
        )
        print(result)


asyncio.run(main())

其他功能

多模态知识库

入库模式

/api/v1/rag/upload 参数说明:

参数 默认值 说明
ingest_mode multimodal text 跳过媒体项;multimodal 处理媒体项
mm_method pure pure / caption / both
chunk_size 512 文本分块字符数
chunk_overlap 50 分块重叠字符数
enable_kg false 构建并持久化知识图谱

mm_method 说明:

  • pure — 直接构造多模态 Embedding 输入;纯文本 Embedding API 会退化为占位文本
  • caption — 使用视觉模型生成图片描述,再对描述文本做 Embedding
  • both — 同时使用原始媒体和描述文本

本地数据

运行时产生的数据文件:

data/agentic_rag.db              # 会话与消息历史
workspace/milvus_lite.db         # Milvus Lite 向量数据库
workspace/knowledge_graph.json   # 知识图谱(启用 KG 时)
workspace/uploads/               # 上传文件缓存

🔒 这些文件可能包含用户内容或模型数据,部署时请配置合适的访问控制、备份和清理策略。

MCP 工具扩展

项目支持通过 Model Context Protocol (MCP) 接入外部工具,Agent 可自动发现并使用这些工具。

配置方式

按优先级查找配置:

  1. mcp_servers.json
  2. mcp_servers.yaml
  3. MCP 环境变量

推荐使用不含密钥的配置文件,通过环境变量提供凭据:

{
  "mcpServers": {
    "example-search": {
      "command": "npx",
      "args": ["-y", "example-search-mcp"],
      "disabled": false
    }
  }
}
export EXAMPLE_SEARCH_API_KEY='your-key'
python -m agentic_rag serve

启动日志会显示每个 MCP Server 的连接结果。连接成功的工具会注册到工具中心,并在所有 Agent 模式中可用。

⚠️ 不要把真实 API Key 提交到 Git。若密钥曾进入仓库历史,请立即撤销并轮换。

语音与消息网关

语音 REST 接口

curl -N -X POST http://localhost:8007/api/v1/chat/voice \
  -F 'audio=@recording.wav' \
  -F 'sid=voice-demo' \
  -F 'tts=true'

响应为 SSE,事件类型:transcripttext_delta、工具事件、audioerrordone

支持的配置:

  • STTsensevoicewhisperopenai
  • TTSqwenkokoroedgeopenai

消息网关

支持企业微信、QQ Bot、钉钉。总开关 GATEWAY__ENABLED=true,各平台需单独配置凭据。

生产使用前请完成平台签名校验、回调地址、权限和消息发送链路测试。

功能状态

能力 状态 说明
非流式/流式聊天 REST、CLI;WebSocket 支持流式事件
rag_search Chat API 启动时自动注册
文本与文件入库 REST 与 CLI 均有入口
多模态上传 REST /api/v1/rag/upload
chat / research 模式 均可使用 RAG 与已连接的 MCP 工具
rag 模式 Agent 自主入库 ⚠️ 路由声明了 rag_ingest,但 Chat API 默认只注册 rag_search
media 模式工具 ⚠️ 路由已定义,媒体工具未由 Chat API 默认注册
MCP ⚠️ 取决于本机命令、依赖、网络和环境变量
PDF/Office 解析 ⚠️ 需要 PaddleOCR-VL 服务、pymupdfdocling
语音对话 ⚠️ 需要可用的 STT/TTS 服务或本地模型
消息平台网关 ⚠️ 企业微信、QQ Bot、钉钉需按平台配置与联调

AX8850 运行示例

本节介绍在爱芯(AXERA)AX650N/AX8850 边缘设备上的两种部署方式:

  • 分离部署 — 仅模型推理服务运行在 NPU 设备上,通过 OpenAI 兼容接口对外提供;Agentic RAG 主机通过 HTTP 连接这些服务。
  • 全量部署 (本节默认方式)— 完整的 Agentic RAG 服务也运行在 NPU 设备上,推理与应用同机完成,数据不出设备。

1. 下载模型与运行组件

可从以下官方资源选择适配 AX650N/AX8850 的模型和运行组件:

本项目至少需要以下两类模型:

服务 用途 接口要求 示例端口
Chat LLM/VLM 对话、Agent 推理、图片理解 OpenAI 兼容 /v1/chat/completions 8009
Embedding 文本/图片/音视频向量化 OpenAI 兼容 /v1/embeddings 8010

可选模型服务:

服务 用途 接口要求 示例端口
SenseVoice 语音识别 /v1/audio/transcriptions/asr 8011
Kokoro TTS 语音合成 POST /tts,返回 WAV 8012
PaddleOCR-VL PDF/图片 OCR OpenAI 兼容接口 8013

2. 准备运行环境

Agentic RAG 主机安装项目依赖。若启用语音、文档和媒体处理,建议安装完整可选依赖:

python -m venv .venv
source .venv/bin/activate
pip install -e ".[voice,documents,media]"

# 压缩音频解码还需要系统提供 ffmpeg
ffmpeg -version

如果只使用文本问答和 RAG,可直接执行:

pip install -e .

3. 启动模型服务

以下命令在 AX8850 设备上执行。将模型目录替换为实际下载路径:

# LLM/VLM 模型
axllm serve /path/to/llm-or-vlm-model --host 0.0.0.0 --port 8009

# Embedding 模型
axllm serve /path/to/embeddings-model --host 0.0.0.0 --port 8010

# SenseVoice 模型
python /path/to/SenseVoice/python/openai_server.py --port 8011

# Kokoro 模型
python /path/to/kokoro/kokoro_svr.py --port 8012

SenseVoice、Kokoro 和 PaddleOCR-VL 的启动命令以各自模型仓库为准。配置前应确认它们分别满足本项目使用的接口约定:

  • SenseVoice:优先支持 POST /v1/audio/transcriptions,也兼容 POST /asr
  • Kokoro:支持 POST /tts,接收 textlanguagevoicespeed 字段并返回音频字节
  • PaddleOCR-VL:提供 OpenAI 兼容的视觉模型接口

4. 配置环境变量

在项目根目录创建或修改 .env。以下示例假设所有模型服务都运行在 192.168.1.100

# ============ LLM/VLM 服务 ============
DEFAULT_PROVIDER=local
LLM_PROVIDERS__LOCAL__API_BASE=http://192.168.1.100:8009/v1
LLM_PROVIDERS__LOCAL__API_KEY=not-needed
LLM_PROVIDERS__LOCAL__MODEL=your-chat-model
LLM_PROVIDERS__LOCAL__VISION_MODEL=your-vision-model
LLM_PROVIDERS__LOCAL__MAX_TOKENS=4096
LLM_PROVIDERS__LOCAL__TEMPERATURE=0.7

# ============ Embedding 服务 ============
EMBEDDING__PROVIDER=local
EMBEDDING__API_BASE=http://192.168.1.100:8010/v1
EMBEDDING__API_KEY=not-needed
EMBEDDING__MODEL=AXERA-TECH/jina-embeddings-v5-omni-nano-retrieval-AX650-P128-CTX2047
EMBEDDING__MODEL_TYPE=multimodal
EMBEDDING__DIM=768
EMBEDDING__BATCH_SIZE=4

# Milvus Lite 的向量维度必须与 Embedding 输出一致
MILVUS__DIM=768

# ============ 可选:SenseVoice STT ============
VOICE__STT_PROVIDER=sensevoice
VOICE__STT_MODEL=sensevoice
VOICE__STT_API_BASE=http://192.168.1.100:8011
VOICE__STT_LANGUAGE=auto
VOICE__SAMPLE_RATE=16000

# ============ 可选:Kokoro TTS ============
VOICE__TTS_PROVIDER=kokoro
VOICE__TTS_MODEL=kokoro
VOICE__TTS_API_BASE=http://192.168.1.100:8012
VOICE__TTS_LANGUAGE=zh
VOICE__TTS_VOICE=zf_xiaoyi
VOICE__TTS_SPEED=1.0
VOICE__TTS_RESPONSE_FORMAT=wav

# ============ 可选:PaddleOCR-VL ============
OCR__ENABLED=true
OCR__API_BASE=http://192.168.1.100:8013/v1
OCR__MODEL=PaddlePaddle/PaddleOCR-VL
OCR__API_KEY=not-needed
OCR__MAX_PAGES=50

# ============ Agentic RAG Web 服务 ============
API__HOST=0.0.0.0
API__PORT=8007

注意事项:

  1. LLM_PROVIDERS__LOCAL__MODEL 必须与模型服务实际暴露的模型名一致。这里使用已注册的 local Provider 连接 AX8850 上的 OpenAI 兼容服务,无需新增 Provider 类型。
  2. 纯文本模型不支持图片输入时,将 VISION_MODEL 配置为单独的 VLM;如果服务中没有视觉模型,请留空并避免使用图片理解功能。
  3. EMBEDDING__DIMMILVUS__DIM 必须一致。更换向量维度后,需要备份并删除旧的 workspace/milvus_lite.db,再重新入库。
  4. 使用多模态 Embedding 时建议设置 EMBEDDING__MODEL_TYPE=multimodal
  5. 如果 AX8850 上只启动了核心的 LLM 和 Embedding 服务,可删除或注释 STT、TTS、OCR 配置。

5. 启动项目

# 首次运行或前端发生变化时构建 Web UI
cd frontend && npm install && npm run build && cd ..

# 启动后端及 Web UI
python -m agentic_rag serve --host 0.0.0.0 --port 8007

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support