AI创想

标题: 本地Langchain搭建RAG [打印本页]

作者: 就是侑范儿    时间: 2025-9-7 23:37
标题: 本地Langchain搭建RAG
RAG:



LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。Langchain是一个基于大型语言模型的开发应用程序框架。
搭建本地demo代码

  1. from langchain.document_loaders import TextLoader
  2. loader = TextLoader('./rag.txt') docs = loader.load()
复制代码
将文档拆分成块
  1. from langchain.text_splitter import RecursiveCharacterTextSplitter
  2. text_splitter = RecursiveCharacterTextSplitter(chunk_size=20, chunk_overlap=20)
  3. splits = text_splitter.split_documents(docs)
复制代码
  1. from langchain_community.vectorstores import Chroma
  2. vectorstore = Chroma.from_documents( documents=splits, embedding=HuggingFaceEmbeddings(model_name="moka-ai/m3e-base") )
  3. retriever = vectorstore.as_retriever()
复制代码
from modelscope import snapshot_download
from transformers import pipeline
model_dir = snapshot_download('LLM-Research/Llama-3.2-3B-Instruct') llm = pipeline( "text-generation", model=model_dir, torch_dtype=torch.bfloat16, device_map="auto", max_new_tokens =100,)
return_model = HuggingFacePipeline(pipeline=llm)
利用modelscope中的开源模型,需要HuggingFacePipeline 修改下模型格式满足模型的输入格式。
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(
llm=return_model, retriever=vectorstore.as_retriever())
question = 'RAG是什么' result = qa_chain({"query": question})
print(f'大语言模型的回答为:{result["result"]}')
最后输出:






欢迎光临 AI创想 (http://llms-ai.com/) Powered by Discuz! X3.4