当前位置: 首页> 科技> 能源 > 微信群二维码大全网站_东莞企业网站建立报价_seo指导_株洲疫情最新情况

微信群二维码大全网站_东莞企业网站建立报价_seo指导_株洲疫情最新情况

时间:2025/7/10 1:43:09来源:https://blog.csdn.net/liuyi193146/article/details/146487162 浏览次数:1次
微信群二维码大全网站_东莞企业网站建立报价_seo指导_株洲疫情最新情况

通过langchain和ollama实现简单的ragflow.

前提要准备好ollama服务或者对应的openai服务也一样,包括chat模型和embedding模型。

然后大概是以下几个步骤:
1.加载文件夹中文件列表
2.转embeding.
3.索引后
4.chat or question


import os
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import Chroma
from langchain_ollama import OllamaLLM, OllamaEmbeddings
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser# 加载文档
root_dir = "D:/context_dir"files = [os.path.join(root_dir, f) for f in os.listdir(root_dir) if f.endswith(".txt")]
files = [x.replace("\\", "/") for x in files]
loaders = [TextLoader(f, encoding="utf-8") for f in files]
docs = []
for loader in loaders:docs.extend(loader.load())# 文本分割
text_splitter = RecursiveCharacterTextSplitter(chunk_size=150, chunk_overlap=20)
documents = text_splitter.split_documents(docs)# 向量化与索引
embedding = OllamaEmbeddings(model="nomic-embed-text:latest")
vectorstore = Chroma.from_documents(documents, embedding, persist_directory="./vectorstore")# 定义检索器和提示模板
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
template = """Answer the question based only on the following context:{context}Question: {question}"""
prompt = ChatPromptTemplate.from_template(template)
llm = OllamaLLM(model="deepseek-r1:32b")docs_api = lambda docs: "\n\n".join([d.page_content for d in docs])# 构建 RAG 链
chain = ({"context": retriever | docs_api, "question": RunnablePassthrough()}| prompt| llm| StrOutputParser()
)# 测试查询
query = "我想问天上有多少颗星星?"
response = chain.invoke(query)
print("RAG 输出结果:", response)
关键字:微信群二维码大全网站_东莞企业网站建立报价_seo指导_株洲疫情最新情况

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: