Connecteur OpenAI

Connectez OpenAI à Brevo via Tajo pour exploiter la génération de contenu assistée par IA, l’analyse de sentiment client, la segmentation intelligente et l’analytique prédictive dans vos workflows d’automatisation marketing.

Vue d’ensemble

PropriétéValeur
PlateformeOpenAI
CatégorieIA / ML (Custom)
Complexité d’installationMoyenne
Intégration officielleNon
Données synchroniséesContenu, embeddings, insights, prédictions
Méthode d’authentificationAPI Key (Bearer Token)

Fonctionnalités

  • Génération de contenu par IA, Générez des objets d’e-mails, du corps de texte et des CTA avec les modèles GPT
  • Analyse de sentiment client, Analysez les tickets de support et les feedbacks pour un scoring de sentiment
  • Segmentation intelligente, Utilisez les embeddings pour regrouper les clients par schémas de comportement
  • Analytique prédictive, Prévoyez le churn, la LTV et la propension à l’achat
  • Contenu multilingue, Générez du contenu marketing dans toute langue prise en charge
  • Génération d’images, Créez des visuels de campagne via l’intégration DALL-E

Prérequis

Avant de commencer, assurez-vous de disposer de :

  1. Un compte OpenAI avec accès API
  2. Une clé API depuis le tableau de bord OpenAI
  3. Un compte Brevo avec accès API
  4. Un compte Tajo avec les permissions connecteur
  5. Suffisamment de crédits API OpenAI pour votre usage prévu

Authentification

Authentification par clé API

OpenAI utilise l’authentification par Bearer token pour toutes les requêtes API :

Terminal window
# Définissez vos clés 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
// Toutes les requêtes nécessitent l'en-tête Authorization
const headers = {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
};
// Pour un accès limité à une organisation
const orgHeaders = {
...headers,
'OpenAI-Organization': process.env.OPENAI_ORG_ID,
'OpenAI-Project': process.env.OPENAI_PROJECT_ID
};

Sécurité de la clé API

N’exposez jamais votre clé API OpenAI dans du code côté client. Utilisez toujours des variables d’environnement et des requêtes côté serveur. Faites tourner les clés périodiquement via le tableau de bord OpenAI.

Configuration

Configuration de base

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 de génération de contenu

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

Endpoints API

EndpointMéthodeDescription
https://api.openai.com/v1/responsesPOSTCréer des réponses IA (Responses API)
https://api.openai.com/v1/chat/completionsPOSTGénérer des complétions de texte
https://api.openai.com/v1/embeddingsPOSTCréer des embeddings de texte
https://api.openai.com/v1/images/generationsPOSTGénérer des images
https://api.openai.com/v1/audio/speechPOSTGénération texte-vers-parole
https://api.openai.com/v1/audio/transcriptionsPOSTTranscription parole-vers-texte
https://api.openai.com/v1/moderationsPOSTModération de contenu
https://api.openai.com/v1/modelsGETLister les modèles disponibles

Exemples de code

Initialiser le connecteur

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'
});

Générer du contenu d’e-mail

// Générer des objets d'e-mail personnalisés
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;

Analyse de sentiment client

// Analyser le sentiment des feedbacks clients
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 }
});

Segmentation intelligente via embeddings

// Générer des embeddings pour le clustering client
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();
// Utilisez les embeddings pour un clustering client basé sur la similarité

Limites de débit

ModèleRPM (requêtes/min)TPM (tokens/min)RPD (requêtes/jour)
gpt-4o50030 00010 000
gpt-4o-mini500200 00010 000
text-embedding-3-small5001 000 00010 000
dall-e-35N/A200

En-têtes de limite de débit

Surveillez les en-têtes de limite de débit (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) dans les réponses API pour implémenter un throttling proactif et éviter les erreurs 429.

Dépannage

ProblèmeCauseSolution
401 UnauthorizedClé API invalideVérifiez la clé dans le tableau de bord OpenAI
429 Rate LimitedTrop de requêtesImplémentez un backoff exponentiel
500 Server ErrorPanne OpenAIConsultez status.openai.com et réessayez
Réponse tronquéemax_tokens trop basAugmentez le paramètre max_tokens
Qualité du contenu médiocreTempérature trop hauteBaissez la température pour plus de cohérence

Mode debug

connectors:
openai:
debug: true
log_level: verbose
log_prompts: false # Ne loguez pas les prompts en production
log_usage: true

Bonnes pratiques

  1. Mettez en cache les réponses, Stockez le contenu généré pour réduire les appels API et les coûts
  2. Utilisez les sorties structurées, Demandez des réponses JSON pour un parsing fiable
  3. Implémentez une logique de retry, Gérez les limites de débit avec un backoff exponentiel
  4. Surveillez l’usage en tokens, Suivez la consommation pour contrôler les coûts
  5. Utilisez des modèles appropriés, Utilisez gpt-4o-mini pour les tâches simples, gpt-4o pour les complexes
  6. Validez les sorties, Validez toujours le contenu généré par IA avant de l’envoyer aux clients

Sécurité

  • Authentification par Bearer token, Clés API transmises via l’en-tête Authorization
  • Côté serveur uniquement, N’exposez jamais les clés API dans du code côté client
  • Rotation des clés, Faites tourner les clés API régulièrement via le tableau de bord OpenAI
  • Surveillance de l’usage, Définissez des limites de dépenses dans les paramètres de facturation OpenAI
  • Modération de contenu, Utilisez l’API Moderations pour filtrer les contenus dangereux
  • Confidentialité des données, Consultez les politiques d’usage des données d’OpenAI pour votre cas d’usage

Ressources associées

Subscribe to updates

developer-docs

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

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.