Проект аудита отелей: основные скрипты и документация
- Краулеры: 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
This commit is contained in:
299
LLM_GUIDE.md
Normal file
299
LLM_GUIDE.md
Normal file
@@ -0,0 +1,299 @@
|
||||
# 🤖 РУКОВОДСТВО ПО 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
|
||||
**Статус:** ✅ Работает
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user