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

8.2 KiB
Raw Blame History

🤖 РУКОВОДСТВО ПО 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:

# Выберите провайдера
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. Через переменные окружения

# Выбор провайдера
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 на лету

# Узнать текущую модель
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 (по умолчанию)

# Уже настроено! Просто используйте
curl -X POST http://localhost:8888/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message":"Сколько отелей в Москве?"}'

Пример 2: OpenAI GPT-4o (умная модель)

# Переключаемся на 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

# 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

# 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:

#!/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

Запустите:

chmod +x test_models.sh
./test_models.sh

📊 API ENDPOINTS

GET /api/llm/info

Информация о текущей модели

Ответ:

{
  "provider": "openai",
  "chat_model": "gpt-4o-mini",
  "temperature": 0.3,
  "max_tokens": 800,
  "uses_proxy": true
}

GET /api/llm/models

Список доступных моделей

Ответ:

{
  "current_provider": "openai",
  "current_model": "gpt-4o-mini",
  "models": {
    "fast": "gpt-4o-mini",
    "smart": "gpt-4o",
    "chat": "gpt-4o-mini"
  }
}

POST /api/llm/switch

Переключить модель

Запрос:

{
  "model": "gpt-4o"
}

Ответ:

{
  "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. Переключение модели:

    • Работает без перезапуска сервера
    • Применяется сразу к следующему запросу
    • Не влияет на конфигурационный файл (изменение временное)

🎓 ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ


Создано: 2025-10-11
Версия: 1.0
Статус: Работает