DeepSeek R1 na Novita AI Suporta Chamada de Funções com 60% de Desconto!

DeepSeek R1 na Novita AI Suporta Chamada de Funções com 60% de Desconto!

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!

deepseek r1 turbo price

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:

  1. O usuário envia uma solicitação ao LLM.
  2. O LLM analisa a solicitação e determina se uma chamada de função é necessária.
  3. 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.
  4. O aplicativo recebe essa chamada e executa a função.
  5. O resultado é enviado de volta ao LLM.
  6. 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).

funation calling

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.

Escolha seu Modelo

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.

Leitura Recomendada