Архитектура (карта)
Как устроен проект: кто с кем общается, какие инструменты используются и где ответственность каждого блока.
100%
UIAPIИнструментыБизнес-блокиДанныеВнешние сервисыПеретащить
Пользователь и интерфейс
`/` чат, `/health`, `/calendar`, `/finance`
Ветки, поиск, избранное, вложения
Ввод запроса и показ ответа
Перетащить
Слой инструментов
Набор функций для модели
Поиск в интернете (webSearch)
Чтение страницы (webFetchPage)
Быстрое исследование (webResearch)
Прогноз погоды (getWeatherForecast)
Список документов (listDocuments)
Текст документа (getDocumentContent)
Анализ таблицы (analyzeTableDocument)
Анализ изображения (analyzeImageDocument)
Анализ текста (analyzeTextDocument)
Перетащить
Провайдеры LLM
OpenAI / Gemini
Формирует итоговый ответ
При необходимости вызывает инструменты
Перетащить
Оркестратор чата (API)
`src/app/api/chat/route.ts`
Склеивает контекст, выбирает инструменты и управляет потоком запроса.
Перетащить
Документы
Функциональный блок
- Загрузка файлов
- Модуль `chatDocuments.ts`
- Индекс `.chat_uploads/index.json`
Перетащить
Финансы
Функциональный блок
- Операции по доходам/расходам
- Аналитика
- Категории и суммы
Перетащить
Календарь и вход через Google
Функциональный блок
- Календари и события
- Вход через Google (OAuth)
- Устаревшая сессия -> 401
Перетащить
Спорт и питание
Функциональный блок
- Тренировки, дневник, приемы пищи
- Недельный план и аналитика
- Синхронизация с Google
Перетащить
Слой хранения данных
Prisma + Postgres + файлы
Основная БД: PostgreSQL
Доступ к данным: `@/generated/prisma`
Файлы чата: `.chat_uploads` и `index.json`
Перетащить
Внешние сервисы
Google / веб-поиск / погода
Google OAuth и Calendar API
Провайдеры веб-поиска (с fallback)
Open-Meteo для прогноза