300 lines
8.2 KiB
Markdown
300 lines
8.2 KiB
Markdown
|
|
# 🤖 РУКОВОДСТВО ПО LLM МОДЕЛЯМ
|
|||
|
|
|
|||
|
|
## 📋 ВОЗМОЖНОСТИ
|
|||
|
|
|
|||
|
|
Система поддерживает **3 провайдера** LLM:
|
|||
|
|
- **OpenAI** (GPT-4o, GPT-4o-mini) - через прокси ✅
|
|||
|
|
- **OpenRouter** (Claude, Gemini, и др.) - через прокси
|
|||
|
|
- **Ollama** (локальные модели) - без прокси
|
|||
|
|
|
|||
|
|
Вы можете:
|
|||
|
|
1. ✅ Легко переключаться между провайдерами
|
|||
|
|
2. ✅ Менять модель на лету через API
|
|||
|
|
3. ✅ Тестировать разные модели для чата
|
|||
|
|
4. ✅ Настраивать temperature и max_tokens
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚙️ НАСТРОЙКА
|
|||
|
|
|
|||
|
|
### 1. Через конфигурационный файл
|
|||
|
|
|
|||
|
|
Откройте `llm_config.py`:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# Выберите провайдера
|
|||
|
|
ACTIVE_PROVIDER = 'openai' # 'openai', 'openrouter', 'ollama'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Доступные модели OpenAI:**
|
|||
|
|
- `gpt-4o-mini` - быстрая, дешёвая (по умолчанию)
|
|||
|
|
- `gpt-4o` - умная, дорогая
|
|||
|
|
- `gpt-4-turbo` - средняя по скорости/качеству
|
|||
|
|
|
|||
|
|
**Доступные модели OpenRouter:**
|
|||
|
|
- `anthropic/claude-3-haiku` - быстрая
|
|||
|
|
- `anthropic/claude-3.5-sonnet` - умная
|
|||
|
|
- `google/gemini-flash-1.5` - дешёвая
|
|||
|
|
|
|||
|
|
**Доступные модели Ollama:**
|
|||
|
|
- `llama3.2` - быстрая (3B параметров)
|
|||
|
|
- `llama3.1:70b` - умная (70B параметров)
|
|||
|
|
- `qwen2.5:14b` - хороша для анализа
|
|||
|
|
- `saiga_llama3` - для русского языка
|
|||
|
|
|
|||
|
|
### 2. Через переменные окружения
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Выбор провайдера
|
|||
|
|
export LLM_PROVIDER=openai
|
|||
|
|
|
|||
|
|
# Выбор модели
|
|||
|
|
export CHAT_MODEL=gpt-4o-mini
|
|||
|
|
|
|||
|
|
# Параметры
|
|||
|
|
export LLM_TEMPERATURE=0.7 # Креативность (0.0-1.0)
|
|||
|
|
export LLM_MAX_TOKENS=1000 # Макс. токенов в ответе
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Через API на лету
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Узнать текущую модель
|
|||
|
|
curl http://localhost:8888/api/llm/info
|
|||
|
|
|
|||
|
|
# Получить список моделей
|
|||
|
|
curl http://localhost:8888/api/llm/models
|
|||
|
|
|
|||
|
|
# Переключить модель
|
|||
|
|
curl -X POST http://localhost:8888/api/llm/switch \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"model":"gpt-4o"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
|
|||
|
|
|
|||
|
|
### Пример 1: OpenAI GPT-4o-mini (по умолчанию)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Уже настроено! Просто используйте
|
|||
|
|
curl -X POST http://localhost:8888/api/chat \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"message":"Сколько отелей в Москве?"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Пример 2: OpenAI GPT-4o (умная модель)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Переключаемся на GPT-4o
|
|||
|
|
curl -X POST http://localhost:8888/api/llm/switch \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"model":"gpt-4o"}'
|
|||
|
|
|
|||
|
|
# Теперь чат использует GPT-4o
|
|||
|
|
curl -X POST http://localhost:8888/api/chat \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"message":"Проанализируй качество сайтов отелей Чукотки"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Пример 3: OpenRouter с Claude
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. Получите API ключ на openrouter.ai
|
|||
|
|
# 2. Добавьте в llm_config.py:
|
|||
|
|
# OPENROUTER_CONFIG['api_key'] = 'sk-or-v1-...'
|
|||
|
|
|
|||
|
|
# 3. Измените провайдера в llm_config.py:
|
|||
|
|
# ACTIVE_PROVIDER = 'openrouter'
|
|||
|
|
|
|||
|
|
# 4. Перезапустите веб-интерфейс:
|
|||
|
|
pkill -f web_interface.py
|
|||
|
|
cd /root/engine/public_oversight/hotels
|
|||
|
|
source venv/bin/activate
|
|||
|
|
python web_interface.py &
|
|||
|
|
|
|||
|
|
# 5. Проверьте:
|
|||
|
|
curl http://localhost:8888/api/llm/info
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Пример 4: Локальная Ollama
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. Установите Ollama (если ещё нет)
|
|||
|
|
curl -fsSL https://ollama.com/install.sh | sh
|
|||
|
|
|
|||
|
|
# 2. Запустите Ollama
|
|||
|
|
ollama serve &
|
|||
|
|
|
|||
|
|
# 3. Скачайте модель
|
|||
|
|
ollama pull llama3.2
|
|||
|
|
|
|||
|
|
# 4. Измените llm_config.py:
|
|||
|
|
# ACTIVE_PROVIDER = 'ollama'
|
|||
|
|
|
|||
|
|
# 5. Перезапустите веб-интерфейс
|
|||
|
|
|
|||
|
|
# 6. Используйте локальную модель:
|
|||
|
|
curl -X POST http://localhost:8888/api/chat \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"message":"Привет!"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 СРАВНЕНИЕ МОДЕЛЕЙ
|
|||
|
|
|
|||
|
|
| Модель | Провайдер | Скорость | Качество | Цена | Через прокси |
|
|||
|
|
|--------|-----------|----------|----------|------|--------------|
|
|||
|
|
| **gpt-4o-mini** | OpenAI | ⚡⚡⚡ | ⭐⭐⭐ | 💵 | ✅ |
|
|||
|
|
| **gpt-4o** | OpenAI | ⚡⚡ | ⭐⭐⭐⭐⭐ | 💵💵💵 | ✅ |
|
|||
|
|
| **claude-3-haiku** | OpenRouter | ⚡⚡⚡ | ⭐⭐⭐⭐ | 💵 | ✅ |
|
|||
|
|
| **claude-3.5-sonnet** | OpenRouter | ⚡⚡ | ⭐⭐⭐⭐⭐ | 💵💵💵 | ✅ |
|
|||
|
|
| **llama3.2** | Ollama | ⚡⚡⚡⚡ | ⭐⭐⭐ | 🆓 | ❌ |
|
|||
|
|
| **llama3.1:70b** | Ollama | ⚡ | ⭐⭐⭐⭐ | 🆓 | ❌ |
|
|||
|
|
|
|||
|
|
**Рекомендации:**
|
|||
|
|
- **Для чата:** gpt-4o-mini (быстро и дёшево)
|
|||
|
|
- **Для анализа:** gpt-4o или claude-3.5-sonnet (лучшее качество)
|
|||
|
|
- **Для экспериментов:** Ollama llama3.2 (бесплатно, офлайн)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 ТЕСТИРОВАНИЕ МОДЕЛЕЙ
|
|||
|
|
|
|||
|
|
### Скрипт для сравнения
|
|||
|
|
|
|||
|
|
Создайте `test_models.sh`:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
models=("gpt-4o-mini" "gpt-4o")
|
|||
|
|
question='{"message":"Сколько отелей в Чукотском АО имеют сайты?"}'
|
|||
|
|
|
|||
|
|
for model in "${models[@]}"; do
|
|||
|
|
echo "=== Тестирую $model ==="
|
|||
|
|
|
|||
|
|
# Переключаем модель
|
|||
|
|
curl -s -X POST http://localhost:8888/api/llm/switch \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "{\"model\":\"$model\"}"
|
|||
|
|
|
|||
|
|
# Задаём вопрос
|
|||
|
|
start=$(date +%s%N)
|
|||
|
|
response=$(curl -s -X POST http://localhost:8888/api/chat \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "$question")
|
|||
|
|
end=$(date +%s%N)
|
|||
|
|
|
|||
|
|
# Время ответа
|
|||
|
|
time_ms=$(( (end - start) / 1000000 ))
|
|||
|
|
|
|||
|
|
echo "Модель: $model"
|
|||
|
|
echo "Время: ${time_ms}ms"
|
|||
|
|
echo "Ответ: $(echo $response | python3 -c 'import sys,json; print(json.load(sys.stdin)["response"][:200])')"
|
|||
|
|
echo ""
|
|||
|
|
done
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Запустите:
|
|||
|
|
```bash
|
|||
|
|
chmod +x test_models.sh
|
|||
|
|
./test_models.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 API ENDPOINTS
|
|||
|
|
|
|||
|
|
### GET /api/llm/info
|
|||
|
|
Информация о текущей модели
|
|||
|
|
|
|||
|
|
**Ответ:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"provider": "openai",
|
|||
|
|
"chat_model": "gpt-4o-mini",
|
|||
|
|
"temperature": 0.3,
|
|||
|
|
"max_tokens": 800,
|
|||
|
|
"uses_proxy": true
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### GET /api/llm/models
|
|||
|
|
Список доступных моделей
|
|||
|
|
|
|||
|
|
**Ответ:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"current_provider": "openai",
|
|||
|
|
"current_model": "gpt-4o-mini",
|
|||
|
|
"models": {
|
|||
|
|
"fast": "gpt-4o-mini",
|
|||
|
|
"smart": "gpt-4o",
|
|||
|
|
"chat": "gpt-4o-mini"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### POST /api/llm/switch
|
|||
|
|
Переключить модель
|
|||
|
|
|
|||
|
|
**Запрос:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"model": "gpt-4o"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Ответ:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"status": "switched",
|
|||
|
|
"new_model": "gpt-4o",
|
|||
|
|
"provider": "openai"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚠️ ВАЖНЫЕ ЗАМЕЧАНИЯ
|
|||
|
|
|
|||
|
|
1. **Прокси:**
|
|||
|
|
- OpenAI и OpenRouter работают через прокси `195.133.66.13:3128`
|
|||
|
|
- Ollama работает локально без прокси
|
|||
|
|
|
|||
|
|
2. **API ключи:**
|
|||
|
|
- OpenAI ключ уже настроен в `llm_config.py`
|
|||
|
|
- Для OpenRouter нужен свой ключ: https://openrouter.ai/keys
|
|||
|
|
|
|||
|
|
3. **Стоимость:**
|
|||
|
|
- GPT-4o-mini: ~$0.15 за 1М токенов (вход) + $0.60 (выход)
|
|||
|
|
- GPT-4o: ~$5.00 за 1М токенов (вход) + $15.00 (выход)
|
|||
|
|
- Ollama: бесплатно, но требует мощное железо
|
|||
|
|
|
|||
|
|
4. **Переключение модели:**
|
|||
|
|
- Работает без перезапуска сервера
|
|||
|
|
- Применяется сразу к следующему запросу
|
|||
|
|
- Не влияет на конфигурационный файл (изменение временное)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎓 ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ
|
|||
|
|
|
|||
|
|
- **OpenAI Models:** https://platform.openai.com/docs/models
|
|||
|
|
- **OpenRouter:** https://openrouter.ai/models
|
|||
|
|
- **Ollama:** https://ollama.com/library
|
|||
|
|
- **Наша документация:** `/root/engine/public_oversight/hotels/QUICK_START.md`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Создано:** 2025-10-11
|
|||
|
|
**Версия:** 1.0
|
|||
|
|
**Статус:** ✅ Работает
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|