Интеграция Zhivly API в ваши проекты

Подробное руководство по интеграции Zhivly API для автоматического улучшения текстов


Интеграция Zhivly API в ваши проекты

Zhivly API позволяет автоматически улучшать тексты прямо в ваших приложениях и сервисах. Это руководство поможет вам настроить интеграцию.

Что вы можете сделать с API

  • Автоматически улучшать описания товаров
  • Адаптировать тон коммуникации под аудиторию
  • Обрабатывать пользовательский контент
  • Интегрироваться в CMS и CRM системы
  • Создавать автоматические email-рассылки

Требования

  • Аккаунт Zhivly Pro (299 ₽/месяц)
  • API ключ (доступен в личном кабинете)
  • Базовые навыки программирования

Шаг 1: Получение API ключа

  1. Войдите в свой аккаунт Zhivly
  2. Перейдите в раздел "Настройки"
  3. Скопируйте ваш API ключ
  4. Храните ключ в безопасности (не передавайте третьим лицам)

Шаг 2: Базовая настройка

Python

import requests
import os
 
# Конфигурация
API_KEY = os.getenv('ZHIVLY_API_KEY')
API_URL = 'https://api.zhivly.ru/v1'
 
# Заголовки для запросов
headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}

JavaScript/Node.js

// Конфигурация
const apiKey = process.env.ZHIVLY_API_KEY
const apiUrl = 'https://api.zhivly.ru/v1'
 
// Заголовки для запросов
const headers = {
  Authorization: `Bearer ${apiKey}`,
  'Content-Type': 'application/json',
}

PHP

<?php
$apiKey = getenv('ZHIVLY_API_KEY');
$apiUrl = 'https://api.zhivly.ru/v1';
 
$headers = [
    'Authorization: Bearer ' . $apiKey,
    'Content-Type: application/json'
];
?>

Шаг 3: Преобразование текста

Базовый запрос

def transform_text(text, tone='neutral'):
    data = {
        'text': text,
        'tone': tone
    }
 
    response = requests.post(
        f'{API_URL}/transform',
        headers=headers,
        json=data
    )
 
    if response.status_code == 200:
        result = response.json()
        return result['data']['result']
    else:
        raise Exception(f'Error: {response.status_code}')

Примеры использования

Улучшение описания товара

product_description = """
Компания осуществляет реализацию инновационных решений
в сфере автоматизации бизнес-процессов.
"""
 
improved_description = transform_text(
    product_description,
    tone='friendly'
)
 
print(improved_description)
# Результат: Мы предлагаем инновационные решения для автоматизации вашего бизнеса!

Адаптация email-рассылки

email_text = """
Уважаемый клиент! Информируем вас о наличии
новых позиций в нашем ассортименте продукции.
"""
 
friendly_email = transform_text(email_text, tone='friendly')
print(friendly_email)
# Результат: Привет! У нас появились новинки - заходи посмотреть!

Шаг 4: Обработка ошибок

def transform_text_with_retry(text, tone, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.post(/* параметры запроса */)
 
            if response.status_code == 200:
                return response.json()['data']['result']
            elif response.status_code == 429:
                # Слишком много запросов
                retry_after = int(response.headers.get('Retry-After', 1))
                time.sleep(retry_after)
                continue
            elif response.status_code >= 500:
                # Ошибка сервера
                if attempt < max_retries - 1:
                    time.sleep(2 ** attempt)
                    continue
 
            response.raise_for_status()
 
        except requests.exceptions.RequestException as e:
            if attempt == max_retries - 1:
                raise
 
    raise Exception("Max retries exceeded")

Шаг 5: Практические примеры интеграции

WordPress плагин

<?php
// Автоматическое улучшение постов перед публикацией
add_filter('content_save_pre', 'zhivly_improve_content');
function zhivly_improve_content($content) {
    // Проверяем, нужно ли обрабатывать контент
    if (get_post_meta(get_the_ID(), '_zhivly_processed', true)) {
        return $content;
    }
 
    // Отправляем в Zhivly
    $improved = zhivly_transform($content, 'neutral');
 
    // Помечаем как обработанный
    update_post_meta(get_the_ID(), '_zhivly_processed', true);
 
    return $improved;
}
?>

Telegram бот

import telebot
from zhivly_api import ZhivlyAPI
 
bot = telebot.TeleBot('YOUR_TELEGRAM_TOKEN')
zhivly = ZhivlyAPI('your_api_key')
 
@bot.message_handler(func=lambda message: True)
def handle_message(message):
    if message.text.startswith('/improve '):
        text = message.text[9:]  # Убираем команду
 
        try:
            improved = zhivly.transform(text, tone='friendly')
            bot.reply_to(message, improved)
        except Exception as e:
            bot.reply_to(message, f'Ошибка: {str(e)}')
 
bot.polling()

Slack integration

// Обработка сообщений в Slack
app.command('/zhivly', async ({ command, ack, say }) => {
  await ack()
 
  const text = command.text
  const tone = command.text.includes('?') ? 'friendly' : 'neutral'
 
  try {
    const improved = await zhivly.transform(text, tone)
    await say(improved)
  } catch (error) {
    await say(`Произошла ошибка: ${error.message}`)
  }
})

Шаг 6: Оптимизация производительности

Кэширование результатов

from functools import lru_cache
import hashlib
 
@lru_cache(maxsize=1000)
def get_cached_transform(text_hash, tone):
    # Проверяем кэш перед запросом к API
    pass
 
def transform_text(text, tone):
    # Создаём хэш текста для кэширования
    text_hash = hashlib.md5(text.encode()).hexdigest()
 
    # Проверяем кэш
    cached = get_cached_transform(text_hash, tone)
    if cached:
        return cached
 
    # Если нет в кэше - отправляем запрос
    result = zhivly_transform(text, tone)
 
    # Сохраняем в кэш
    cache_result(text_hash, tone, result)
 
    return result

Асинхронные запросы

import asyncio
import aiohttp
 
async def async_transform_text(text, tone):
    async with aiohttp.ClientSession() as session:
        data = {'text': text, 'tone': tone}
 
        async with session.post(
            'https://api.zhivly.ru/v1/transform',
            headers=headers,
            json=data
        ) as response:
            return await response.json()
 
# Обработка нескольких текстов одновременно
async def process_texts(texts):
    tasks = [async_transform_text(text, 'neutral') for text in texts]
    return await asyncio.gather(*tasks)

Лимиты и квоты

  • Максимальная длина текста: 5000 символов
  • Лимит запросов: 100 в минуту
  • Месячный лимит: 10,000 запросов
  • Доступные тональности: neutral, friendly, formal, professional, casual

Мониторинг использования

def check_usage_stats():
    response = requests.get(
        f'{API_URL}/stats',
        headers=headers
    )
 
    stats = response.json()
    print(f"Запросов this month: {stats['api_usage']['requests_this_month']}")
    print(f"Символов обработано: {stats['api_usage']['characters_this_month']}")

Безопасность

  1. Храните API ключ в переменных окружения
  2. Используйте HTTPS для всех запросов
  3. Валидируйте входные данные
  4. Ограничьте доступ к API ключу
  5. Регулярно обновляйте ключ

Пример файла .env

# Zhivly API Configuration
ZHIVLY_API_KEY=your-secret-api-key-here
ZHIVLY_API_URL=https://api.zhivly.ru/v1

Troubleshooting

Частые ошибки

401 Unauthorized

  • Проверьте API ключ
  • Убедитесь, что подписка Pro активна

429 Too Many Requests

  • Соблюдайте лимиты запросов
  • Используйте retry логику

413 Payload Too Large

  • Проверьте длину текста (максимум 5000 символов)
  • Разделите длинные тексты

500 Internal Server Error

  • Попробуйте повторить запрос позже
  • Проверьте статус сервиса на status.zhivly.ru

Поддержка

Если у вас возникли вопросы:

  1. Проверьте документацию
  2. Напишите на [email protected]
  3. Для Pro-пользователей доступна приоритетная поддержка

Начните интеграцию сегодня и сделайте ваши тексты более естественными!