我们已经准备好了,你呢?

我们与您携手共赢,为您的企业形象保驾护航!

当前位置: 首页 > 问答 > 使用 Easysearch 打造企业内部知识问答系统

大家可能都有这样的经历,刚入职一家企业时,同事往往会给你分享一些文档资料,有可能是产品信息、规章制度等等。这些文档有的过于冗长,很难靠前时间找到想要的内容。有的已经有了新版本,但员工使用的还是老版本。

基于这种背景,我们可以利用 Easysearch 加 LLM 实现一个内部知识的 QA 问答系统。这个系统将利用 LangChain 框架调用本地部署的大模型和 Easysearch,实现理解员工的提问,并基于最新的文档,给出精准答案。

开发框架

我们获取到用户问题后,先通过 MultiQueryRetriever 类调用大模型 qwen2 进行改写,生成 3 个同样语义的问题,然后再调用 easyearch 进行向量检索,搜索相关内容。

最后把所有相关内容,合并、去重后,与原始问题一起提交给大模型 qwen2,进行答案生成。

虽然这里使用的是向量检索,但实际上我们可以同时使用全文检索和向量检索。这也是使用 easysearch 作为检索库的优势之一。

前端展示

这一步我们创建一个 Flask 应用(需要安装 Flask 包)来接收用户的问题,并生成相应的答案,最后通过 index.html 对答案进行渲染和呈现。

在这个步骤中,我们使用了之前创建的 RetrievalQA 链来获取相关的文档和生成答案。然后,将这些信息返回给用户,显示在网页上。

# 6. Q&A系统的UI实现 from flask import Flask, request, render_template app = Flask(__name__) # Flask APP  @app.route('/', methods=['GET', 'POST']) def home():     if request.method == 'POST':          # 接收用户输入作为问题         question = request.form.get('question')          # RetrievalQA链 - 读入问题,生成答案         result = qa_chain({"query": question})          # 把大模型的回答结果返回网页进行渲染         return render_template('index.html', result=result)      return render_template('index.html')  if __name__ == "__main__":     app.run(host='0.0.0.0',debug=True,port=5000) 

效果演示

我们模仿用户进行提问。

Q&A 系统进行回答,回答速度取决于本地的计算资源。

内容校验,在原始文档内用 ctrl+F 搜索关键字 LOGGING_ES_ENDPOINT 得到如下内容。

嗯,回答的还不错,达到预期目的。如果还有其他要求,可修改 my_template 中的提示词或者替换成别的大模型也是可以的。

小结

通过这次示例,我们演示了如何基于 LangChain 和 easysearch 以及大模型,快速开发出一个内部知识问答系统。怎么样,是不是觉得整个流程特别简单易懂?

如有任何问题,请随时联系我,期待与您交流!

关于 Easysearch 有奖征文活动

无论你是 Easysearch 的老用户,还是靠前次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看:Easysearch 征文活动

  • 免责声明:本站内容(文字信息+图片素材)来源于互联网公开数据整理或转载,仅用于学习参考,如有侵权问题,请及时联系本站删除,我们将在5个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)

    我们已经准备好了,你呢?

    我们与您携手共赢,为您的企业形象保驾护航!

    在线客服
    联系方式

    热线电话

    132-7207-3477

    上班时间

    周一到周五 09:00-18:00

    二维码
    线