欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > RagFlow部署

RagFlow部署

2025/2/21 20:40:47 来源:https://blog.csdn.net/Stestack/article/details/145652951  浏览:    关键词:RagFlow部署

一、ragflow相关信息‍‍‍‍‍‍
git地址:https://github.com/infiniflow/ragflow
文档地址:‍https://ragflow.io/docs/dev/

二、部署

git clone https://github.com/infiniflow/ragflow.gi
docker compose -f docker/docker-compose.yml up -d
在浏览器中对应的IP地址并登录RAGFlow 默认打开ragflow地址  http://localhost:80

在这里插入图片描述

附件代码

import streamlit as st
from langchain_community.document_loaders import PDFPlumberLoader
from langchain_experimental.text_splitter import SemanticChunker
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_community.llms import Ollama
from langchain.prompts import PromptTemplate
from langchain.chains.llm import LLMChain
from langchain.chains.combine_documents.stuff import StuffDocumentsChain
from langchain.chains import RetrievalQA# color palette
primary_color = "#1E90FF"
secondary_color = "#FF6347"
background_color = "#F5F5F5"
text_color = "#4561e9"# Custom CSS
st.markdown(f"""<style>.stApp {{background-color: {background_color};color: {text_color};}}.stButton>button {{background-color: {primary_color};color: white;border-radius: 5px;border: none;padding: 10px 20px;font-size: 16px;}}.stTextInput>div>div>input {{border: 2px solid {primary_color};border-radius: 5px;padding: 10px;font-size: 16px;}}.stFileUploader>div>div>div>button {{background-color: {secondary_color};color: white;border-radius: 5px;border: none;padding: 10px 20px;font-size: 16px;}}</style>
""", unsafe_allow_html=True)# Streamlit app title
st.title("Build a RAG System with DeepSeek R1 & Ollama")# Load the PDF
uploaded_file = st.file_uploader("Upload a PDF file", type="pdf")if uploaded_file is not None:# Save the uploaded file to a temporary locationwith open("temp.pdf", "wb") as f:f.write(uploaded_file.getvalue())# Load the PDFloader = PDFPlumberLoader("temp.pdf")docs = loader.load()# Split into chunkstext_splitter = SemanticChunker(HuggingFaceEmbeddings())documents = text_splitter.split_documents(docs)# Instantiate the embedding modelembedder = HuggingFaceEmbeddings()# Create the vector store and fill it with embeddingsvector = FAISS.from_documents(documents, embedder)retriever = vector.as_retriever(search_type="similarity", search_kwargs={"k": 3})# Define llmllm = Ollama(model="deepseek-r1")# Define the promptprompt = """1. Use the following pieces of context to answer the question at the end.2. If you don't know the answer, just say that "I don't know" but don't make up an answer on your own.\n3. Keep the answer crisp and limited to 3,4 sentences.Context: {context}Question: {question}Helpful Answer:"""QA_CHAIN_PROMPT = PromptTemplate.from_template(prompt)llm_chain = LLMChain(llm=llm,prompt=QA_CHAIN_PROMPT,callbacks=None,verbose=True)document_prompt = PromptTemplate(input_variables=["page_content", "source"],template="Context:\ncontent:{page_content}\nsource:{source}",)combine_documents_chain = StuffDocumentsChain(llm_chain=llm_chain,document_variable_name="context",document_prompt=document_prompt,callbacks=None)qa = RetrievalQA(combine_documents_chain=combine_documents_chain,verbose=True,retriever=retriever,return_source_documents=True)# User inputuser_input = st.text_input("Ask a question related to the PDF :")# Process user inputif user_input:with st.spinner("Processing..."):response = qa(user_input)["result"]st.write("Response:")st.write(response)
else:st.write("Please upload a PDF file to proceed.")

版权声明:

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

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

热搜词