Files
hotels/LLM_GUIDE.md
Фёдор 0cf3297290 Проект аудита отелей: основные скрипты и документация
- Краулеры: smart_crawler.py, regional_crawler.py
- Аудит: audit_orel_to_excel.py, audit_chukotka_to_excel.py
- РКН проверка: check_rkn_registry.py, recheck_unclear_rkn.py
- Отчёты: create_orel_horizontal_report.py
- Обработка: process_all_hotels_embeddings.py
- Документация: README.md, DB_SCHEMA_REFERENCE.md
2025-10-16 10:52:09 +03:00

300 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 РУКОВОДСТВО ПО 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
**Статус:** ✅ Работает