| import argparse | |
| import json | |
| from agent import BasicAgent | |
| from smolagents import LiteLLMModel | |
| from tools.utils import download_file | |
| if __name__ == '__main__': | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('--id', required=False, action="append", help="Number of question to load") | |
| parser.add_argument('--max', required=False, type=int, default=10 , help="Number of max steps") | |
| answears = {} | |
| args = parser.parse_args() | |
| questions = [] | |
| question = None | |
| file_path = None | |
| base_url = 'https://agents-course-unit4-scoring.hf.space' | |
| with open('questions.json', 'r') as s: | |
| questions = json.load(s) | |
| if args.id: | |
| questions = [q for q in questions if q.get('task_id') in args.id] | |
| for question in questions: | |
| print(f"Process question: {question.get('question')[:50]}") | |
| file_name = question.get('file_name') | |
| prompt = question.get('question') | |
| task_id = question.get('task_id') | |
| if file_name: | |
| file_path = download_file(f'{base_url}/files/{task_id}', file_name) | |
| else: | |
| file_path = None | |
| model = LiteLLMModel( | |
| model_id="ollama/qwen2.5:7b", | |
| api_base="http://localhost:11434" | |
| ) | |
| agent = BasicAgent(model, args.max) | |
| response = agent(prompt, file_path) | |
| answears[task_id] = response | |
| print(answears) | |