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期
   97   98   99   100   101   102   103   104   105   106   107