| 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) |
|
|