Skip to content

Commit 3cad06b

Browse files
Merge pull request #531 from MervinPraison/claude/issue-247-20250528_143914
fix: resolve PydanticSchemaGenerationError for List[Any] and BaseModel fields
2 parents ecdcd62 + 5323925 commit 3cad06b

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/praisonai-agents/praisonaiagents/agents/autoagents.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from typing import List, Any, Optional, Dict, Tuple
1212
import logging
1313
import os
14-
from pydantic import BaseModel
14+
from pydantic import BaseModel, ConfigDict
1515
from ..main import display_instruction, display_tool_call, display_interaction, client
1616

1717
# Define Pydantic models for structured output
@@ -22,6 +22,7 @@ class TaskConfig(BaseModel):
2222
tools: List[str]
2323

2424
class AgentConfig(BaseModel):
25+
model_config = ConfigDict(arbitrary_types_allowed=True)
2526
name: str
2627
role: str
2728
goal: str
@@ -30,6 +31,7 @@ class AgentConfig(BaseModel):
3031
tasks: List[TaskConfig]
3132

3233
class AutoAgentsConfig(BaseModel):
34+
model_config = ConfigDict(arbitrary_types_allowed=True)
3335
main_instruction: str
3436
process_type: str
3537
agents: List[AgentConfig]

src/praisonai-agents/praisonaiagents/main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import logging
55
from typing import List, Optional, Dict, Any, Union, Literal, Type
66
from openai import OpenAI
7-
from pydantic import BaseModel
7+
from pydantic import BaseModel, ConfigDict
88
from rich import print
99
from rich.console import Console
1010
from rich.panel import Panel
@@ -365,6 +365,7 @@ class ReflectionOutput(BaseModel):
365365
client = OpenAI(api_key=(os.environ["OPENAI_API_KEY"] if os.environ.get("OPENAI_API_KEY") else "xxxx"))
366366

367367
class TaskOutput(BaseModel):
368+
model_config = ConfigDict(arbitrary_types_allowed=True)
368369
description: str
369370
summary: Optional[str] = None
370371
raw: str

src/praisonai-agents/praisonaiagents/process/process.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import logging
22
import asyncio
33
from typing import Dict, Optional, List, Any, AsyncGenerator
4-
from pydantic import BaseModel
4+
from pydantic import BaseModel, ConfigDict
55
from ..agent.agent import Agent
66
from ..task.task import Task
77
from ..main import display_error, client
88
import csv
99
import os
1010

1111
class LoopItems(BaseModel):
12+
model_config = ConfigDict(arbitrary_types_allowed=True)
1213
items: List[Any]
1314

1415
class Process:

0 commit comments

Comments
 (0)