Langchain入门到实战-第三弹

本文介绍了Langchain,一个基于大型语言模型的框架,演示了如何使用RAG功能进行文本检索和生成答案。步骤包括安装所需库、加载数据、创建嵌入模型和向量存储、构建问题解答链以及创建检索链。更新计划未详述,展示了基础操作流程。
摘要由CSDN通过智能技术生成

Langchain中RAG入门

Retrieval Augmented Generation 翻译成中文是“检索增强生成”

官网地址

声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准

https://python.langchain.com/

Langchain概述

LangChain是一个用于开发由大型语言模型(LLM)驱动的应用程序的框架。

代码演示调用RAG功能

  • Retrieval chain可以是sql数据库中的数据, 互联网上的数据, 本文以向量数据库为例

  • 安装本次运行必要的包

    pip install beautifulsoup4
    pip install faiss-cpu
    
  • 使用 WebBaseLoader加载我们想要建立索引的数据

    from langchain_community.document_loaders import WebBaseLoader
    loader = WebBaseLoader("https://docs.smith.langchain.com/user_guide")
    
    docs = loader.load()
    

在这里插入图片描述

  • 接下来需要embedding model和vector store
    • embedding model的作用是讲一个一个单词以向量表示, 比如"我", 用一个512维的一维向量表示为[0.122334455, 2.54433222,…], 本例使用OllamaEmbeddings
    • vector store是用来存放向量的数据库, 本例使用FAISS
    from langchain_community.embeddings import OllamaEmbeddings
    embeddings = OllamaEmbeddings()
    
    from langchain_community.vectorstores import FAISS
    from langchain_text_splitters import RecursiveCharacterTextSplitter
    
    text_splitter = RecursiveCharacterTextSplitter()
    documents = text_splitter.split_documents(docs)
    vector = FAISS.from_documents(documents, embeddings)
    

在这里插入图片描述

  • 创建一个包含问题并根据检索内容生成答案的一个chain

    from langchain_core.prompts import ChatPromptTemplate
    from langchain.chains.combine_documents import create_stuff_documents_chain
    
    prompt = ChatPromptTemplate.from_template("""Answer the following question based only on the provided context:
    
    <context>
    {context}
    </context>
    
    Question: {input}""")
    
    document_chain = create_stuff_documents_chain(llm, prompt)
    
  • 从向量数据库中检索内容, 并让大模型根据已有知识回答问题

    from langchain.chains import create_retrieval_chain
    
    retriever = vector.as_retriever()
    retrieval_chain = create_retrieval_chain(retriever, document_chain)
    response = retrieval_chain.invoke({"input": "how can langsmith help with testing?"})
    response["answer"]
    

在这里插入图片描述

更新计划

欲知后事如何, 请听下回分解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值