Page 102 - 《中国药房》2026年2期
P. 102
LLM DeepSeek-R1-32B、GLM4。其中,Docker和Ollama 2.3.2 基于tokens数量控制chunks的切分优化
的作用是创建一个应用平台的运行环境;BGE-m3 用于 为验证chunks字符长度与语义相似度之间的关系,
将文本内容转化为高维向量以供 LLM 识别和储存,以 本研究随机选取 3 个约 1 300 tokens 的 chunks 作为实验
便在本地知识库上传和用户问题解析时使用。之后,利 样本。依据语义层次,自段落末尾逐步删除部分语义内
用 Python 运行平台 PyCharm 将药品说明书等医学资料 容以减少字符长度,生成一系列不同长度的chunks。以
进行批量清洗,再上传至 Dify 平台形成本地知识库。 统一检索语句对各长度chunks进行召回测试,并记录对
BGE-Reranker-v2-m3 把从本地知识库粗筛的结果和用 应的 Score 值。结果(图 3),当 chunks 长度超过约 600
户问题进行精细比对后,将Score值呈递Dify平台,在此 tokens时,匹配度出现下降趋势;而一个完整知识点的描
过程中利用Nginx管理网络请求,用Redis和Postgres分 述通常需要200~800 tokens,若切分过短则容易破坏上
别缓冲和持久储存相关数据,为后续 LLM 返回答案提 下文的关联,导致知识点语义不完整。综合考虑知识点
供数据支撑。Dify平台向DeepSeek-R1-32B和GLM4发 完整性和召回率,本研究将药品说明书chunks的切分上
送问题后,后两者根据问题返回深度思考的答案;Dify 限确定为500 tokens。
通过应用 Web 供三方调用,生成应用程序,以供用户提 2.3.3 基于Python的批量清洗
问和向用户展示深度思考答案。软件安装和环境部署 根据上述药品说明书召回测试结果得到最佳药品
示意图见图1。 说明书清洗结构类型。为实现对药品说明书和医学指
2.3 药品说明书清洗与结构设计方法 南等知识文本的高效结构化处理,本研究引入Python语
2.3.1 基于检索相似度分析的知识库结构优化 言作为主要技术工具。利用 Python 脚本对 Excel、Word
本研究在 Dify 平台知识库中上传了我院所有药品 和 PDF 多种格式文件进行自动化处理,包括批量修改、
的说明书。为便于展示研究内容与方法,下文以伏立康 格式转换及结构重构等。
唑片说明书为例进行说明,并以“伏立康唑适应证”作为 以伏立康唑片说明书为例,由于其不同内容模块均
测试目标。首先,依据药品说明书内容设计并构建多种 以“【】”标注且药品名称在各模块中的复现率较低,故本
不同格式的知识库结构chunks,以“伏立康唑适应证”为 研究设计药品说明书清洗方案如下:(1)提取药品说明
统一检索语句,对各结构 chunks 依次进行召回测试,记 书中【药品名称】至下一项“【”之前的文本字段为药品名
录各种召回情形下检索语句与召回 chunks 的 Score 值, 称,即“x”。(2)以“x 说明书”为一级标题,用“#”标记,即
对比分析不同知识库结构对检索质量的影响。结果 “#伏立康唑片说明书”;药品说明书其他部分“【】”之间
见图2。 的文本字段为 y,以“x&y”为二级标题,用“##”标记,如
通过测试结果可以得出如下结论:药品说明书原文 “##本段内容主要描述了”&“伏立康唑片”(x)&“适应
中,不同内容结构(如适应证、用法用量、不良反应、药理 证”(y)。(3)如果二级标题下的内容超过 500 tokens,则
毒理等)应统一冠以药品名称,以确保语义表达的完整 把最后一个完整语句切分至下一个 chunk,避免破坏语
性;不同模块的内容需进行切分,避免混杂;在每一段的 义完整性。沿用当前二级标题+“续”作为新的标题,直
起始位置应添加概括性语句,例如“本段内容主要描述 至切分为不超过 500 tokens 的 chunk。(4)将药品说明书
了某药的适应证/用法用量/不良反应等”,其余正文可保 中的表格转化成markdown格式,为确保表格完整性,表
持不变。通过上述标准化重构,可显著提升知识库与用 格内容不再做切分。药品说明书中表格一般位于一段
户问题的语义匹配精度,提高检索召回的准确性。 完整语义表达的中间位置,为避免表格内容破坏文本上
程序入口
Dify发布AI应用
本地运行环境
LLM管理 Dify生成一 Docker
个AI Web
Ollama 应用,供三
方程序调用
网络请求管理
Nginx Rerank模型管理平台
Dify发送问题
向量化 LLM: Dify Xorbits inference
模型: DeepSeek-R1-32B、
BGE-m3 GLM4 DeepSeek返回分析结果
数据库清
洗上传至 BGE-Reranker-v2-m3模型
使用 DeepSeek-R1-32B 对 Dify 传 Dify平台 Redis
入的提示词进行分析并返回合理
参数和结果
Python Postgres
使用Redis缓存和Postgres持久存储数据
图1 软件安装和环境部署示意图
· 228 · China Pharmacy 2026 Vol. 37 No. 2 中国药房 2026年第37卷第2期

