vinee
Enable shareable link
05b119f
import gradio as gr
import os
from pipeline.rag_pipeline import RAGPipeline
from dotenv import load_dotenv
load_dotenv()
# Initialize pipeline
print("Initializing RAG Pipeline...")
pipeline = RAGPipeline()
def chat_fn(message, history):
try:
# Pipeline expects message, history is handled by ChatInterface
result = pipeline.answer(message)
answer = result["answer"]
# We can also append sources to the answer if we want
sources = [c["doc_id"] for c in result["chunks"]]
if sources:
answer += f"\n\n---\n**Sources:** {', '.join(set(sources))}"
return answer
except Exception as e:
return f"Error: {str(e)}"
# Customizing ChatInterface for a better look
demo = gr.ChatInterface(
fn=chat_fn,
title="🐍 Python RAG Assistant",
description="Ask questions about Python documentation. This assistant uses Hybrid Search and Reranking for high-accuracy retrieval.",
examples=[
"What are mutable default arguments in Python?",
"How does Python's garbage collection work?",
"Explain the difference between multiprocessing and multithreading.",
"How do closures work in Python?"
],
cache_examples=False,
)
if __name__ == "__main__":
# server_name="0.0.0.0" allows access within a local network
# share=False avoids Windows Defender false positive blocks
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=True,
theme=gr.themes.Soft(primary_hue="emerald", secondary_hue="slate")
)