Anwendung entwickeln

Ein Beispiel für eine kleine Anwendung, die Sie mit LangChain in Vertex AI erstellen können, ist eine, die den Wechselkurs zwischen zwei Währungen an einem bestimmten Datum zurückgibt. Die folgenden Schritte zeigen, wie Sie diese Anwendung erstellen:

  1. Modell definieren und konfigurieren
  2. Funktion definieren
  3. LangChain-Agent verwenden, um das Modell mit der Funktion zu verbinden
  4. Anwendung testen

Hinweise

Bevor Sie diese Anleitung ausführen, prüfen Sie, ob Ihre Umgebung eingerichtet ist. Führen Sie dazu die Schritte unter Umgebung einrichten aus.

Schritt 1: Modell definieren und konfigurieren

Führen Sie die folgenden Schritte aus, um Ihr Modell zu definieren und zu konfigurieren:

  1. Zum Erstellen Ihrer Anwendung müssen Sie das Modell definieren, das Sie verwenden möchten. Weitere Informationen finden Sie unter Modellversionen und Lebenszyklus. Führen Sie den folgenden Befehl aus, um das multimodale Modell für Gemini 1.0 Pro Vision zu verwenden.

    model = "gemini-1.0-pro"
    
  2. Optional: Sie können die Sicherheitseinstellungen des Modells konfigurieren. Weitere Informationen zu den Optionen, die zum Konfigurieren der Sicherheitseinstellungen in Gemini verfügbar sind, finden Sie unter Sicherheitsattribute konfigurieren.

    Hier ein Beispiel für die Konfiguration der Sicherheitseinstellungen:

    from langchain_google_vertexai import HarmBlockThreshold, HarmCategory
    
    safety_settings = {
        HarmCategory.HARM_CATEGORY_UNSPECIFIED: HarmBlockThreshold.BLOCK_NONE,
        HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_ONLY_HIGH,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
    }
    
  3. (Optional) Sie können die folgenden Modellparameter angeben.

    • Temperatur
    • Maximale Ausgabetokens
    • TopP
    • TopK
    • Sicherheitseinstellungen (Sie müssen Ihre Sicherheitseinstellungen zuerst im vorherigen Schritt erstellen).

    Weitere Informationen zu den Optionen, die für Modellparametereinstellungen in Gemini verfügbar sind, finden Sie unter Modellparameter festlegen. Im Folgenden finden Sie ein Beispiel dafür, wie Sie Modellparameter angeben können:

model_kwargs = {
    # temperature (float): The sampling temperature controls the degree of
    # randomness in token selection.
    "temperature": 0.28,
    # max_output_tokens (int): The token limit determines the maximum amount of
    # text output from one prompt.
    "max_output_tokens": 1000,
    # top_p (float): Tokens are selected from most probable to least until
    # the sum of their probabilities equals the top-p value.
    "top_p": 0.95,
    # top_k (int): The next token is selected from among the top-k most
    # probable tokens.
    "top_k": 40,
    # safety_settings (Dict[HarmCategory, HarmBlockThreshold]): The safety
    # settings to use for generating content.
    "safety_settings": safety_settings,
}

Schritt 2: Python-Funktion definieren

Nachdem Sie Ihr Modell definiert haben, definieren Sie im nächsten Schritt die Tools, die Ihr Modell für Logik verwendet. Ein Tool kann ein LangChain-Tool oder eine Python-Funktion sein. Sie können auch eine definierte Python-Funktion in ein LangChain-Tool konvertieren. Diese Anwendung verwendet eine Funktionsdefinition.

Wenn Sie die Funktion definieren, ist es wichtig, Kommentare anzugeben, die die Parameter der Funktion, die Funktion der Funktion und das, was die Funktion zurückgibt, vollständig und klar beschreiben. Diese Informationen werden vom Modell verwendet, um zu bestimmen, welche Funktion verwendet werden soll. Sie müssen die Funktion auch lokal testen, um zu prüfen, ob sie funktioniert.

Verwenden Sie den folgenden Code, um eine Funktion zu definieren, die einen Wechselkurs zurückgibt:

def get_exchange_rate(
    currency_from: str = "USD",
    currency_to: str = "EUR",
    currency_date: str = "latest",
):
    """Retrieves the exchange rate between two currencies on a specified date.

    Uses the Frankfurter API (http://api.frankfurter.app/) to obtain
    exchange rate data.

    Args:
        currency_from: The base currency (3-letter currency code).
            Defaults to "USD" (US Dollar).
        currency_to: The target currency (3-letter currency code).
            Defaults to "EUR" (Euro).
        currency_date: The date for which to retrieve the exchange rate.
            Defaults to "latest" for the most recent exchange rate data.
            Can be specified in YYYY-MM-DD format for historical rates.

    Returns:
        dict: A dictionary containing the exchange rate information.
            Example: {"amount": 1.0, "base": "USD", "date": "2023-11-24",
                "rates": {"EUR": 0.95534}}
    """
    import requests
    response = requests.get(
        f"http://api.frankfurter.app/{currency_date}",
        params={"from": currency_from, "to": currency_to},
    )
    return response.json()

Führen Sie folgenden Befehl aus, um die Funktion zu testen, bevor Sie sie in Ihrer Anwendung verwenden:

get_exchange_rate(currency_from="USD", currency_to="SEK")

Die Antwort sollte in etwa so aussehen:

{'amount': 1.0, 'base': 'USD', 'date': '2024-02-22', 'rates': {'SEK': 10.3043}}

Schritt 3: LangChain-Orchestrierungsvorlage verwenden

Ein Orchestrierungs-Framework organisiert den Anwendungscode in einer oder mehreren Funktionen, die Anwendungskonfigurationsparameter, Anwendungsinitialisierungslogik und Laufzeitlogik angeben.

Sie können Ihre eigene Python-Klasse definieren (siehe Anwendungsvorlage anpassen) oder die Klasse LangchainAgent im Vertex AI SDK for Python für Ihren Agent verwenden.

Geben Sie zur Verwendung der Klasse LangchainAgent Ihr Modell, die definierte Funktion und die Modellparameter an, um ein LangchainAgent-Objekt zu instanziieren:

agent = reasoning_engines.LangchainAgent(
    model=model,  # Required.
    tools=[get_exchange_rate],  # Optional.
    model_kwargs=model_kwargs,  # Optional.
)

Schritt 4: Anwendung testen

Nachdem Sie Ihre Anwendung erstellt haben, können Sie sie testen. Sie können die Anwendung testen, indem Sie Testabfragen durchführen. Führen Sie den folgenden Befehl aus, um die Anwendung mit US-Dollar und schwedischen Kronen zu testen:

response = agent.query(
    input="What is the exchange rate from US dollars to Swedish currency?"
)

Die Antwort ist ein Wörterbuch, das in etwa so aussieht:

{"input": "What is the exchange rate from US dollars to Swedish currency?",
 # ...
 "output": "For 1 US dollar you will get 10.7345 Swedish Krona."}

Nächste Schritte