User Memory Across Sessions
Whenuser_analysis_memory=True, user profile data persists across sessions:
Copy
import asyncio
from upsonic import Agent, Chat
from upsonic.storage import SqliteStorage
async def main():
storage = SqliteStorage(db_file="chat.db")
agent = Agent("openai/gpt-4o")
chat1 = Chat(
session_id="session1",
user_id="user1",
agent=agent,
storage=storage,
full_session_memory=True,
user_analysis_memory=True
)
await chat1.invoke("I love Python and machine learning")
chat2 = Chat(
session_id="session2",
user_id="user1",
agent=agent,
storage=storage,
full_session_memory=True,
user_analysis_memory=True
)
response = await chat2.invoke("What are my interests?")
print(response)
if __name__ == "__main__":
asyncio.run(main())
Different Users Same Session ID
Different users maintain separate histories even with same session ID:Copy
import asyncio
from upsonic import Agent, Chat
from upsonic.storage import SqliteStorage
async def main():
storage = SqliteStorage(db_file="chat.db")
agent = Agent("openai/gpt-4o")
chat_alice = Chat(
session_id="support",
user_id="alice",
agent=agent,
storage=storage
)
await chat_alice.invoke("I need help with billing")
chat_bob = Chat(
session_id="support",
user_id="bob",
agent=agent,
storage=storage
)
await chat_bob.invoke("I have a technical question")
print(f"Alice messages: {len(chat_alice.all_messages)}")
print(f"Bob messages: {len(chat_bob.all_messages)}")
if __name__ == "__main__":
asyncio.run(main())

