Коннектор OpenAI

Подключите OpenAI к Brevo через Tajo для использования генерации контента с помощью ИИ, анализа настроений клиентов, интеллектуальной сегментации и прогностической аналитики в рабочих процессах маркетинговой автоматизации.

Обзор

СвойствоЗначение
ПлатформаOpenAI
КатегорияAI / ML (Custom)
Сложность настройкиСредняя
Официальная интеграцияНет
Синхронизируемые данныеКонтент, Embeddings, Инсайты, Прогнозы
Метод аутентификацииAPI Key (Bearer Token)

Возможности

  • Генерация AI-контента, создание тем писем, текста и CTA с помощью моделей GPT
  • Анализ настроений клиентов, анализ тикетов поддержки и обратной связи для оценки настроений
  • Умная сегментация, использование embeddings для кластеризации клиентов по поведенческим паттернам
  • Прогностическая аналитика, прогнозирование оттока, LTV и склонности к покупке
  • Многоязычный контент, генерация маркетингового контента на любом поддерживаемом языке
  • Генерация изображений, создание визуалов для кампаний через интеграцию с DALL-E

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  1. Аккаунт OpenAI с доступом к API
  2. API-ключ из панели управления OpenAI
  3. Аккаунт Brevo с доступом к API
  4. Аккаунт Tajo с правами на управление коннекторами
  5. Достаточно кредитов OpenAI API для ожидаемого объёма использования

Аутентификация

Аутентификация по API Key

OpenAI использует аутентификацию через Bearer token для всех запросов к API:

Terminal window
# Задайте ваши API-ключи
export OPENAI_API_KEY=sk-your-api-key
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// Все запросы требуют заголовка Authorization
const headers = {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
};
// Для доступа в рамках организации
const orgHeaders = {
...headers,
'OpenAI-Organization': process.env.OPENAI_ORG_ID,
'OpenAI-Project': process.env.OPENAI_PROJECT_ID
};

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

Никогда не раскрывайте ваш API-ключ OpenAI в клиентском коде. Всегда используйте переменные окружения и серверные запросы. Регулярно ротируйте ключи через панель управления OpenAI.

Конфигурация

Базовая настройка

connectors:
openai:
enabled: true
model: "gpt-4o"
embedding_model: "text-embedding-3-small"
image_model: "dall-e-3"
features:
content_generation: true
sentiment_analysis: true
smart_segmentation: true
predictive_analytics: true
limits:
max_tokens_per_request: 4096
max_requests_per_minute: 60
temperature: 0.7

Шаблоны генерации контента

templates:
email_subject:
model: "gpt-4o"
system_prompt: |
You are an expert email marketer. Generate compelling
subject lines that drive open rates.
max_tokens: 100
temperature: 0.8
email_body:
model: "gpt-4o"
system_prompt: |
Generate personalized email content based on customer
data and campaign objectives.
max_tokens: 2048
temperature: 0.7

Эндпоинты API

ЭндпоинтМетодОписание
https://api.openai.com/v1/responsesPOSTСоздание AI-ответов (Responses API)
https://api.openai.com/v1/chat/completionsPOSTГенерация текстовых ответов
https://api.openai.com/v1/embeddingsPOSTСоздание текстовых embeddings
https://api.openai.com/v1/images/generationsPOSTГенерация изображений
https://api.openai.com/v1/audio/speechPOSTГенерация речи из текста
https://api.openai.com/v1/audio/transcriptionsPOSTТранскрипция речи в текст
https://api.openai.com/v1/moderationsPOSTМодерация контента
https://api.openai.com/v1/modelsGETСписок доступных моделей

Примеры кода

Инициализация коннектора

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('openai', {
apiKey: process.env.OPENAI_API_KEY,
defaultModel: 'gpt-4o'
});

Генерация email-контента

// Генерация персонализированных тем писем
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4o',
messages: [
{
role: 'system',
content: 'Generate 5 compelling email subject lines for a product launch.'
},
{
role: 'user',
content: `Product: ${product.name}. Target: ${segment.description}.`
}
],
max_tokens: 200,
temperature: 0.8
})
});
const result = await response.json();
const subjectLines = result.choices[0].message.content;

Анализ настроений клиентов

// Анализ настроений в обратной связи от клиентов
const sentimentAnalysis = await fetch(
'https://api.openai.com/v1/chat/completions',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4o',
messages: [
{
role: 'system',
content: 'Analyze sentiment. Return JSON: {score: -1 to 1, label: string, topics: string[]}'
},
{ role: 'user', content: customerFeedback }
],
response_format: { type: 'json_object' },
max_tokens: 150
})
}
);
const sentiment = await sentimentAnalysis.json();
await tajo.contacts.update(email, {
attributes: { SENTIMENT_SCORE: JSON.parse(sentiment.choices[0].message.content).score }
});

Умная сегментация с embeddings

// Генерация embeddings для кластеризации клиентов
const embeddingResponse = await fetch(
'https://api.openai.com/v1/embeddings',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'text-embedding-3-small',
input: customerDescriptions,
dimensions: 256
})
}
);
const embeddings = await embeddingResponse.json();
// Используйте embeddings для кластеризации клиентов по схожести

Ограничения скорости

МодельRPM (запросов/мин)TPM (токенов/мин)RPD (запросов/день)
gpt-4o50030 00010 000
gpt-4o-mini500200 00010 000
text-embedding-3-small5001 000 00010 000
dall-e-35Н/Д200

Заголовки ограничений скорости

Следите за заголовками ограничений скорости (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) в ответах API для проактивного регулирования и предотвращения ошибок 429.

Устранение неполадок

ПроблемаПричинаРешение
401 UnauthorizedНедействительный API-ключПроверьте ключ в панели управления OpenAI
429 Rate LimitedСлишком много запросовРеализуйте экспоненциальную задержку
500 Server ErrorСбой на стороне OpenAIПроверьте status.openai.com и повторите попытку
Усечённый ответСлишком низкое значение max_tokensУвеличьте параметр max_tokens
Низкое качество контентаСлишком высокая температураСнизьте temperature для большей стабильности

Режим отладки

connectors:
openai:
debug: true
log_level: verbose
log_prompts: false # Не логируйте промпты в production
log_usage: true

Лучшие практики

  1. Кешируйте ответы, сохраняйте сгенерированный контент для снижения количества API-запросов и расходов
  2. Используйте структурированные выводы, запрашивайте JSON-ответы для надёжного парсинга
  3. Реализуйте логику повтора, обрабатывайте лимиты скорости с экспоненциальной задержкой
  4. Отслеживайте потребление токенов, контролируйте расход для управления затратами
  5. Используйте подходящие модели, gpt-4o-mini для простых задач, gpt-4o для сложных
  6. Валидируйте результаты, всегда проверяйте контент, сгенерированный ИИ, перед отправкой клиентам

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

  • Аутентификация по Bearer token, API-ключи передаются через заголовок Authorization
  • Только на стороне сервера, никогда не раскрывайте API-ключи в клиентском коде
  • Ротация ключей, регулярно ротируйте API-ключи через панель управления OpenAI
  • Мониторинг использования, установите лимиты расходов в настройках биллинга OpenAI
  • Модерация контента, используйте Moderations API для фильтрации небезопасного контента
  • Конфиденциальность данных, ознакомьтесь с политикой использования данных OpenAI для вашего сценария

Связанные ресурсы

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-ассистент

Привет! Спрашивайте меня о документации.