1. Einführung in LLMs
Große Sprachmodelle (LLMs) sind die Kernkomponenten von LangChain. LangChain selbst bietet keine großen Sprachmodellfähigkeiten; stattdessen kapselt es verschiedene gängige große Sprachmodelle ein und stellt eine standardisierte Schnittstelle für die Bedienung großer Sprachmodelle bereit, wodurch es für Entwickler bequem ist.
Derzeit kapselt LangChain viele große Sprachmodelle ein und unterstützt auch benutzerdefinierte Modelle. Entwickler können ihre eigenen neuen Modellschnittstellen kapseln.
- Hinweis: Derzeit stehen viele Open-Source- und kommerzielle große Modelle zur Verfügung. Aufgrund der Unterschiede in Kosten und Modellfähigkeiten hat jeder möglicherweise unterschiedliche Präferenzen. Außerdem kann es häufige Modelländerungen geben, und Entwickler möchten möglicherweise bei Änderungen der Modelle nicht zu viel Business-Code modifizieren. Hier kommt der Wert von LangChain zum Tragen.
2. Einrichtung
2.1 Installation
Um das OpenAI LLM in LangChain zu verwenden, müssen Benutzer das OpenAI Python-Paket installieren, indem sie den folgenden Befehl ausführen:
pip install openai
2.2 API-Schlüssel Einrichtung
Der Zugriff auf die OpenAI API erfordert einen API-Schlüssel, der durch die Erstellung eines Kontos auf der OpenAI-Plattform erhalten werden kann. Sobald der API-Schlüssel erhalten ist, kann er als Umgebungsvariable mithilfe des folgenden Befehls festgelegt werden:
export OPENAI_API_KEY="dein-api-schlüssel"
Alternativ können Sie den API-Schlüssel auch direkt beim Initialisieren der OpenAI LLM-Klasse übergeben, falls Sie keine Umgebungsvariable festlegen möchten, wie unten gezeigt:
from langchain_openai import OpenAI
llm = OpenAI(openai_api_key="dein-api-schlüssel")
3. LCEL Implementierung
In LangChain implementieren LLMs das Runnable Interface für die LangChain Expression Language (LCEL). Das bedeutet, dass sie verschiedene Funktionsaufrufe wie invoke
, stream
, batch
und mehr unterstützen.
LLMs akzeptieren Eingaben als Zeichenkette oder als Objekte, die in eine Zeichenkettenprompt umgewandelt werden können, einschließlich List[BaseMessage]
und PromptValue
.
4. Beispiel zur Verwendung von LLM
4.1 Aufruf
Um ein LLM mit einem spezifischen Prompt aufzurufen, kann die Funktion invoke
wie folgt verwendet werden:
llm.invoke("Geben Sie hier einen Prompt für das LLM ein")
4.2 Streaming
Die Methode zur Echtzeitbereitstellung und Verarbeitung von Textausgaben von LLMs wird als Streaming bezeichnet. Hier ist ein Beispiel für die Verwendung von LLM für Streaming-Verarbeitung:
for chunk in llm.stream("Geben Sie hier einen Prompt für das LLM-Streaming ein"):
print(chunk, end="", flush=True)
4.3 Batch-Verarbeitung
Die Stapelverarbeitung ermöglicht die parallele Verarbeitung mehrerer Eingaben für LLMs. Sie können eine Stapel von Prompts so verarbeiten:
llm.batch(["prompt 1", "prompt 2", "prompt 3"])
4.4 Asynchrone Operationen
Für eine bessere Effizienz können asynchrone Operationen in Verbindung mit LLMs verwendet werden. Asynchrone Operationen wie ainvoke
, astream
, abatch
und astream_log
ermöglichen eine asynchrone Ausführung. Hier ist ein Beispiel für die Verwendung von LLM für asynchrone Streaming-Verarbeitung:
async for chunk in llm.astream("Geben Sie hier einen asynchronen Prompt für das LLM-Streaming ein"):
print(chunk, end="", flush=True)
Diese Beispiele zeigen die vielfältigen Möglichkeiten, LLMs für die Verarbeitung natürlicher Sprache innerhalb des LangChain-Frameworks zu nutzen.