链载Ai

标题: 【开源】基于LangChain实现的知识库问答工具,github斩获26.8K star [打印本页]

作者: 链载Ai    时间: 昨天 09:36
标题: 【开源】基于LangChain实现的知识库问答工具,github斩获26.8K star

知识库问答工具

知识库问答(Knowledge Base Question Answering, KBQA)工具是一种自然语言处理技术,它允许用户通过自然语言提问,并从结构化的知识库中找到答案。这种工具通常包括一个预先构建的知识库,其中包含大量的实体、属性和它们之间的关系,以及一个能够理解用户提问并从知识库中检索答案的问答系统。

知识库问答工具的核心功能如下:

1. 理解自然语言查询:系统需要解析用户的查询,理解其意图和所涉及的关键词。

2. 知识库检索:系统在知识库中搜索相关信息,通常使用结构化查询语言(如SPARQL)在图数据库中检索。

3. 答案生成:系统从检索到的信息中提取答案,并以自然语言的形式呈现给用户。

知识库问答工具广泛应用于客户服务、企业内部信息查询、在线教育等多个领域,它可以提供快速、准确的回答,提高信息检索效率,减轻人工客服的压力。在构建和使用这类工具时,需要遵循相关法律法规和社会主义价值观,确保信息的正确性和安全性。

LangChain 介绍

LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够:

这个框架由几个部分组成。

这些产品一起简化了整个应用程序的生命周期:

LangChain 库

LangChain 包的主要价值主张是:

  1. 组件:用于处理语言模型的可组合工具和集成。无论你是否使用 LangChain 框架的其余部分,组件都是模块化的,易于使用

  2. 现成的链:用于完成高级任务的组件的内置组合


现成的链使得开始变得容易。组件使得定制现有链和构建新链变得容易。

LangChain 库本身由几个不同的包组成。


LangChain 是什么

LangChain 是一个开源的框架,旨在帮助开发者构建和部署语言模型的应用程序。它提供了一个模块化和可扩展的平台,使得整合多个语言模型和其他工具变得容易,从而创建更加强大和灵活的应用。

LangChain 的主要特点包括:

1. 模型集成:LangChain 支持多种语言模型,包括大型模型如 GPT-3,以及自定义模型。

2. 工具连接:LangChain 可以连接到各种工具和API,使得模型能够利用外部资源来增强其回答的准确性和实用性。

3. 记忆功能:LangChain 允许应用程序存储和检索对话历史,从而在对话中保持上下文连续性。

4. 模块化设计:LangChain 的设计是模块化的,使得开发者可以根据需要轻松地添加或替换组件。

5. 多语言支持:LangChain 支持多种编程语言,使得开发者可以使用他们熟悉的语言来构建应用程序。

LangChain 的目标是通过提供一个灵活的框架,使得开发者能够快速构建和迭代语言模型驱动的应用程序,从而推动语言模型的创新和应用。

使用步骤

1. 下载代码仓库准备基础环境

# 拉取仓库git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录cd Langchain-Chatchat
# 安装全部依赖pip install -r requirements.txt pip install -r requirements_api.txtpip install -r requirements_webui.txt
# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。

2. 下载模型文件

git lfs install
# 下载ChatGLM2模型git-lfs clone https://huggingface.co/THUDM/chatglm2-6b
# 下载文本转向量模型git-lfs clone https://huggingface.co/shibing624/text2vec-base-chinese

3. 初始化参数配置

复制配置文件

pythoncopy_config_example.py

ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-size: medium;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">该脚本将会将所有config目录下的配置文件样例复制一份到config目录下,方便开发者进行配置。接着,开发者可以根据自己的需求,对配置文件进行修改。

ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-size: medium;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">该配置基负责记录日志的格式和储存路径,通常不需要修改。

ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-size: medium;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">配置与知识库相关的参数,包括知识库的名称,使用的向量数据库类型,文本拆分策略,采用哪种分词器等

ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-size: medium;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">prompt模板使用Jinja2语法,简单点就是用双大括号代替f-string的单大括号 请注意,本配置文件支持热加载,修改prompt模板后无需重启服务。

ingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;font-size: medium;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">配置服务绑定的IP和端口,以及相应超时时间等参数

4. 初始化知识库

pythoninit_database.py--recreate-vs

5. 加载LoRA微调后的baichuan模型

6. 启动服务

详细步骤可以参考链接

https://zhuanlan.zhihu.com/p/669523311

可试用产品


作者简介:

张锋,微服务架构实战原创作者,拥有超过10年的软件开发和架构设计经验。他是一位热衷于探索新技术和模式的软件工程师,对微服务架构、容器技术、自动化部署等领域有深入研究。在职业生涯中,他曾任职于多家知名企业,担任过技术团队负责人,带领团队实现了一系列高并发、高可用的微服务架构项目。

张锋老师在微服务架构领域有着丰富的实践经验,他的作品《微服务架构实战》深入浅出地介绍了微服务架构的设计理念、技术栈选择、项目实践等关键环节,广受读者好评。此外,他还活跃在技术社区,分享自己的见解和心得,助力更多开发者掌握微服务架构的精髓。








欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5