DeepSeek R1 sur Novita AI prend en charge l'appel de fonctions avec 60 % de réduction !

DeepSeek R1 sur Novita AI prend en charge l'appel de fonctions avec 60 % de réduction !

Points clés

Novita AI a lancé DeepSeek R1 Turbo, offrant un débit 3x supérieur et une réduction limitée de 60 %. De plus, cette version prend totalement en charge l’appel de fonctions.

Si vous souhaitez tester ses performances, lancez un essai gratuit directement sur Novita AI Playground !

deepseek r1 turbo price

Qu’est-ce que l’appel de fonctions ?

L’appel de fonctions est une fonctionnalité puissante qui permet aux grands modèles de langage (LLM) d’interagir avec des systèmes externes et votre code de manière structurée. Au-delà de la génération de texte, les LLM dotés de l’appel de fonctions peuvent reconnaître quand une action spécifique est nécessaire, générer les paramètres requis et exécuter des tâches du monde réel. Cela rend les modèles d’IA plus dynamiques et pratiques, permettant une intégration transparente avec des outils externes et des API.

Comment fonctionne l’appel de fonctions et quels problèmes peut-il résoudre ?

Le processus suit un flux simple et structuré :

  1. L’utilisateur envoie une requête au LLM.
  2. Le LLM analyse la requête et détermine si un appel de fonction est nécessaire.
  3. Si nécessaire, le LLM génère un appel JSON structuré vers la fonction appropriée, incluant le nom de la fonction et ses paramètres.
  4. L’application reçoit cet appel et exécute la fonction.
  5. Le résultat est renvoyé au LLM.
  6. Le LLM utilise le résultat pour générer une réponse finale à l’utilisateur.

Ce cycle peut se répéter pour des tâches multi-étapes ou complexes. Les outils (fonctions) doivent être définis avec des noms, descriptions et schémas JSON spécifiant leurs paramètres. Pour une validation supplémentaire, les modèles Pydantic peuvent être utilisés pour garantir la sécurité des types.

L’appel de fonctions étend les capacités des LLM et répond à de nombreux cas d’usage pratiques :

  • Récupération de données : convertir des requêtes en langage naturel en appels API pour des données en temps réel (ex. « Quelles sont mes dernières commandes ? »).
  • Exécution d’actions : effectuer des tâches spécifiques (ex. « Planifier une réunion » déclenche une API de calendrier).
  • Calcul : gérer des opérations mathématiques (ex. intérêts composés ou analyse statistique).
  • Pipelines de données : enchaîner des fonctions pour des workflows complexes (ex. récupérer → traiter → stocker des données).
  • Intégration UI/UX : déclencher des mises à jour d’interface comme des marqueurs de carte ou des graphiques.
  • Agents conversationnels : permettre aux chatbots d’appeler des API pour des réponses pertinentes (ex. mises à jour météo).
  • Compréhension du langage naturel : convertir du texte en données structurées ou extraire des informations (ex. analyse de sentiments, reconnaissance d’entités nommées).

funation calling

Comment utiliser l’appel de fonctions DeepSeek R1 via Novita AI

Novita AI a mis en place des descriptions des capacités pour chaque LLM, que vous pouvez consulter directement dans la console et la documentation.

Choisissez votre modèle

1. Initialiser le client

Vous devez d’abord initialiser le client avec votre clé API Novita.

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    # Obtenez la clé API Novita AI depuis : https://novita.ai/settings/key-management.
    api_key="<VOTRE CLÉ API Novita AI>",
)

model = "deepseek/deepseek_r1"
  • Définir la fonction à appeler

Ensuite, définissez la fonction Python que le modèle peut appeler. Dans cet exemple, il s’agit d’une fonction pour obtenir les informations météo.

# Exemple de fonction pour simuler la récupération des données météo.
def get_weather(location):
    """Récupère la météo actuelle pour un lieu donné."""
    print("Appel de la fonction get_weather avec le lieu : ", location)
    # Dans une application réelle, vous appelleriez une API météo externe ici.
    # Il s'agit d'un exemple simplifié renvoyant des données codées en dur.
    return json.dumps({"location": location, "temperature": "60 degrés Fahrenheit"})

2. Construire la requête API avec les outils et le message utilisateur

Créez maintenant la requête API vers le point de terminaison Novita. Cette requête inclut le paramètre tools, définissant les fonctions que le modèle peut utiliser, ainsi que le message de l’utilisateur.

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Obtenir la météo d'un lieu, l'utilisateur doit d'abord fournir un lieu",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "La ville et l'état, par ex. San Francisco, CA",
                    }
                },
                "required": ["location"]
            },
        }
    },
]

messages = [
    {
        "role": "user",
        "content": "Quel temps fait-il à San Francisco ?"
    }
]

# Envoyons la requête et affichons la réponse.
response = client.chat.completions.create(
    model=model,
    messages=messages,
    tools=tools,
)

# Vérifiez si la réponse contient des appels d'outils en production.
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())

3. Sortie

{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}

4. Répondre avec le résultat de l’appel de fonction et obtenir la réponse finale

L’étape suivante consiste à traiter l’appel de fonction, exécuter la fonction get_weather et renvoyer le résultat au modèle pour générer la réponse finale à l’utilisateur.

# Assurez-vous que tool_call est défini depuis l'étape précédente
if tool_call:
    # Étendre l'historique de la conversation avec le message d'appel d'outil de l'assistant
    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)
        # Exécuter la fonction et obtenir la réponse
        function_response = get_weather(
            location=function_args.get("location"))
        # Ajouter la réponse de la fonction aux messages
        messages.append(
            {
                "tool_call_id": tool_call.id,
                "role": "tool",
                "content": function_response,
            }
        )

    # Obtenir la réponse finale du modèle, maintenant avec le résultat de la fonction
    answer_response = client.chat.completions.create(
        model=model,
        messages=messages,
        # Remarque : n'incluez pas le paramètre tools ici.
    )
    print(answer_response.choices[0].message)

5. Sortie

{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}

Questions fréquentes

Quels types de fonctions peuvent être appelés ?

Vous pouvez définir pratiquement n’importe quelle fonction que votre application peut exécuter, permettant aux LLM d’interagir avec des bases de données, des API et une logique interne.

L’appel de fonctions exécute-t-il réellement le code ?

Non, lorsque le LLM décide d’appeler une fonction, il se contente de produire un objet JSON structuré contenant le nom de la fonction et les arguments nécessaires.

DeepSeek R1 prend-il en charge l’appel de fonctions ?

Oui ! Novita AI a lancé DeepSeek R1 Turbo, offrant un débit 3x supérieur et une réduction limitée de 20 %. De plus, cette version prend totalement en charge l’appel de fonctions.

Novita AI est la plateforme cloud tout-en-un qui dynamise vos ambitions en IA. API intégrées, sans serveur, instances GPU — les outils rentables dont vous avez besoin. Éliminez l’infrastructure, commencez gratuitement et concrétisez votre vision de l’IA.

Lecture recommandée