10 KiB
10 KiB
🛠️ Установка и настройка
Подробное руководство по установке 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
- Откройте Telegram и найдите @BotFather
- Отправьте
/newbot - Следуйте инструкциям:
- Введите имя бота (например: "My AI ChatBot")
- Введите username (например: "my_ai_chatbot")
- Скопируйте токен и добавьте в
.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. Тестирование бота
- Откройте Telegram
- Найдите вашего бота
- Отправьте
/start - Отправьте любое сообщение
🔍 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
- Перезапустите приложение
📚 Следующие шаги
- Конфигурация - Детальная настройка параметров
- Разработка - Структура проекта
- Deployment - Production развертывание