Skip to content

Repository files navigation

Архитектура программы

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Консольный    │    │   Локальное      │    │   Внешнее 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()      │ Переключение между чатами                   │
└───────────────────┴─────────────────────────────────────────────┘

Функционал

  • Создание новых чат-сессий
  • Переименование существующих чатов
  • Переключение между чатами
  • Очистка истории текущего чата
  • Сохранение истории между сеансами

Доступные нейросети

Все нейросети доступны абсолютно бесплатно:

  1. DeepSeek
  2. GPT-5-Nano
  3. GPT-5-Mini
  4. GPT-4.1-Nano
  5. Qwen3-Coder
  6. Gemini-2.5
  7. Qwen-3-30b
  8. Qwen-3-235b
  9. Grok-4
  10. 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)

Пошаговая установка

  1. Установите Node.js

    • Скачайте с официального сайта: https://nodejs.org/
    • Установите LTS версию
    • Проверьте установку в командной строке:
      node --version
      npm --version
  2. Скачайте файлы программы

    • Создайте папку для проекта
    • Скопируйте в нее файлы:
      • terminal.js
      • config.js
      • package.json
  3. Установите зависимости

    npm install
  4. Запустите программу

    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

Инструкция по запуску

  1. Скачайте файлы

    • ai-terminal.exe - основной исполняемый файл
    • config.js - файл конфигурации (если требуется)
  2. Разместите файлы

    • Поместите оба файла в одну папку
    • Рекомендуется создать отдельную папку для программы
  3. Запустите программу

    • Двойной клик по 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

About

AI Terminal - это консольное приложение на Node.js, предоставляющее интерфейс для взаимодействия с различными моделями искусственного интеллекта через AITunnel API. Приложение поддерживает множественные чат-сессии, сохранение истории и переключение между моделями.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages