Introdução geral
O PydanticAI é uma estrutura de agente Python baseada no Pydantic, projetada para simplificar o desenvolvimento de aplicativos de IA generativa. Desenvolvido pela equipe da Pydantic, ele oferece suporte a uma ampla variedade de modelos (por exemplo, OpenAI, Gemini, Groq etc.) e fornece combinações de agentes e fluxo de controle com segurança de tipo.O PydanticAI garante a eficiência e a confiabilidade de aplicativos de IA generativa por meio de validação de resposta estruturada e respostas de streaming. Seu sistema exclusivo de injeção de dependência facilita o teste e o desenvolvimento iterativo, e integra o Logfire para depuração e monitoramento do desempenho do aplicativo. O PydanticAI está atualmente na versão beta inicial e a API está sujeita a alterações.
Lista de funções
- Suporte a vários modelosCompatível com OpenAI, Gemini, Groq e muitos outros modelos de IA generativa.
- segurança de tipoValidação de resposta estruturada usando Pydantic para garantir a segurança do tipo de dados.
- Sistema de injeção de dependênciaInjeção de dependência com segurança de tipo: fornece injeção de dependência com segurança de tipo para facilitar os testes e o desenvolvimento iterativo.
- resposta de streamingSuporte à resposta e validação de streaming para melhorar a capacidade de resposta e a confiabilidade dos aplicativos.
- Integração com o Logfirepara depurar e monitorar o desempenho e o comportamento de aplicativos de IA generativa.
- interface simplesFornecimento de interfaces limpas para facilitar a extensão e a integração com outros modelos.
Usando a Ajuda
Processo de instalação
- Instalação do PydanticAIVerifique se a versão do Python é 3.9 ou superior e instale o PydanticAI usando o seguinte comando:
pip install pydantic-ai
- Instalação de dependênciasPydanticAI depende de várias bibliotecas principais e APIs LLM, e essas dependências são tratadas automaticamente durante a instalação.
Diretrizes para uso
Criação de um proxy simples
- Definição de agentesCriar um agente simples e especificar o modelo a ser usado.
from pydantic_ai import Agent
agent = Agent(
'gemini-1.5-flash', system_prompt='Seja conciso, responda com uma frase.
system_prompt='Seja conciso, responda com uma frase.
)
- Agentes de execuçãoExecução simultânea de agentes para um diálogo simples.
result = agent.run_sync('De onde vem o "hello world"?')
print(result.data)
Exemplo de proxy complexo
- Definir modelos de dependência e de resultadosUso do Pydantic para definir modelos de dependência e de resultados.
from dataclasses import dataclass
from pydantic import BaseModel, Field
from pydantic_ai import Agent, RunContext
from bank_database import DatabaseConn
classe de dados
class SupportDependencies: customer_id: int
customer_id: int
db: DatabaseConn
class SupportResult(BaseModel): support_advice: str = Field(description='Advice returned to the customer')
support_advice: str = Field(description='Advice returned to the customer')
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='Nível de risco da consulta', ge=0, le=10)
- Criação de agentes de suporteDefinir dicas de sistema e funções de utilidade.
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=(
'Você é um agente de suporte em nosso banco, dê o '
'suporte ao cliente e julgue o nível de risco de sua consulta'.
),
)
@support_agent.system_prompt
async def add_customer_name(ctx: RunContext[SupportDependencies]) -> str.
nome_do_cliente = await ctx.deps.db.nome_do_cliente(id=ctx.deps.customer_id)
return f "O nome do cliente é {nome_do_cliente!r}"
@support_agent.tool
async def customer_balance(ctx: RunContext[SupportDependencies], include_pending: bool) -> float.
"""Retorna o saldo da conta atual do cliente.""""
return await ctx.deps.db.customer_balance(id=ctx.deps.customer_id, include_pending=include_pending)
- Executar agente de suporteExecute o agente com as dependências definidas.
async def main():
deps = SupportDependencies(customer_id=123, db=DatabaseConn())
result = await support_agent.run('What is my balance?', deps=deps)
print(result.data)
# Exemplo de saída: support_advice='Olá, João, o saldo da sua conta atual, incluindo transações pendentes, é $123.45.' block_card=False risk=1
result = await support_agent.run('Acabei de perder meu cartão!', deps=deps)
print(result.data)
# Exemplo de saída: support_advice="Lamento ouvir isso, John. Seu cartão foi bloqueado por motivos de segurança." block_card=True risk=7
Depuração e monitoramento
O PydanticAI integra o Logfire para depurar e monitorar o desempenho e o comportamento de aplicativos de IA generativa. Com o Logfire, você pode visualizar a operação do agente em tempo real, analisar os dados de resposta e otimizar o desempenho do aplicativo.
Feedback e aprimoramento
O PydanticAI está atualmente na versão beta inicial e a API está sujeita a alterações. Os usuários podem enviar comentários pelo GitHub se encontrarem algum problema ou tiverem sugestões de melhoria durante o uso.