Hintergrund
Die Rohausgabe eines Large Language Model (LLM) besteht in der Regel aus Freiformtext, was die programmatische Verarbeitung erschwert. Die Instructor-Bibliothek wurde speziell für dieses Problem entwickelt, indem sie die anschließende Datenverarbeitung durch eine strukturierte Ausgabe vereinfacht.
Zentrale Lösungen
- Definition von Strukturen nach dem pydantischen ModellBaseModel: Erstellen Sie zunächst eine Klasse, die von BaseModel erbt, und definieren Sie explizit die Felder und Ausgabetypen, die Sie erwarten
- Integrierter LLM-Kunde: Hinzufügen strukturierter Verarbeitungsmöglichkeiten durch Umhüllung des Standardclients mittels constructor.from_openai()
- Geben Sie den Parameter response_model an: Übergeben Sie Ihre definierte Modellklasse in den API-Aufruf und lassen Sie LLM die Daten in diesem Format zurückgeben
- automatisierte VerifikationInstructor prüft automatisch, ob die zurückgegebenen Daten mit der Modelldefinition übereinstimmen und stellt sicher, dass der Typ korrekt ist.
Abhilfe
- Für komplexe verschachtelte Strukturen können Sie die Funktion "Verschachtelte Modelle" von Pydantic verwenden
- Wenn einige Felder leer sein können, können Sie die Anmerkung Optional type verwenden
- Für spezielle Datenformate kann der benutzerdefinierte Validator von Pydantic verwendet werden
Mitnahmeeffekt
Die Verwendung der Instructor-Bibliothek und des pydantischen Modells löst nicht nur das Problem der verwirrenden Ausgabe, sondern erkennt auch Formatierungsfehler in einem frühen Stadium der Daten, wodurch sich der Schwierigkeitsgrad der nachfolgenden Verarbeitung drastisch verringert.
Diese Antwort stammt aus dem ArtikelInstructor: eine Python-Bibliothek zur Vereinfachung strukturierter Arbeitsabläufe für große SprachmodelleDie































