0Pricing
Learn AI with Python · Aula

Chamadas de funções e uso de ferramentas com LLMs

Definição de ferramentas como esquema JSON, tratamento de tool_calls na resposta, execução e devolução de resultados.

Chamadas de funções e uso de ferramentas com LLMs é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

O que é uma chamada de função?

A chamada de função (também chamada de uso de ferramenta) permite que um LLM solicite que seu código execute uma função. O modelo não executa nada por conta própria; ele retorna uma solicitação estruturada dizendo "chame esta função com estes argumentos". Seu programa a executa e envia o resultado de volta.

É assim que os modelos de linguagem obtêm dados em tempo real, fazem cálculos ou acionam ações reais.

Descrevendo uma ferramenta

Você fornece ao modelo uma lista de ferramentas. Cada ferramenta tem um name, uma description e parameters definidos como um esquema JSON. A descrição é fundamental: o modelo a usa para decidir quando a ferramenta se aplica.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "City name"}
            },
            "required": ["city"]
        }
    }
}]

Esquema JSON para parâmetros

O campo parameters segue o padrão esquema JSON. Você declara um objeto com properties, cada uma contendo um type e uma descrição, além de uma matriz required. Isso informa exatamente ao modelo quais argumentos produzir.

"parameters": {
    "type": "object",
    "properties": {
        "city": {"type": "string"},
        "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
    },
    "required": ["city"]
}

Enviando ferramentas ao modelo

Envie a lista tools para chat.completions.create(). Agora, o modelo pode responder com texto OR com uma chamada de ferramenta, dependendo da solicitação do usuário.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Weather in Tokyo?"}],
    tools=tools
)

Detectando uma chamada de ferramenta

Quando o modelo quer usar uma ferramenta, a resposta contém message.tool_calls em vez de texto normal. Verifique se essa lista existe antes de presumir que você recebeu uma resposta simples.

msg = response.choices[0].message

if msg.tool_calls:
    print("Model wants to call a tool")
else:
    print(msg.content)

Analisando os argumentos

Cada chamada de ferramenta tem um function.name e function.arguments. Os argumentos chegam como uma cadeia de caracteres JSON, portanto analise-os com json.loads() antes de usá-los.

import json

call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args)  # get_weather {"city": "Tokyo"}

Executando a função

Agora, execute a função Python real de YOUR usando os argumentos analisados. O LLM apenas decidiu o que chamar; seu código realiza o trabalho de verdade.

def get_weather(city):
    return {"city": city, "temp_c": 18, "condition": "Cloudy"}

result = get_weather(**args)

Retornando o resultado ao modelo

Envie o resultado de volta para que o modelo possa escrever uma resposta em linguagem natural. Anexe a mensagem original do assistente e depois uma mensagem com a função tool, contendo o resultado e o tool_call_id correspondente.

messages.append(msg)  # the assistant tool-call message
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps(result)
})

Gerando a resposta final

Chame o modelo novamente com as messages atualizadas. Agora que ele tem o resultado da ferramenta, produzirá uma resposta final amigável para o usuário.

final = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools
)
print(final.choices[0].message.content)

O ciclo completo de uso de ferramentas

O ciclo completo é: (1) enviar as ferramentas, (2) o modelo retornar uma chamada de ferramenta, (3) analisar os argumentos, (4) executar a função, (5) retornar o resultado como uma mensagem de ferramenta e (6) o modelo escrever a resposta. Um modelo pode solicitar várias chamadas de ferramenta antes de terminar; portanto, repita o processo até que tool_calls esteja vazio.

Controlando a escolha de ferramentas

Use o parâmetro tool_choice para orientar o comportamento. "auto" (padrão) permite que o modelo decida; "none" proíbe ferramentas; passar o nome de uma ferramenta específica força o uso exato dessa função. Isso é útil quando você precisa garantir uma saída estruturada.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "get_weather"}}
)

Verificação rápida

Teste sua compreensão do uso de ferramentas.

Recapitulação: chamadas de função

Você definiu ferramentas com nome, descrição e parâmetros de esquema JSON e depois as enviou ao modelo. Você detectou tool_calls, analisou function.arguments com json.loads(), executou sua função real e retornou o resultado como uma mensagem com a função tool e o tool_call_id correspondente.

Uma chamada final ao modelo transforma o resultado bruto em uma resposta natural, concluindo o ciclo de uso da ferramenta.

Perguntas Frequentes

A aula “Chamadas de funções e uso de ferramentas com LLMs” é grátis?

Sim — o texto completo de “Chamadas de funções e uso de ferramentas com LLMs” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Chamadas de funções e uso de ferramentas com LLMs”?

Definição de ferramentas como esquema JSON, tratamento de tool_calls na resposta, execução e devolução de resultados. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Chamadas de funções e uso de ferramentas com LLMs”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. API da OpenAI: chat.completions e transmissão
  2. API Anthropic Claude em Python
  3. Chamadas de funções e uso de ferramentas com LLMs
  4. Engenharia de prompts para aplicações LLM em produção
← Voltar para Learn AI with Python