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