当前位置: 首页 > news >正文

基于LangChat搭建RAG与Function Call结合的聊天机器人方案

#简述流程思路

  • 用户提问 → 意图识别(是否需要动态数据) →

    • 需要动态数据: 调用Function获取数据 → LLM生成回答

    • 不需要动态数据: 向量检索 → 重排 → LLM生成回答

#使用到的技术组件

开发语言: python

向量数据库: milvus (docker部署单机版) 

        存储所有知识库文档的 BEG-Base-ZH-V1 向量

        支持快速近似最近邻搜索(ANN)

向量嵌入模型: beg-base-zh-v1   cross_encoder 

        beg轻量对中文较为友好 适用于大规模检索场景 (点积或余弦相似度来衡量匹配程度)

        cor精度高 适合小范围本文进一步做相似度对比

其他:

        langChat框架作为核心控制器

        业务端提供HTTP REST API作为Function Call数据源

        fastapi 部署为web项目

        LLM 通过ollama调用Qwen1.5-0.5B  在线deepseekv3 

#流程图 

#关键点

意图识别的方式 

1 可以利用小参数模型 通过 问题原文本+定义的funcation参数 发送一次LLM ,通过相应内是否包含 tool_call信息判断; --我的实现方式 使用的是 Qwen1.5-0.5B 

2  关键词匹配 规则或正则表达式判断关键词  (如“天气”、“订单号”等)

3 分词 , nlp语义相似度 , 如果与关键词近似值>0.95以上 可以认为是有意图

RAG提升准确度

stup1: 用户问题 ==> Embedding ==> milvus索引 ==> 相似度排序取前10条

stup2: 用户问题 依次和 向量结果集的原文本 精细对比 再取前3条

ps: milvus存储 文档向量时, 切片的原文也要一并存储关联!!! 

总结:

  1. 搭建 Milvus 并导入知识库;
  2. 配置好 Embedding 和 Cross-Encoder;
  3. 实现意图识别模块;
  4. 用 LangChain 构建完整的问答链;
  5. 多轮对话状态管理;

 

相关文章:

  • 天津通信网站建设百度一下首页百度一下
  • 海盐网站设计运营推广公司
  • 网站留言板html代码网络服务提供商
  • 山西省建设监理官方网站无锡seo
  • 做电子元器件销售什么网站好推文关键词生成器
  • 淘客做网站还是做app五种常用的网站推广方法
  • 卷积神经网络(Convolutional Neural Network, CNN)
  • 1688商品发布API:自动化上架与信息同步
  • 多传感器标定简介
  • 快速排序算法
  • 设计模式精讲 Day 13:责任链模式(Chain of Responsibility Pattern)
  • 【沉浸式解决问题】微服务子模块引入公共模块的依赖后无法bean未注入
  • 【笔记】Docker 配置阿里云镜像加速(公共地址即开即用,无需手动创建实例)
  • 14.Linux Docker
  • Web层注解
  • dovi交叉编译方法(编译libdovi.so)
  • selenium4中Chrome浏览器显示浏览器受自动化测试软件控制的解决方法
  • 打造丝滑的Android应用:LiveData完全教程
  • 【机器学习深度学习】常见激活函数
  • 基于MATLAB图像特征识别及提取实现图像分类
  • Docker环境搭建和docker性能监控
  • spring-ai 1.0.0 学习(十五)——RAG
  • 复用对象Aspose.Words 中 DocumentBuilder 的状态管理解析
  • 从理论到实践:马丁格尔策略真实案例验证
  • 【PolarCTF】01
  • 渗透靶场:事件和属性被阻止的反射xss