system/elements/openrouter/README.md

OpenRouter Connector

Версия: 1.0.0
Дата: 2025-12-21

Коннектор к OpenRouter API с поддержкой 400+ моделей.


Возможности

Компонент Описание Модели
TextGenerator Описания товаров, SEO, статьи Llama, GPT-4o, Claude
ImageGenerator Баннеры, фото, иллюстрации FLUX, DALL-E, SDXL
TextRewriter Рерайт, улучшение, адаптация Llama, GPT-4o-mini
Translator Перевод, локализация Llama, GPT-4o-mini
VisionAnalyzer Анализ изображений, OCR Gemini, GPT-4o
CodeGenerator Код, вёрстка, SQL Claude, GPT-4o

Модели

Бесплатные (Free Tier)

Модель Контекст Особенности
Llama 3.1 8B 131K Лучшая бесплатная, tools, JSON
Gemma 2 9B 8K Быстрая
Mistral 7B 32K SEO, краткие тексты
Qwen 2.5 7B 32K Многоязычная
Phi-3 Mini 128K Большой контекст

Платные (Цены за 1M токенов)

Модель Input Output Особенности
GPT-4o Mini $0.15 $0.60 Лучшее соотношение цена/качество
Claude 3 Haiku $0.25 $1.25 Быстрый, дешёвый
Llama 3.1 70B $0.52 $0.75 Мощная открытая
Gemini Flash 1.5 $0.075 $0.30 Дешёвый vision, 1M контекст
GPT-4o $2.50 $10.00 Премиум
Claude 3.5 Sonnet $3.00 $15.00 Лучшее качество

Изображения (Цена за изображение)

Модель Цена Особенности
FLUX Schnell $0.003 Быстрый, дешёвый
FLUX 1.1 Pro $0.04 Лучшее качество
DALL-E 3 $0.04 Понимание промптов
SDXL $0.002 Стилизация

Установка

# API ключ
export OPENROUTER_API_KEY="sk-or-v1-..."

# Зависимости
pip install requests

Использование

Базовый клиент

from system.elements.openrouter import OpenRouter

client = OpenRouter(api_key="sk-or-...")

# Простой запрос
response = client.complete("Привет!")
print(response.content)

# С параметрами
response = client.complete(
    prompt="Опиши товар",
    model="openai/gpt-4o-mini",
    temperature=0.7,
    max_tokens=500,
)

Генерация текста

from system.elements.openrouter import OpenRouter, TextGenerator

client = OpenRouter()
text = TextGenerator(client)

# Описание товара
result = text.product_description(
    name="Батарея салютов Огненный дракон",
    specs={"залпы": 100, "калибр": "30мм"},
    style="selling",  # selling, informative, premium
    length="medium",  # short, medium, long
)
print(result.text)

# SEO текст
result = text.seo_text(
    keywords=["салюты СПб", "купить фейерверк"],
    length="medium",
    include_h2=True,
)

# Meta теги
tags = text.meta_tags(page_content="...")
# {"title": "...", "description": "...", "keywords": "..."}

# Статья
result = text.article(
    topic="Как выбрать фейерверк",
    outline=["Типы", "Калибры", "Безопасность"],
    style="engaging",
)

Генерация изображений

from system.elements.openrouter import OpenRouter, ImageGenerator

client = OpenRouter()
images = ImageGenerator(client)

# Базовая генерация
result = images.generate(
    prompt="Новогодний фейерверк над городом",
    size="1024x1024",
)
result.save("firework.jpg")

# Баннер
result = images.banner(
    text="Скидка 30%!",
    style="festive",  # modern, festive, minimal, luxury
    size="1200x628",
)

# Фото товара
result = images.product_photo(
    description="Батарея салютов 100 залпов",
    background="studio",  # studio, lifestyle, outdoor
    lighting="soft",
)

# Для соцсетей
result = images.social_post(
    content="Новогодняя распродажа",
    platform="instagram",
    mood="promotional",
)

Рерайт текста

from system.elements.openrouter import OpenRouter, TextRewriter

client = OpenRouter()
rewriter = TextRewriter(client)

# Рерайт
result = rewriter.rewrite(
    text="Исходный текст...",
    style="professional",  # same, professional, casual, academic, marketing
)

# Улучшение
result = rewriter.improve(
    text="Текст с ошибками",
    aspects=["clarity", "grammar", "flow"],
)

# Адаптация под аудиторию
result = rewriter.adapt_audience(
    text="Технический текст",
    audience="beginners",  # experts, beginners, youth, b2b, b2c
)

# Сокращение
result = rewriter.shorten(text, ratio=0.5)

# Расширение
result = rewriter.expand(text, ratio=2.0, add_examples=True)

Перевод

from system.elements.openrouter import OpenRouter, Translator

client = OpenRouter()
translator = Translator(client)

# Простой перевод
result = translator.translate(
    text="Hello, world!",
    target_lang="ru",
)

# Локализация
result = translator.localize(
    text="Buy now!",
    target_lang="ru",
    context="e-commerce",
    cultural_adaptation=True,
)

# Определение языка
lang = translator.detect_language("Привет!")  # "ru"

# Перевод на несколько языков
translations = translator.multilingual(
    text="Hello",
    target_langs=["ru", "de", "fr"],
)
# {"ru": "Привет", "de": "Hallo", "fr": "Bonjour"}

Анализ изображений (Vision)

from system.elements.openrouter import OpenRouter, VisionAnalyzer

client = OpenRouter()
vision = VisionAnalyzer(client)

# Описание
result = vision.describe(
    image="https://example.com/image.jpg",
    detail_level="medium",
)

# Анализ товара
product = vision.analyze_product("https://...")
# {"name": "...", "category": "...", "specs": {...}}

# OCR
result = vision.extract_text(image_url, structured=True)
print(result.text_content)

# Обнаружение объектов
result = vision.detect_objects(image_url)

# Сравнение
diff = vision.compare(image1_url, image2_url)

# Alt-текст для SEO
alt = vision.generate_alt_text(image_url, context="e-commerce")

Генерация кода

from system.elements.openrouter import OpenRouter, CodeGenerator

client = OpenRouter()
code = CodeGenerator(client)

# HTML секция
result = code.html_section(
    description="Карточка товара с ценой",
    style="tailwind",  # tailwind, bootstrap, vanilla
    responsive=True,
)

# CSS
result = code.css_component(
    description="Кнопка с анимацией",
    approach="bem",
    animations=True,
)

# JavaScript
result = code.javascript(
    task="Валидация формы",
    framework="vanilla",  # vanilla, jquery, vue, react
)

# Python
result = code.python_script(
    task="Парсер CSV файла",
    style="functional",
    include_types=True,
)

# SQL
result = code.sql_query(
    task="Выбрать топ-10 товаров по продажам",
    dialect="postgresql",
)

# Regex
result = code.regex(
    pattern_description="Email адрес",
    flavor="python",
)

# Рефакторинг
result = code.refactor(
    code="...",
    language="python",
    goals=["readability", "simplify"],
)

# Объяснение кода
explanation = code.explain(code, language="python")

CLI

cd system/elements/openrouter

# Модели
python cli.py models
python cli.py models --free
python cli.py models --image

# Генерация текста
python cli.py text "Батарея салютов 100 залпов" --style selling
python cli.py seo "салюты СПб, фейерверк" --length medium

# Изображения
python cli.py image "Новогодний фейерверк"
python cli.py banner "Скидка 30%!" --style festive

# Рерайт
python cli.py rewrite "Текст" --style professional

# Перевод
python cli.py translate "Hello" --to ru

# Vision
python cli.py vision https://example.com/image.jpg
python cli.py vision image.jpg --ocr

# Код
python cli.py code "Валидация email" --lang python

# Баланс
python cli.py balance
python cli.py limits

Лимиты

Уровень RPM RPD Условие
Free 20 50 Новый аккаунт
Paid $10 60 1000 После $10
Paid $100 200 10000 После $100

Рекомендации по выбору модели

Задача Бюджет Модель
Описания товаров Free Llama 3.1 8B
Описания товаров Low GPT-4o Mini
Премиум контент High Claude 3.5 Sonnet
SEO тексты Free Llama 3.1 8B
Быстрые баннеры Low FLUX Schnell
Качественные баннеры Medium FLUX 1.1 Pro
Анализ изображений Low Gemini Flash 1.5
Анализ изображений Medium GPT-4o Mini
Код Low Claude 3 Haiku
Сложный код High Claude 3.5 Sonnet

Примеры стоимости

Задача Модель Токены Стоимость
100 описаний (150 слов) Llama 3.1 8B Free ~150K $0.00
100 описаний GPT-4o Mini ~150K ~$0.10
10 баннеров FLUX Schnell - $0.03
10 баннеров FLUX 1.1 Pro - $0.40
1000 OCR Gemini Flash ~500K ~$0.20

Структура модуля

openrouter/
├── __init__.py       # Экспорты
├── client.py         # Базовый клиент
├── models.py         # Каталог моделей
├── cli.py            # CLI интерфейс
├── README.md         # Документация
└── components/
    ├── __init__.py
    ├── text.py       # Генерация текста
    ├── images.py     # Генерация изображений
    ├── rewriter.py   # Рерайт
    ├── translator.py # Перевод
    ├── vision.py     # Анализ изображений
    └── code.py       # Генерация кода

Версия: 1.0.0