from upsonic import Agent, Task
from pydantic import BaseModel
class AnalysisResult(BaseModel):
summary: str
confidence: float
recommendations: list[str]
# Response format can be set dynamically
def create_analysis_task(analysis_type: str):
if analysis_type == "simple":
return Task(description="Provide a brief summary of AI trends", response_format=str)
elif analysis_type == "detailed":
return Task(description="Provide detailed analysis of AI trends", response_format=AnalysisResult)
else:
return Task(description="Analyze AI trends", response_format=None) # defaults to str
# Create agent
agent = Agent(model="openai/gpt-4o")
# Use dynamic task creation
task = create_analysis_task("detailed")
result = agent.do(task)
print(f"Summary: {result.summary}")
print(f"Confidence: {result.confidence}")