fix: corregir error de inicialización de pydantic-ai moviendo result_type al método run

This commit is contained in:
Inaki Fernandez
2026-04-25 12:08:49 +02:00
parent 97a975867f
commit 65401b5707
2 changed files with 10 additions and 4 deletions

View File

@@ -10,9 +10,12 @@ class LinkEvaluationResult(BaseModel):
technical_description: str = Field(description="Descripción técnica de máx 150 caracteres.")
evaluation_rationale: str = Field(description="Razonamiento de la decisión.")
# NOTA: En versiones recientes de pydantic-ai, result_type se pasa al ejecutar .run()
# o se define en la configuración del agente según la versión.
# Para máxima compatibilidad, lo definiremos aquí.
curation_agent = Agent(
'google-gla:gemini-2.0-flash-exp',
result_type=LinkEvaluationResult,
system_prompt=(
"Actúas como el Ingeniero Curador Principal de 'nubenetes/awesome-kubernetes'. "
"Tu misión es filtrar recursos de altísima calidad sobre K8s, Agentes de IA, MCP y Cloud Native. "
@@ -26,7 +29,8 @@ async def evaluate_extracted_assets(raw_assets: list[dict]) -> list[dict]:
for asset in raw_assets:
cognitive_prompt = f"Evalúa este candidato:\nURL: {asset['url']}\nContexto: {asset['context']}"
try:
response = await curation_agent.run(cognitive_prompt)
# Pasamos result_type aquí para evitar errores de inicialización
response = await curation_agent.run(cognitive_prompt, result_type=LinkEvaluationResult)
ev = response.data
if ev.is_exceptional_value:
for cat in ev.category_assignments:

View File

@@ -24,7 +24,6 @@ async def fetch_github_trending_k8s() -> str:
explorer_agent = Agent(
'google-gla:gemini-2.0-flash-exp',
result_type=DiscoveryReport,
system_prompt=(
"Descubre las 3 herramientas de Kubernetes más populares y recientes. "
"Usa la herramienta 'fetch_github_trending_k8s'. "
@@ -35,7 +34,10 @@ explorer_agent.tool(fetch_github_trending_k8s)
async def discover_trending_assets() -> list[dict]:
try:
response = await explorer_agent.run("Busca herramientas revolucionarias en el ecosistema.")
response = await explorer_agent.run(
"Busca herramientas revolucionarias en el ecosistema.",
result_type=DiscoveryReport
)
return [dict(res) for res in response.data.new_high_value_resources]
except Exception as e:
print(f"Error en descubrimiento: {str(e)}")