构建智能问答系统

引言

在开始开发之前,我们首先要了解我们将会接触到的编程语言和组件。我本身是一名Java开发者,虽然也有接触过C、C++和PHP开发语言,但在工作中使用的并不多。因此,为了本次开发,我们选择了Python作为开发语言。大家都是从零开始,只要你有编程知识,就可以和我一起学习。回顾一下我们需要开发的简易版架构图:

前置知识

接下来,我们来看一下我们需要用到的知识点:Python 3.10版本、Git、Embedding、Hugging Face、Milvus、Langchain、OpenAI和Docker Desktop。在开发过程中,我们将使用Visual Studio Code作为客户端,并安装以下插件:Dev Container和Jupyter。请牢记这些内容,它们都是我们开发中需要使用到的,这样你就能对开发这个知识库有一个清晰的认识了。

需要掌握

Python:选择Python 3.10版本是因为我在尝试最新版本时遇到了一些报错,所以我决定降低版本,以确保开发过程尽可能顺利。个人而言,我发现Python具有简洁而优雅的语法,且具备广泛的应用领域,从数据分析到机器学习都可以使用它进行开发。

Git:如果你只是在本地运行代码而不需要与他人协作,那么可能不需要使用Git。然而,作为一个团队开发工具,Git提供了版本控制和协作功能,可以让多个开发者在同一个项目中进行并行开发,非常方便。

Docker:我对Docker有较多的接触,所以在这个项目中使用了它。Docker是一个开源的容器化平台,可以通过容器化技术将应用程序和其依赖项打包成一个独立的可移植镜像。使用Docker可以提供一致的开发环境,并且能够轻松部署到不同的服务器上。

Embedding:嵌入是一种常见的机器学习技术,它可以将高维的数据映射到低维空间中,从而提取出数据中的有用特征。在这个项目中,我们可能会使用嵌入技术来处理文本或图像数据,以便进行后续的分析和处理。

Hugging Face:Hugging Face是一个活跃的开源社区,提供了许多预训练的模型和工具,可以用于文本生成、情感分析、问答系统等任务。在这个项目中,我们会利用Hugging Face的提供的向量模型来实现一些自然语言处理的功能。

Milvus:Milvus是一个开源的向量数据库,专门用于存储和查询大规模的向量数据。它提供了高效的相似度搜索和索引构建功能,适用于许多机器学习和数据挖掘任务。在这个项目中,我们会使用Milvus来存储和查询某些向量数据。就跟我们的MySQL数据库是一样的,只不过他存储的是向量,而不是我们的字段数据。

Langchain:当谈到Langchain时,我认为它类似于Java的SDK包或者是util类,它封装了许多API供我们调用。它的一个显著特点是简单且具有高可读性。这意味着我们可以轻松地使用Langchain提供的API来实现特定功能,而不需要花费大量的时间去编写复杂的代码。这样,我们可以更专注于业务逻辑的实现,而不用过多关注底层实现细节。同时,由于API的可读性高,我们能够更容易地理解和使用Langchain中提供的各种功能。

OpenAI:它确实是一个非常强大的平台。在语言模型中,OpenAI训练的模型表现非常出色,能够提供非常接近实际的回答。这对于聊天机器人、智能助手等应用非常有价值。通过使用OpenAI的模型,我们可以得到更准确和自然的回答,总的来说,OpenAI在自然语言处理领域的技术实力不容小觑,对于语言相关的应用开发具有巨大的帮助和潜力。

项目简易结构

下面是我们的目录结构示例,以简单的业务开发流程为基础,你可以根据实际需求进行优化:

.devcontainer:这个文件夹是用来在Visual Studio Code中进行Docker开发的。里面包含一个json文件,用于指定如何构建Docker容器。

.venv:这个文件夹是运行时自动生成的,用于存放运行时编译生成的Python虚拟环境。我们不需要手动创建或管理它。

volumes:这个文件夹也是在运行时自动生成的,用于存放运行时编译生成的数据卷。我们不需要手动创建或管理它。

.env:这个文件用于定义环境变量。

.gitattributes:这个文件用于定义Git提交时的一些属性。

.gitignore:这个文件用于定义哪些文件或文件夹不应该被提交到Git仓库中。

docker-compose.yaml:这个文件用于定义多个Docker容器的编排配置。

Dockerfile:这个文件用于将当前项目编译成Docker镜像。

main.py:这个文件是我们实际运行的Python代码。

pyproject.toml:由于Python包的安装对版本依赖性较强,我们使用了Poetry工具来管理依赖项的安装,而不是使用传统的pip命令。

README.md:这个文件是一个Markdown文件,用于介绍我们的项目,但是对于项目开发来说不是必需的。

requirements.txt:这个文件用于定义需要安装的Python依赖包,我们这次不使用它。

untitled.ipynb:这个文件是一个Jupyter Notebook文件,类似于我们的调试器模型,但是它是逐段执行的。我们稍后可以仔细研究它。

下面的一个Python文件是我用来进行测试的,你们不需要关注它。

总结

在这个项目中,我们将使用Python作为开发语言,结合Hugging Face、Milvus、Langchain、OpenAI等工具和技术,实现一个简易版的架构图。通过嵌入技术处理文本和图像数据,利用Hugging Face的预训练模型进行自然语言处理,使用Milvus作为向量数据库进行存储和查询。同时,我们还会使用Langchain提供的API来简化开发流程,并借助OpenAI的强大功能实现更准确和自然的回答。这个项目将帮助我们深入了解各种技术和工具的使用,并提供一个清晰的业务开发流程。

智能问答系统是自然语言处理NLP领域一个很经典的问题,它可以根据人们的输入自动选择或者生成出相应的回复,从而来达到帮助人们在特定领域或者开放域解决一定的问题[1]。

  • 用途:任务型、问答型、闲聊型对话系统;
  • 场景:封闭域、开放域对话系统;
  • 使用方法:检索式、生成式对话系统;
  • 优点:相对严谨可靠,可控性强,不会回复令人厌恶或违法法规的文本;
  • 缺点:检索式对话系统不会产生新的回复,其能够回复类型与内容都由语料库所决定,一旦用户的问话超脱了语料库的范围,那么对话系统将无法准确回答用户
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
18 智能问答系统调研 智能问答系统调研全文共30页,当前为第1页。智能问答系统调研全文共30页,当前为第1页。 智能问答系统调研全文共30页,当前为第1页。 智能问答系统调研全文共30页,当前为第1页。 中文问答系统调研报告 目录 问答系统调研报告 1 1 问答系统的价值体现 3 1.1 市场应用价值 3 1.2 弥补了搜索引擎的不足 3 1.3 总结 3 2 问答系统的市场应用情况 4 3 问答系统整体框架 5 3.1 问答实现流程 5 3.2 问句分析模块 6 3.2.1中文分词 6 3.2.2关键词提取 9 3.2.3关键词扩展 11 3.2.4实体识别 11 3.2.5问句分类 13 3.3 信息检索模块 14 3.3.1模式匹配 14 3.3.2答案检索 14 3.3.3知识图谱 17 3.4答案抽取模块 22 智能问答系统调研全文共30页,当前为第2页。智能问答系统调研全文共30页,当前为第2页。3.4.1基于规则的方法 22 智能问答系统调研全文共30页,当前为第2页。 智能问答系统调研全文共30页,当前为第2页。 3.4.2基于统计的方法 23 4 问答系统的应用场景 25 4.1 任务型 25 4.2 问答型 25 4.3 语聊型 26 5 调研总结 27 智能问答系统调研全文共30页,当前为第3页。智能问答系统调研全文共30页,当前为第3页。1 问答系统的价值体现 智能问答系统调研全文共30页,当前为第3页。 智能问答系统调研全文共30页,当前为第3页。 市场应用价值 问答系统是智能人机交互的技术基础,智能人机交互通过拟人化的交互体验逐步在智能客服、任务助理、智能家居、智能硬件、互动聊天等领域发挥巨大的作用和价值。因此,各大公司都将智能聊天机器人作为未来的入口级别的应用在对待。 包括Google、Facebook、Microsoft、Amazon、Apple等互联公司相继推出了自己的智能私人助理和机器人平台。 1.2 产品技术价值 搜索引擎的缺陷: 一方面,用户所输入的搜索关键词或关键句,无法真实反映用户需求;另一方面,检索系统仅仅通过几个关键词的简单逻辑组合来返回答案。两方面的误差造成检索结果很差。 检索结果不够简洁。冗余信息使用户难以快速准确定位所需信息,造成时间和精力的浪费。 缺乏对用户问句的语义理解。只靠关键词的索引或简单的匹配算法,并不能真正触及到问题的真实意思,使检索结果一般。 问答系统能针对搜索引擎缺陷的改进 问答系统允许用户以自然语言的形式询问或者输入。 问答系统能直接返回答案,提供给用户简洁、有效的答案。 问答系统能分析用户意图,提供给用户真正有用、准确的信息。 1.3 总结 无论是在日常生活中查阅资料,还是在科学研究、商业金融等领域的应用,都有智能问答的参与,所以智能问答的发展与管理将是人们不可忽视的研究方向。 2 问答系统的市场应用情况 按照市场应用情况可分为五类:在线客服,娱乐机器人,教育聊天机器人,个人助理和智能问答. (1) 在线客服 智能问答系统调研全文共30页,当前为第4页。智能问答系统调研全文共30页,当前为第4页。在线客服聊天机器人系统的主要功能是和用户 行基本沟通并自动回复用户有关产品或服务的问题,降低企业客服运营成本,提升用户体验.应用场景通常为网站首页和手机终端,代表有小爱机器人,JIMI(JD)客服机器人,JIMI具有一定的拒识能力,即能够知道自己不能回答用户的哪些问题以及何时应转向人工客服. 智能问答系统调研全文共30页,当前为第4页。 智能问答系统调研全文共30页,当前为第4页。 (2) 娱乐 娱乐机器人主要同用户进行开放主题的对话,从而实现对用户的精神陪伴,情感慰藉和心理疏导等作用,主要针对社交媒体,儿童玩具,代表产品有微软小冰和腾讯的小微,小微除了能够与用户进行开放主题的聊天外,还能提供特定主题的服务,如天气预报和生活常识等. (3) 教育 教育聊天机器人根据教育内容构建交互的语言使用环境,帮助用户学习某种语言,在学习某项专业课程时,指导用户逐步深入学习并掌握技能,用户的特定年龄阶段,帮助用户进行某种知识的辅助学习等.通常该类聊天机器人具备交互学习功能,培训软件及智能玩具等,代表有科大讯飞开心熊宝系列玩具. (4) 个人助理 该类聊天机器人主要通过语音或文字与聊天机器人系统进行交互,实现个人事务的查询及代办,如天气查询,空气质量查询,定位,短信收发,日程提醒和智能搜索等,从而更便捷辅助用户的日常事务处理,代表有Apple的Siri,Google Now, Cortana. (5) 智能问答 智能应答的聊天机器人主要功能包括以自然语言形式提出的事实型问题和需要计算和逻辑推理型的问题,已达到满足用户的信息需求及辅助用户进行决策的目的.代表有IBM wats

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值