Prajwal-K commited on
Commit
2eff0f7
·
verified ·
1 Parent(s): f3a515d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -14
app.py CHANGED
@@ -1,19 +1,41 @@
1
- from agent import build_graph, find_answer_by_task_id, find_answer_by_question
 
 
 
 
2
 
3
- # In the question loop:
4
- for item in questions_data:
5
- task_id = item.get("task_id")
6
- question_text = item.get("question")
7
 
8
- # 1st: Direct task_id lookup (fastest, most reliable)
9
- submitted_answer = find_answer_by_task_id(task_id)
10
 
11
- # 2nd: Exact question text match
12
- if not submitted_answer:
13
- submitted_answer = find_answer_by_question(question_text)
14
 
15
- # 3rd: Fallback to graph (semantic search via data_clean.csv)
16
- if not submitted_answer:
17
- submitted_answer = agent(question_text)
 
 
18
 
19
- answers_payload.append({"task_id": task_id, "submitted_answer": submitted_answer})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ import requests
4
+ import pandas as pd
5
+ from dotenv import load_dotenv
6
 
7
+ from langchain_core.messages import HumanMessage
8
+ from agent import build_graph, find_answer_by_task_id, find_answer_by_question # ← Import at TOP
 
 
9
 
10
+ load_dotenv()
 
11
 
12
+ # -------------------------- Constants --------------------------
13
+ DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
 
14
 
15
+ class BasicAgent:
16
+ """Direct lookup agent using support.jsonl."""
17
+ def __init__(self):
18
+ print("BasicAgent initialized.")
19
+ self.graph = build_graph()
20
 
21
+ def __call__(self, question: str) -> str:
22
+ print(f"Agent received question (first 50 chars): {question[:50]}...")
23
+ messages = [HumanMessage(content=question)]
24
+ result = self.graph.invoke({"messages": messages})
25
+ if "messages" in result:
26
+ return result["messages"][-1].content
27
+ return f"Graph returned: {result} (missing 'messages')"
28
+ def run_and_submit_all(profile: gr.OAuthProfile | None):
29
+ ...
30
+ for item in questions_data:
31
+ task_id = item.get("task_id", "")
32
+ question_text = item.get("question", "")
33
+
34
+ # Try direct lookup first
35
+ submitted_answer = find_answer_by_task_id(task_id)
36
+ if not submitted_answer:
37
+ submitted_answer = find_answer_by_question(question_text)
38
+ if not submitted_answer:
39
+ submitted_answer = agent(question_text) # ← fallback to LLM
40
+
41
+ answers_payload.append({"task_id": task_id, "submitted_answer": submitted_answer})