DeepSeek R1 auf Novita AI unterstützt Function Calling mit 60% Rabatt!

DeepSeek R1 auf Novita AI unterstützt Function Calling mit 60% Rabatt!

Wichtige Highlights

Novita AI hat DeepSeek R1 Turbo vorgestellt, der 3x Durchsatz und zeitlich begrenzt 60% Rabatt bietet. Darüber hinaus unterstützt diese Version vollständig Function Calling.

Wenn Sie seine Leistung testen möchten, starten Sie direkt eine kostenlose Testversion auf dem Novita AI Playground!

deepseek r1 turbo preis

Was ist Function Calling?

Function Calling ist eine leistungsstarke Funktion, die es Large Language Models (LLMs) ermöglicht, auf strukturierte Weise mit externen Systemen und Ihrem Code zu interagieren. Über die reine Textgenerierung hinaus können LLMs mit Function Calling erkennen, wann eine bestimmte Aktion erforderlich ist, die erforderlichen Parameter generieren und reale Aufgaben ausführen. Dadurch werden KI-Modelle dynamischer und praktischer, sodass eine nahtlose Integration mit externen Tools und APIs möglich ist.

Wie funktioniert Function Calling und welche Probleme kann es lösen?

Der Prozess folgt einem einfachen und strukturierten Ablauf:

  1. Der Benutzer sendet eine Anfrage an das LLM.
  2. Das LLM analysiert die Anfrage und entscheidet, ob ein Funktionsaufruf erforderlich ist.
  3. Falls erforderlich, generiert das LLM einen strukturierten JSON-Aufruf an die entsprechende Funktion, einschließlich Funktionsname und Parameter.
  4. Die Anwendung empfängt diesen Aufruf und führt die Funktion aus.
  5. Das Ergebnis wird zurück an das LLM gesendet.
  6. Das LLM verwendet das Ergebnis, um eine endgültige Antwort an den Benutzer zu generieren.

Dieser Zyklus kann sich bei mehrstufigen oder komplexen Aufgaben wiederholen. Werkzeuge (Funktionen) müssen mit Namen, Beschreibungen und JSON-Schemas definiert werden, die ihre Parameter angeben. Für zusätzliche Validierung können Pydantic-Modelle verwendet werden, um Typsicherheit zu erzwingen.

Function Calling erweitert die Fähigkeiten von LLMs und adressiert viele praktische Anwendungsfälle:

  • Datenabruf: Sprachabfragen in API-Aufrufe für Echtzeitdaten umwandeln (z. B. „Was sind meine letzten Bestellungen?“).
  • Aktionsausführung: Bestimmte Aufgaben ausführen (z. B. „Besprechung planen“ löst eine Kalender-API aus).
  • Berechnung: Berechnungen oder Operationen durchführen (z. B. Zinseszins oder statistische Analysen).
  • Datenpipelines: Funktionen für komplexe Workflows verketten (z. B. Daten abrufen → verarbeiten → speichern).
  • UI/UX-Integration: Schnittstellenaktualisierungen wie Kartenmarkierungen oder Diagramme auslösen.
  • Konversationsagenten: Chatbots ermöglichen, APIs für relevante Antworten aufzurufen (z. B. Wetteraktualisierungen).
  • Verarbeitung natürlicher Sprache: Text in strukturierte Daten umwandeln oder Informationen extrahieren (z. B. Sentimentanalyse, Named Entity Recognition).

funktion calling

So verwenden Sie DeepSeek R1 Function Calling über Novita AI

Novita AI hat für jedes LLM Unterstützungsfunktionsbeschreibungen veröffentlicht, die Sie direkt in der Konsole und in der Dokumentation einsehen können.

Wählen Sie Ihr Modell

1. Client initialisieren

Zunächst müssen Sie den Client mit Ihrem Novita-API-Schlüssel initialisieren.

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    # Holen Sie sich den Novita AI API-Schlüssel von: https://novita.ai/settings/key-management.
    api_key="<YOUR Novita AI API Key>",
)

model = "deepseek/deepseek_r1"
  • Definieren der aufzurufenden Funktion

Als Nächstes definieren Sie die Python-Funktion, die das Modell aufrufen kann. In diesem Beispiel ist es eine Funktion zum Abrufen von Wetterinformationen.

# Beispiel-Funktion zum Simulieren des Abrufens von Wetterdaten.
def get_weather(location):
    """Ruft das aktuelle Wetter für einen bestimmten Ort ab."""
    print("Rufe get_weather-Funktion auf mit Ort: ", location)
    # In einer echten Anwendung würden Sie hier eine externe Wetter-API aufrufen.
    # Dies ist ein vereinfachtes Beispiel, das fest codierte Daten zurückgibt.
    return json.dumps({"location": location, "temperature": "60 Grad Fahrenheit"})

2. API-Anfrage mit Tools und Benutzernachricht erstellen

Erstellen Sie nun die API-Anfrage an den Novita-Endpunkt. Diese Anfrage enthält den Parameter tools, der die Funktionen definiert, die das Modell verwenden kann, sowie die Benutzernachricht.

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Wetter eines Ortes abrufen, der Benutzer muss zuerst einen Ort angeben",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "Die Stadt und der Bundesstaat, z. B. San Francisco, CA",
                    }
                },
                "required": ["location"]
            },
        }
    },
]

messages = [
    {
        "role": "user",
        "content": "Wie ist das Wetter in San Francisco?"
    }
]

# Senden Sie die Anfrage und geben Sie die Antwort aus.
response = client.chat.completions.create(
    model=model,
    messages=messages,
    tools=tools,
)

# Bitte überprüfen Sie in der Produktion, ob die Antwort Tool-Aufrufe enthält.
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())

3. Ausgabe

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

4. Mit dem Ergebnis des Funktionsaufrufs antworten und die endgültige Antwort erhalten

Der nächste Schritt besteht darin, den Funktionsaufruf zu verarbeiten, die Funktion get_weather auszuführen und das Ergebnis zurück an das Modell zu senden, um die endgültige Antwort für den Benutzer zu generieren.

# Stellen Sie sicher, dass tool_call aus dem vorherigen Schritt definiert ist
if tool_call:
    # Erweitern Sie den Gesprächsverlauf um die Tool-Call-Nachricht des Assistenten
    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)
        # Führen Sie die Funktion aus und erhalten Sie die Antwort
        function_response = get_weather(
            location=function_args.get("location"))
        # Fügen Sie die Funktionsantwort zu den Nachrichten hinzu
        messages.append(
            {
                "tool_call_id": tool_call.id,
                "role": "tool",
                "content": function_response,
            }
        )

    # Holen Sie sich die endgültige Antwort vom Modell, jetzt mit dem Funktionsergebnis
    answer_response = client.chat.completions.create(
        model=model,
        messages=messages,
        # Hinweis: Fügen Sie den Tools-Parameter hier nicht ein.
    )
    print(answer_response.choices[0].message)

5. Ausgabe

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

Häufig gestellte Fragen

Welche Arten von Funktionen können aufgerufen werden?

Sie können praktisch jede Funktion definieren, die Ihre Anwendung ausführen kann, sodass LLMs mit Datenbanken, APIs und interner Logik interagieren können.

Führt Function Calling den Code tatsächlich aus?

Nein, wenn das LLM beschließt, eine Funktion aufzurufen, gibt es nur ein strukturiertes JSON-Objekt mit dem Funktionsnamen und den erforderlichen Argumenten aus.

Unterstützt DeepSeek R1 Function Calling?

Ja! Novita AI hat DeepSeek R1 Turbo vorgestellt, der 3x Durchsatz und zeitlich begrenzt 20% Rabatt bietet. Darüber hinaus unterstützt diese Version vollständig Function Calling.

Novita AI ist die All-in-One-Cloud-Plattform, die Ihre KI-Ambitionen unterstützt. Integrierte APIs, serverlos, GPU-Instanz – die kostengünstigen Tools, die Sie benötigen. Vermeiden Sie Infrastruktur, starten Sie kostenlos und verwirklichen Sie Ihre KI-Vision.

Empfohlene Lektüre