Платформа для объединения и автоматизации искусственного интеллекта
Умный AI-агент с поддержкой 5 провайдеров, автоматической маршрутизацией и FUSION-режимом
FocusFlow AI — это десктопное Windows-приложение, которое объединяет несколько ведущих AI-провайдеров в единую платформу. Вместо того чтобы использовать каждую модель отдельно, FocusFlow автоматически выбирает лучший ИИ под каждый запрос или комбинирует несколько моделей для получения максимально качественного ответа.
Практическая работа по дисциплине ПМ3 «Разработка программных модулей для компьютерных систем»
Колледж Hexlet, Алматы
| Режим | Описание |
|---|---|
| ✦ AUTO | Система автоматически анализирует запрос и выбирает оптимальную модель — максимум качества при минимуме расходов |
| ⚡ FUSION | Два разных ИИ отвечают параллельно, третья модель синтезирует лучшее из обоих ответов |
| ☰ ВРУЧНУЮ | Пользователь сам выбирает провайдера и конкретную модель |
| Anthropic Claude 3.5 Sonnet Claude 3 Haiku |
OpenAI GPT-4o GPT-4o Mini |
Google Gemini 1.5 Pro Gemini 1.5 Flash |
Mistral Mistral Large Mistral Small |
Groq Llama 3.1 70B Mixtral 8x7B |
- 💬 Чат с историей — все разговоры сохраняются в SQLite, поиск и закрепление чатов
- 🤖 AI-агенты — 8 встроенных специализированных агентов (кодер, писатель, аналитик, маркетолог и др.)
- ⚡ Автоматизация — визуальный конструктор воркфлоу: цепочки шагов с разными агентами
- 🕐 История — просмотр всех прошлых диалогов с фильтрацией
- ⚙️ Настройки — управление API-ключами, температурой, токенами, режимом оркестрации
FocusFlow LMS/
├── Controls/ # Кастомные UI-компоненты
│ ├── MessageBubble.cs # Пузыри сообщений (кастомная отрисовка)
│ ├── RoundedPanel.cs # Скруглённые панели, кнопки с градиентом
│ ├── AgentCard.cs # Карточка агента
│ └── InputDialog.cs # Диалог ввода текста
│
├── Data/ # Репозитории (паттерн Repository)
│ ├── DatabaseManager.cs # SQLite, инициализация БД
│ ├── ConversationRepository.cs
│ ├── MessageRepository.cs
│ ├── AgentRepository.cs
│ └── WorkflowRepository.cs
│
├── Forms/ # Страницы приложения
│ ├── MainForm.cs # Главное окно, навигация, сайдбар
│ ├── ChatPage.cs # Чат с AUTO/FUSION/MANUAL режимами
│ ├── AgentsPage.cs # Управление агентами
│ ├── AutomationPage.cs # Конструктор воркфлоу
│ ├── HistoryPage.cs # История диалогов
│ └── SettingsPage.cs # Настройки и API-ключи
│
├── Models/ # Модели данных
│ ├── AIProvider.cs # ProviderType, ModelInfo, RouteDecision
│ ├── AppConfig.cs # Конфигурация приложения
│ ├── AIAgent.cs # Модель агента
│ ├── Conversation.cs # Разговор
│ ├── Message.cs # Сообщение (AiMessage)
│ └── WorkflowStep.cs # Шаг воркфлоу
│
└── Services/ # Бизнес-логика
├── ILLMProvider.cs # Интерфейс провайдера
├── AnthropicProvider.cs # Anthropic Claude API
├── OpenAICompatProvider.cs # OpenAI / Mistral / Groq
├── GeminiProvider.cs # Google Gemini API
├── ProviderRegistry.cs # Реестр всех провайдеров
├── AIRouter.cs # Умная маршрутизация запросов
├── OrchestrationService.cs # AUTO / FUSION / MANUAL логика
├── AIService.cs # Фасад для работы с ИИ
└── WorkflowService.cs # Выполнение воркфлоу
Запрос пользователя
↓
AIRouter.Classify() ← анализ ключевых слов
(Code / Math / Creative /
Analysis / Research / Simple)
↓
Scoring для каждой модели:
QualityScore × 10
+ бонус за тип запроса
− штраф за стоимость
↓
Выбирается лучшая модель
↓
ProviderRegistry → нужный провайдер → API
Запрос пользователя
↓
AIRouter.PickFusionPair() ← топ-2 модели разных провайдеров
↓
Task.WhenAll([Model A, Model B]) ← параллельные запросы
↓
Синтез: "Объедини два ответа в один лучший"
→ самая быстрая/дешёвая доступная модель
↓
Итоговый ответ пользователю
- Windows 10/11
- .NET 10 Runtime
- API-ключ хотя бы одного провайдера
# Клонировать репозиторий
git clone https://github.com/Vuunderkind/FocusFlow-AI.git
cd FocusFlow-AI
# Собрать и запустить
cd "FocusFlow LMS"
dotnet runПри первом запуске откроется диалог с предложением добавить API-ключ в Настройки.
| Провайдер | Где получить | Бесплатный тариф |
|---|---|---|
| Anthropic | console.anthropic.com | $5 при регистрации |
| OpenAI | platform.openai.com | $5 при регистрации |
| Google Gemini | aistudio.google.com | ✅ Есть |
| Mistral | console.mistral.ai | ✅ Есть |
| Groq | console.groq.com | ✅ Есть (быстрый) |
Приложение использует тёмную тему с фиолетовой палитрой:
| Элемент | Цвет | HEX |
|---|---|---|
| Фон | Почти чёрный | #0D0D12 |
| Акцент | Фиолетовый | #7C5CFC |
| Акцент светлый | Лавандовый | #9B7FFF |
| Карточки | Тёмно-синий | #1A1A26 |
| Текст | Белый | #E8E8F0 |
Все UI-элементы нарисованы вручную через Graphics.DrawPath — без сторонних UI-библиотек.
SQLite (%AppData%\FocusFlowAI\focusflow.db), схема 3НФ:
Conversations → Messages
Agents → (используются в чатах)
Workflows → WorkflowSteps| Технология | Версия | Назначение |
|---|---|---|
| C# / .NET | 10.0 | Язык и платформа |
| Windows Forms | 10.0 | UI-фреймворк |
SQLite (Microsoft.Data.Sqlite) |
9.0.4 | Локальная база данных |
| Newtonsoft.Json | 13.0.3 | Сериализация конфига |
| HttpClient | встроен | HTTP-запросы к API |
MIT License — свободное использование, модификация и распространение.
Проект находится в активной разработке. Если тебя интересует ранний доступ, коллаборация или коммерческое использование — напиши напрямую.
| Контакт | |
|---|---|
| 👤 | NOXQD |
| 📧 | art303750@gmail.com |
| 📱 | +7 705 333 2735 |
| 🐙 | github.com/Vuunderkind |
Отвечаю быстро. Открыт к любым предложениям.
Сделано с ❤️ в рамках практики в Hexlet College, Алматы