Principais Destaques
A Novita AI lançou o DeepSeek R1 Turbo, oferecendo 3x de throughput e desconto de 60% por tempo limitado. Além disso, esta versão suporta totalmente chamada de funções.
Se quiser testar seu desempenho, inicie um teste gratuito diretamente no Novita AI Playground!

O que é Chamada de Funções?
A chamada de funções é um recurso poderoso que permite que Modelos de Linguagem de Grande Escala (LLMs) interajam com sistemas externos e seu código de forma estruturada. Além da geração de texto, LLMs com chamada de funções podem reconhecer quando uma ação específica é necessária, gerar os parâmetros exigidos e executar tarefas do mundo real. Isso torna os modelos de IA mais dinâmicos e práticos, permitindo integração perfeita com ferramentas externas e APIs.
Como Funciona a Chamada de Funções e Que Problemas Ela Pode Resolver?
O processo segue um fluxo simples e estruturado:
- O usuário envia uma solicitação ao LLM.
- O LLM analisa a solicitação e determina se uma chamada de função é necessária.
- Se necessário, o LLM gera uma chamada JSON estruturada para a função apropriada, incluindo o nome da função e os parâmetros.
- O aplicativo recebe essa chamada e executa a função.
- O resultado é enviado de volta ao LLM.
- O LLM usa o resultado para gerar uma resposta final ao usuário.
Esse ciclo pode se repetir para tarefas de várias etapas ou complexas. Ferramentas (funções) precisam ser definidas com nomes, descrições e esquemas JSON especificando seus parâmetros. Para validação adicional, modelos Pydantic podem ser usados para garantir segurança de tipo.
A chamada de funções amplia a capacidade dos LLMs, abordando muitos casos de uso práticos:
- Recuperação de Dados: Converter consultas em linguagem natural em chamadas de API para dados em tempo real (ex.: “Quais são meus pedidos recentes?”).
- Execução de Ações: Realizar tarefas específicas (ex.: “Agendar uma reunião” aciona uma API de calendário).
- Computação: Lidar com cálculos ou operações (ex.: juros compostos ou análise estatística).
- Pipelines de Dados: Encadear funções para fluxos de trabalho complexos (ex.: buscar → processar → armazenar dados).
- Integração UI/UX: Acionar atualizações de interface como marcadores de mapa ou gráficos.
- Agentes Conversacionais: Permitir que chatbots chamem APIs para respostas relevantes (ex.: atualizações meteorológicas).
- Compreensão de Linguagem Natural: Converter texto em dados estruturados ou extrair informações (ex.: análise de sentimentos, reconhecimento de entidades nomeadas).

Como Usar o DeepSeek R1 com Chamada de Funções via Novita AI
A Novita AI lançou descrições de suporte de capacidade para cada LLM, que você pode visualizar diretamente no console e na documentação.


1.Inicializar o Cliente
Primeiro, você precisa inicializar o cliente com sua chave de API da 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="<YOUR Novita AI API Key>",
)
model = "deepseek/deepseek_r1"
- 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):
"""Recupera o clima atual para um determinado local."""
print("Chamando a função get_weather com local: ", location)
# Em uma aplicação real, você chamaria uma API meteorológica externa aqui.
# Este é um exemplo simplificado retornando dados fixos.
return json.dumps({"location": location, "temperature": "60 degrees Fahrenheit"})
2.Construir a Solicitação de API com Ferramentas e Mensagem do Usuário
Agora, crie a solicitação de API para o endpoint da 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": "Como está 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())
3.Saída
{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
4.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.
# Garanta que tool_call esteja 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)
5.Saída
{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
Perguntas Frequentes
Que tipos de funções podem ser chamadas?
Você pode definir praticamente qualquer função que seu aplicativo possa executar, permitindo que LLMs interajam com bancos de dados, APIs e lógica interna.
A chamada de funções realmente executa o código?
Não. Quando o LLM decide chamar uma função, ele apenas gera um objeto JSON estruturado contendo o nome da função e os argumentos necessários.
O DeepSeek R1 suporta chamada de funções?
Sim! A Novita AI lançou o DeepSeek R1 Turbo, oferecendo 3x de throughput e desconto de 20% por tempo limitado. Além disso, esta versão suporta totalmente chamada de funções.
Novita AI é a plataforma de nuvem completa que impulsiona suas ambições de IA. APIs integradas, sem servidor, instância GPU — as ferramentas econômicas que você precisa. Elimine a infraestrutura, comece grátis e torne sua visão de IA realidade.
