基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

译者 | 朱先忠

重楼 | 审校

摘要:在本博客中,我们将了解一种名为检索增强生成(retrieval augmented generation)的提示工程技术,并将基于Langchain、ChromaDB和GPT 3.5的组合来实现这种技术。

动机

随着GPT-3等基于转换器的大数据模型的出现,自然语言处理(NLP)领域取得了重大突破。这些语言模型能够生成类似人类的文本,并已有各种各样的应用程序,如聊天机器人、内容生成和翻译等。然而,当涉及到专业化和特定于客户的信息的企业应用场景时,传统的语言模型可能满足不了要求。另一方面,使用新的语料库对这些模型进行微调可能既昂贵又耗时。为了应对这一挑战,我们可以使用一种名为“检索增强生成”(RAG:Retrieval Augmented Generation)的技术。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

在本博客中,我们将探讨这种检索增强生成(RAG)技术是如何工作的,并通过一个实战示例来证明这一技术的有效性。需要说明的是,此实例将使用GPT-3.5 Turbo作为附加语料库对产品手册进行响应。

想象一下,你的任务是开发一个聊天机器人,该机器人可以响应有关特定产品的查询。该产品有自己独特的用户手册,专门针对企业的产品。传统的语言模型,如GPT-3,通常是根据一般数据进行训练的,可能不了解这种特定的产品。另一方面,使用新的语料库对模型进行微调似乎是一种解决方案;然而,此办法会带来相当大的成本和资源需求。

检索增强生成(RAG)简介

检索增强生成(RAG)提供了一种更高效的方法来解决在特定领域生成适当上下文响应的问题。RAG不使用新的语料库对整个语言模型进行微调,而是利用检索的能力按需访问相关信息。通过将检索机制与语言模型相结合,RAG利用外部上下文来增强响应。这个外部上下文可以作为向量嵌入来提供

下面给出了创建本文中应用程序时需要遵循的步骤流程。

阅读Clarett用户手册(PDF格式)并使用1000个令牌的chunk_size进行令牌化。创建这些标记的向量嵌入。我们将使用OpenAIEmbeddings库来创建向量嵌入。将向量嵌入存储在本地。我们将使用简单的ChromaDB作为我们的VectorDB。我们可以使用Pinecone或任何其他更高可用性的生产级的向量数据库VectorDB。用户发出带有查询/问题的提示。这将从VectorDB中进行搜索和检索,以便从VectorDB中获取更多上下文数据。此上下文数据现在将与提示内容一起使用。上下文增强了提示,这通常被称为上下文丰富。提示信息,连同查询/问题和这个增强的上下文,现在被传递给大型语言模型LLM。至此,LLM基于此上下文进行响应。

需要说明的是,在本示例中,我们将使用Focusrite Clarett用户手册作为附加语料库。Focusrite Clarett是一个简单的USB音频接口,用于录制和播放音频。您可以从链接https://fael-downloads-prod.focusrite.com/customer/prod/downloads/Clarett%208Pre%20USB%20User%20Guide%20V2%20English%20-%20EN.pdf处下载使用手册。

实战演练

设置虚拟环境

让我们设置一个虚拟环境来把我们的实现案例封装起来,以避免系统中可能出现的任何版本/库/依赖性冲突。现在,我们执行以下命令来创建一个新的Python虚拟环境:

pip install virtualenvpython3 -m venv ./venvsource venv/bin/activate 

创建OpenAI密钥

接下来,我们将需要一个OpenAI密钥来访问GPT。让我们创建一个OpenAI密钥。您可以通过在链接https://platform.openai.com/apps处注册OpenAI来免费创建OpenAIKey。

注册后,登录并选择API选项,如屏幕截图所示(时间原因所致,当您打开该屏幕设计时可能会与我当前拍摄屏幕截图有所变化)。

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

然后,转到您的帐户设置并选择“查看API密钥(View API Keys)”:

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

然后,选择“创建新密钥(Create new secret key)”,你会看到一个弹出窗口,如下图所示。你需要提供一个名称,这将会生成一个密钥。

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

该操作将生成一个唯一的密钥,您应该将其复制到剪贴板并存储在安全的地方。

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

接下来,让我们编写Python代码来实现上面流程图中显示的所有步骤。

GPT Detector GPT Detector

在线检查文本是否由GPT-3或ChatGPT生成

GPT Detector 24 查看详情 GPT Detector

安装依赖库

首先,让我们安装我们需要的各种依赖项。我们将使用以下库:

Lanchain:一个开发LLM应用程序的框架。ChromaDB:这是用于持久化向量嵌入的VectorDB。unstructured:用于预处理Word/PDF文档。Tiktoken:Tokenizer框架pypdf:阅读和处理PDF文档的框架openai:访问openai的框架

pip install langchainpip install unstructuredpip install pypdfpip install tiktokenpip install chromadbpip install openai

一旦成功安装了这些依赖项,请创建一个环境变量来存储在最后一步中创建的OpenAI密钥。

export OPENAI_API_KEY=

接下来,让我们开始编程。

从用户手册PDF创建向量嵌入并将其存储在ChromaDB中

在下面的代码中,我们会引入所有需要使用的依赖库和函数

import osimport openaiimport tiktokenimport chromadbfrom langchain.document_loaders import OnlinePDFLoader, UnstructuredPDFLoader, PyPDFLoaderfrom langchain.text_splitter import TokenTextSplitterfrom langchain.memory import ConversationBufferMemoryfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.llms import OpenAIfrom langchain.chains import ConversationalRetrievalChain

在下面的代码中,阅读PDF,将文档标记化并拆分为标记。

loader = PyPDFLoader("Clarett.pdf")pdfData = loader.load()text_splitter = TokenTextSplitter(chunk_size=1000, chunk_overlap=0)splitData = text_splitter.split_documents(pdfData)

在下面的代码中,我们将创建一个色度集合,一个用于存储色度数据库的本地目录。然后,我们创建一个向量嵌入并将其存储在ChromaDB数据库中。

collection_name = "clarett_collection"local_directory = "clarett_vect_embedding"persist_directory = os.path.join(os.getcwd(), local_directory)openai_key=os.environ.get('OPENAI_API_KEY')embeddings = OpenAIEmbeddings(openai_api_key=openai_key)vectDB = Chroma.from_documents(splitData, embeddings, collection_name=collection_name, persist_directory=persist_directory )vectDB.persist()

执行此代码后,您应该会看到创建了一个存储向量嵌入的文件夹。

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

现在,我们将向量嵌入存储在ChromaDB中。下面,让我们使用LangChain中的ConversationalRetrievalChain API来启动聊天历史记录组件。我们将传递由GPT 3.5 Turbo启动的OpenAI对象和我们创建的VectorDB。我们将传递ConversationBufferMemory,它用于存储消息。

memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)chatQA = ConversationalRetrievalChain.from_llm( OpenAI(openai_api_key=openai_key, temperature=0, model_name="gpt-3.5-turbo"),  vectDB.as_retriever(),  memory=memory)

既然我们已经初始化了会话检索链,那么接下来我们就可以使用它进行聊天/问答了。在下面的代码中,我们接受用户输入(问题),直到用户键入“done”。然后,我们将问题传递给LLM以获得回复并打印出来。

chat_history = []qry = ""while qry != 'done': qry = input('Question: ') if qry != exit: response = chatQA({"question": qry, "chat_history": chat_history}) print(response["answer"])

这是输出的屏幕截图。

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

基于Langchain、ChromaDB和GPT 3.5实现检索增强生成

小结

正如你从本文中所看到的,检索增强生成是一项伟大的技术,它将GPT-3等语言模型的优势与信息检索的能力相结合。通过使用特定于上下文的信息丰富输入,检索增强生成使语言模型能够生成更准确和与上下文相关的响应。在微调可能不实用的企业应用场景中,检索增强生成提供了一种高效、经济高效的解决方案,可以与用户进行量身定制、知情的交互。

译者介绍

朱先忠是51CTO社区的编辑,也是51CTO专家博客和讲师。他还是潍坊一所高校的计算机教师,是自由编程界的老兵

原文标题:Prompt Engineering: Retrieval Augmented Generation(RAG),作者:A B Vijay Kumar

以上就是基于Langchain、ChromaDB和GPT 3.5实现检索增强生成的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/498620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何在Debian上提高Python排名
上一篇 2025年11月8日 19:16:34
艾尔登法环黄金树化身全技能解析与逃课打法指南
下一篇 2025年11月8日 19:16:37

相关推荐

  • 巧文书AI官网首页官方入口 巧文书AI在线文档编辑官网链接直达

    巧文书AI官网首页官方入口是https://qiaowenshu.cn,该平台提供AI驱动的文档生成、智能解析、语义扩展、在线编辑与保存等功能,支持多场景文案创作和跨设备同步,具备一键润色、风格推荐及模板管理等智能化写作辅助体验。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用…

    2026年9月21日
    100
  • 小可AI小程序入口链接_小可AI小程序官方地址

    小可AI小程序官方入口为https://xcx.xiaokeai.com.cn,用户可在社交平台搜索使用;平台支持多轮对话、文本生成、图像理解及语音转文字功能,界面简洁、响应迅速,具备历史记录查看与持续优化的智能算法。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepS…

    2026年9月21日
    100
  • 豆包大模型1.6 lite— 字节跳动推出的轻量级AI模型

    豆包大模型1.6 lite— 字节跳动推出的轻量级AI模型豆包大模型1.6 lite— 字节跳动推出的轻量级AI模型豆包大模型1.6 lite— 字节跳动推出的轻量级AI模型豆包大模型1.6 lite— 字节跳动推出的轻量级AI模型

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 豆包大模型 字节跳动自主研发的一系列大型语言模型 834 查看详情 豆包大模型1.6 lite是什么 豆包大模型1.6 lite(doubao-seed-1.6-lite)是字节跳动推出的轻量级…

    2026年9月21日 用户投稿
    300
  • AI推文助手如何制作用户画像分析 AI推文助手的精准内容定位

    AI推文助手如何制作用户画像分析 AI推文助手的精准内容定位AI推文助手如何制作用户画像分析 AI推文助手的精准内容定位AI推文助手如何制作用户画像分析 AI推文助手的精准内容定位AI推文助手如何制作用户画像分析 AI推文助手的精准内容定位

    构建用户画像需先收集多维度数据,包括行为、属性与第三方信息,再通过NLP与机器学习提取标签并聚类分群,形成如“都市年轻职场人”等典型画像,随后以滑动窗口与衰减因子动态更新,最终按画像特征匹配个性化内容推送策略,实现精准传播。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 De…

    2026年9月20日 用户投稿
    100
  • AI推文助手如何制作行业趋势分析 AI推文助手的趋势预测功能

    AI推文助手如何制作行业趋势分析 AI推文助手的趋势预测功能AI推文助手如何制作行业趋势分析 AI推文助手的趋势预测功能AI推文助手如何制作行业趋势分析 AI推文助手的趋势预测功能AI推文助手如何制作行业趋势分析 AI推文助手的趋势预测功能

    优化AI推文助手趋势预测需四步:一、扩展社交媒体与行业数据库来源并定时更新;二、调优NLP模型参数,提升情感分析与主题建模精度;三、引入ARIMA或Prophet算法构建时间序列预测未来热度;四、建立用户反馈闭环,持续迭代模型。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 …

    2026年9月13日 用户投稿
    100
  • 虚拟伴侣AI如何设置互动游戏 虚拟伴侣AI娱乐功能的开发技巧

    虚拟伴侣AI如何设置互动游戏 虚拟伴侣AI娱乐功能的开发技巧虚拟伴侣AI如何设置互动游戏 虚拟伴侣AI娱乐功能的开发技巧虚拟伴侣AI如何设置互动游戏 虚拟伴侣AI娱乐功能的开发技巧虚拟伴侣AI如何设置互动游戏 虚拟伴侣AI娱乐功能的开发技巧

    添加互动游戏功能可显著提升虚拟伴侣AI的趣味性与陪伴感。通过设计猜数字、成语接龙等文本小游戏并设置触发关键词,用户可随时开启娱乐;结合对话状态跟踪技术确保游戏流程连贯,并引入积分与成就系统增强参与感;AI根据游戏进程展现个性语气与情绪反馈,支持用户自定义性格类型;通过H5或Webview接入图形化小…

    2026年9月12日 用户投稿
    200
  • AI推文助手如何生成行业资讯 AI推文助手的实时资讯整合功能

    AI推文助手如何生成行业资讯 AI推文助手的实时资讯整合功能AI推文助手如何生成行业资讯 AI推文助手的实时资讯整合功能AI推文助手如何生成行业资讯 AI推文助手的实时资讯整合功能AI推文助手如何生成行业资讯 AI推文助手的实时资讯整合功能

    AI推文助手通过接入权威资讯源、利用自然语言处理提取核心信息、基于模板生成文案并支持人工审核与多平台发布,实现高效精准的行业推文自动化创作。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 如果您希望快速生成与特定行业相关的推文内容,但缺乏及…

    2026年9月11日 用户投稿
    200
  • AI推文助手如何生成行业报告 AI推文助手的专业内容生成方案

    AI推文助手如何生成行业报告 AI推文助手的专业内容生成方案AI推文助手如何生成行业报告 AI推文助手的专业内容生成方案AI推文助手如何生成行业报告 AI推文助手的专业内容生成方案AI推文助手如何生成行业报告 AI推文助手的专业内容生成方案

    首先通过数据驱动提炼AI推文助手的行业关注点,接着采用结构化模板填充提升报告生成效率,再结合多源信息融合校验确保内容准确性,最后实施动态更新与版本控制实现持续优化。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 如果您需要快速生成一份关于A…

    2026年9月10日 用户投稿
    100
  • deepseek官方社区网址_加入deepseek官方社区官网交流

    deepseek官方社区网址是https://chat.deepseek.com/,该平台提供互动交流、模型更新、技术文档、多语言支持及开源项目协作,同时支持实时对话、多终端同步与API集成。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ …

    2026年9月10日
    600
  • AI推文助手如何分析数据报告 AI推文助手的数据驱动优化策略

    AI推文助手如何分析数据报告 AI推文助手的数据驱动优化策略AI推文助手如何分析数据报告 AI推文助手的数据驱动优化策略AI推文助手如何分析数据报告 AI推文助手的数据驱动优化策略AI推文助手如何分析数据报告 AI推文助手的数据驱动优化策略

    AI推文助手通过分析点击率、转发点赞量、用户停留时间及转化路径等关键指标评估内容表现,结合用户互动行为与情绪倾向构建动态画像实现精准分发,运用A/B测试验证不同内容策略效果,并基于数据反馈动态调整推荐算法特征权重,定期再训练模型以持续优化推荐效果。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索…

    2026年9月10日 用户投稿
    000
  • 巧文书AI官方网址是多少 巧文书AI智能写作平台官网首页直达

    巧文书AI智能写作平台官网首页直达地址是https://qiaowenshu.cn,该平台依托先进自然语言处理技术,提供智能化内容生成、多种创作模式、历史文档学习、结构化编辑等功能,支持信息抓取、文档解析、专业术语把握及本地文件参考,具备自定义模板、独立生成、防串标策略和企业知识库接入等个性化与安全…

    2026年9月9日
    100
  • 投喂AI官方主页网址最新 投喂AI在线使用官网链接入口

    投喂AI官方主页网址为https://www.toufei.ai,该平台支持多模态内容生成、AI换声、背景移除等功能,提供智能剪辑与自然语言处理服务,具备云端保存、批量导出及API接口扩展能力。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜…

    2026年9月9日
    000
  • 虚拟伴侣AI如何实现个性化对话 虚拟伴侣AI情感交互的核心技术解析

    虚拟伴侣AI如何实现个性化对话 虚拟伴侣AI情感交互的核心技术解析虚拟伴侣AI如何实现个性化对话 虚拟伴侣AI情感交互的核心技术解析虚拟伴侣AI如何实现个性化对话 虚拟伴侣AI情感交互的核心技术解析虚拟伴侣AI如何实现个性化对话 虚拟伴侣AI情感交互的核心技术解析

    虚拟伴侣AI能记住喜好并做出预期回应,源于多模态输入理解、长期记忆管理、动态人格建模、全双工语音交互与多Agent协同五大技术协同:系统通过文字、语音、图像识别用户情绪与意图;将关键信息向量化存储并关联历史记忆,实现个性化共情回应;基于预设人设与互动深度动态调整性格表现与亲密行为;采用端到端模型支持…

    2026年9月8日 用户投稿
    000
  • ai短视频一键生成免费入口

    免费AI短视频一键生成工具推荐: 白日梦ai:aibrm.com 讯飞绘镜:typemovie.art 白日梦AI具备强大的视频生成能力,支持从文本或图片直接生成视频内容,动态画面控制精准,角色形象保持高度一致,单个视频最长可达6分钟。其文本生成视频功能融合了先进的自然语言处理与图像生成技术,只需输…

    2026年9月8日
    200
  • AIGC入口链接检测 知网免费官网直达

    知网个人查重官网是唯一正规免费入口,提供论文重复率与AIGC检测服务。通过语义指纹和自然语言处理技术分析文本,识别AI生成内容并生成可视化报告。用户可直接复制粘贴文本或上传Word/PDF文件,无需注册即可使用,检测结果安全可靠,数据加密存储,不影响学校检测。认准官方网址https://cx.cnk…

    2026年9月8日
    200
  • 腾讯优图实验室开源 Youtu-Embedding

    腾讯优图实验室近日宣布开源 youtu-embedding,这是一款专为企业级场景设计的通用文本表示模型,具备强大的多任务处理能力,可广泛应用于文本检索、意图识别、语义相似度计算、文本分类与聚类等六大核心自然语言处理任务。该模型在信息检索(ir)、语义匹配(sts)、重排序、聚类分析及文本分类等多个…

    2026年9月7日
    000
  • AI做音乐推荐怎么实现_Spotify推荐算法原理与应用

    AI做音乐推荐怎么实现_Spotify推荐算法原理与应用AI做音乐推荐怎么实现_Spotify推荐算法原理与应用AI做音乐推荐怎么实现_Spotify推荐算法原理与应用AI做音乐推荐怎么实现_Spotify推荐算法原理与应用

    答案:AI音乐推荐通过协同过滤、内容分析、混合系统和上下文感知等多维度算法,结合用户行为与歌曲特征,实现个性化推荐。Spotify利用隐式反馈、音频特征提取、深度学习和NLP技术,融合用户偏好与情境因素,解决冷启动问题,并在探索与利用间平衡,持续优化用户体验。 ☞☞☞AI 智能聊天, 问答助手, A…

    2026年9月4日 用户投稿
    000
  • 怎么用AI做情感分析_使用NLP进行文本情感识别方法

    怎么用AI做情感分析_使用NLP进行文本情感识别方法怎么用AI做情感分析_使用NLP进行文本情感识别方法怎么用AI做情感分析_使用NLP进行文本情感识别方法怎么用AI做情感分析_使用NLP进行文本情感识别方法

    情感分析通过NLP技术让机器识别文本情绪,核心在于数据质量与模型选择。需经数据预处理、特征提取、模型训练与评估,常用TF-IDF、词向量及BERT等模型,结合朴素贝叶斯、SVM或深度学习方法,最终部署为API实现实时分析,广泛应用于品牌监控、产品优化与市场洞察,但面临语境理解、标注成本、语言多样性、…

    2026年9月1日 用户投稿
    100
  • 夸克AI怎么进行投资分析_夸克AI金融市场数据分析方法

    使用夸克AI可简化金融分析,先通过输入股票代码获取基本面财务摘要与AI解读;2. 切换至技术分析标签查看AI标注的支撑阻力位及MACD、RSI等指标状态;3. 下滑至资讯区阅读AI聚合的新闻摘要与情绪指数,并启用事件提醒,实现多维度智能辅助决策。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索,…

    2026年8月31日
    100
  • AI做数学题怎么用_Photomath数学解题与步骤解析

    Photomath通过图像识别与自然语言处理将数学题转化为可计算表达式,再调用算法求解并展示详细步骤。使用时需确保题目清晰,选择合适解法,理解过程而非仅抄答案。其局限包括对手写体识别不准、难解创造性题目、侧重中小学内容。类似工具有Symbolab和Wolfram Alpha,各擅领域不同。提升学习效…

    2026年8月30日
    100

发表回复

登录后才能评论
关注微信