5.2.1 Chatbot 后端
基于先前构建的针对电力 LCA 领域的向量知识库构建 Chatbot 测试模型性能,主要设计思路是
为了实现检索功能,大致可分为知识库检索功能和在线搜索。
Chatbot 功能流程图如图 5.1 所示。
用户通过 Chatbot 界面输入他们的问题或请求。对用户输入文本进行清洗,包括去除标点符
号,进行分词等。转化为结构化数据后将预处理后的文本转换为向量形式,以便于机器理解。将向
量化处理后的用户问题构建成搜索向量。使用搜索向量与知识库中已向量化的内容进行匹配,找出
相关的信息。对匹配到的知识库内容进行排序,选择最相关的几个回答候选。为保证性能设置最相
关的问答数量。基于排序和选择的结果,生成回答,将最终确定的回答返回给用户。
对于用户输入的问题语句进行文本预处理,随后将其变成机构化数据后向量化,与先前处理文
献数据类似,因此这里不再赘述。
知识库搜索:
以下是通过 Weaviate 在名为“Water”的集合中搜索与特定查询文本相近的文档,并返回相
关文档的内容和来源,设置 top_k=3,考虑计算机性能与运行速度,只寻找三个匹配项。
这段代码最终返回一个包含匹配文档内容和来源的列表。
在线搜索:
以下是通过在线搜索引擎在互联网上搜索相关内容,并返回格式化的文档列表,其中包含每个
搜索结果的摘要内容和来源链接的代码,同样设置 top_k=3,返回三个匹配项。
通过 DuckDuckGo 搜索引擎在互联网上搜索相关内容,并返回格式化的文档列表,其中包含每
个搜索结果的摘要内容和来源链接。代码利用正则表达式提取搜索结果中的摘要、标题和链接信
息,并对结果进行整理和格式化,以便展示给用户。通过这个函数,用户可以通过输入查询来搜索
互联网上的相关信息,并查看摘要和链接。
Streamlit 是一个强大的 Python 库,主要用于机器学习、数据可视化和 Web 应用程序的快速
小主,
开发。用户在编写代码时可以实时看到应用界面的变化,快速调试和验证结果。内置多种交互式组
件(如滑块、复选框等)方便用户与应用进行互动。支持快速创建数据可视化图表,如折线图、散
点图、地图等,展现数据分析结果。
5.3 测试模型与优化