简介
本文介绍Dify用本地文件创建知识库聊天应用的方法。
本文用的是简单的倒排索引,不使用复杂的语义分析等。
本文目标:用Dify做一个报价聊天应用,客户可以直接对商品数据进行聊天询价,无需客服。
整体步骤:将数据库的商品数据导出为Excel,将Excel导入Dify生成知识库,使用此知识库创建聊天应用。
1.生成数据库数据
数据库数据:
DROP TABLE IF EXISTS `t_goods`; CREATE TABLE `t_goods` ( `id` bigint(0) NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '商品名字', `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '商品描述', `unit_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品单价', `stock_quantity` int(0) NULL DEFAULT NULL COMMENT '库存数量', `create_time` datetime(0) NOT NULL COMMENT '创建时间', `update_time` datetime(0) NOT NULL COMMENT '修改时间', `delete_flag` bigint(0) NOT NULL DEFAULT 0 COMMENT '删除标记。0:未删除;其他:已删除', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '商品管理' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of t_goods -- ---------------------------- INSERT INTO `t_goods` VALUES (1, '鼠标', '有线,无声', 50.00, 200, '2024-12-12 21:48:19', '2024-12-12 21:48:47', 0); INSERT INTO `t_goods` VALUES (2, '鼠标', '无线,无声', 60.00, 100, '2024-12-12 21:49:22', '2024-12-13 20:38:48', 0); INSERT INTO `t_goods` VALUES (3, '键盘', '有线,机械键盘,茶轴', 230.00, 10, '2025-05-04 11:06:03', '2025-05-04 11:06:06', 0); INSERT INTO `t_goods` VALUES (4, '键盘', '无线(蓝牙),机械键盘,红轴', 305.00, 13, '2025-05-04 11:06:58', '2025-05-04 11:07:00', 0); INSERT INTO `t_goods` VALUES (5, '耳机', '有线耳机', 35.00, 233, '2025-05-04 11:07:47', '2025-05-04 11:07:49', 0); INSERT INTO `t_goods` VALUES (6, '耳机', '蓝牙耳机', 69.00, 122, '2025-05-04 11:08:33', '2025-05-04 11:08:34', 0);
导出为Excel:

2.Dify以Excel创建知识库
知识库=> 创建知识库=> 上传文件=> 下一步=>


这种是简单的知识库,是倒排索引的方式:

预览数据:

保存知识库:

前往文档:

3.召回测试
可以测试一下,是否能通过文本搜到数据
此内容 登录 后可见!
6.提问
提问键盘的价格。(发现它没有用知识库里的数据,而是瞎编)。

上边“提问”时,发现它有时会瞎编(没有使用知识库的数据) 。解决方法是:用提示词进行限制:
只使用知识库的数据来回复。

可见,很精准了。
提问鼠标的价格。(发现它没有从知识库里读取,这就是简单索引的缺陷了)。


请先 !