Spaces:
Sleeping
Sleeping
File size: 2,410 Bytes
ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe 2277e4f ecd01fe |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
import os
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS
from langchain.document_loaders import PyPDFLoader
from langchain.chains import RetrievalQA
from langchain_groq import ChatGroq
import gradio as gr
# Initialize Groq
llm = ChatGroq(
api_key="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",
model_name="deepseek-r1-distill-llama-70b"
)
def create_rag_system():
try:
# 1. Load Documents
pdf_loader = PyPDFLoader("smarthome_hub_documentation.pdf")
pdf_docs = pdf_loader.load()
# 2. Split Documents
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=2000,
chunk_overlap=200,
length_function=len,
)
chunks = text_splitter.split_documents(pdf_docs)
# 3. Create Embeddings and Vector Store
embeddings = HuggingFaceEmbeddings(
model_name="all-MiniLM-L6-v2" # Smaller model
)
vectorstore = FAISS.from_documents(chunks, embeddings)
return vectorstore
except Exception as e:
print(f"Error creating RAG system: {e}")
return None
# Initialize the RAG system
vectorstore = create_rag_system()
def respond(message, history):
try:
if vectorstore is None:
return "Sorry, the system is currently unavailable. Please try again later."
# Create QA chain for each query
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever(
search_type="mmr",
search_kwargs={"k": 3}
)
)
# Get response
response = qa_chain.run(message)
return response
except Exception as e:
return f"An error occurred: {str(e)}"
# Create Gradio interface
demo = gr.ChatInterface(
fn=respond,
title="SmartHome Hub X1000 Assistant",
description="Ask me anything about SmartHome Hub X1000!",
examples=[
"Apa saja fitur utama dari SmartHome Hub X1000?",
"Bagaimana cara menginstall SmartHome Hub X1000?",
"Jelaskan sistem keamanan SmartHome Hub X1000"
],
theme=gr.themes.Soft()
)
if __name__ == "__main__":
demo.launch() |