Destaques Principais
O que faz: Function calling permite que modelos de IA interajam com ferramentas e APIs externas, executem tarefas específicas e acessem dados em tempo real para operações de sistema e fluxos de trabalho automatizados.
Modelos suportados: Série DeepSeek V3, série GPT, Gemma 2 e Mistral Nemo.
Como implementar? Você pode instalar a API via Novita AI e aprender com a Documentação.
Function calling aprimora grandes modelos de linguagem (LLMs) ao permitir interação com o mundo externo. Além de gerar texto, os LLMs podem executar tarefas, acessar dados em tempo real e realizar operações complexas. Atuando como uma ponte entre o conhecimento da IA e tarefas acionáveis, o function calling capacita agentes de IA ou chatbots a interagir com ferramentas e serviços externos. DeepSeek V3, um poderoso modelo de código aberto, destaca-se pelo seu forte desempenho e eficiência.
O que é Function Calling
Function calling aprimora grandes modelos de linguagem (LLMs) ao permitir interação com o mundo externo. Além de gerar texto, os LLMs podem executar tarefas, acessar dados em tempo real e realizar operações complexas. Atuando como uma ponte entre o conhecimento da IA e tarefas acionáveis, o function calling capacita agentes de IA ou chatbots a interagir com ferramentas e serviços externos. DeepSeek V3, um poderoso modelo de código aberto, destaca-se pelo seu forte desempenho e eficiência.
Como Funciona o Function Calling

de Google Cloud
- Declaração da Função: Defina blocos de código reutilizáveis (funções) com descrições claras de suas capacidades, entradas e saídas.
- Envio do Prompt: Forneça ao LLM um prompt e um conjunto de declarações de função para informá-lo sobre as ferramentas disponíveis.
- Análise do Modelo: O LLM avalia o prompt e determina se alguma das funções fornecidas precisa ser invocada para atender à solicitação.
- Saída Estruturada: Se uma chamada de função for necessária, o LLM gera uma saída estruturada em formato JSON, especificando o nome da função e os valores dos parâmetros.
- Invocação da Função: O aplicativo ou sistema usa a saída estruturada para chamar a função especificada, passando os parâmetros necessários.
- Execução da Função: O serviço externo ou API executa a função com base nos parâmetros fornecidos.
- Resposta de Saída: O serviço externo retorna o resultado ou confirmação para a IA.
- Resposta do Modelo: O LLM usa a saída recebida para criar uma resposta em linguagem natural para o usuário ou para processamento adicional.
Quais Problemas o Function Calling Pode Resolver
Acesso a Informações em Tempo Real
- Atualizações de preços de ações
- Obtenção de dados meteorológicos atuais
- Acesso a notícias de última hora
Interações com Sistemas
- Envio de e-mails
- Publicação em redes sociais
- Consulta e escrita em banco de dados
Automação de Fluxo de Trabalho
- Coleta e processamento de dados
- Execução de tarefas de múltiplas etapas
- Automação de análises complexas
Precisão dos Dados
- Garantia de atualidade das informações
- Fornecimento de resultados precisos de consultas
- Redução de erros de dados desatualizados
Capacidades Aprimoradas da IA
- Integração dinâmica de APIs
- Execução de tarefas contextuais
- Realização de ações no mundo real
Melhoria da Experiência do Usuário
- Respostas personalizadas
- Conclusão de tarefas sem sair da conversa
- Integração perfeita de serviços externos
Como Usar Function Calling do DeepSeek V3 via Novita AI
Este guia demonstra como usar Function Calling para obter informações meteorológicas atuais para um local especificado pelo usuário. Vamos percorrer um exemplo completo de código Python. Para o formato específico da API de Function Calling, consulte a referência da API Create Chat Completion.

Ganhe $20 em créditos na Novita AI agora!
- Inicializar o Cliente
Primeiro, você precisa inicializar o cliente com sua chave de API Novita.
from openai import OpenAI
import json
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
# Obtenha a Chave da API Novita AI em: https://novita.ai/settings/key-management.
api_key="<SUA Chave da API Novita AI>",
)
model = "deepseek/deepseek_v3"
- Definir a Função a Ser Chamada
Em seguida, defina a função Python que o modelo pode chamar. Neste exemplo, é uma função para obter informações meteorológicas.
# Exemplo de função para simular a obtenção de dados meteorológicos.
def get_weather(location):
"""Obtém o clima atual para um determinado local."""
print("Chamando a função get_weather com local: ", location)
# Em um aplicativo real, você chamaria uma API meteorológica externa aqui.
# Este é um exemplo simplificado que retorna dados codificados.
return json.dumps({"location": location, "temperature": "60 graus Fahrenheit"})
- Construir a Solicitação de API com Ferramentas e Mensagem do Usuário
Agora, crie a solicitação de API para o endpoint Novita. Esta solicitação inclui o parâmetro tools, definindo as funções que o modelo pode usar, e a mensagem do usuário.
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Obter o clima de um local, o usuário deve fornecer um local primeiro",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "A cidade e estado, ex.: São Francisco, CA",
}
},
"required": ["location"]
},
}
},
]
messages = [
{
"role": "user",
"content": "Qual é o clima em São Francisco?"
}
]
# Vamos enviar a solicitação e imprimir a resposta.
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
)
# Verifique se a resposta contém chamadas de ferramenta se estiver em produção.
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())
- Saída
{'id': '0', 'function': {'arguments': '{"location": "São Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
- Responder com o Resultado da Chamada de Função e Obter a Resposta Final
O próximo passo é processar a chamada de função, executar a função get_weather e enviar o resultado de volta ao modelo para gerar a resposta final ao usuário.
# Certifique-se de que tool_call está definido a partir da etapa anterior
if tool_call:
# Estenda o histórico da conversa com a mensagem de chamada de ferramenta do assistente
messages.append(response.choices[0].message)
function_name = tool_call.function.name
if function_name == "get_weather":
function_args = json.loads(tool_call.function.arguments)
# Execute a função e obtenha a resposta
function_response = get_weather(
location=function_args.get("location"))
# Adicione a resposta da função às mensagens
messages.append(
{
"tool_call_id": tool_call.id,
"role": "tool",
"content": function_response,
}
)
# Obtenha a resposta final do modelo, agora com o resultado da função
answer_response = client.chat.completions.create(
model=model,
messages=messages,
# Nota: Não inclua o parâmetro tools aqui.
)
print(answer_response.choices[0].message)
- Saída
{'id': '0', 'function': {'arguments': '{"location": "São Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
Problemas Comuns e Melhores Práticas para Function Calling
Function calling em modelos de IA apresenta tanto desafios quanto oportunidades. Aqui está uma comparação de problemas comuns e as melhores práticas correspondentes:
- Interpretação Imprecisa e Prompts Claros
Problema: Modelos podem interpretar imprecisamente as intenções do usuário, levando a chamadas de função desnecessárias ou incorretas.
Melhor Prática: Forneça prompts de sistema claros e concisos que descrevam o propósito do chatbot e as funções disponíveis. Use exemplos de múltiplas interações para demonstrar tanto respostas diretas quanto chamadas de função apropriadas.
- Gerenciamento de Fluxo de Trabalho Complexo
Problema: Dificuldade em gerenciar fluxos de trabalho complexos com várias etapas interdependentes.
Melhor Prática: Comece com engenharia de prompt antes de avançar para métodos mais complexos. Foque na qualidade sobre quantidade ao ajustar fino, começando com um pequeno conjunto de exemplos de alta qualidade.
- Tomada de Decisão Sutil
Problema: Desafios na interpretação das saídas das funções e dados externos para tomada de decisão sutil.
Melhor Prática: Use geração aumentada por recuperação (RAG) para injetar contexto quando necessário. Combine técnicas como ajuste fino e RAG para equilibrar seus respectivos pontos fortes e fracos.
- Complexidade da Estrutura de Dados
Problema: Limitações em operar sobre estruturas de dados em evolução e intrincadas, como grafos e objetos aninhados.
Melhor Prática: Escolha o nível certo de abstração, equilibrando código limpo com desempenho. Mantenha as funções enxutas e focadas para melhorar a eficiência e legibilidade.
- Integração com Sistemas Legados
Problema: Dificuldades na integração com sistemas legados confusos e ambíguos.
Melhor Prática: Otimize as funções mais frequentemente chamadas ou pontos críticos identificados por perfilamento. Considere operações em lote para reduzir a sobrecarga ao lidar com sistemas legados.
- Preocupações de Segurança
Problema: Preocupações de segurança ao executar funções privilegiadas sem julgamento sofisticado.
Melhor Prática: Implemente mecanismos robustos de tratamento de erros para gerenciar respostas inesperadas de API. Garanta fortes medidas de proteção de dados e conformidade com regulamentações para proteger a confiança do usuário e informações sensíveis.
- Escalabilidade e Desempenho
Problema: Confiabilidade não comprovada em atender às rigorosas necessidades de escalabilidade, disponibilidade e desempenho para sistemas críticos.
Melhor Prática: Aproveite otimizações do compilador e use configurações de temperatura baixa para saídas mais focadas e determinísticas. Faça perfilamento e otimize pontos críticos para obter ganhos de desempenho mais significativos.
- Dependência Excessiva de Chamadas de Função
Problema: Modelos podem chamar funções desnecessariamente ou inadequadamente, mesmo quando não são necessárias.
Melhor Prática: Gerencie cuidadosamente como as chamadas de função são implementadas. Garanta que mecanismos adequados de tratamento de erros e fallback estejam em vigor para manter a confiabilidade do sistema, mesmo quando serviços externos estiverem indisponíveis.
- Preocupações com Privacidade e Transparência
Problema: Preocupações éticas sobre transparência e consentimento do usuário quando LLMs tomam decisões ou executam ações em nome dos usuários.
Melhor Prática: Implemente documentação clara e mecanismos de consentimento do usuário. Garanta que o manuseio de dados seja responsável e esteja em conformidade com regulamentações de privacidade, como GDPR ou HIPAA.
Em conclusão, Function calling marca um grande avanço para LLMs, permitindo interação perfeita com Dados e Sistemas Empresariais e capacitando desenvolvedores a construir aplicações mais dinâmicas e funcionais. Ao integrar-se sem esforço com aplicações, sistemas e APIs externas, os LLMs se tornam altamente versáteis, capazes de lidar com uma ampla gama de tarefas com eficiência. Modelos como DeepSeek V3 estão liderando o caminho, fornecendo acesso simplificado a essa tecnologia transformadora e desbloqueando infinitas possibilidades para inovação em IA.
Perguntas Frequentes
O que é function calling no contexto de LLMs?
Function calling é uma técnica que permite que grandes modelos de linguagem reconheçam quando uma tarefa específica requer uma função ou ferramenta externa e gerem dados estruturados para executar essa função.
Quais são os principais benefícios de usar function calling?
Os principais benefícios incluem maior eficiência no processamento de tarefas, flexibilidade aprimorada para desenvolvedores atualizarem funções facilmente, escalabilidade para adicionar novas funcionalidades sem alterações extensas e interações personalizadas com o usuário.
Novita AI é a plataforma All-in-one na nuvem que impulsiona suas ambições de IA. APIs integradas, serverless, instância GPU — as ferramentas econômicas que você precisa. Elimine a infraestrutura, comece gratuitamente e torne sua visão de IA realidade.
