| import gradio as gr | |
| from response_scoring import score_response | |
| from roi_calculator import calculate_roi, Model | |
| from semantic_memory import SemanticMemory | |
| memory_system = SemanticMemory() | |
| class Scenario: | |
| def __init__(self, expected, context): | |
| self.expected = expected | |
| self.context = context | |
| def evaluate(ai_response, scenario_text, expected_text, | |
| usage, current_cost, recommended_cost): | |
| scenario = Scenario(expected_text, scenario_text) | |
| scores = score_response(ai_response, scenario) | |
| current_model = Model("CurrentModel", current_cost) | |
| recommended_model = Model("RecommendedModel", recommended_cost) | |
| roi = calculate_roi(usage, current_model, recommended_model) | |
| memory_system.store_memory(f"Scenario: {scenario_text}\nResponse: {ai_response}") | |
| retrieved = memory_system.retrieve_relevant(scenario_text) | |
| return scores, roi, retrieved | |
| iface = gr.Interface( | |
| fn=evaluate, | |
| inputs=[ | |
| gr.Textbox(label="AI Response", lines=3), | |
| gr.Textbox(label="Scenario Context", lines=2), | |
| gr.Textbox(label="Expected Output", lines=2), | |
| gr.Number(label="Customer Usage per Day"), | |
| gr.Number(label="Current Model Cost per Call ($)"), | |
| gr.Number(label="Recommended Model Cost per Call ($)") | |
| ], | |
| outputs=[ | |
| gr.JSON(label="Response Scores"), | |
| gr.JSON(label="ROI Calculation"), | |
| gr.JSON(label="Relevant Memories") | |
| ], | |
| title="AI Evaluator + ROI + Memory Demo" | |
| ) | |
| iface.launch() |