大模型应用RAG实战:如何快速搭建个性化RAG聊天机器人

不用编码构建本地RAG聊天机器人 还记得开发一个智能聊天机器人需要花费数月编码的时间吗? 像 LangChain 这样的框架确实简化了开发,但是对于非程序员来说,数百行代码仍然是一个障碍。⁤ 阅读详情

在 AI 领域,Retrieval-Augmented Generation(简称 RAG)已经成为生成式 AI 应用的重要技术,尤其是在对话式 AI 中。它结合了预训练大语言模型(LLM)如 OpenAI 的 GPT 和外部知识库(存储在向量数据库中,比如 Milvus 和 Zilliz Cloud),能够生成更加精准、上下文相关的回复,并且保持信息的实时性。

一个完整的 RAG 管道通常由四个基本组件组成:向量数据库、嵌入模型、LLM 和框架。

今天,我们就来一步步教大家如何用 Python 构建一个简单的 RAG 聊天机器人!如果你对 AI 技术感兴趣,或者正在寻找提升对话式 AI 性能的方法,这篇文章一定会让你收获满满。

我们会用到哪些关键技术组件?

在本次教程中,我们将使用以下工具和技术:

  1. LangChain
    可以帮助你轻松编排 LLM、向量存储、嵌入模型等之间的交互,从而简化 RAG 管道的集成过程。
  2. Milvus
    Milvus 是一款开源的向量数据库,专为高效存储、索引和搜索大规模向量嵌入而优化,非常适合 RAG、语义搜索和推荐系统等应用场景。当然,如果你不想自己管理基础设施,也可以选择 Zilliz Cloud,这是一个基于 Milvus 构建的全托管向量数据库服务,还提供免费套餐,支持多达 100 万个向量。
  3. Fireworks AI Llama 3.1 8B Instruct
    这个模型拥有 80 亿参数,擅长通过高级推理能力提供精确的指令和指导。无论是教育工具、虚拟助手还是互动内容生成,它都能生成连贯且多领域的响应,特别适合需要个性化交互的场景。
  4. Cohere embed-multilingual-v2.0
    这款嵌入模型专注于生成高质量的多语言嵌入,能够有效实现跨语言理解和检索。它的优势在于捕捉多种语言中的语义关系,非常适合多语言搜索、推荐系统和全球内容分析等应用。

第一步:安装并设置 LangChain

首先,我们需要安装 LangChain 相关依赖。打开你的终端,输入以下命令:

%pip install --quiet --upgrade langchain-text-splitters langchain-community langgraph

第二步:安装并设置 Fireworks AI Llama 3.1 8B Instruct

接下来,我们安装 Fireworks AI 的相关依赖。执行以下代码:

pip install -qU "langchain[fireworks]"
import getpass
import os
if not os.environ.get("FIREWORKS_API_KEY"):
    os.environ["FIREWORKS_API_KEY"] = getpass.getpass("Enter API key for Fireworks AI: ")
from langchain.chat_models import init_chat_model
llm = init_chat_model("accounts/fireworks/models/llama-v3p1-8b-instruct", model_provider="fireworks")

注意:你需要提前获取 Fireworks AI 的 API 密钥哦!

推荐大家去用硅基流动的API,Qwen 7B是免费的~

第三步:安装并设置 Cohere embed-multilingual-v2.0

接着,我们安装 Cohere 的嵌入模型依赖。运行以下代码:

pip install -qU langchain-cohere
import getpass
import os
if not os.environ.get("COHERE_API_KEY"):
    os.environ["COHERE_API_KEY"] = getpass.getpass("Enter API key for Cohere: ")
from langchain_cohere import CohereEmbeddings
embeddings = CohereEmbeddings(model="embed-multilingual-v2.0")

第四步:安装并设置 Milvus

现在,我们来安装 Milvus 向量数据库。执行以下代码:

pip install -qU langchain-milvus
from langchain_milvus import Milvus
vector_store = Milvus(embedding_function=embeddings)

第五步:构建 RAG 聊天机器人

到这里,所有组件都准备好了,接下来我们开始构建聊天机器人!我们会用 Milvus 的介绍文档 作为私有知识库。当然,你也可以替换为你自己的数据集,定制属于你的 RAG 聊天机器人。

以下是完整的代码实现:

import bs4
from langchain import hub
from langchain_community.document_loaders import WebBaseLoader
from langchain_core.documents import Document
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langgraph.graph import START, StateGraph
from typing_extensions import List, TypedDict

# 加载并切分博客内容
loader = WebBaseLoader(
    web_paths=("https://milvus.io/docs/overview.md",),
    bs_kwargs=dict(
        parse_only=bs4.SoupStrainer(
            class_=("doc-style doc-post-content")
        )
    ),
)
docs = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
all_splits = text_splitter.split_documents(docs)

# 索引切分后的文档
_ = vector_store.add_documents(documents=all_splits)

# 定义问答提示模板
prompt = hub.pull("rlm/rag-prompt")

# 定义应用状态
class State(TypedDict):
    question: str
    context: List[Document]
    answer: str

# 定义应用步骤
def retrieve(state: State):
    retrieved_docs = vector_store.similarity_search(state["question"])
    return {"context": retrieved_docs}

def generate(state: State):
    docs_content = "nn".join(doc.page_content for doc in state["context"])
    messages = prompt.invoke({"question": state["question"], "context": docs_content})
    response = llm.invoke(messages)
    return {"answer": response.content}

# 编译应用并测试
graph_builder = StateGraph(State).add_sequence([retrieve, generate])
graph_builder.add_edge(START, "retrieve")
graph = graph_builder.compile()

测试聊天机器人

好啦,聊天机器人已经搭建完成!让我们来测试一下吧:

response = graph.invoke({"question": "Milvus 支持哪些数据类型?"})
print(response["answer"])

示例输出

Milvus 支持多种数据类型,包括稀疏向量、二进制向量、JSON 和数组。此外,它还能处理常见的数值和字符类型,适用于不同的数据建模需求。这使得用户可以高效地管理非结构化或多模态数据。

优化

当我们构建 RAG 系统时,优化是确保性能和效率的关键。下面是一些针对各个组件的优化建议,帮助你打造更智能、更快、更灵敏的 RAG 应用。

LangChain 优化技巧

你可以通过减少冗余操作来优化 LangChain,比如合理设计链和代理的结构,利用缓存避免重复计算。模块化设计也能让你灵活更换模型或数据库,从而快速扩展系统。

Milvus 优化技巧

Milvus 是一个高效的向量数据库,优化它的性能可以从以下几个方面入手:

  • 使用 HNSW(层次化导航小世界)索引来平衡速度和准确性;
  • 根据使用模式对数据进行分区,提升查询性能;
  • 批量插入向量以减少数据库锁竞争;
  • 调整维度大小,找到适合你硬件和用例的最佳平衡点。

Fireworks AI Llama 3.1 8B Instruct 优化技巧

这款模型性价比很高,适合中等复杂度的 RAG 应用。你可以通过限制上下文长度、调整温度参数(建议 0.1-0.3)、以及缓存高频查询来优化其性能。

Cohere embed-multilingual-v2.0 优化技巧

这个多语言嵌入模型非常适合跨语言 RAG 场景。你可以通过预处理文本去除噪声、压缩嵌入、以及批处理操作来提升效率。

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源 本文利用 LangChain 实现了一个完整的问答RAG应用。其中RAG中的数据源采用加载网页数据的形式获取,而不是采用之前实践中传统的本地知识库(加载本地PDF文件)的方式。然后我们还在RAG的返回中增加了参考文本的输出,这是之前我们没有实践过的,算是一点新知识。在实现这个功能的过程中,最主要的是学会使用 LangChain 中提供的 `RunnablePassthrough` 和 `RunnableParallel` 进行值的传递。 阅读详情

相关推荐

【大模型RAG实战】基于LangChain实现RAG应用

大模型应用开发框架LangChain被开发者广泛应用。接下来介绍LangChain中与RAG相关的组件,并利用LangChain构建一个可视化的大模型RAG应用,用于回答指定PDF中的相关问题。

sysu_lluozh 1864

LangChain学习笔记—RAG(检索增强生成)

当用户在大模型输入问题后,将问题本身也embedding,转化为向量,在向量数据库中查找与之最匹配的相关知识,组成大模型的上下文,将其输入给大模型,最终返回大模型处理后的文本给用户,这种方式不仅降低大模型的计算量,提高响应速度,也降低成本,并避免了大模型的tokens限制,是一种简单高效的处理手段。例如,使用链,您可以同时运行提示符和 LLM,从而避免了首先格式化 LLM 模型的提示,然后使用模型在单独的步骤中执行它。实际的 RAG 链,它在运行时接受用户查询并从索引中检索相关数据,然后将其传递给模型。

姚家湾博客 8524

【STM32】CubeMx系列教程之移植FreeRTOS

本文详细介绍了在STM32F429上通过CubeMX工具移植FreeRTOS的方法。主要内容包括:1)配置系统时钟源,将TIM1替换SysTick作为时钟基准;2)FreeRTOS的创建与配置,包括任务创建、堆栈大小设置等;3)关键配置参数说明,如堆大小建议设为RAM的50%-70%;4)常用函数如堆栈监控、任务挂起/恢复等。文章提供了从基础配置到深入优化的完整移植指南,适合STM32开发者参考使用。

JackieJin123的博客 783

RAG应用实践-基于大模型构建知识库(Java版本)

目前大部分基于大模型的应用都是用python写的,本文使用java实现一个基于大模型的知识库(RAG系统)。

MultiArrow的专栏 7689

AI视频生成技术研究报告:现状、挑战与展望

AI 视频生成技术概述:介绍 AI 视频生成技术的基本概念,回顾其发展历程,从早期依赖图像拼接的简单生成方式,到如今融合多种先进技术的复杂模型应用,梳理技术演进的关键节点和重要突破。同时,分析该技术在当前阶段的特点,包括生成视频的质量、速度、灵活性等方面,以及与传统视频制作方式的差异,阐述 AI 视频生成技术如何改变视频创作的流程和模式。技术实现路径分析。

daqsdfas的博客 4565

从零开始的BW(五) 外部系统供数之OData测试

5、激活添加的服务,如提示下图中的激活失败,根据生成URI在事务代码SICF目录中找到对应的服务,设置超时时间,设置完之后重新激活即可,详情可参考SAP note 1986626。如果刚才设置BY Odata的query在这没有显示,SE38执行程序EQ_RS_AUTOSETUP,选中需要生成服务的query,生成服务后再去添加服务。测试get方法,URI中默认的参数是?4、事务代码/IWFND/MAINT_SERVICE中添加服务,如果提示用户不再登陆,在事务代码前加上/O或者/N即可。

m0_61386064的博客 1104

大模型 搭建知识库 RAG

LLM具有强大的语言理解和生成能力,当下存在一些局限性,失效受制、专业能力有限和定制成本高。有两种开发范式RAG(实时更新)和Finetune(个性化微调)。RAG 检索增强生成基于langchain搭建rag应用构建向量数据库搭建知识库助手基于gradio的web部署。

qq_44496832的博客 1702

【自动驾驶学习笔记——Prescan和Simulink 学习笔记和问题记录(1)】

主要记录一些Prescan/Simulink 联合仿真出现的问题。

ly1336545868的博客 1463

RAG 系统的基本搭建流程

RAG系统搭建流程包括文档的加载与切割,大模型接口封装等,最后进行部署与维护。该流程旨在提升信息检索和文本生成的效率与准确性,满足用户需求。

u012121721的博客 1859

按照CANoe模板制作seed&&key.dll

在canoe进行诊断测试的时候,在0x27服务中需要制作一个dll文件。可在canoe的诊断中进行加载,也可用于diva的自动化测试。 本文按照canoe提供的KeyGenDll_GenerateKeyEx模板制作。 KEYGENALGO_API VKeyGenResultEx GenerateKeyEx( const unsigned char* iSeedArray, /* Array for the seed [in] */ unsigned int

天赐好车的博客 6520

人工蜂鸟算法(AHA)详解:原理、实现与应用

人工蜂鸟算法(AHA)是一种受蜂鸟飞行技能和觅食策略启发的新型元启发式优化算法。该算法模拟蜂鸟的全向飞行、记忆能力和觅食行为,通过引导觅食、领地觅食和迁徙觅食三种策略在解空间高效搜索。AHA将优化问题解类比为食物源,蜂鸟作为搜索代理,利用访问表记录访问信息。算法核心包括三种飞行技能建模(全向、对角线和轴向飞行)以及对应的数学公式实现。Python实现展示了种群初始化、适应度计算和觅食行为模拟等关键步骤。AHA以其高效的全局搜索能力、良好收敛性和鲁棒性,在复杂优化问题中表现优异。

qq_42212808的博客 904

大模型 | RAG聊天机器人 VS AI Agent:哪个更高效?

在 RAG 聊天机器人和 AI Agent 之间进行选择并不需要非此即彼的方法。这些技术可以结合起来,以利用两者的优势:RAG 聊天机器人带来深度、情境感知的信息检索,而 AI Agent 提供动态、自主的决策。这种混合方法可以通过提供精确的信息处理和高效的任务执行来提高生产力和客户满意度。集成 RAG 和 AI 代理可让企业改善运营、服务质量并减少工作量。AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。

m0_56255097的博客 2211

电动汽车远程监控与诊断软件:BMW ConnectedDrive EV远程监控二次开发_7.数据安全与隐私保护

数据加密是保护数据安全的重要手段之一。在电动汽车远程监控与诊断软件中,加密技术可以确保数据在传输过程中的安全性和完整性。常见的加密技术包括对称加密和非对称加密。

zhubeibei168的博客 882

从部署到应用:本地大模型+RAG入门实战指南(含代码)

参数量:数十亿 → 上千亿能力:文本生成、翻译、摘要、问答、多模态缺陷:幻觉、知识截止、不可解释、资源消耗大里程碑状态本篇覆盖大模型基础✅概念、优缺点、交互图本地部署✅30 分钟跑通 DeepSeekRAG 架构✅原理 + 架构图知识库实战🚧下一篇更新路线图:本地聊天 → RAG 知识库 → Agent 工具调用 → 多模态交互。

xiyue19167的博客 1319

ROM和RAM在单片机程序运行理解

ROM和RAM是电子设备中两种核心存储组件,主要区别在于:ROM用于长期存储系统程序、用户文件等固定数据,断电后数据不丢失,但写入速度较慢;RAM则用于临时存储运行中的程序和数据,读写速度快但断电后数据会清空。在单片机中,ROM存储程序代码和常量,RAM存储运行时的变量和数据。两者协同工作,ROM如同"永久档案库"保存必要信息,RAM则像"临时工作台"支持高速运算,共同确保设备正常运行。

qq_37999850的博客 1618

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大模型入门到实战:从基础概念到RAG聊天应用搭建

输入问题比如“介绍一下RAG的作用”,AI会基于DeepSeek模型+llama-index的逻辑,生成准确回答——如果后续想加自己的知识库(比如产品手册),只要在代码里加“加载文档”的逻辑就行,llama-index会自动处理索引和检索。:大模型是基础,RAG给大模型“补知识”,Agent用“大模型+RAG”去完成复杂任务——比如Agent要做“旅行规划”,会先调用RAG查“目的地天气”,再用大模型生成“行程表”,全程不用人插手。既然大模型有“知识过时”“幻觉”的问题,怎么解决?(用“资料”回答)。

weixin_71363825的博客 800

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

RAG聊天机器人 VS AI Agent:哪个更高效?

RAG 的全称是 Retrieval-Augmented Generation(检索增强生成),这是一种先进的 AI 框架。它采用大型语言模型 (LLM),并使用内部数据源对其进行增强。RAG 聊天机器人结合了基于检索的 AI 模型和生成 AI 模型(大型语言模型),以提供准确且与上下文相关的响应。RAG 有什么特点?精确度:RAG 聊天机器人的响应更准确。上下文:它们根据最相关的信息进行理解和响应。最新信息:RAG 从文档数据库或企业系统实时提取数据。

2301_76161259的博客 1378

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RAG基础与架构 | 六十九、RAG的经典应用场景

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

Androiddddd的博客 2669

一小时部署AI大模型聊天机器人

开源项目https://github.com/chatchat-space/Langchain-Chatchat,一个基于Langchain与ChatGLM等语言模型的本地知识库问答,主要优点包括:支持使用本地部署的主流大模型,也支持访问在线大模型RAG知识库支持主流的开源向量数据库包含Web UI,部署后即可在网页进行聊天包含API Server,部署后即提供可调用的API接口图4是其原理,和RAG一样,只不过细化了文本知识向量化的部分。图4. LangChain-ChatChat原理图。

2401_85373691的博客 1445

基于RAG的私人知识库聊天机器人

通过RAG,我们开始着手解决与大语言模型相关的挑战,确保了精准答复和上下文相关的响应。跟随这一方向,相信大模型可以更好地服务于我们的日常和工作。

python1234567_的博客 1855

一步一步搭建AI智能体应用

您可以在百炼控制台以零代码的方式快速创建智能体应用,并将RAG(Retrieval-Augmented Generation,检索增强生成)以及插件能力集成进来。应用创建完成后,您可以通过控制台或API的方式来使用。大模型具有强大的语言理解和生成能力,然而大模型有一定局限性,如:无法回答私有领域问题,如公司制度、人员信息等;无法及时获取最新消息,如实时天气、比赛结果等;无法准确回答专业问题,如数学计算、图像生成等。您可以使用大模型应用来解决这些问题。大模型应用是以大模型为基础,根据业务场景集成特定外部能力的

soso1968的博客 4290

从对话到陪伴:大模型应用开发的全景实战课

当你开启这门课的时候,你已经站在了时代的潮头。你将学会的,不仅是如何调用一个 API、搭建一个界面、部署一个服务。你将掌握的,是一种全新的创造范式——用语言塑造智能,用数据训练共情,用系统承载关系。你亲手打造的“心语”机器人,或许只是一个简单的聊天程序。但它的每一次回应,都凝聚着你对人性的理解;它的每一次记忆,都承载着你对关系的思考;它的每一次行动,都体现着你对责任的担当。未来的 AI 产品,不应是冷冰冰的工具,而应是有温度、有个性、有责任感的“数字生命”。而你,正是这场变革的缔造者。

优快云学习 1066

【AI落地应用实战】DeepSeek大模型应用探讨与RAG技术全景——从实验室榜单看向真实业务场景

当我们将视线从实验室的Benchmark榜单转向真实业务场景时,大模型落地应用的"最后一公里"挑战正逐渐浮出水面。尽管DeepSeek在技术上取得了显著的突破,但将其应用于现实世界的过程中,仍有许多问题亟待解决。

白洞,白色的明天在等着我们 2万+

AI大模型应用开发初探 : 快速直观感受RAG

我们了解了什么如何让一些开源小参数量模型具有函数调用的能力。这一篇,我们来快速了解下RAG(检索增强生成)并通过一个简单的DEMO来直观感受一下它的作用。

瓦罗兰特顶级C位的博客 705
上一篇: 手把手教你用LangChain自动写SQL做数据分析可视化
下一篇: 大模型书籍推荐:Transformer自然语言处理: 构建语言应用,附409页pdf免费下载
少喝冰美式
博客等级 码龄2年 6828粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值