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-RessourcenundUmrisse: Generierung strukturierter Textausgaben über reguläre Ausdrücke, JSON oder Pydantic-ModelleundAI-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 LLM-Antwort wie erwartet ausfällt.
- Streaming-UnterstützungEinfacher Umgang mit Listen und Teilantworten.
- Flexibles BackendNahtlose Integration mit mehreren LLM-Anbietern.
- Unterstützung mehrerer SprachenUnterstützung für mehrere Programmiersprachen wie Python, TypeScript, Ruby, Go und Elixir.
Hilfe verwenden
Einbauverfahren
Um Instructor zu installieren, führen Sie einfach den folgenden Befehl aus:
pip install -U instructor
Grundlegende Verwendung
Hier ist ein einfaches Beispiel, das zeigt, wie man mit Instructor strukturierte Daten aus natürlicher Sprache extrahieren kann:
import instructor
from pydantic import BaseModel
from openai import OpenAI
# 定义所需的输出结构
class UserInfo(BaseModel):
name: str
age: int
# 初始化 OpenAI 客户端并与 Instructor 集成
client = instructor.from_openai(OpenAI())
# 从自然语言中提取结构化数据
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "John Doe is 30 years old."}]
)
print(user_info.name) # 输出: John Doe
print(user_info.age) # 输出: 30
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:
import instructor
from openai import OpenAI
from pydantic import BaseModel
class UserInfo(BaseModel):
name: str
age: int
# 初始化 OpenAI 客户端并与 Instructor 集成
client = instructor.from_openai(OpenAI())
# 使用钩子记录交互过程
client.add_hook("before_request", lambda request: print(f"Request: {request}"))
client.add_hook("after_response", lambda response: print(f"Response: {response}"))
# 从自然语言中提取结构化数据
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "Jane Doe is 25 years old."}]
)
print(user_info.name) # 输出: Jane Doe
print(user_info.age) # 输出: 25
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.