Allgemeine Einführung
Instructor ist eine beliebte Python-Bibliothek, die für die Verarbeitung strukturierter Ausgaben von großen Sprachmodellen (LLMs) entwickelt wurde. Sie basiert auf Pydantic und bietet eine einfache, transparente und benutzerfreundliche API für die Verwaltung von Datenvalidierung, Wiederholungsversuchen und Streaming-Antworten.Instructor wird monatlich über eine Million Mal heruntergeladen und ist in einer Vielzahl von LLM-Workflows weit verbreitet. Die Bibliothek unterstützt mehrere Programmiersprachen, darunter Python, TypeScript, Ruby, Go und Elixir, und lässt sich nahtlos in eine breite Palette von LLM-Anbietern integrieren, die über die Unterstützung von OpenAI hinausgeht.
Empfohlene Lektüre:Strukturierte Datenausgabeverfahren für große Modelle: Eine ausgewählte Liste von LLM JSON-Ressourcen, undGliederungen: erzeugt strukturierte Textausgaben über reguläre Ausdrücke, JSON oder Pydantic-Modelle, undAI-Funktionen: ein (API-)Dienst zur Umwandlung von Eingabeinhalten in strukturierte Ausgaben.
Funktionsliste
- ReaktionsmodellPydantisches Modell: Verwenden Sie das pydantische Modell, um die Struktur der LLM-Ausgabe zu definieren.
- Verwaltung von WiederholungsprüfungenEinfaches Konfigurieren der Anzahl der Wiederholungsversuche für eine Anfrage.
- Validierung der DatenVergewissern Sie sich, dass die Antwort des LLM den Erwartungen entspricht.
- Streaming-UnterstützungEinfacher Umgang mit Listen und Teilantworten.
- Flexibles Back-EndNahtlose Integration mit mehreren LLM-Anbietern.
- Mehrsprachige UnterstützungUnterstützung für mehrere Programmiersprachen wie Python, TypeScript, Ruby, Go und Elixir.
Hilfe verwenden
Ablauf der Installation
Um Instructor zu installieren, führen Sie einfach den folgenden Befehl aus:
pip install -U Ausbilder
Grundlegende Verwendung
Hier ist ein einfaches Beispiel, das zeigt, wie man mit Instructor strukturierte Daten aus natürlicher Sprache extrahieren kann:
importieren Ausbilder
von pydantic importieren BaseModel
von openai importieren OpenAI
# Definieren Sie die gewünschte Ausgabestruktur
class UserInfo(BaseModel).
name: str
Alter: int
# Initialisieren Sie den OpenAI-Client und integrieren Sie ihn in Instructor.
client = instructor.from_openai(OpenAI())
# Extrahieren strukturierter Daten aus der natürlichen Sprache
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "John Doe ist 30 Jahre alt."}]
)
print(user_info.name) # Ausgabe: John Doe
print(user_info.age) # Ausgabe: 30 Jahre alt.
Haken verwenden
Instructor bietet ein leistungsfähiges Hook-System, mit dem Sie verschiedene Phasen des LLM-Interaktionsprozesses abfangen und protokollieren können. Im Folgenden finden Sie ein einfaches Beispiel für die Verwendung von Hooks:
importieren Lehrer
von openai importieren OpenAI
von pydantic import BaseModel
class UserInfo(BaseModel).
name: str
name: str
# Initialisieren Sie den OpenAI-Client und integrieren Sie ihn in Instructor.
client = instructor.from_openai(OpenAI())
# Interaktionen mit Hooks aufzeichnen
client.add_hook("before_request", lambda request: print(f "Anfrage: {request}"))
client.add_hook("after_response", lambda response: print(f "Antwort: {response}"))
# Extrahieren strukturierter Daten aus natürlicher Sprache
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "Jane Doe ist 25 Jahre alt."}]
)
print(user_info.name) # Ausgabe: Jane Doe
print(user_info.age) # Ausgabe: 25 Jahre alt.
Erweiterte Verwendung
Instructor unterstützt auch die Integration mit anderen LLM-Anbietern und bietet flexible Konfigurationsmöglichkeiten. Sie können die Anzahl der Anforderungswiederholungen, die Datenvalidierungsregeln und die Behandlung von Streaming-Antworten nach Bedarf anpassen.