Files
ChatBot/docs/installation.md
Leonid Pershin e5e69470f8
All checks were successful
SonarQube / Build and analyze (push) Successful in 3m22s
add docs
2025-10-21 05:08:40 +03:00

10 KiB
Raw Permalink Blame History

🛠️ Установка и настройка

Подробное руководство по установке ChatBot со всеми опциями.

📋 Системные требования

Минимальные требования

  • OS: Windows 10/11, Linux (Ubuntu 20.04+), macOS 12+
  • RAM: 4 GB (рекомендуется 8 GB+)
  • CPU: 2 cores (рекомендуется 4+ cores)
  • Диск: 10 GB свободного места
  • Сеть: Стабильное интернет-соединение

Программное обеспечение

  • .NET 9.0 SDK - обязательно
  • PostgreSQL 14+ - обязательно
  • Ollama - обязательно
  • Git - для клонирования
  • Docker (опционально) - для контейнеризации

📥 Установка зависимостей

Windows

.NET 9.0 SDK

# Скачайте с официального сайта
# https://dotnet.microsoft.com/download/dotnet/9.0

# Или через winget
winget install Microsoft.DotNet.SDK.9

# Проверка установки
dotnet --version

PostgreSQL

# Скачайте с официального сайта
# https://www.postgresql.org/download/windows/

# Или через chocolatey
choco install postgresql

# Инициализация
# Следуйте инструкциям установщика

Ollama

# Скачайте с официального сайта
# https://ollama.ai/download

# Установка модели
ollama pull gemma2:2b
# или другую модель
ollama pull llama3.2

Linux (Ubuntu/Debian)

.NET 9.0 SDK

# Добавление репозитория Microsoft
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# Установка SDK
sudo apt-get update
sudo apt-get install -y dotnet-sdk-9.0

# Проверка
dotnet --version

PostgreSQL

# Установка
sudo apt-get update
sudo apt-get install -y postgresql postgresql-contrib

# Запуск
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Создание пользователя и БД
sudo -u postgres psql
CREATE USER chatbot WITH PASSWORD 'your_password';
CREATE DATABASE chatbot OWNER chatbot;
GRANT ALL PRIVILEGES ON DATABASE chatbot TO chatbot;
\q

Ollama

# Установка
curl -fsSL https://ollama.ai/install.sh | sh

# Запуск сервиса
sudo systemctl start ollama
sudo systemctl enable ollama

# Установка модели
ollama pull gemma2:2b

macOS

.NET 9.0 SDK

# Через Homebrew
brew install --cask dotnet-sdk

# Проверка
dotnet --version

PostgreSQL

# Через Homebrew
brew install postgresql@14

# Запуск
brew services start postgresql@14

# Создание БД
createdb chatbot

Ollama

# Скачайте с официального сайта
# https://ollama.ai/download

# Или через Homebrew
brew install ollama

# Установка модели
ollama pull gemma2:2b

🔧 Настройка проекта

1. Клонирование репозитория

git clone https://github.com/mrleo1nid/ChatBot.git
cd ChatBot

2. Настройка базы данных

Создание базы данных

PostgreSQL:

-- Подключение к PostgreSQL
psql -U postgres

-- Создание пользователя
CREATE USER chatbot WITH PASSWORD 'secure_password';

-- Создание базы данных
CREATE DATABASE chatbot OWNER chatbot;

-- Выдача прав
GRANT ALL PRIVILEGES ON DATABASE chatbot TO chatbot;

-- Выход
\q

Проверка подключения

psql -U chatbot -d chatbot -h localhost

3. Конфигурация приложения

Создание .env файла

Создайте файл ChatBot/.env:

# Database Configuration
DB_HOST=localhost
DB_PORT=5432
DB_NAME=chatbot
DB_USER=chatbot
DB_PASSWORD=your_secure_password

# Telegram Bot Configuration
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz

# Ollama Configuration
OLLAMA_URL=http://localhost:11434
OLLAMA_DEFAULT_MODEL=gemma2:2b

Настройка appsettings.json

Файл ChatBot/appsettings.json уже содержит настройки по умолчанию. Переменные окружения имеют приоритет.

User Secrets (для разработки)

cd ChatBot

# Инициализация secrets
dotnet user-secrets init

# Добавление секретов
dotnet user-secrets set "TelegramBot:BotToken" "your_token_here"
dotnet user-secrets set "Database:ConnectionString" "Host=localhost;Database=chatbot;Username=chatbot;Password=your_password"

4. Настройка Telegram бота

Создание бота через BotFather

  1. Откройте Telegram и найдите @BotFather
  2. Отправьте /newbot
  3. Следуйте инструкциям:
    • Введите имя бота (например: "My AI ChatBot")
    • Введите username (например: "my_ai_chatbot")
  4. Скопируйте токен и добавьте в .env

Настройка команд бота (опционально)

/setcommands

start - Начать работу с ботом
help - Показать справку
clear - Очистить историю диалога
settings - Показать текущие настройки
status - Проверить статус бота

5. Установка AI модели

# Просмотр доступных моделей
ollama list

# Установка модели
ollama pull gemma2:2b

# Или другие модели:
ollama pull llama3.2
ollama pull mistral
ollama pull phi3

# Проверка
ollama list

6. Применение миграций

cd ChatBot

# Автоматически применяются при первом запуске
# Или вручную:
dotnet ef database update

# Проверка миграций
dotnet ef migrations list

7. Сборка проекта

# Восстановление зависимостей
dotnet restore

# Сборка
dotnet build

# Проверка на ошибки
dotnet build --configuration Release

🚀 Запуск приложения

Режим разработки

cd ChatBot
dotnet run

Режим production

# Сборка релиза
dotnet publish -c Release -o ./publish

# Запуск
cd publish
dotnet ChatBot.dll

Запуск как служба (Windows)

# Создание службы
sc.exe create ChatBot binPath="C:\path\to\publish\ChatBot.exe"

# Запуск
sc.exe start ChatBot

# Остановка
sc.exe stop ChatBot

# Удаление
sc.exe delete ChatBot

Запуск как службы (Linux)

Создайте файл /etc/systemd/system/chatbot.service:

[Unit]
Description=ChatBot Telegram Bot
After=network.target postgresql.service

[Service]
Type=notify
WorkingDirectory=/opt/chatbot
ExecStart=/usr/bin/dotnet /opt/chatbot/ChatBot.dll
Restart=always
RestartSec=10
User=chatbot
Environment=DOTNET_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

Запуск:

sudo systemctl daemon-reload
sudo systemctl enable chatbot
sudo systemctl start chatbot
sudo systemctl status chatbot

🐳 Docker установка

Создание Dockerfile

Файл уже включен в проект. Для сборки:

# Сборка образа
docker build -t chatbot:latest .

# Запуск контейнера
docker run -d \
  --name chatbot \
  --env-file .env \
  -v $(pwd)/logs:/app/logs \
  chatbot:latest

Docker Compose

Создайте docker-compose.yml:

version: '3.8'

services:
  postgres:
    image: postgres:14-alpine
    environment:
      POSTGRES_DB: chatbot
      POSTGRES_USER: chatbot
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  chatbot:
    build: .
    depends_on:
      - postgres
    env_file:
      - .env
    volumes:
      - ./logs:/app/logs
    restart: unless-stopped

volumes:
  postgres_data:

Запуск:

docker-compose up -d

Проверка установки

1. Проверка компонентов

# .NET
dotnet --version

# PostgreSQL
psql --version
pg_isready

# Ollama
curl http://localhost:11434/api/tags

2. Проверка подключений

# PostgreSQL
psql -U chatbot -d chatbot -h localhost -c "SELECT version();"

# Ollama
ollama list

3. Проверка логов

# Логи приложения
tail -f ChatBot/logs/telegram-bot-*.log

# Docker логи
docker logs -f chatbot

4. Тестирование бота

  1. Откройте Telegram
  2. Найдите вашего бота
  3. Отправьте /start
  4. Отправьте любое сообщение

🔍 Troubleshooting

Ошибка "Unable to connect to PostgreSQL"

# Проверка статуса
sudo systemctl status postgresql

# Проверка порта
netstat -tulpn | grep 5432

# Проверка настроек pg_hba.conf
sudo nano /etc/postgresql/14/main/pg_hba.conf

Ошибка "Ollama connection failed"

# Запуск Ollama
ollama serve

# Проверка доступности
curl http://localhost:11434/api/tags

Ошибка "Invalid bot token"

  • Проверьте правильность токена в .env
  • Убедитесь, что токен активен через @BotFather
  • Перезапустите приложение

📚 Следующие шаги