|
|
import gradio as gr |
|
|
|
|
|
from BasicAgent import BasicAgent |
|
|
from CustomAgent import CustomAgent |
|
|
from utils import get_agents, run_and_submit_all |
|
|
|
|
|
|
|
|
AGENTS = get_agents(globals(), BasicAgent) |
|
|
|
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown("# Agents Course Final Assignment Evaluation Runner") |
|
|
gr.Markdown( |
|
|
"""\ |
|
|
**Instructions:** |
|
|
1. Please clone this space, then modify the code to define your agent's logic, the tools, the necessary packages, etc ... |
|
|
2. Log in to your Hugging Face account using the button below. This uses your HF username for submission. |
|
|
3. Click 'Run Evaluation & Submit All Answers' to fetch questions, run your agent, submit answers, and see the score. |
|
|
Note: Once clicking on the "submit button, it can take quite some time (this is the time for the agent to go through all the questions). |
|
|
|
|
|
--- |
|
|
**Implementation:** |
|
|
|
|
|
CustomAgent is a subclass of BasicAgent that uses a custom system prompt and integrates with an OpenAI-compatible model (llama-3.1-8b-instant via Groq API). It leverages the magentic library for prompt chaining and function calling, allowing the agent to use external tools such as web search. |
|
|
""" |
|
|
) |
|
|
gr.LoginButton() |
|
|
run_button = gr.Button("Run Evaluation & Submit All Answers") |
|
|
agent_dropdown = gr.Dropdown(choices=list(AGENTS.keys()), label="Select Agent") |
|
|
status_output = gr.Textbox( |
|
|
label="Run Status / Submission Result", |
|
|
lines=5, |
|
|
interactive=False |
|
|
) |
|
|
results_table = gr.DataFrame( |
|
|
label="Questions and Agent Answers", |
|
|
wrap=True |
|
|
) |
|
|
|
|
|
def wrapper(profile: gr.OAuthProfile | None, a: str) -> tuple[str, list]: |
|
|
return run_and_submit_all(profile, AGENTS.get(a, BasicAgent)) |
|
|
|
|
|
run_button.click( |
|
|
fn=wrapper, |
|
|
inputs=[agent_dropdown], |
|
|
outputs=[status_output, results_table] |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch(debug=True, share=False) |
|
|
|