一、开发目标
构建一款“中药科普助手”,能够与用户进行多轮对话,针对用户提出的中药材名称或相关问题,提供:
- 药材概述:拉丁学名、性味归经、主要成分、功效与主治等;
- 使用说明:常用剂量、炮制方法、注意事项和禁忌;
- 配伍与用法:常见方剂及配伍要点;
- 图片展示:调用专门接口获取高清药材图片,帮助用户直观了解。
二、整体架构
┌─────────┐ ┌───────────┐ ┌──────────┐
│ 用户端 │──┐ │ Agent │──┐ │ MCP │──→ 中药知识库/API
└─────────┘ │ └───────────┘ │ └──────────┘
│ │
│ ┌───────────┐ │
└───▶│ 模型层 │◀─┘
└───────────┘
用户端
- 支持文本对话,自动拼接对话上下文。
- 前端可选项:Web、微信小程序、移动 App 等。
Agent 策略(版本 0.2.2)
- 模式:ReAct(Reasoning + Acting)
- 工具调用:
- Function Calling(预留,当前主要以 ReAct 为主)
- MCP 调用
- 流程:
- 接收用户输入
{{sys.query}}
- 判断是否为中药材相关询问
- 若是:
- 调用 get_yaocai_image → 获取药材图片
- 调用 get_yaocaiInfo → 获取药材详细信息
- 否则:
- 直接由模型结合上下文返回通用回复
- 若是:
- 接收用户输入
MCP / SSE 工具(版本 0.2.1)
- 通过 SSE(Server‑Sent Events)/ StreamableHTTP 与插件后端实时通信
- 配置示例:
{ "mcpServers": { "zhongyao_mcp": { "type": "sse", "url": "http://10.16.7.24:8003/sse" } } }
模型
- 选用 Qwen2.5-32B-Instruct,对话生成能力强,擅长长文本与专业知识输出。
三、核心指令逻辑
// 接收用户输入
你需要先对用户的输入进行判断,用户的输入为:{{sys.query}}
// 逻辑分支
if 用户输入与中药材相关:
// 获取并展示
调用 get_yaocai_image() → 返回图片资源链接或二进制数据
调用 get_yaocaiInfo() → 返回中药详尽信息
else:
// 通用回复
由 Qwen2.5-32B-Instruct 生成并返回
get_yaocai_image 参数:
name
(药材名称,字符串)size
(可选,图片尺寸)
get_yaocaiInfo 参数:
name
(药材名称,字符串)