Heim >Technologie-Peripheriegeräte >KI >Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Jennifer Aniston
Jennifer AnistonOriginal
2025-03-14 09:21:10217Durchsuche

In der sich schnell entwickelnden Landschaft der Softwareentwicklung hat die Schnittstelle künstlicher Intelligenz, Datenvalidierung und Datenbankmanagement beispiellose Möglichkeiten eröffnet. In diesem Blog-Beitrag wird in einem innovativen Ansatz zur Erläuterung von SQL-Code-Generation und SQL-Code unter Verwendung des neuesten Pydanticai-Frameworks und des Gemini-1.5-Modells von Google untersucht.

Für Entwickler, Datenwissenschaftler und Datenanalysten bietet diese Exploration einen Einblick in die Zukunft der intelligenten Codegenerierung aus der Verarbeitung natürlicher Sprache, bei der komplexe Datenbankabfragen mit Leichtigkeit und Genauigkeit erstellt werden können.

Lernziele

  • Verstehen Sie die Grundlagen von Pydantic und Pydanticai.
  • Erfahren Sie, wie Sie ein KI-angetanter SQL-Code-Generierungssystem implementieren.
  • Erforschen Sie die Fähigkeiten von Gemini-1.5-Flash in der natürlichen Sprache für die SQL-Übersetzung.
  • Gewinnen Sie Einblick in den Aufbau intelligenter KI -Agenten für Datenbankinteraktionen.

Dieser Artikel wurde als Teil des Data Science -Blogathons veröffentlicht.

Inhaltsverzeichnis

  • Was ist Pydanticai?
  • Beispiele für Pydanticai in Aktion
  • Was ist ein AI -Agent?
  • Was ist Agenten -Workflow?
  • Moderne Verwendung von AI -Agenten und agenten -Workflows
  • Was ist der pydantische Rahmen?
  • Erste Schritte mit Ihrem Projekt
  • Schritt-für-Schritt-Anleitung zur Implementierung Ihres Projekts
  • Abschluss
  • Häufig gestellte Fragen

Was ist Pydanticai?

Pydanticai ist eine leistungsstarke Python -Bibliothek, die die Datenvalidierung und Typprüfung revolutioniert. Es bietet einen deklarativen Ansatz zur Definition von Datenmodellen und erleichtert es, komplexe Datenstrukturen zu erstellen und zu validieren.

Wichtige Merkmale von Pydantic sind:

Anpassung

  • Validiert eine Vielzahl von Datentypen, einschließlich primitiver Typen und komplexen verschachtelten Strukturen.
  • Unterstützt fast jedes Python -Objekt für Validierung und Serialisierung

Flexibilität

Ermöglicht die Steuerung der Datenvalidierung Strenge:

  • Kohlen Daten zum erwarteten Typ
  • Durchsetzen

Serialisierung

  • Unterstützen Sie nahtlose Konvertierung zwischen pydantischem Objekt, Wörterbuch und JSON.
  • Ermöglicht die Selbstdokumentation von APIs und Kompatibilität mit Tools, die JSON-Schema verwenden.

Leistung

  • Die Kernvalidierungslogik wird in Rost für außergewöhnliche Geschwindigkeit und Effizienz geschrieben.
  • Ideal für Hochdurchsatzanwendungen wie skalierbare REST-APIs.

Ökosystem

  • Weit verbreitete in beliebten Python -Bibliotheken wie Fastapi, Langchain, Llamaindex und vielem mehr.
  • Moderne Agentic LLM kann nicht ohne pydantisch implementiert werden.

Beispiele für Pydanticai in Aktion

Pydanticai vereinfacht die Datenvalidierung und die Typ-Überprüfung in Python und macht es zu einem leistungsstarken Tool zum Erstellen robuster Datenmodelle. Lassen Sie uns einige praktische Beispiele untersuchen, die seine Fähigkeiten zeigen.

Grundlegende Datenvalidierung

 vom pydantischen Import -Basemodel


Klassenbenutzer (Basemodel):
    Name: str
    Alter: int


# Gültige Daten
user = user (name = "alice", Alter = 30)
Druck (Benutzer)

print ("==================================="))
# Ungültige Daten (Alter ist eine Zeichenfolge)
versuchen:
    user = user (name = "alice", ay "dreißig")
außer Ausnahme als E:
    Druck (e)

Der obige Code definiert ein Benutzermodell unter Verwendung von Pydantics Basemodel und setzt den Namen als Zeichenfolge und Alter als Ganzzahl durch. Es validiert korrekte Daten, erhöht jedoch einen Validierungsfehler, wenn ungültige Daten (eine Zeichenfolge für das Alter) bereitgestellt werden.

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Automatik -Zwang

 vom pydantischen Import -Basemodel
Klassenprodukt (Basemodel):
    Preis: Float
    Menge: int

# Daten mit nicht übereinstimmenden Typen
Produkt = Produkt (Preis = "19,99", Quantity = "5")
Druck (Produkt)

print (type (product.price))
print (type (product.quantity))

Hier das Produktmodell mit Preis als Schwimmer und Menge als Ganzzahl. Pydantic zweckt automatisch die String -Eingänge („19,99“ und „5“) in die richtigen Typen (Float und INT) und demonstrieren seine Art Conversion -Funktion.

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Verschachteltes Modell

 vom pydantischen Import -Basemodel
Klassenadresse (Basemodel):
    Straße: str
    Stadt: str
Klassenbenutzer (Basemodel):
    Name: str
    Adresse: Adresse

# Gültige Daten
user = user (name = "bob", adress = {"street": "123 main st", "Stadt": "Wunderland"})
Druck (Benutzer)

# Zugriff verschachtelte Attribute
print (user.address.city)

Hier definieren wir ein verschachteltes Benutzermodell , das ein Adressmodell enthält. Pydantic ermöglicht eine verschachtelte Validierung und automatische Wörterbücher in Modelle. Gültige Daten initialisiert ein Benutzerobjekt und Sie können direkt auf verschriebene Attribute wie ' user.address.city' zugreifen.

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Validierung mit benutzerdefinierter Regel

 vom pydantischen Import -Basemodel, Feld, Field_validator

Klassenbenutzer (Basemodel):
    Name: str
    Alter: int = field (..., gt = 0, Beschreibung = "Alter muss größer als Null sein")

    @field_validator ("Name")
    Def name_must_be_non_empty (cls, Wert):
        wenn nicht value.strip ():
            ValueError erhöhen ("Name kann nicht leer sein")
        Rückgabewert

# Gültige Daten
user = user (name = "charlie", Alter = 25)
Druck (Benutzer)

# Ungültige Daten
versuchen:
    user = user (name = "", Alter = -5)
außer Ausnahme als E:
    Druck (e)

Hier definieren wir ein Benutzermodell mit einer Validierungsregel, das Alter muss größer als 0 sein, und der Name kann nicht leer sein (über die Methode name_must_be_non_empy validiert). Gültige Daten erstellen eine Benutzerinstanz , während ungültige Daten (leerer Name oder negatives Alter) detaillierte Validierungsfehler hervorrufen und die Validierungsfunktionen von Pydantic demonstrieren.

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Dies sind einige der zentralen Beispiele für Pydantic. Ich hoffe, sie helfen Ihnen, das Grundprinzip der Datenvalidierung zu verstehen.

Was ist ein AI -Agent?

KI -Agenten sind intelligente Systeme, die autonom auf Aufgaben ausführen, Entscheidungen treffen und mit ihrer Umgebung interagieren, um spezifische Ziele zu erreichen. Diese Agenten sind nicht neu, aber die jüngste schnelle Entwicklung in der generativen KI, und die Kombination mit Agenten macht die Agentensoftwareentwicklung in der neuen Ära. Jetzt können Agenten Eingaben verarbeiten, Aktionen ausführen und sich dynamisch anpassen. Ihr Verhalten ahmt das menschliche Problemlösung nach und ermöglicht es ihnen, in verschiedenen Bereichen mit minimaler menschlicher Intervention zu funktionieren.

Was ist Agenten -Workflow?

Ein agierischer Workflow bezieht sich auf die Strukturen, zielgerichtete Abfolge von Aufgaben, die von einem oder mehreren KI-Agenten verwaltet und ausgeführt werden. Unline-starres traditioneller Workflow, Agenten-Workflow zeigt Anpassungsfähigkeit, Autonomie und Kontextbewusstsein. KI -Agenten in diesen Workflows können unabhängig voneinander Entscheidungen treffen, Unteraufgaben delegieren und aus Feedback lernen, was zu effizienten und optimierten Ergebnissen führt.

Moderne Verwendung von AI -Agenten und agenten -Workflows

Die Integration von AI-Agenten und Agenten-Workflows hat die Branche revolutioniert, indem komplexe Aufgaben automatisiert, die Entscheidungsfindung verbessert und die Effizienz vorgestellt werden. Diese intelligenten Systeme passen sich dynamisch an und ermöglichen in verschiedenen Bereichen intelligentere Lösungen.

Geschäftsautomatisierung

AI -Agenten automatisieren sich wiederholende Aufgaben wie den Kundensupport über Chatbots, E -Mail -Management und Verkaufspipeline -Optimierung. Sie verbessern die Produktivität, indem sie die Humanressourcen aus höherwertigen Aufgaben befreien.

Softwareentwicklung

AI-betriebene Wirkstoffe beschleunigen die Software-Lebenszyklen, indem sie Code generieren, testen und debuggen, wodurch die Entwicklungszeit und das menschliche Fehler verkürzt werden.

Gesundheitspflege

KI -Agenten unterstützen die medizinische Diagnose, die Überwachung der Patienten und die Personalisierung der Behandlung, die Verbesserung der Gesundheitsversorgung und die betriebliche Effizienz.

Finanzen

Agenten-Arbeitsabläufe in Finanzsystemen automatisieren Betrugserkennung, Risikobewertungen und Investitionsanalysen und ermöglichen eine schnellere und zuverlässigere Entscheidungsfindung.

E-Commerce

Intelligenzagenturen verbessern die Personalisierung in Einkaufserlebnissen, optimieren Produktempfehlungen und den Kundendienst.

Der Aufstieg von AI -Agenten und Agenten -Workflows bedeutet eine Verschiebung zu hoch autonomen Systemen, die komplexe Prozesse verwalten können. Ihre Anpassungsfähigkeit und Lernfähigkeiten machen sie für moderne Branchen, die Innovationen, Skalierbarkeit und Effizienz in allen Bereichen vorantreiben, unverzichtbar. Während sich die KI weiterentwickelt, werden sich KI -Agenten weiter in unsere täglichen Workflows integrieren und die Art und Weise verändern, wie Aufgaben verwaltet und ausgeführt werden.

Was ist der pydantische Rahmen?

Pydanticai ist ein Python-Agent-Framework, das vom Schöpfer von Pydantic entwickelt wurde, Fastapi, um die Konstruktion von Anwendungen für Produktionsqualität unter Verwendung generativer KI zu optimieren.

Die wichtigsten Merkmale Pydanticai umfassen:

  • Model-Agnostic-Unterstützung: Pydanticai ist mit verschiedenen Modellen kompatibel, darunter OpenAI, Antropic, Gemini, GRAQ, Mistral und Ollama, mit einer einfachen Schnittstelle, um zusätzliche Modelle zu integrieren.
  • Typ-Safety: Pydanticai nutzt Pythons Typsysteme und Pydantics Validierungen und sorgt für eine robuste und skalierbare Entwicklung der Agenten.
  • Abhängigkeitsinjektionssystem: Es führt einen neuartigen Mechanismus für Ty-Safe-Abhängigkeitsinjektionsmechanismus ein, der die Tests und Bewertungsentwicklung verbessert.
  • Strukturierte Antwortvalidierung: Die Verwendung von Pydantics Validierungsfunktionen sorgt für genaue und zuverlässige Strukturantworten.
  • LogFire-Integration: bietet Integration mit pydantischem Logfire für eine verbesserte Debugging und Überwachung von LLM-Antriebsanwendungen.

Hier ist ein minimales Beispiel für Pydanticai:

 OS importieren
vom Pydantic_ai Importagenten
von pydantic_ai.models.gemini Import Geminimodel
aus dotenv import load_dotenv

load_dotenv ()

gemini_api_key = os.getenv ("<google_api_key>")

Modell = Geminimodel (
    "Gemini-1.5-Flash",
    api_key = gemini_api_key,
)

Agent = Agent (
    Modell = Modell,
    System_prompt = "Sei präzise, ​​antworte mit einem Satz.",
)

result = Agent.run_sync ('Woher kommt "Hallo Welt"?')
drucken (Ergebnis.Data)</google_api_key>

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Jetzt ist es Zeit, echte Sachen zu machen. Wir werden eine Postgres -SQL -Abfragegenerierung mit dem Pydanticai Agent Framework erstellen.

Erste Schritte mit Ihrem Projekt

Legen Sie die Grundlage für Ihr Projekt mit einer Schritt-für-Schritt-Anleitung zum Einrichten der wichtigsten Tools und der Umgebung.

Umgebung festlegen

Wir werden eine Conda -Umgebung für das Projekt schaffen.

 #create eine env
$ conda create -name sql_gen python = 3.12

# Aktivieren Sie die Env
$ conda aktivieren sql_gen

Erstellen Sie nun einen Projektordner

 # Erstellen Sie einen Ordner
$ mkdir SQL_CODE_GEN
# In den Ordner wechseln
$ CD SQL_CODE_GEN

Installieren Sie Postgres und laden Sie die Datenbank

Um die Postgres, PSQL-Command-Tools und PGADMIN-4 zu installieren, laden Sie Ihr Installationsprogramm für Ihre Systeme für Ihre Systeme und installieren Sie alle Tools auf einmal.

Laden Sie nun die DVDRental -Datenbank von Hereand herunter, um sie in Postgres zu laden. Befolgen Sie diese Schritte

STEP1: Öffnen Sie Ihr Terminal

 psql -u postgres

# Es wird nach einem Passwort gefragt

Schritt 2: Erstellen Sie eine Datenbank

 # In der postgres =##

Datenbank erstellen DVDrental;

Schritt 3: Befehl für Terminal

Beenden Sie nun den Befehl PSQL und geben Sie dann das Terminal ein

 pg_restore -U postgres -d dvdrental d: /sampledb/postgres/dvdrental.tar

Schritt 4: Verbinde mit PSQL

Stellen Sie nun eine Verbindung zum PSQL her und überprüfen Sie, ob Ihre Datenbank geladen ist oder nicht.

 psql -u postgres

# Verbinden Sie sich mit DVDrental
\ c dvdrental

# Lassen Sie uns die Tische sehen

\ dt

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Wenn Sie die oben genannten Tabellen sehen, sind Sie in Ordnung. Wir sind bereit, unser Hauptprojekt zu starten.

Installieren Sie nun die erforderlichen Python -Bibliotheken in der SQL_Gen Conda Env.

 conda aktivieren sql_gen

# Bibliotheken installieren
PIP Installation Pydantic Asyncpg Asyncio Pydantic-Ai 

PIP Installieren Sie Python-dotenv fastapi Google-Generativeai

PIP Installieren Sie Devtools Annotated-Typ-Typ-Ausdehnungen

Projektstruktur

Unser Projekt enthält 4 Dateien, nämlich Haupt-, Modelle, Service und Schema.

 sql_query_gen/
|
|--main.py
|-models.py
|--schema.py
|-service.py
|-.v
| --__ init__.py
|-. Gitignore

Schritt-für-Schritt-Anleitung zur Implementierung Ihres Projekts

Tauchen Sie in die detaillierten Schritte und praktischen Techniken ein, um Ihr Projekt mit diesem umfassenden Implementierungshandbuch vom Konzept zur Realität zu bringen.

Pydantische Modelle

Wir werden zunächst Datenmodelle in der Datei models.py erstellen

 aus DataClasses importieren Sie DataClass
Aus dem Annotierten der Einfuhr des Imports
asyncpg importieren
aus Annotatatated_types import minlen
aus pydantischem Import -Basemodel, Feld

@dataclass
Klassen -DEPs:
    Conn: Asyncpg.Connection

Klassenerfolg (Basemodel):
    SQL_Query: Annotated [STR, Minlen (1)]
    Erläuterung: STR = Field ("", Beschreibung = "Erläuterung der SQL -Abfrage als Markdown")

Klasse InvalyRequest (Basemodel):
    ERROR_MESSAGE: STR

Im obigen Code,

  • Die DEPS -Klasse verwaltet Datenbankverbindungsabhängigkeiten. @Dataclass generiert automatisch spezielle Methoden wie __init__ und __Repr__. Conn wird als "asyncpg.Connection" tippt und stellt eine aktive PostgreSQL -Verbindung dar. Dieses Design folgt Abhängigkeitsinjektionsmustern, wodurch der Code nachweisbarer und wartbarer wird.
  • Die Erfolgsklasse stellt eine erfolgreiche SQL-Query-Generation dar . Die Erklärung ist ein optionales Feld mit einer Standard -Leerzeichenfolge.
  • Die InvalidRequest-Klasse ist das Fehlerantwortmodell, das fehlgeschlagene SQL-Query-Generierungsversuche darstellt.

Dieser Code legte die Grundlage für die Datenbankverbindungsverwaltung, die Eingabevalidierung, die strukturierte Reaktionsbearbeitung und die Fehlerbehandlung fest.

Servicemodul

Jetzt werden wir die Pydanticai -Dienste für die SQL -Generation im Servicemodul implementieren.

Bibliothek und Konfiguration importieren

 OS importieren
Aus der Typisierung von Import Gewerkschaft
aus dotenv import load_dotenv
asyncpg importieren
Aus typing_extensions importieren typealias
von Pydantic_ai Importagenten, ModellRetry, Runcontext
von pydantic_ai.models.gemini Import Geminimodel
Aus dem Schema importieren DB_SCHEMA
aus Modellen importieren DEPs, Erfolg, InvalidRequest

Um zu konfigurieren, erstellen Sie eine .env -Datei im Projektroot und geben Sie dort Ihren Gemini -API -Schlüssel ein

 # .env

Gemini_api_key = "asgfhkdhjy457gthjhajbsd"

Dann in der Datei service.py:

 load_dotenv ()

gemini_api_key = os.getenv ("google_api_key")

Es wird die Google -API -Taste aus dem `geladen. Env `Datei.

Modell und Agent erstellen

 Antwort: typealias = Union [Erfolg, InvalyRequest]

Modell = Geminimodel (
    "Gemini-1.5-Flash",
    api_key = gemini_api_key,
)

Agent = Agent (
    Modell,
    result_type = Antwort, # Typ: Ignorieren
    DEPS_TYPE = DEPS,
)
  • Definieren Sie zuerst einen Antworttyp, der entweder Erfolg oder InvalyRequest sein kann
  • Initialisiert das Gemini 1.5 -Flash -Modell mit API -Schlüssel
  • Erstellen Sie einen Pydanticai -Agenten mit den angegebenen Antwort- und Abhängigkeitstypen

System -Eingabeaufforderung Definition

Jetzt definieren wir die Systemaufforderung für unsere SQL -Abfragegenerierung.

 @Agent.System_prompt
Async def system_prompt () -> str:
    kehren Sie f "" \ zurück

Angesichts der folgenden PostgreSQL -Tabelle der Datensätze ist Ihre Aufgabe zu
Schreiben Sie eine SQL -Abfrage, die zur Anfrage des Benutzers passt.

Datenbankschema:
{Db_schema}

Beispiel
    Anfrage: Finden Sie alle Filme mit einem Mietpreis von mehr als 4,00 USD und einer Bewertung von 'PG'
    Antwort: Wählen Sie Titel, Rent_rate aus
    Aus dem Film
    Wobei Rental_Rate> 4.00 und Bewertung = 'pg';
Beispiel
    Anfrage: Finden Sie die Filme mit der längsten Länge
    Antwort: Wählen Sie Titel, Länge aus
    Aus dem Film
    Wobei Länge = (maximal (Länge) aus dem Film auswählen);
Beispiel
    Anfrage: Finden Sie die durchschnittliche Mietdauer für Filme in jeder Kategorie
    Antwort: Wählen Sie C.Name, AVG (f.rental_duration) als durchschnitt_rental_duration
    Aus Kategorie c
    Schließen Sie Film_Category FC unter category_id = fc.category_id bei
    Treten Sie Film F auf fc.film_id = f.film_id bei
    Gruppe von C.Name
    Bestellung nach durchschnittlich_rental_duration desc;
"" "

Hier definieren wir den Basiskontext für das KI -Modell und geben Beispiele an, um die Antworten des Modells zu leiten. Wir nehmen auch die Datenbankschema -Informationen in das Modell ein, damit das Modell das Schema analysieren und eine bessere Antwort generieren kann.

Antwortvalidierung

Um die Antwort aus dem KI-Modell fehlerfrei und bis zu den Projektanforderungen zu vermitteln, validieren wir nur die Antworten.

 @Agent.Result_validator
Async def validate_result (CTX: RunContext [DEPS], Ergebnis: Antwort) -> Antwort:
    Wenn is inviert (Ergebnis, InvalyRequest):
        Rückgabeergebnis

    # Gemini fügt SQL oft Extraneos -Gegenreaktionen hinzu
    result.sql_query = result.sql_query.replace ("\\", "")
    wenn nicht result.sql_query.upper (). startswith ("select"):
        ModellRetry erhöhen ("Bitte erstellen Sie eine Auswahlabfrage")

    versuchen:
        Warten Sie ctx.deps.conn.execute (f "Erklären {result.sql_query}")
    Außer asyncpg.exceptions.postgresError als e:
        modelRetry (f "ungültig SQL: {e}") aus e
    anders:
        Rückgabeergebnis

Hier validieren und verarbeiten wir die generierten SQL -Abfragen

Schlüsselvalidierungsschritte:

  • Gibt sofort zurück, wenn das Ergebnis ein InvalyRequeste ist, die zusätzlichen Backslashes beseitigen
  • Stellen Sie sicher, dass die Abfrage eine ausgewählte Anweisung ist
  • Validiert die SQL -Syntax mit PostgreSQL Erklärung
  • ModellRetry für ungültige Abfragen erhöhen

Datenbankschema

Um Ihr Datenbankschema zu erhalten, öffnen Sie die von Ihnen während des Postgres-Setups installierte PGADMIN4, wenden Sie sich zur Datenbank " DVDRENTULAL" , klicken Sie mit der rechten Maustaste darauf und klicken Sie auf " ERD für Datenbank ".
Sie erhalten das folgende ERD -Diagramm und erzeugen jetzt SQL aus dem ERD (siehe runde schwarze Markierung auf dem Bild).

Kopieren Sie das Schema in das Schema.py -Modul:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

 # schema.py
Db_schema = "" ""
BEGINNEN;


Erstellen Sie eine Tabelle, wenn nicht öffentlich.Actor existiert
(
    Actor_id Serial nicht null,
    First_Name -Zeichen variiert (45) sammeln pg_catalog. "Standard" nicht null,
    Last_name -Zeichen variiert (45) sammeln pg_catalog. "Standard" nicht null,
    Last_update Timestamp ohne Zeitzone nicht null Standard (),
    Einschränkung Actor_Pkey Primärschlüssel (Actor_id)
);
.
.
.
  
.
.
.
"" "

Der obige Codeblock ist stark abgeschnitten , um den vollständigen Code zu erhalten. Bitte besuchen Sie das Projektrepo.

Nun, da alle notwendigen Module abgeschlossen wurden, Zeit für die Implementierung der Hauptmethode und des Tests.

Main implementieren

Wir werden die Hauptfunktionsdefinition und die schnelle Handhabung durchführen.

 Asyncio importieren
OS importieren
Importsystem
Aus der Typisierung von Import Gewerkschaft
aus dotenv import load_dotenv
asyncpg importieren
aus Devtools Import Debugug
Aus typing_extensions importieren typealias
vom Pydantic_ai Importagenten
von pydantic_ai.models.gemini Import Geminimodel
aus Modellen importieren DEPs, Erfolg, InvalidRequest

load_dotenv ()

gemini_api_key = os.getenv ("google_api_key")


Antwort: typealias = Union [Erfolg, InvalyRequest]

Modell = Geminimodel (
    "Gemini-1.5-Flash",
    api_key = gemini_api_key,
)

Agent = Agent (
    Modell,
    result_type = Antwort, # Typ: Ignorieren
    DEPS_TYPE = DEPS,
)


Async def Main ():
    Wenn Len (sys.argv) == 1:
        fordert = "Bitte eine Auswahlabfrage erstellen"
    anders:
        Eingabeaufforderung = sys.argv [1]

    # Verbindung zur Datenbank
    conn = erwarten asyncpg.connect (
        user = "postgres",
        Passwort = "Avizyt",
        Host = "localhost",
        Port = 5432,
        Database = "DVDRENTAL",
    )
    versuchen:
        DEPs = DEPs (conn)
        result = act Agent.run (Eingabeaufforderung, DEPS = DEPS)
        result = debug (result.data)
        print ("========== Ihre Abfrage ========"))
        print (debug (result.sql_query))
        print ("========== Erläuterung ========"))
        print (debug (result.explanation))

    Endlich:
        warten conn.close ()


Wenn __name__ == "__main__":
    asyncio.run (main ())

Definieren Sie hier zunächst eine asynchrone Hauptfunktion und überprüfen Sie das Befehlszeilenargument für Client-Abfrage. Wenn keine Argumente bereitgestellt werden, verwenden Sie die Standardaufforderung.

Anschließend setzen wir die Postgres -Verbindungsparameter für eine Verbindung mit dem DVDRENTION -Datenbankdienst.

Erstellen Sie im Try -Block eine DEPS -Instanz mit einer Datenbankverbindung, führen Sie die AI -Agenten mit der Eingabeaufforderung aus und verarbeiten die Ergebnisse mithilfe der Debug -Funktion ( PIP -Installation Devtools ). Druckt dann die formatierte Ausgabe einschließlich der generierten SQL -Abfrage und Erläuterung der Abfrage. Danach haben wir schließlich die Datenbankverbindung geschlossen.

Führen Sie nun das Hauptmodul wie unten aus:

 # im Terminal
Python main.py "Holen Sie sich die Gesamtzahl der Vermietungen für jeden Kunden"

Ausgabe:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Nach dem Testen der SQL -Abfrage im Pgadmin4:

Bauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen

Wow! Es funktioniert wie wir wollen. Testen Sie weitere Fragen wie diese und genießen Sie das Lernen.

Abschluss

Dieses Projekt stellt einen wesentlichen Schritt weiter, um Datenbankinteraktionen intuitiver und zugänglicher zu gestalten. Durch die Kombination der Kraft von KI mit robusten Software-Engineering-Prinzipien haben wir ein Tool erstellt, das nicht nur SQL-Abfragen generiert, sondern dies auf eine sichere, lehrreiche und praktische Verwendung für die reale Verwendung ist.

Der Erfolg dieser Implementierung zeigt das Potenzial für KI, herkömmliche Datenbankvorgänge zu verbessern, anstatt ersetzt und ein wertvolles Instrument sowohl für Lernen als auch für die Produktivität bietet.

Project Repo - Alle in diesem Projekt verwendeten Code finden Sie hier.

Key Takeaways

  • Pydanticai ermöglicht eine intelligente, kontextbezogene Codegenerierung.
  • Gemini-1.5-Flash bietet ein erweitertes Verständnis für die natürliche Sprache für technische Aufgaben.
  • AI -Agenten können die Interaktion mit Datenbanken verändern und Code generieren.
  • Eine robuste Validierung ist in Co-generierten Codesystemen von entscheidender Bedeutung.

Häufig gestellte Fragen

Q 1. Was ist der Vorteil von Pydanticai für die SQL -Generation?

A. Pydanticai bietet Typ-Safe, validierte Codegenerierung mit integrierter Fehlerprüfung und kontextbezogenem Verständnis.

Q 2. Wie trägt Gemini-1.5-Flash zum Projekt bei?

A. Gemini -Modell bietet eine erweiterte Verarbeitung natürlicher Sprache und übersetzt komplexe menschliche Abfragen in präzise SQL -Anweisungen.

F 3. Kann dieses Projekt auf andere AI -Anwendungen ausgedehnt werden?

A. Absolut! Die Architektur kann für die Codegenerierung, die Datenumwandlung und die intelligente Automatisierung in verschiedenen Bereichen angepasst werden.

Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Das obige ist der detaillierte Inhalt vonBauen Sie LLM-Anträge auf Produktionsstörungen mit Pydanticai-Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn