🔧 O que e Function Calling
Function Calling permite que o modelo decida quando chamar funcoes externas e com quais argumentos. E o que transforma LLMs em agentes capazes de executar acoes reais.
💡 Como Funciona
- 1.Voce define funcoes disponiveis (nome, descricao, parametros)
- 2.Usuario faz um pedido em linguagem natural
- 3.Modelo decide se precisa chamar uma funcao
- 4.Modelo retorna nome da funcao + argumentos estruturados
- 5.Voce executa a funcao e retorna o resultado
- 6.Modelo usa o resultado para gerar resposta final
📋 Definindo Funcoes
Funcoes sao declaradas com nome, descricao e parametros. A descricao e crucial para o modelo entender quando usar.
Exemplo de Declaracao
get_weather = {
"name": "get_weather",
"description": "Retorna o clima atual para uma cidade",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Nome da cidade"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["city"]
}
}
📐 JSON Schema
Parametros usam JSON Schema para definir tipos, restricoes e estrutura.
Tipos Basicos
"type": "string""type": "number""type": "integer""type": "boolean""type": "array""type": "object"
Restricoes Uteis
"enum": ["a", "b"]- valores permitidos"minimum": 0- valor minimo"maximum": 100- valor maximo"required": ["x"]- campos obrigatorios
🔄 Fluxo de Execucao
O fluxo completo envolve multiplas chamadas entre seu codigo e a API.
Implementacao Completa
import google.generativeai as genai
# 1. Definir funcoes
tools = [{ "function_declarations": [get_weather] }]
# 2. Criar modelo com tools
model = genai.GenerativeModel('gemini-pro', tools=tools)
# 3. Enviar prompt
response = model.generate_content("Como esta o tempo em Tokyo?")
# 4. Verificar se ha function call
if response.candidates[0].content.parts[0].function_call:
fc = response.candidates[0].content.parts[0].function_call
print(f"Funcao: {fc.name}, Args: {fc.args}")
# 5. Executar funcao real
result = call_weather_api(fc.args["city"])
# 6. Enviar resultado de volta
response2 = model.generate_content([
"Como esta o tempo em Tokyo?",
response.candidates[0].content,
{ "function_response": { "name": fc.name, "response": result } }
])
🌐 Integracao com APIs
Exemplos praticos de integracao com APIs externas.
Weather API
Consultar clima em tempo real para qualquer cidade do mundo.
Database
Executar queries SQL baseadas em perguntas em linguagem natural.
Enviar emails ou criar rascunhos a partir de instrucoes do usuario.
Calendar
Criar, atualizar ou consultar eventos em calendarios.
⚙️ Modos de Function Calling
Controle quando o modelo pode ou deve chamar funcoes.
AUTO
Modelo decide se usa funcoes ou nao. Padrao.
ANY
Modelo deve usar alguma funcao. Obrigatorio.
NONE
Funcoes desabilitadas. Apenas texto.
📚 Resumo do Modulo
Proximo Modulo:
3.5 - Grounding e Search