使用国内大模型复现langchain官方RAG Tutorials part1

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

langchain官方RAG demo文档:https://python.langchain.com/docs/tutorials/rag/

总览

一个典型的RAG应用由两部分组成:索引(Indexing)检索生成(Retrieval and generation)。索引是一条从数据源摄取数据并对其进行索引的管道,索引工作通常离线完成。检索生成就是实际的RAG调用,它在运行时使用用户输入检索相关数据,并将其传入模型。

从原始数据到得出答案最常见的完整流程如下:

索引:

  1. 加载(load):首先需要加载数据,使用Document Loaders完成。
  2. 分割(split):文本分割器将大型文档拆分成较小的部分。这对于索引数据和将其输入模型都非常有用,因为较大的部分更难搜索,而且无法适应模型有限的上下文窗口。
  3. 存储(store):我们需要一个地方来存储和索引我们的分割内容,以便日后能够对其进行搜索。这通常通过向量存储库和嵌入模型来实现。
    indexing

检索生成

  1. 检索(Retrieve):给定一个用户输入,使用检索器检索出相关的分割内容。
  2. 生成(Generate):问题和检索数据组成的提示词被送入大模型来生成答案。
    retrieve and generate

为数据建立索引之后,我们将使用LangGraph作为编排框架来实现检索和生成步骤。

实现

官方文档使用Jupyter Notebook来运行实现RAG的代码,便于观察每一步的结果。首先需要安装依赖:

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

LangSmith是一个监控工具,当应用变的越来越复杂时,使用它可以方便的观察内部的LLM调用,它可以一键式配置:

import getpass
import os

os.environ["LANGSMITH_TRACING"] = "true"
os.environ["LANGSMITH_API_KEY"] = getpass.getpass()

组件

我们需要从LangChain的集成套件中选择三个组件。

对话模型(chat model)

对话模型就是最终输入的模型,因为网络原因,使用国外大模型可能非常麻烦,甚至还存在地区限制,这里选择我们的国产大模型DeepSeek:

%pip install -qU langchain-deepseek
import getpass
import os

if not os.getenv("DEEPSEEK_API_KEY"):
    os.environ["DEEPSEEK_API_KEY"] = getpass.getpass("Enter your DeepSeek API key: ")
from langchain_deepseek import ChatDeepSeek

llm = ChatDeepSeek(
    model="deepseek-chat",
    temperature=0,
    max_tokens=

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值