Spaces:
Sleeping
Sleeping
| from smolagents import CodeAgent,DuckDuckGoSearchTool, InferenceClientModel,load_tool,tool | |
| import datetime | |
| import requests | |
| import pytz | |
| import yaml | |
| from tools.final_answer import FinalAnswerTool | |
| from smolagents import Tool | |
| from Gradio_UI import GradioUI | |
| # Below is an example of a tool that does nothing. Amaze us with your creativity ! | |
| final_answer = FinalAnswerTool() | |
| system_promot = """ | |
| You are a helpful assistant tasked with answering questions using a set of tools. | |
| Now, I will ask you a question. Report your thoughts, and finish your answer with the following template: | |
| FINAL ANSWER: [YOUR FINAL ANSWER]. | |
| YOUR FINAL ANSWER should be a number OR as few words as possible OR a comma separated list of numbers and/or strings. If you are asked for a number, don't use comma to write your number neither use units such as $ or percent sign unless specified otherwise. If you are asked for a string, don't use articles, neither abbreviations (e.g. for cities), and write the digits in plain text unless specified otherwise. If you are asked for a comma separated list, apply the above rules depending of whether the element to be put in the list is a number or a string. | |
| Your answer should only start with "FINAL ANSWER: ", then follows with the answer. | |
| """ | |
| # Import tool from Hub | |
| with open("prompts.yaml", 'r') as stream: | |
| prompt_templates = yaml.safe_load(stream) | |
| # === Tool Definitions === | |
| TOOL_REGISTRY = [ | |
| Tool(name="wikipedia_search", entry_point="mytools.wikipedia_search.call"), | |
| Tool(name="youtube_transcript", entry_point="mytools.youtube_transcript.call"), | |
| Tool(name="video_frame_analyzer", entry_point="mytools.video_frame_analyzer.call"), | |
| Tool(name="string_manipulator", entry_point="mytools.string_manipulator.call"), | |
| Tool(name="vision_chess_engine", entry_point="mytools.vision_chess_engine.call"), | |
| Tool(name="table_parser", entry_point="mytools.table_parser.call"), | |
| Tool(name="libretext_fetcher", entry_point="mytools.libretext_fetcher.call"), | |
| Tool(name="audio_transcriber", entry_point="mytools.audio_transcriber.call"), | |
| Tool(name="botanical_classifier", entry_point="mytools.botanical_classifier.call"), | |
| Tool(name="imdb_lookup", entry_point="mytools.imdb_lookup.call"), | |
| Tool(name="excel_reader", entry_point="mytools.excel_reader.call"), | |
| Tool(name="competition_db", entry_point="mytools.competition_db.call"), | |
| Tool(name="japanese_baseball_api", entry_point="mytools.japanese_baseball_api.call"), | |
| ] | |
| model_id = "Qwen/Qwen2.5-Coder-32B-Instruct" | |
| agent = CodeAgent( | |
| model= InferenceClientModel(model_id=model_id), | |
| tools=[final_answer, *TOOL_REGISTRY], ## add your tools here (don't remove final answer) | |
| max_steps=6, | |
| verbosity_level=1, | |
| grammar=None, | |
| planning_interval=None, | |
| name=None, | |
| description=None, | |
| prompt_templates=prompt_templates | |
| ) | |
| GradioUI(agent).launch(share=False) |