docs: обновление README.md
- Добавлена версия 0.6.0 - Секция 'Быстрый старт' с install.sh - Подробная инструкция по установке - Инструкция по обновлению - Обновлённая структура проекта с bot/ - Модульная архитектура - Актуализированные требования (Python 3.10+, Node.js 18+) Version: 0.6.1 Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
b26182cb08
commit
89b071b42a
170
README.md
170
README.md
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
Бот для выполнения CLI команд на вашем ПК через Telegram с многоуровневым меню и гибкой настройкой.
|
Бот для выполнения CLI команд на вашем ПК через Telegram с многоуровневым меню и гибкой настройкой.
|
||||||
|
|
||||||
|
**Версия:** 0.6.0
|
||||||
|
|
||||||
## Возможности
|
## Возможности
|
||||||
|
|
||||||
- 🖥️ **Выполнение CLI команд** - запуск любых команд от имени пользователя
|
- 🖥️ **Выполнение CLI команд** - запуск любых команд от имени пользователя
|
||||||
|
|
@ -12,10 +14,53 @@
|
||||||
- 🔧 **Легкое добавление команд** - простая регистрация новых команд через код
|
- 🔧 **Легкое добавление команд** - простая регистрация новых команд через код
|
||||||
- 🧠 **ИИ-агент с памятью** - чат с Qwen Code с контекстом и семантическим поиском
|
- 🧠 **ИИ-агент с памятью** - чат с Qwen Code с контекстом и семантическим поиском
|
||||||
- 🔍 **Векторная память** - поиск по истории диалогов на ChromaDB (RAG)
|
- 🔍 **Векторная память** - поиск по истории диалогов на ChromaDB (RAG)
|
||||||
|
- 📦 **Автоматическая установка** - скрипт install.sh ставит все зависимости
|
||||||
|
|
||||||
## Установка
|
---
|
||||||
|
|
||||||
### 1. Клонирование репозитория
|
## 🚀 Быстрый старт
|
||||||
|
|
||||||
|
### 1. Установка (первый запуск)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /path/to/telegram-cli-bot
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт автоматически:
|
||||||
|
- Проверит Python, pip, Node.js, npm
|
||||||
|
- Установит qwen-code (для ИИ-агента)
|
||||||
|
- Создаст виртуальное окружение
|
||||||
|
- Установит все зависимости
|
||||||
|
- Создаст .env из примера
|
||||||
|
|
||||||
|
### 2. Настройка
|
||||||
|
|
||||||
|
Отредактируйте `.env` и укажите токен бота:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano .env
|
||||||
|
# TELEGRAM_BOT_TOKEN=ваш_токен_от_BotFather
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Запуск
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./run.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 Подробная установка
|
||||||
|
|
||||||
|
### Требования
|
||||||
|
|
||||||
|
- **Python 3.10+**
|
||||||
|
- **pip** (менеджер пакетов Python)
|
||||||
|
- **Node.js 18+** (для qwen-code, опционально)
|
||||||
|
- **npm** (менеджер пакетов Node.js)
|
||||||
|
|
||||||
|
### Шаг 1: Клонирование
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /home/mirivlad/git
|
cd /home/mirivlad/git
|
||||||
|
|
@ -23,60 +68,60 @@ git clone <repository_url> telegram-cli-bot
|
||||||
cd telegram-cli-bot
|
cd telegram-cli-bot
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Создание виртуального окружения
|
### Шаг 2: Запуск установщика
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 -m venv venv
|
./install.sh
|
||||||
source venv/bin/activate
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Установка зависимостей
|
**Что делает install.sh:**
|
||||||
|
|
||||||
|
| Шаг | Действие |
|
||||||
|
|-----|----------|
|
||||||
|
| 1 | Проверяет Python, pip |
|
||||||
|
| 2 | Проверяет Node.js, npm (предлагает установить если нет) |
|
||||||
|
| 3 | Устанавливает `qwen-code` через `npm install -g` |
|
||||||
|
| 4 | Создаёт/обновляет venv |
|
||||||
|
| 5 | Устанавливает pip зависимости из requirements.txt |
|
||||||
|
| 6 | Создаёт .env из .env.example (если нет) |
|
||||||
|
| 7 | Сохраняет версию в `.installed` |
|
||||||
|
|
||||||
|
### Шаг 3: Настройка .env
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -r requirements.txt
|
# Отредактируйте .env
|
||||||
|
nano .env
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Получение токена бота
|
Обязательные параметры:
|
||||||
|
|
||||||
1. Откройте [@BotFather](https://t.me/BotFather) в Telegram
|
|
||||||
2. Отправьте `/newbot`
|
|
||||||
3. Следуйте инструкциям
|
|
||||||
4. Скопируйте полученный токен
|
|
||||||
|
|
||||||
### 5. Настройка токена
|
|
||||||
|
|
||||||
**Способ 1: Через файл .env (рекомендуется)**
|
|
||||||
|
|
||||||
Скопируйте `.env.example` в `.env` и укажите токен:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp .env.example .env
|
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
|
||||||
# Отредактируйте .env, вставив ваш токен
|
ALLOWED_USERS=ваш_telegram_id
|
||||||
```
|
```
|
||||||
|
|
||||||
**Способ 2: Через переменную окружения**
|
Ваш Telegram ID можно узнать через @userinfobot.
|
||||||
|
|
||||||
```bash
|
### Шаг 4: Запуск
|
||||||
export TELEGRAM_BOT_TOKEN='your_token_here'
|
|
||||||
```
|
|
||||||
|
|
||||||
**Способ 3: Интерактивная настройка**
|
|
||||||
|
|
||||||
Запустите скрипт `run.sh` — он сам запросит токен:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./run.sh
|
./run.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6. Запуск бота
|
---
|
||||||
|
|
||||||
|
## 🔄 Обновление
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python bot.py
|
# Просто запустите установщик снова
|
||||||
# или через скрипт
|
./install.sh
|
||||||
./run.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Использование
|
Скрипт определит что это обновление и:
|
||||||
|
- Обновит qwen-code
|
||||||
|
- Обновит pip зависимости
|
||||||
|
- Сохранит новую версию
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### Команды бота
|
### Команды бота
|
||||||
|
|
||||||
|
|
@ -220,26 +265,49 @@ WORKING_DIRECTORY=/home/user
|
||||||
|
|
||||||
```
|
```
|
||||||
telegram-cli-bot/
|
telegram-cli-bot/
|
||||||
├── bot.py # Основной файл бота
|
├── bot.py # Точка входа (1411 строк)
|
||||||
├── requirements.txt # Зависимости Python
|
├── bot/ # Модульная структура
|
||||||
├── .env # Конфигурация (создаётся автоматически, не коммитить)
|
│ ├── config.py # Конфигурация и глобальные объекты
|
||||||
├── .env.example # Пример конфигурации
|
│ ├── models/ # Модели данных
|
||||||
├── .gitignore # Git ignore
|
│ │ ├── server.py # Server, ServerManager
|
||||||
├── bot.log # Лог файл
|
│ │ ├── session.py # SSH/Local сессии и менеджеры
|
||||||
├── run.sh # Скрипт запуска
|
│ │ └── user_state.py # UserState, StateManager
|
||||||
├── README.md # Документация
|
│ ├── utils/ # Утилиты
|
||||||
├── memory_system.py # Система памяти (SQLite)
|
│ │ ├── cleaners.py # Очистка ANSI-кодов
|
||||||
├── vector_memory.py # Векторная память (ChromaDB)
|
│ │ ├── formatters.py # Форматирование сообщений
|
||||||
├── qwen_integration.py # Интеграция с Qwen Code
|
│ │ ├── decorators.py # Декоратор @check_access
|
||||||
├── MEMORY_ARCHITECTURE.md # Документация системы памяти
|
│ │ └── ssh_readers.py # Чтение SSH/PTY вывода
|
||||||
├── VECTOR_MEMORY_SETUP.md # Инструкция по установке памяти
|
│ ├── keyboards/ # Клавиатуры
|
||||||
└── test_vector_memory.py # Тесты системы памяти
|
│ │ └── menus.py # MenuItem, MenuBuilder
|
||||||
|
│ ├── handlers/ # Обработчики событий
|
||||||
|
│ │ ├── commands.py # /start, /menu, /help, /settings
|
||||||
|
│ │ └── callbacks.py # Callback от меню
|
||||||
|
│ └── services/ # Бизнес-логика
|
||||||
|
│ └── command_executor.py # Выполнение CLI команд
|
||||||
|
├── memory_system.py # Система памяти (SQLite)
|
||||||
|
├── vector_memory.py # Векторная память (ChromaDB + RAG)
|
||||||
|
├── qwen_integration.py # Интеграция с Qwen Code
|
||||||
|
├── install.sh # Универсальный установщик
|
||||||
|
├── run.sh # Скрипт запуска
|
||||||
|
├── requirements.txt # Зависимости Python
|
||||||
|
├── .env # Конфигурация (не коммитить!)
|
||||||
|
├── .env.example # Пример конфигурации
|
||||||
|
├── bot.log # Лог файл
|
||||||
|
└── README.md # Документация
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Модульная архитектура:**
|
||||||
|
- **models** — модели данных и менеджеры
|
||||||
|
- **utils** — вспомогательные функции
|
||||||
|
- **handlers** — обработчики команд Telegram
|
||||||
|
- **services** — бизнес-логика выполнения команд
|
||||||
|
- **keyboards** — построение inline-клавиатур
|
||||||
|
|
||||||
## Требования
|
## Требования
|
||||||
|
|
||||||
- Python 3.8+
|
- **Python 3.10+**
|
||||||
- Библиотеки: `python-telegram-bot`, `pyyaml`
|
- **Node.js 18+** (опционально, для qwen-code)
|
||||||
|
- Библиотеки: `python-telegram-bot`, `chromadb`, `sentence-transformers`
|
||||||
- Доступ к Telegram API
|
- Доступ к Telegram API
|
||||||
|
|
||||||
## Лицензия
|
## Лицензия
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue