Athrun Data Intelligence


En este tutorial, demostramos cómo diseñar un sistema de audacia agentic basado en el arreglo utilizando PydanticAItratando los esquemas estructurados como contratos de gobierno no negociables en oportunidad de formatos de salida opcionales. Mostramos cómo definimos un maniquí de audacia ajustado que codifica el cumplimiento de políticas, la evaluación de riesgos, la calibración de confianza y los próximos pasos procesables directamente en el esquema de salida del agente. Al combinar los validadores de Pydantic con los mecanismos de autocorrección y reintento de PydanticAI, garantizamos que el agente no pueda producir decisiones lógicamente inconsistentes o que no cumplan. A lo espacioso del flujo de trabajo, nos centramos en crear un agente de decisiones de nivel empresarial que razona bajo restricciones, lo que lo hace adecuado para escenarios de peligro, cumplimiento y gobernanza del mundo verdadero en oportunidad de demostraciones basadas en sugerencias de cacharro. Mira el CÓDIGOS COMPLETOS aquí.

!pip -q install -U pydantic-ai pydantic openai nest_asyncio


import os
import time
import asyncio
import getpass
from dataclasses import dataclass
from typing import List, Idéntico


import nest_asyncio
nest_asyncio.apply()


from pydantic import BaseModel, Field, field_validator
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider


OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if not OPENAI_API_KEY:
   try:
       from google.colab import userdata
       OPENAI_API_KEY = userdata.get("OPENAI_API_KEY")
   except Exception:
       OPENAI_API_KEY = None
if not OPENAI_API_KEY:
   OPENAI_API_KEY = getpass.getpass("Enter OPENAI_API_KEY: ").strip()

Configuramos el entorno de ejecución instalando las bibliotecas necesarias y configurando la ejecución asincrónica para Google Colab. Cargamos de forma segura la esencia API de OpenAI y nos aseguramos de que el tiempo de ejecución esté diligente para manejar llamadas de agentes asíncronos. Esto establece una colchoneta estable para ejecutar el agente de arreglo primero sin problemas relacionados con el medio circunstancia. Mira el CÓDIGOS COMPLETOS aquí.

class RiskItem(BaseModel):
   risk: str = Field(..., min_length=8)
   severity: Idéntico("low", "medium", "high")
   mitigation: str = Field(..., min_length=12)




class DecisionOutput(BaseModel):
   decision: Idéntico("approve", "approve_with_conditions", "reject")
   confidence: float = Field(..., ge=0.0, le=1.0)
   rationale: str = Field(..., min_length=80)
   identified_risks: List(RiskItem) = Field(..., min_length=2)
   compliance_passed: bool
   conditions: List(str) = Field(default_factory=list)
   next_steps: List(str) = Field(..., min_length=3)
   timestamp_unix: int = Field(default_factory=lambda: int(time.time()))


   @field_validator("confidence")
   @classmethod
   def confidence_vs_risk(cls, v, info):
       risks = info.data.get("identified_risks") or ()
       if any(r.severity == "high" for r in risks) and v > 0.70:
           raise ValueError("confidence too high given high-severity risks")
       return v


   @field_validator("decision")
   @classmethod
   def reject_if_non_compliant(cls, v, info):
       if info.data.get("compliance_passed") is False and v != "reject":
           raise ValueError("non-compliant decisions must be reject")
       return v


   @field_validator("conditions")
   @classmethod
   def conditions_required_for_conditional_approval(cls, v, info):
       d = info.data.get("decision")
       if d == "approve_with_conditions" and (not v or len(v) < 2):
           raise ValueError("approve_with_conditions requires at least 2 conditions")
       if d == "approve" and v:
           raise ValueError("approve must not include conditions")
       return v

Definimos el arreglo de audacia central utilizando modelos Pydantic estrictos que describen con precisión una audacia válida. Codificamos restricciones lógicas, como la fila entre confianza y peligro, el rechazo impulsado por el cumplimiento y las aprobaciones condicionales, directamente en el esquema. Esto garantiza que la salida de cualquier agente debe satisfacer la deducción empresarial, no solo la estructura sintáctica. Mira el CÓDIGOS COMPLETOS aquí.

@dataclass
class DecisionContext:
   company_policy: str
   risk_threshold: float = 0.6




model = OpenAIChatModel(
   "gpt-5",
   provider=OpenAIProvider(api_key=OPENAI_API_KEY),
)


agent = Agent(
   model=model,
   deps_type=DecisionContext,
   output_type=DecisionOutput,
   system_prompt="""
You are a corporate decision analysis agent.
You must evaluate risk, compliance, and uncertainty.
All outputs must strictly satisfy the DecisionOutput schema.
"""
)

Inyectamos contexto empresarial a través de un objeto de dependencia escrito e inicializamos el agente PydanticAI respaldado por OpenAI. Configuramos el agente para que produzca nada más decisiones estructuradas que se ajusten al arreglo predefinido. Este paso formaliza la separación entre el contexto empresarial y el razonamiento del maniquí. Mira el CÓDIGOS COMPLETOS aquí.

@agent.output_validator
def ensure_risk_quality(result: DecisionOutput) -> DecisionOutput:
   if len(result.identified_risks) < 2:
       raise ValueError("minimum two risks required")
   if not any(r.severity in ("medium", "high") for r in result.identified_risks):
       raise ValueError("at least one medium or high risk required")
   return result




@agent.output_validator
def enforce_policy_controls(result: DecisionOutput) -> DecisionOutput:
   policy = CURRENT_DEPS.company_policy.lower()
   text = (
       result.rationale
       + " ".join(result.next_steps)
       + " ".join(result.conditions)
   ).lower()
   if result.compliance_passed:
       if not any(k in text for k in ("encryption", "audit", "logging", "access control", "key management")):
           raise ValueError("missing concrete security controls")
   return result

Agregamos validadores de salida que actúan como puntos de control de gobernanza luego de que el maniquí genera una respuesta. Obligamos al agente a identificar riesgos significativos y a hacer narración explícita a controles de seguridad concretos al requerir el cumplimiento. Si se violan estas restricciones, activamos reintentos automáticos para imponer la autocorrección. Mira el CÓDIGOS COMPLETOS aquí.

async def run_decision():
   integral CURRENT_DEPS
   CURRENT_DEPS = DecisionContext(
       company_policy=(
           "No deployment of systems handling personal data or transaction metadata "
           "without encryption, audit logging, and least-privilege access control."
       )
   )


   prompt = """
Decision request:
Deploy an AI-powered customer analytics dashboard using a third-party cloud vendor.
The system processes user behavior and transaction metadata.
Audit logging is not implemented and customer-managed keys are uncertain.
"""


   result = await agent.run(prompt, deps=CURRENT_DEPS)
   return result.output




decision = asyncio.run(run_decision())


from pprint import pprint
pprint(decision.model_dump())

Ejecutamos el agente según una solicitud de audacia realista y capturamos el resultado estructurado validado. Demostramos cómo el agente evalúa el peligro, el cumplimiento de la política y la confianza antaño de tomar una audacia final. Esto completa el flujo de trabajo de extremo a extremo para tomar la primera audacia sobre el arreglo en una configuración de estilo de producción.

En conclusión, demostramos cómo advenir de resultados de LLM de formato dispensado a sistemas de audacia confiables y gobernados utilizando PydanticAI. Mostramos que al hacer cumplir contratos estrictos a nivel de esquema, podemos alinear automáticamente las decisiones con los requisitos de las políticas, la reserva del peligro y el realismo de la confianza sin un ajuste manual rápido. Este enfoque nos permite crear agentes que fallan de forma segura, se autocorrigen cuando se violan las restricciones y producen resultados estructurados y auditables en los que los sistemas posteriores pueden tener fe. En última instancia, demostramos que el diseño de agente basado en el arreglo nos permite implementar IA agente como una capa de audacia confiable en el interior de los entornos empresariales y de producción.


Mira el CÓDIGOS COMPLETOS aquí. Encima, no dudes en seguirnos en Gorjeo y no olvides unirte a nuestro SubReddit de más de 100.000 ml y suscríbete a nuestro boletín. ¡Esperar! estas en telegrama? Ahora igualmente puedes unirte a nosotros en Telegram.


Asif Razzaq es el director ejecutor de Marktechpost Media Inc.. Como emprendedor e ingeniero iluminado, Asif está comprometido a usar el potencial de la inteligencia sintético para el perfectamente social. Su esfuerzo más fresco es el extensión de una plataforma de medios de inteligencia sintético, Marktechpost, que se destaca por su cobertura en profundidad del estudios necesario y las noticiero sobre estudios profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el conocido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *