import json from transformers import AutoModelForCausalLM, AutoTokenizer repo = "jgalego/amalia-desenrasca-9b"tokenizer = AutoTokenizer.from_pretrained(repo)model = AutoModelForCausalLM.from_pretrained(repo, dtype="auto", device_map="auto") tools = [ { "name": "get_weather", "description": "Estado do tempo atual numa cidade", "parameters": { "type": "object", "properties": {"city": {"type": "string", "description": "Nome da cidade"}}, "required": ["city"], }, }]system = "Tens acesso \u00e0s ferramentas abaixo. Para usar uma, responde apenas com \u003ctool_call\u003e{\"name\": \"nome\", \"arguments\": {\"argumento\": \"valor\"}}\u003c/tool_call\u003e. Se nenhuma ferramenta servir, diz com educa\u00e7\u00e3o que n\u00e3o podes ajudar."system += "\n<tools>\n" + "\n".join(json.dumps(tool, ensure_ascii=False) for tool in tools) + "\n</tools>"messages = [ {"role": "system", "content": system}, {"role": "user", "content": "Está a chover no Porto?"},]inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, return_tensors="pt", return_dict=True).to(model.device)output = model.generate(**inputs, max_new_tokens=128, do_sample=False)print(tokenizer.decode(output[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True))# Expected: <tool_call>{"name": "get_weather", "arguments": {"city": "Porto"}}</tool_call>