Conector OpenAI
Conectați OpenAI la Brevo prin Tajo pentru a valorifica generarea de conținut cu ajutorul AI, analiza sentimentelor clienților, segmentarea inteligentă și analiza predictivă pentru fluxurile de automatizare de marketing.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | OpenAI |
| Categorie | AI / ML (Personalizat) |
| Complexitate configurare | Medie |
| Integrare oficială | Nu |
| Date sincronizate | Conținut, Embedding-uri, Informații, Predicții |
| Metodă de autentificare | Cheie API (Token Bearer) |
Funcționalități
- Generare conținut AI - Generați linii de subiect pentru e-mail, text și CTA-uri cu modelele GPT
- Analiza sentimentelor clienților - Analizați tichetele de suport și feedback-ul pentru scorarea sentimentelor
- Segmentare inteligentă - Utilizați embedding-uri pentru a grupa clienții după tipare de comportament
- Analitica predictivă - Previzionați churn-ul, LTV și propensitatea de achiziție
- Conținut în mai multe limbi - Generați conținut de marketing în orice limbă suportată
- Generare imagini - Creați imagini pentru campanii cu integrarea DALL-E
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont OpenAI cu acces API
- O cheie API din tabloul de bord OpenAI
- Un cont Brevo cu acces API
- Un cont Tajo cu permisiuni de conector
- Credite API OpenAI suficiente pentru utilizarea preconizată
Autentificare
Autentificare cu cheie API
OpenAI utilizează autentificarea cu token Bearer pentru toate cererile API:
# Set your API keysexport OPENAI_API_KEY=sk-your-api-keyexport TAJO_API_KEY=your_tajo_api_keyexport BREVO_API_KEY=your_brevo_api_key// All requests require the Authorization headerconst headers = { 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`, 'Content-Type': 'application/json'};
// For organization-scoped accessconst orgHeaders = { ...headers, 'OpenAI-Organization': process.env.OPENAI_ORG_ID, 'OpenAI-Project': process.env.OPENAI_PROJECT_ID};Securitate cheie API
Nu expuneți niciodată cheia API OpenAI în codul client. Utilizați întotdeauna variabile de mediu și cereri pe server. Rotiți cheile periodic prin tabloul de bord OpenAI.
Configurare
Configurare de bază
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Șabloane de generare conținut
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.7Puncte finale API
| Punct final | Metodă | Descriere |
|---|---|---|
https://api.openai.com/v1/responses | POST | Creează răspunsuri AI (Responses API) |
https://api.openai.com/v1/chat/completions | POST | Generează completări de text |
https://api.openai.com/v1/embeddings | POST | Creează embedding-uri de text |
https://api.openai.com/v1/images/generations | POST | Generează imagini |
https://api.openai.com/v1/audio/speech | POST | Generare text-to-speech |
https://api.openai.com/v1/audio/transcriptions | POST | Transcriere speech-to-text |
https://api.openai.com/v1/moderations | POST | Moderare conținut |
https://api.openai.com/v1/models | GET | Listează modelele disponibile |
Exemple de cod
Inițializare conector
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'});Generare conținut e-mail
// Generate personalized email subject linesconst 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;Analiza sentimentelor clienților
// Analyze customer feedback sentimentconst 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 }});Segmentare inteligentă cu embedding-uri
// Generate embeddings for customer clusteringconst 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();// Use embeddings for similarity-based customer clusteringLimite de rată
| Model | RPM (Cereri/Min) | TPM (Token-uri/Min) | RPD (Cereri/Zi) |
|---|---|---|---|
| gpt-4o | 500 | 30.000 | 10.000 |
| gpt-4o-mini | 500 | 200.000 | 10.000 |
| text-embedding-3-small | 500 | 1.000.000 | 10.000 |
| dall-e-3 | 5 | N/A | 200 |
Anteturi limite de rată
Monitorizați anteturile limitelor de rată (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) în răspunsurile API pentru a implementa limitarea proactivă și a evita erorile 429.
Depanare
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Cheie API invalidă | Verificați cheia în tabloul de bord OpenAI |
| 429 Limită de rată | Prea multe cereri | Implementați backoff exponențial |
| 500 Eroare server | Întrerupere OpenAI | Verificați status.openai.com și reîncercați |
| Răspuns trunchiat | max_tokens prea mic | Creșteți parametrul max_tokens |
| Calitate conținut slabă | Temperatură prea mare | Reduceți temperatura pentru consistență |
Modul de depanare
connectors: openai: debug: true log_level: verbose log_prompts: false # Don't log prompts in production log_usage: trueBune practici
- Stocați în cache răspunsurile - Salvați conținutul generat pentru a reduce apelurile API și costurile
- Utilizați ieșiri structurate - Solicitați răspunsuri JSON pentru parsare fiabilă
- Implementați logica de reîncercare - Gestionați limitele de rată cu backoff exponențial
- Monitorizați utilizarea token-urilor - Urmăriți consumul pentru a controla costurile
- Utilizați modelele potrivite - Utilizați gpt-4o-mini pentru sarcini simple, gpt-4o pentru cele complexe
- Validați ieșirile - Validați întotdeauna conținutul generat de AI înainte de a-l trimite clienților
Securitate
- Autentificare cu token Bearer - Chei API transmise prin antetul Authorization
- Numai pe server - Nu expuneți niciodată cheile API în codul client
- Rotație chei - Rotiți cheile API regulat prin tabloul de bord OpenAI
- Monitorizare utilizare - Setați limite de cheltuieli în setările de facturare OpenAI
- Moderare conținut - Utilizați Moderations API pentru a filtra conținut nesigur
- Confidențialitate date - Revizuiți politicile de utilizare a datelor OpenAI pentru cazul dvs.