Архитектура программы
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Консольный │ │ Локальное │ │ Внешнее API │
│ интерфейс │◄──►│ хранилище │◄──►│ AITunnel │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
│ readline │ node-persist │ https
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Управление │ │ Файловая │ │ HTTP запросы │
│ вводом/выводом │ │ система │ │ к API │
└─────────────────┘ └──────────────────┘ └─────────────────┘
Детализированная схема работы
┌─────────────────────────────────────────────────────────────────┐
│ ПРОЦЕСС ЗАПУСКА │
├─────────────────────────────────────────────────────────────────┤
│ 1. Инициализация readline интерфейса │
│ 2. Загрузка конфигурации из config.js │
│ 3. Показ меню выбора модели │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ ОСНОВНОЙ ЦИКЛ │
├───────────────┬─────────────────┬───────────────────────────────┤
│ КОМАНДЫ │ ОБРАБОТКА │ API ВЗАИМОДЕЙСТВИЕ │
├───────────────┼─────────────────┼───────────────────────────────┤
│ • /help │ • Парсинг ввода │ • Формирование HTTP │
│ • /clear │ • Валидация │ запроса │
│ • /model │ • Маршрутизация │ • Отправка через https │
│ • /chats │ команд │ • Обработка ответа │
│ • /new │ │ • Парсинг JSON │
│ • /switch │ │ • Извлечение текста │
│ • /rename │ │ ответа │
│ • /exit │ │ │
└───────────────┴─────────────────┴───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ ДАННЫЕ И СОСТОЯНИЕ │
├───────────────┬─────────────────┬───────────────────────────────┤
│ ПЕРЕМЕННЫЕ │ СЕССИИ ЧАТОВ │ НАСТРОЙКИ │
├───────────────┼─────────────────┼───────────────────────────────┤
│ • currentModel│ • chatHistory │ • API_KEY │
│ • currentChat │ • chatCounter │ • BASE_URL │
│ • chatCounter │ • currentChatId │ • Таймауты │
└───────────────┴─────────────────┴───────────────────────────────┘
Поток данных в программе
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ readline │ │ switch/case │ │ https │ │ JSON │
│ question │ │ по командам │ │ request │ │ response │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
└─────────────────┼─────────────────┼─────────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ СОХРАНЕНИЕ │ │ ВЫВОД │
│ ДАННЫХ │ │ РЕЗУЛЬТАТА │
└─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ node-persist│ │ console │
│ setItem() │ │ log │
└─────────────┘ └─────────────┘
Функции работы с хранилищем
┌─────────────────────────────────────────────────────────────────┐
│ ФУНКЦИИ ХРАНИЛИЩА NODE-PERSIST │
├───────────────────┬─────────────────────────────────────────────┤
│ ФУНКЦИЯ │ ОПИСАНИЕ │
├───────────────────┼─────────────────────────────────────────────┤
│ initStorage() │ Инициализация директории chat-storage/ │
│ saveChat() │ Сохранение данных чата в файл │
│ loadChat() │ Загрузка чата из файла │
│ listChats() │ Получение списка всех чатов │
│ getChatName() │ Получение имени чата по ID │
│ createNewChat() │ Создание нового чата с уникальным ID │
│ renameChat() │ Переименование существующего чата │
│ switchChat() │ Переключение между чатами │
└───────────────────┴─────────────────────────────────────────────┘
Функционал
- Создание новых чат-сессий
- Переименование существующих чатов
- Переключение между чатами
- Очистка истории текущего чата
- Сохранение истории между сеансами
Доступные нейросети
Все нейросети доступны абсолютно бесплатно:
- DeepSeek
- GPT-5-Nano
- GPT-5-Mini
- GPT-4.1-Nano
- Qwen3-Coder
- Gemini-2.5
- Qwen-3-30b
- Qwen-3-235b
- Grok-4
- Grok-Code
Система команд
| Команда | Описание |
|---|---|
/help |
Список доступных команд |
/clear |
Очистить текущий чат |
/model |
Сменить модель ИИ |
/chats |
Список всех чатов |
/new |
Создать новый чат |
/switch |
Переключиться на чат по имени |
/rename |
Переименовать текущий чат |
/exit |
Выход из программы |
Производительность
- Таймаут запросов: 30 секунд
- Максимальная длина ответа: 5000 токенов
- Автосохранение: после каждого действия
Потребление ресурсов
- Память: 50-200 MB в зависимости от размера истории
- Дисковое пространство: 1-10 MB на чат
- Сетевой трафик: 1-5 KB на запрос
Безопасность
- Локальное хранение данных
- Шифрование конфиденциальной информации
- Валидация пользовательского ввода
- Таймауты сетевых запросов
Конфиденциальность
- Все данные хранятся локально
- API ключи защищены шифрованием
Преимущества
- Локальное хранение данных
- Поддержка множества моделей
- Открытый исходный код
- Минимальные требования к системе
Особенности
- Консольный интерфейс
- Модульная архитектура
- Расширяемый функционал
- Подробное логирование
Техническая информация
Используемые технологии
- Node.js - среда выполнения
- node-persist - локальное хранилище данных
- https - HTTP запросы к API
- readline - обработка пользовательского ввода
Установка и запуск
Способ 1: Запуск через Node.js
Предварительные требования
- Node.js версии 16.0 или выше
- npm (Node Package Manager)
Пошаговая установка
-
Установите Node.js
- Скачайте с официального сайта: https://nodejs.org/
- Установите LTS версию
- Проверьте установку в командной строке:
node --version npm --version
-
Скачайте файлы программы
- Создайте папку для проекта
- Скопируйте в нее файлы:
terminal.jsconfig.jspackage.json
-
Установите зависимости
npm install
-
Запустите программу
node terminal.js
Структура файлов после установки
ai-terminal/
├── terminal.js // Основной файл приложения
├── config.js // Конфигурация API
├── package.json // Зависимости проекта
├── node_modules/ // Установленные зависимости
└── chat-storage/ // Создается автоматически
├── chat_default // Данные чата по умолчанию
└── chat_1 // Данные дополнительных чатов
Способ 2: Запуск через готовый EXE файл
Требования
- Windows 7 или новее
- Доступ в интернет для работы с API
Инструкция по запуску
-
Скачайте файлы
ai-terminal.exe- основной исполняемый файлconfig.js- файл конфигурации (если требуется)
-
Разместите файлы
- Поместите оба файла в одну папку
- Рекомендуется создать отдельную папку для программы
-
Запустите программу
- Двойной клик по
ai-terminal.exe
- Двойной клик по
Примечания для EXE версии
- Программа создаст папку
chat-storageавтоматически - Все данные сохраняются локально
Решение возможных проблем
Программа не запускается (Node.js)
- Убедитесь, что Node.js установлен корректно
- Проверьте наличие всех файлов в папке проекта
- Убедитесь, что зависимости установлены (
npm install)
Программа не запускается (EXE)
- Проверьте, что файл
config.jsнаходится в той же папке - Убедитесь, что антивирус не блокирует программу
- Попробуйте запустить от имени администратора
Ошибки при установке зависимостей
- Попробуйте очистить кэш:
npm cache clean --force - Удалите папку
node_modulesи запуститеnpm installснова - Проверьте подключение к интернету
Последнее обновление документации: 09.11.2025