hfexample's picture
Deploy clean snapshot of the repository
e221c83
graph LR
%% 1. ํด๋ผ์ด์–ธํŠธ ์˜์—ญ
subgraph Client ["๐Ÿ’ป Client Side (Frontend)"]
    User[๐Ÿ‘ค ์‚ฌ์šฉ์ž / ์›น ๋ธŒ๋ผ์šฐ์ €<br/>(HTML5, CSS3, JS)]
end

%% 2. ์„œ๋ฒ„ ์˜์—ญ
subgraph Server ["โš™๏ธ Flask Server (Backend)"]
    direction TB
    Controller[๐ŸŽฎ Main Controller<br/>(Routing & Logic)]
    InternalModel[๐Ÿค– Internal AI Engine<br/>(klue/roberta-base)]
end

%% 3. ์ธํ”„๋ผ ๋ฐ ์™ธ๋ถ€ ์„œ๋น„์Šค ์˜์—ญ
subgraph External ["โ˜๏ธ Infrastructure & External APIs"]
    direction TB
    Gemini[โœจ Google Gemini API<br/>(Generative AI Recommendation)]
    Supabase[(๐Ÿ—„๏ธ Supabase DB<br/>PostgreSQL)]
end

%% --- ๋ฐ์ดํ„ฐ ํ๋ฆ„ (Flow) ---

%% ๋ถ„์„ ๋‹จ๊ณ„
User -- "1. ์ผ๊ธฐ ์ž‘์„ฑ & ๋ถ„์„ ์š”์ฒญ (/api/predict)" --> Controller
Controller -- "2. ํ…์ŠคํŠธ ์ „์ฒ˜๋ฆฌ & ์ถ”๋ก " --> InternalModel
InternalModel -- "3. ๊ฐ์ • ๋ผ๋ฒจ & ํ™•๋ฅ  ๋ฐ˜ํ™˜" --> Controller
Controller -- "4. ์ถ”์ฒœ ์š”์ฒญ (Prompting)" --> Gemini
Gemini -- "5. ๋งž์ถคํ˜• ์ฝ˜ํ…์ธ  ์ƒ์„ฑ" --> Controller
Controller -- "6. ๋ถ„์„ ๊ฒฐ๊ณผ(JSON) ์‘๋‹ต" --> User

%% ์ €์žฅ ๋‹จ๊ณ„
User -- "7. '์ €์žฅํ•˜๊ธฐ' ํด๋ฆญ (/diary/save)" --> Controller
Controller -- "8. ์˜๊ตฌ ์ €์žฅ (INSERT)" --> Supabase

%% ์Šคํƒ€์ผ๋ง (์„ ํƒ ์‚ฌํ•ญ)
style Client fill:#e1f5fe,stroke:#01579b
style Server fill:#fff3e0,stroke:#e65100
style External fill:#f3e5f5,stroke:#4a148c
style InternalModel fill:#ffccbc,stroke:#bf360c,stroke-width:2px 
```