graph TD
%% Frontend / UI Layer
subgraph UI ["Streamlit Frontend (app.py)"]
UserInput[User enters Message]
Auth{Auth Check}
UIPages[Page Navigation: Chat / Memory / Settings]
DisplayResponse[Display Text + Images + Download Buttons]
end
%% Agent Logic Layer
subgraph Agent ["LangGraph Workflow (agent.py)"]
direction TB
NodeStart((Start)) --> Retrieve[Retrieve Context]
Retrieve --> DecideSearch{Decide Search}
DecideSearch -- "Search Needed" --> WebSearch[Perform Web Search]
DecideSearch -- "No Search" --> Generate
WebSearch --> Generate[Generate Response]
Generate --> NodeEnd((End))
end
%% Data / Knowledge Layer
subgraph Storage ["Knowledge & Configuration"]
StoryMD[story.md: Background Story]
DataXLSX[data.xlsx: Image Metadata]
ImageDir[image/: Local Photos]
Supabase[(Supabase: Persistent Memory/Plans)]
Config[config.py: LLM Providers & API Keys]
end
%% External Services
subgraph External ["External Services"]
LLM[LLM APIs: Gemini/Minimax/OpenRouter]
SearchEngines[Tavily / DuckDuckGo]
end
%% Direct Connections
UserInput --> Auth
Auth -- "Pass" --> UIPages
UIPages -- "Chat Interaction" --> Agent
%% Agent Interactions
Retrieve -.-> StoryMD
Retrieve -.-> DataXLSX
Retrieve -.-> Supabase
DecideSearch -.-> LLM
WebSearch -.-> SearchEngines
Generate -.-> LLM
Generate -.-> Config
%% Output
NodeEnd --> DisplayResponse
DisplayResponse -.-> ImageDir
A Love Agent
AI assistant for love memory,picture managment and more
AI
love
💝 This Valentine’s Day
give your special someone a unique gift — a personalized AI agent to document your love story.

📸 Photo Gallery
Export precious photos anytime, anywhere. Smart categorization with one-click export.

Our Memories
Add your unique love memories and capture every sweet moment.

🤖 AI Models
Switch between latest AI models including GLM-5,Kimi K2.5,Minimax-m2.5.

Tech stack
Python/langgraph/OpenAI SDK/Streamlit/Supabase