Chitranshu-9's picture
Final Agent HF
ffff191
Raw
History Blame Contribute Delete
9.06 kB
# import requests
# import pandas as pd
# import gradio as gr
# from agent26042026_RAG_Agent import ask_agent
# from tool_logger_26042026 import save_logs_to_txt, reset_logs
# DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
# questions = requests.get(f"{DEFAULT_API_URL}/questions").json()
# # ---------- HF EVAL ----------
# def run_and_submit_all():
# # [questions] = requests.get(f"{DEFAULT_API_URL}/random-question").json()
# total = len(questions)
# print(f"\nπŸš€ Total Questions: {total}\n")
# results = []
# for idx, item in enumerate(questions, start=1):
# q = item["question"]
# task_id = item["task_id"]
# print(f"\n🧠 Q{idx}/{total}: {q}")
# try:
# ans = ask_agent(q)
# from tool_logger_26042026 import get_logs
# logs = get_logs()
# print("\nπŸ“Š TOOL TRACE:")
# for log in logs[-3:]: # last 3 tool calls
# print(f"β†’ {log['tool']}")
# except Exception as e:
# ans = f"ERROR: {e}"
# print(f"ans {ans}")
# results.append({
# "Task ID": task_id,
# "Question": q,
# "Answer": ans
# })
# df = pd.DataFrame(results)
# return "Run complete βœ…", df
# print(f"Sample question: {questions[0]['question']}")
# # ---------- SINGLE QUERY ----------
# # def chat_fn(user_input):
# # task_id, question = questions[11]["task_id"], questions[11]["question"]
# # # return print(task_id, question)
# # ans = ask_agent(question, task_id)
# # from tool_logger_26042026 import get_logs
# # logs = get_logs()
# # print("\nπŸ“Š TOOL TRACE:")
# # for log in logs[-3:]: # last 3 tool calls
# # print(f"β†’ {log['tool']}")
# # return ans
# def chat_fn(user_input):
# task_id, question = questions[13]["task_id"], questions[13]["question"]
# print(task_id, question)
# ans = ask_agent(question, task_id)
# from tool_logger_26042026 import get_logs
# logs = get_logs()
# print("\nπŸ“Š TOOL TRACE:")
# for log in logs[-3:]: # last 3 tool calls
# print(f"β†’ {log['tool']}")
# return ans
# def run_eval_pipeline():
# reset_logs()
# result_text, result_df = run_and_submit_all()
# save_logs_to_txt()
# return result_text, result_df
# # ---------- UI ----------
# with gr.Blocks() as demo:
# gr.Markdown("# πŸ€– LangGraph Smart Agent")
# with gr.Tab("Chat"):
# inp = gr.Textbox(label="Ask something")
# out = gr.Textbox(label="Answer")
# btn = gr.Button("Ask")
# btn.click(chat_fn, inputs=inp, outputs=out)
# with gr.Tab("HF Evaluation"):
# run_btn = gr.Button("Run Full Evaluation")
# out_text = gr.Textbox()
# out_df = gr.DataFrame()
# run_btn.click(
# run_eval_pipeline,
# outputs=[out_text, out_df],
# )
# if __name__ == "__main__":
# demo.launch(debug=True)
# ///////////////////////////////////////////////////////////////////////////
import requests
import pandas as pd
import gradio as gr
from agent import ask_agent
from tool_logger_26042026 import save_logs_to_txt, reset_logs
DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
questions = requests.get(f"{DEFAULT_API_URL}/questions").json()
# # ---------- HF EVAL ----------
# def run_and_submit_all():
# # [questions] = requests.get(f"{DEFAULT_API_URL}/random-question").json()
# total = len(questions)
# print(f"\nπŸš€ Total Questions: {total}\n")
# results = []
# for idx, item in enumerate(questions, start=1):
# q = item["question"]
# task_id = item["task_id"]
# print(f"\n🧠 Q{idx}/{total}: {q}")
# try:
# ans = ask_agent(q)
# from tool_logger_26042026 import get_logs
# logs = get_logs()
# print("\nπŸ“Š TOOL TRACE:")
# for log in logs[-3:]: # last 3 tool calls
# print(f"β†’ {log['tool']}")
# except Exception as e:
# ans = f"ERROR: {e}"
# print(f"ans {ans}")
# results.append({
# "Task ID": task_id,
# "Question": q,
# "Answer": ans
# })
# df = pd.DataFrame(results)
# return "Run complete βœ…", df
# print(f"Sample question: {questions[0]['question']}")
# # ---------- SINGLE QUERY ----------
# # def chat_fn(user_input):
# # task_id, question = questions[11]["task_id"], questions[11]["question"]
# # # return print(task_id, question)
# # ans = ask_agent(question, task_id)
# # from tool_logger_26042026 import get_logs
# # logs = get_logs()
# # print("\nπŸ“Š TOOL TRACE:")
# # for log in logs[-3:]: # last 3 tool calls
# # print(f"β†’ {log['tool']}")
# # return ans
def chat_fn(user_input):
task_id, question = questions[13]["task_id"], questions[13]["question"]
print(task_id, question)
ans = ask_agent(question, task_id)
from tool_logger_26042026 import get_logs
logs = get_logs()
print("\nπŸ“Š TOOL TRACE:")
for log in logs[-3:]: # last 3 tool calls
print(f"β†’ {log['tool']}")
return ans
# def run_eval_pipeline():
# reset_logs()
# result_text, result_df = run_and_submit_all()
# save_logs_to_txt()
# return result_text, result_df
# # ---------- UI ----------
# with gr.Blocks() as demo:
# gr.Markdown("# πŸ€– LangGraph Smart Agent")
# with gr.Tab("Chat"):
# inp = gr.Textbox(label="Ask something")
# out = gr.Textbox(label="Answer")
# btn = gr.Button("Ask")
# btn.click(chat_fn, inputs=inp, outputs=out)
# with gr.Tab("HF Evaluation"):
# run_btn = gr.Button("Run Full Evaluation")
# out_text = gr.Textbox()
# out_df = gr.DataFrame()
# run_btn.click(
# run_eval_pipeline,
# outputs=[out_text, out_df],
# )
# if __name__ == "__main__":
# demo.launch(debug=True)
def run_and_submit_all():
questions = requests.get(f"{DEFAULT_API_URL}/questions").json()
total = len(questions)
print(f"\nπŸš€ Total Questions: {total}\n")
results = []
answers_payload = []
for idx, item in enumerate(questions, start=1):
q = item["question"]
task_id = item["task_id"]
print(f"\n🧠 Q{idx}/{total}: {q}")
try:
ans = ask_agent(q)
from tool_logger_26042026 import get_logs
logs = get_logs()
print("\nπŸ“Š TOOL TRACE:")
for log in logs[-3:]:
print(f"β†’ {log['tool']}")
except Exception as e:
ans = f"ERROR: {e}"
print(f"\nβœ… ANSWER: {ans}")
# Save for dataframe
results.append({
"Task ID": task_id,
"Question": q,
"Answer": ans
})
# Save for submission
answers_payload.append({
"task_id": task_id,
"submitted_answer": str(ans)
})
# -------------------------
# SUBMIT TO HF
# -------------------------
submission_data = {
"username": "chitranshu-9", # <-- change this
"agent_code": "https://huggingface.co/spaces/chitranshu-9/final-agent-course/tree/main", # <-- change this
"answers": answers_payload
}
print("\nπŸš€ Submitting answers...\n")
response = requests.post(
f"{DEFAULT_API_URL}/submit",
json=submission_data,
timeout=60
)
result = response.json()
print("\n🎯 FINAL RESULT")
print(f"response : {result}")
print(f"Score: {result.get('score')}%")
print(f"Correct: {result.get('correct_count')}/{result.get('total_attempted')}")
df = pd.DataFrame(results)
status = (
f"βœ… Submission Successful!\n"
f"Score: {result.get('score')}%\n"
f"Correct: {result.get('correct_count')}/{result.get('total_attempted')}"
)
return status, df
def run_eval_pipeline():
reset_logs()
result_text, result_df = run_and_submit_all()
save_logs_to_txt()
return result_text, result_df
with gr.Blocks() as demo:
gr.Markdown("# πŸ€– LangGraph Smart Agent")
with gr.Tab("Chat"):
inp = gr.Textbox(label="Ask something")
out = gr.Textbox(label="Answer")
btn = gr.Button("Ask")
btn.click(chat_fn, inputs=inp, outputs=out)
with gr.Tab("HF Evaluation"):
run_btn = gr.Button("Run Full Evaluation")
out_text = gr.Textbox()
out_df = gr.DataFrame()
run_btn.click(
run_eval_pipeline,
outputs=[out_text, out_df],
)
if __name__ == "__main__":
# Run evaluation automatically
# result_text, result_df = run_eval_pipeline()
# print("\n========================")
# print(result_text)
# print("========================\n")
# print(result_df)
# Optional: launch Gradio UI
demo.launch(debug=True)