Allgemeine Einführung
PydanticAI ist ein auf Pydantic basierendes Python-Agenten-Framework, das die Entwicklung von generativen KI-Anwendungen vereinfachen soll. Es wurde vom Pydantic-Team entwickelt und unterstützt eine Vielzahl von Modellen (z. B. OpenAI, Gemini, Groq usw.) und bietet typsichere Kontrollfluss- und Agentenkombinationen.PydanticAI gewährleistet die Effizienz und Zuverlässigkeit von generativen KI-Anwendungen durch strukturierte Antwortvalidierung und Streaming-Antworten. Das einzigartige System zur Injektion von Abhängigkeiten erleichtert das Testen und die iterative Entwicklung und integriert Logfire zum Debuggen und Überwachen der Anwendungsleistung.PydanticAI befindet sich derzeit in einer frühen Betaphase und die API kann sich noch ändern.
Funktionsliste
- Unterstützung mehrerer ModelleKompatibel mit OpenAI, Gemini, Groq und vielen anderen generativen KI-Modellen.
- TypensicherheitValidierung strukturierter Antworten mit Pydantic zur Gewährleistung der Datentypsicherheit.
- System zur Einspritzung von AbhängigkeitenBietet typsichere Injektion von Abhängigkeiten für einfache Tests und iterative Entwicklung.
- Streaming-AntwortUnterstützt Streaming Response und Validierung zur Verbesserung der Reaktionsfähigkeit und Zuverlässigkeit von Anwendungen.
- Logfire-Integrationfür das Debugging und die Überwachung der Leistung und des Verhaltens von generativen KI-Anwendungen.
- einfache Schnittstelle: Bieten Sie saubere Schnittstellen für eine einfache Erweiterung und Integration mit anderen Modellen.
Hilfe verwenden
Ablauf der Installation
- Installation von PydanticAIStellen Sie sicher, dass die Python-Version 3.9 oder höher ist und installieren Sie PydanticAI mit dem folgenden Befehl:
pip install pydantic-ai
- Installation von AbhängigkeitenPydanticAI hängt von einer Reihe von Kernbibliotheken und LLM-APIs ab, und diese Abhängigkeiten werden bei der Installation automatisch behandelt.
Richtlinien für die Verwendung
Erstellen eines einfachen Proxys
- Agenten definierenErstellen Sie einen einfachen Agenten und geben Sie das zu verwendende Modell an.
from pydantic_ai import Agent
agent = Agent(
'gemini-1.5-flash', system_prompt='Fassen Sie sich kurz, antworten Sie mit einem Satz.
system_prompt='Fassen Sie sich kurz, antworten Sie mit einem Satz.
)
- Laufende Agenten: Gleichzeitiger Betrieb von Agenten für einfache Dialoge.
result = agent.run_sync('Woher kommt "Hallo Welt"?')
print(ergebnis.daten)
Beispiel für eine komplexe Vollmacht
- Definition von Abhängigkeits- und ErgebnismodellenPydantic: Verwenden Sie Pydantic, um Abhängigkeits- und Ergebnismodelle zu definieren.
from dataclasses import dataclass
from pydantic import BaseModel, Feld
from pydantic_ai importieren Agent, RunContext
from bank_database importieren DatabaseConn
@dataclass
class SupportDependencies: kunden_id: int
kunden_id: int
db: DatabaseConn
class SupportResult(BaseModel): support_advice: str = Field(description='Beratung an den Kunden')
support_advice: str = Field(description='Ratschlag an den Kunden zurückgegeben')
support_advice: str = Field(description='Advice returned to the customer') block_card: bool = Field(description="Whether to block the customer's card")
risk: int = Field(description='Risikostufe der Anfrage', ge=0, le=10)
- Erstellen von Support-AgentenSystemtipps und Nutzenfunktionen definieren.
support_agent = Agent(
'openai:gpt-4o',
deps_type=SupportDependencies, result_type=SupportResult, support_agent = Agent(
deps_type=SupportDependencies, result_type=SupportResult, system_prompt=(
system_prompt=(
'Sie sind ein Support-Agent in unserer Bank, geben Sie dem '
' Kunden unterstützen und den Risikograd ihrer Anfrage beurteilen.'
),
)
@support_agent.system_prompt
async def add_customer_name(ctx: RunContext[SupportDependencies]) -> str.
customer_name = await ctx.deps.db.customer_name(id=ctx.deps.customer_id)
return f "Der Name des Kunden ist {Kundenname!r}"
@support_agent.tool
async def customer_balance(ctx: RunContext[SupportDependencies], include_pending: bool) -> float.
"""Gibt den aktuellen Kontostand des Kunden zurück.""""
return await ctx.deps.db.customer_balance(id=ctx.deps.customer_id, include_pending=include_pending)
- Support Agent ausführenStarten Sie den Agenten mit den definierten Abhängigkeiten.
async def main():
deps = SupportDependencies(customer_id=123, db=DatabaseConn())
result = await support_agent.run('Wie hoch ist mein Kontostand?', deps=deps)
print(result.data)
# Beispielhafte Ausgabe: support_advice='Hallo John, Ihr aktueller Kontostand, einschließlich ausstehender Transaktionen, beträgt $123.45.' block_card=False risk=1
result = await support_agent.run('Ich habe gerade meine Karte verloren!', deps=deps)
print(result.data)
# Beispielhafte Ausgabe: support_advice="Es tut mir leid, das zu hören, John. Ihre Karte wurde aus Sicherheitsgründen gesperrt." block_card=True risk=7
Fehlersuche und Überwachung
PydanticAI integriert Logfire zum Debuggen und Überwachen der Leistung und des Verhaltens von generativen KI-Anwendungen. Mit Logfire können Sie den Agentenbetrieb in Echtzeit anzeigen, Antwortdaten analysieren und die Anwendungsleistung optimieren.
Feedback und Verbesserung
PydanticAI befindet sich derzeit in einer frühen Betaphase und die API kann sich noch ändern. Benutzer sind eingeladen, über GitHub Feedback zu geben, wenn sie während der Nutzung auf Probleme stoßen oder Verbesserungsvorschläge haben.