Spaces:
Running
Running
import gradio as gr | |
from RagWithConfidenceScore import RagWithScore # | |
# Initialize the RAG system | |
rag_system = RagWithScore() | |
# Load or create the vector store | |
rag_system.load_and_process_documents() | |
# Define the function to handle user queries | |
def answer_financial_query(query): | |
# Use the RAG system to answer the question | |
result = rag_system.answer_question(query) | |
# Format the output | |
answer = result["answer"] | |
confidence_score = result["confidence_score"] | |
confidence_level = result["confidence_level"] | |
sources = "\n\n".join([doc.page_content for doc in result["source_documents"]]) | |
return answer, f"{confidence_score:.2f}", confidence_level, sources | |
# Return the results | |
# return { | |
# "Answer": answer, | |
# "Confidence Score": f"{confidence_score:.2f}", | |
# "Confidence Level": confidence_level, | |
# "Source Documents": sources | |
# } | |
# Create a Gradio interface | |
interface = gr.Interface( | |
fn=answer_financial_query, # Function to call | |
inputs=gr.Textbox(lines=2, placeholder="Enter your financial query here..."), # Input component | |
outputs=[ # Output components | |
gr.Textbox(label="Answer", lines=8), | |
gr.Textbox(label="Confidence Score"), | |
gr.Textbox(label="Confidence Level") | |
# gr.Textbox(label="Source Documents", lines=10) | |
], | |
title="Financial RAG System", | |
description="Ask questions about financial data and get answers powered by Retrieval-Augmented Generation (RAG).", | |
examples=[ | |
["What is the current revenue growth rate?"], | |
["Explain the concept of EBITDA."], | |
["What are the key financial risks mentioned in the report?"], | |
["How has the debt-to-equity ratio changed over the last two years?"] | |
], | |
cache_examples=False | |
) | |
# Launch the interface | |
interface.launch(share=True) |