需联动馆藏数据库查询、图书元数据检索与用户行为分析:先接入图书馆API或清洗CSV数据源,配置实时查询工具;再构建含ISBN命名Markdown文件的语义知识库,选用bge-large-zh模型索引;最后通过意图识别混合调用工具与知识库,并注入读者借阅历史实现个性化推荐。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让读者能用自然语言查到图书馆里某本书是否在架、在哪一排书架、借阅状态如何,还能根据读者历史借阅记录推荐相似书籍——这个需求不能只靠一个知识库或一个搜索工具单独完成,必须把馆藏数据库查询、图书元数据检索、用户行为分析三者联动起来。
准备图书馆结构化数据源
先确认你的图书馆系统是否提供标准API接口。常见高校图书馆多采用Interlib、汇文、金盘等系统,它们通常开放HTTP RESTful接口,返回JSON格式的馆藏状态数据。如果没有现成API,需联系信息科导出MySQL数据库的book表、holdings表、borrow_record表三张核心表,导出为CSV并清洗字段:保留isbn、title、author、call_number、location、status(在架/借出/预约中)、borrow_count、last_borrow_date。
将清洗后的CSV文件上传至Dify「数据源」→「结构化数据」→「上传CSV」。上传时勾选「自动识别列类型」,确保call_number和isbn被识别为文本而非数字——【否则后续检索会因前导零丢失导致匹配失败】。
这一步操作起来很简单,直接把文件拖进去就行。
配置馆藏实时查询工具
在Dify智能体编辑页左侧菜单点击「工具」→「+ 添加工具」→ 选择「API工具」。
方法一:对接图书馆原生API(推荐)
填写请求URL(如https://lib.xxx.edu.cn/api/v1/items?isbn={isbn}),选择GET方法;在「参数映射」中添加变量isbn,来源设为「用户输入中提取的ISBN号」;响应字段勾选status、location、call_number三项——这些是读者最关心的实时信息。
方法二:用自定义SQL查询(无API时备用)
启用Dify内置的「数据库连接器」,填写MySQL连接信息(host/port/database/user/password);编写查询语句:SELECT status, location, call_number FROM holdings WHERE isbn = ?;测试连接成功后保存。注意:此方式需Dify部署环境能直连图书馆数据库,且数据库账号必须仅授予SELECT权限——【严禁授予DROP或UPDATE权限,防止误操作清空馆藏数据】。
构建图书语义检索知识库
第一步:创建知识库
进入Dify「知识库」→「创建知识库」,名称填「馆藏图书元数据」,描述写「含20万册图书标题、摘要、主题词、目录结构的向量化索引」。
第二步:上传非结构化资料
收集所有可公开的图书元数据:各出版社提供的图书简介PDF、豆瓣读书API导出的图书标签JSON、本馆编目员撰写的主题标引文档。统一转为Markdown格式,每本书一个文件,文件名用ISBN号(如9787504366666.md),内容包含title、author、abstract、keywords、toc等字段。
第三步:选择分段与索引策略
分段模式选「父子分段」:父块设为整本图书元数据(最大长度600字符),子块拆为关键词组(如「人工智能 机器学习 深度学习」作为一个子块);索引方式必须选「高质量索引」并指定嵌入模型为bge-large-zh——该模型对中文图书主题词的语义捕获准确率比默认模型高22%。
设计混合检索逻辑流
① 用户输入问题后,LLM节点先判断意图类型:
若含「在不在」「有没有」「第几排」等关键词,走馆藏查询工具链;
若含「类似」「推荐」「关于XX的」等关键词,走知识库语义检索;
若同时出现(如「《三体》在不在?再推荐两本类似的」),则并行触发两个分支。
② 馆藏查询分支:调用步骤二配置的API工具→解析返回的JSON→提取status/location字段生成简洁回复(例:「《三体》在架,位于A区3排7列」)。
③ 推荐分支:将用户最近3次借阅的ISBN传入知识库检索→设置「相似度阈值≥0.72」→返回top5结果→用LLM重写推荐理由(强调「您借过《流浪地球》,这本书同样融合硬科幻与人文思考」)。
④ 最终输出节点合并两路结果:馆藏信息放前面,推荐列表放后面,用分割线隔开。
注入读者个性化行为数据
在Dify「应用设置」→「上下文管理」中开启「长期记忆」,存储字段包括:user_id、borrow_history(数组,存最近10个ISBN)、favorite_genres(字符串,如「科幻|历史|心理学」)。
关键动作:每次用户成功借阅后,前端调用Dify提供的memory API(POST /v1/applications/{app_id}/memories)更新该user_id的borrow_history字段——【必须在借阅事务提交成功后立即触发,否则推荐结果会滞后一周期】。
这一步不需要你在Dify界面操作,由图书馆借阅系统后台代码实现。


















