File size: 2,099 Bytes
e44d530
f18c30e
676eb03
f18c30e
 
 
f39d1fb
f18c30e
 
 
676eb03
 
f18c30e
 
 
 
 
 
 
 
676eb03
f18c30e
 
 
 
 
f39d1fb
 
f18c30e
f39d1fb
e44d530
676eb03
f18c30e
676eb03
e44d530
676eb03
f39d1fb
e44d530
f18c30e
676eb03
f39d1fb
f18c30e
 
 
 
 
 
 
 
 
 
e44d530
 
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
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(query, context, feedback_choice):
    evo_output, evo_reasoning = get_evo_response(query, context)
    gpt_output = get_gpt_response(query, context)

    if feedback_choice != "No feedback":
        label = 1 if feedback_choice == "πŸ‘ Helpful" else 0
        log_feedback(query, 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")
        return df.tail(10).to_markdown(index=False)
    return "No history available yet."

with gr.Blocks() as demo:
    gr.Markdown("## 🧠 EvoRAG – Retrieval-Augmented Adaptive AI")

    with gr.Row():
        query = gr.Textbox(label="πŸ“ Ask a financial question", placeholder="e.g. Should we reduce exposure to Fund A?")
        context = gr.Textbox(label="πŸ“‚ Paste memo, news, or background", placeholder="e.g. Tech Fund A underperformed 3.2%...")

    with gr.Row():
        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=[query, context, 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()