Spaces:
Sleeping
Sleeping
import gradio as gr | |
from inference import get_evo_response, get_gpt_response | |
from logger import log_feedback | |
import retrain | |
import pandas as pd | |
import os | |
def advisor_interface(question, context, options_text, feedback_choice): | |
options = [opt.strip() for opt in options_text.split("\n") if opt.strip()] | |
evo_output, evo_reasoning = get_evo_response(question, context, options) | |
gpt_output = get_gpt_response(question, context, options) | |
if feedback_choice != "No feedback": | |
label = 1 if feedback_choice == "π Helpful" else 0 | |
log_feedback(question, context, evo_output, label) | |
return evo_reasoning, gpt_output, load_history() | |
def retrain_evo(): | |
retrain.fine_tune_on_feedback() | |
return "β Evo retrained on feedback.", load_history() | |
def load_history(): | |
if os.path.exists("feedback_log.csv"): | |
df = pd.read_csv("feedback_log.csv") | |
try: | |
return df.tail(10).to_markdown(index=False) | |
except ImportError: | |
return "π History available, but markdown rendering failed. Install `tabulate` for full view." | |
return "No history available yet." | |
with gr.Blocks() as demo: | |
gr.Markdown("## π§ EvoRAG β General-Purpose Adaptive AI with RAG + Web Search") | |
with gr.Row(): | |
question = gr.Textbox(label="π Ask anything", placeholder="e.g. Who is the current president of the US?") | |
with gr.Row(): | |
options_text = gr.Textbox(label="π’ Options (one per line)", placeholder="Option 1\nOption 2\nOption 3", lines=4) | |
with gr.Row(): | |
context = gr.Textbox(label="π Optional Context or Notes", placeholder="Paste memo, article, or info here...", lines=4) | |
feedback = gr.Radio(["π Helpful", "π Not Helpful", "No feedback"], label="Was Evoβs answer useful?", value="No feedback") | |
with gr.Row(): | |
evo_out = gr.Textbox(label="π¬ EvoRAG Suggestion (with reasoning)") | |
gpt_out = gr.Textbox(label="π€ GPT-3.5 Suggestion") | |
run_button = gr.Button("Run Advisors") | |
run_button.click(fn=advisor_interface, inputs=[question, context, options_text, feedback], outputs=[evo_out, gpt_out, gr.Textbox(label="π Recent History")]) | |
gr.Markdown("---") | |
gr.Markdown("### π Retrain Evo from Feedback") | |
retrain_button = gr.Button("π Retrain Evo") | |
retrain_output = gr.Textbox(label="π οΈ Retrain Status") | |
history_output = gr.Textbox(label="π Recent History") | |
retrain_button.click(fn=retrain_evo, inputs=[], outputs=[retrain_output, history_output]) | |
demo.launch() | |