OpenAI konektor
Prepoj OpenAI s Brevo cez Tajo a využi AI generovanie obsahu, analýzu sentimentu zákazníkov, inteligentnú segmentáciu a prediktívnu analytiku pre workflowy marketingovej automatizácie.
Prehľad
| Vlastnosť | Hodnota |
|---|---|
| Platforma | OpenAI |
| Kategória | AI / ML (Vlastná) |
| Zložitosť nastavenia | Stredná |
| Oficiálna integrácia | Nie |
| Synchronizované dáta | Obsah, Embeddingy, Poznatky, Predpovede |
| Metóda autentifikácie | API Key (Bearer Token) |
Funkcie
- AI generovanie obsahu - Generuj predmety e-mailov, text a CTA s GPT modelmi
- Analýza sentimentu zákazníkov - Analyzuj support tickety a spätnú väzbu pre skórovanie sentimentu
- Inteligentná segmentácia - Použi embeddingy na zhlukovanie zákazníkov podľa vzorcov správania
- Prediktívna analytika - Predpovedaj odchod, LTV a sklon k nákupu
- Viacjazyčný obsah - Generuj marketingový obsah v akomkoľvek podporovanom jazyku
- Generovanie obrázkov - Vytváraj vizuály kampaní s integráciou DALL-E
Predpoklady
Predtým, než začneš, uisti sa, že máš:
- OpenAI účet s API prístupom
- API kľúč z OpenAI dashboardu
- Brevo účet s API prístupom
- Tajo účet s oprávneniami pre konektory
- Dostatočné API kredity OpenAI pre očakávané využitie
Autentifikácia
Autentifikácia API kľúčom
OpenAI používa Bearer token autentifikáciu pre všetky API požiadavky:
# 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};Bezpečnosť API kľúča
Nikdy nevystavuj API kľúč OpenAI v klientskom kóde. Vždy použi premenné prostredia a požiadavky na strane servera. Pravidelne rotuj kľúče cez OpenAI dashboard.
Konfigurácia
Základné nastavenie
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Šablóny generovania obsahu
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.7API endpointy
| Endpoint | Metóda | Popis |
|---|---|---|
https://api.openai.com/v1/responses | POST | Vytvorenie AI odpovedí (Responses API) |
https://api.openai.com/v1/chat/completions | POST | Generovanie textových dokončení |
https://api.openai.com/v1/embeddings | POST | Vytvorenie textových embeddingov |
https://api.openai.com/v1/images/generations | POST | Generovanie obrázkov |
https://api.openai.com/v1/audio/speech | POST | Generovanie reči z textu |
https://api.openai.com/v1/audio/transcriptions | POST | Prepis reči na text |
https://api.openai.com/v1/moderations | POST | Moderovanie obsahu |
https://api.openai.com/v1/models | GET | Zoznam dostupných modelov |
Ukážky kódu
Inicializácia konektora
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'});Generovanie obsahu e-mailu
// 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;Analýza sentimentu zákazníkov
// 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 }});Inteligentná segmentácia pomocou embeddingov
// 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 clusteringObmedzenia rýchlosti
| Model | RPM (Požiadavky/min) | TPM (Tokeny/min) | RPD (Požiadavky/deň) |
|---|---|---|---|
| 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 |
Hlavičky limitov rýchlosti
Sleduj hlavičky limitov rýchlosti (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) v odpovediach API na implementáciu proaktívneho throttlovania a vyhnutie sa chybám 429.
Riešenie problémov
| Problém | Príčina | Riešenie |
|---|---|---|
| 401 Unauthorized | Neplatný API kľúč | Overte kľúč v OpenAI dashboarde |
| 429 Rate Limited | Príliš veľa požiadaviek | Implementuj exponenciálny backoff |
| 500 Server Error | Výpadok OpenAI | Skontroluj status.openai.com a skús znova |
| Skrátená odpoveď | Príliš nízke max_tokens | Zvýš parameter max_tokens |
| Nízka kvalita obsahu | Príliš vysoká teplota | Zníž temperature pre konzistentnosť |
Debug režim
connectors: openai: debug: true log_level: verbose log_prompts: false # Don't log prompts in production log_usage: trueOdporúčané postupy
- Kešuj odpovede - Uchovávaj vygenerovaný obsah na zníženie API volaní a nákladov
- Použi štruktúrované výstupy - Požaduj JSON odpovede pre spoľahlivé parsovanie
- Implementuj logiku opakovania - Spravuj rate limity s exponenciálnym backoff
- Sleduj využitie tokenov - Sleduj spotrebu na kontrolu nákladov
- Použi vhodné modely - Použi gpt-4o-mini pre jednoduché úlohy, gpt-4o pre zložité
- Validuj výstupy - Vždy validuj AI generovaný obsah pred odoslaním zákazníkom
Bezpečnosť
- Bearer token autentifikácia - API kľúče prenášané cez hlavičku Authorization
- Iba strana servera - Nikdy nevystavuj API kľúče v klientskom kóde
- Rotácia kľúčov - Pravidelne rotuj API kľúče cez OpenAI dashboard
- Monitorovanie využitia - Nastav limity výdavkov v nastaveniach fakturácie OpenAI
- Moderovanie obsahu - Použi Moderations API na filtrovanie nebezpečného obsahu
- Ochrana dát - Preskúmaj zásady využitia dát OpenAI pre tvoj prípad použitia