from pydantic import BaseModel, Field
from typing import Optional, List
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage
class DeveloperProfile(BaseModel):
name: Optional[str] = Field(None, description="Developer name")
languages: Optional[List[str]] = Field(None, description="Programming languages")
experience_years: Optional[int] = Field(None, description="Years of experience")
preferred_editor: Optional[str] = Field(None, description="Preferred code editor")
storage = SqliteStorage(db_file="developers.db")
memory = Memory(
storage=storage,
session_id="session_001",
user_id="dev_123",
user_analysis_memory=True,
user_profile_schema=DeveloperProfile,
model="openai/gpt-4o"
)
agent = Agent("openai/gpt-4o", memory=memory)
result = agent.do(Task("I'm Alice, I use Python and Go, been coding for 8 years, love VS Code"))
print(result)