OpenAI Connector
Poveži OpenAI z Brevo prek Tajo za ustvarjanje vsebine z umetno inteligenco, analizo sentimenta strank, inteligentno segmentacijo in napovedno analitiko za delovne tokove marketinške avtomatizacije.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | OpenAI |
| Kategorija | UI / ML (po meri) |
| Zahtevnost nastavitve | Srednja |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Vsebina, vdelava, vpogledi, napovedi |
| Metoda avtentikacije | API ključ (žeton prinosnika) |
Funkcionalnosti
- Ustvarjanje vsebine z UI – ustvari zadeve e-mailov, besedilo in CTA z modeli GPT
- Analiza sentimenta strank – analiziraj zahtevke za podporo in povratne informacije za ocenjevanje sentimenta
- Pametna segmentacija – s pomočjo vdelav grupiraj stranke glede na vedenjske vzorce
- Napovedna analitika – napovej odliv, LTV in nagnjenost k nakupu
- Večjezična vsebina – ustvari marketinško vsebino v katerem koli podprtem jeziku
- Ustvarjanje slik – ustvari vizuale kampanj z integracijo DALL-E
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Račun OpenAI z dostopom do API
- API ključ iz nadzorne plošče OpenAI
- Brevo račun z dostopom do API
- Tajo račun z dovoljenji za konektorje
- Zadostne kredite OpenAI API za pričakovano porabo
Avtentikacija
Avtentikacija z API ključem
OpenAI za vse zahtevke API uporablja avtentikacijo z žetonom prinosnika:
# 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};Varnost API ključa
Nikoli ne izpostavljaj API ključa OpenAI v kodi na strani odjemalca. Vedno uporabi spremenljivke okolja in zahtevke na strani strežnika. Periodično menjaj ključe prek nadzorne plošče OpenAI.
Konfiguracija
Osnovna nastavitev
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.7Predloge za ustvarjanje vsebine
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.7Končne točke API
| Končna točka | Metoda | Opis |
|---|---|---|
https://api.openai.com/v1/responses | POST | Ustvari odgovore UI (Responses API) |
https://api.openai.com/v1/chat/completions | POST | Ustvari besedilne dopolnitve |
https://api.openai.com/v1/embeddings | POST | Ustvari besedilne vdelave |
https://api.openai.com/v1/images/generations | POST | Ustvari slike |
https://api.openai.com/v1/audio/speech | POST | Pretvorba besedila v govor |
https://api.openai.com/v1/audio/transcriptions | POST | Prepis govora v besedilo |
https://api.openai.com/v1/moderations | POST | Moderacija vsebine |
https://api.openai.com/v1/models | GET | Seznam razpoložljivih modelov |
Primeri kode
Inicializacija konektorja
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'});Ustvarjanje vsebine e-maila
// 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 sentimenta strank
// 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 }});Pametna segmentacija z vdelavami
// 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 clusteringOmejitve hitrosti
| Model | RPM (zahtevki/min) | TPM (žetoni/min) | RPD (zahtevki/dan) |
|---|---|---|---|
| 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 | Ni ustrezno | 200 |
Glave omejitev hitrosti
V odgovorih API spremljaj glave omejitev hitrosti (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) za implementacijo proaktivnega omejevanja in izogibanje napakam 429.
Odpravljanje težav
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Neveljaven API ključ | Potrdi ključ v nadzorni plošči OpenAI |
| 429 Rate Limited | Preveč zahtevkov | Implementiraj eksponentni odlog |
| 500 Server Error | Izpad OpenAI | Preveri status.openai.com in ponovi |
| Okrnjen odgovor | max_tokens prenizek | Povečaj parameter max_tokens |
| Slaba kakovost vsebine | Temperatura previsoka | Znižaj temperaturo za doslednost |
Način odpravljanja napak
connectors: openai: debug: true log_level: verbose log_prompts: false # Don't log prompts in production log_usage: trueNajboljše prakse
- Predpomni odgovore – shrani ustvarjeno vsebino za zmanjšanje klicev API in stroškov
- Uporabi strukturirane izhode – zahtevaj odgovore JSON za zanesljivo razčlenjevanje
- Implementiraj logiko ponovnih poskusov – obravnavaj omejitve hitrosti z eksponentnim odlogom
- Spremljaj porabo žetonov – sledi porabi za nadzor stroškov
- Uporabi ustrezne modele – za enostavne naloge gpt-4o-mini, za kompleksne gpt-4o
- Potrdi izhode – vedno potrdi vsebino, ustvarjeno z UI, preden jo pošlješ strankam
Varnost
- Avtentikacija z žetonom prinosnika – API ključi se prenašajo prek glave Authorization
- Samo na strani strežnika – nikoli ne izpostavljaj API ključev v kodi na strani odjemalca
- Rotacija ključev – API ključe redno menjaj prek nadzorne plošče OpenAI
- Spremljanje porabe – nastavi omejitve porabe v nastavitvah zaračunavanja OpenAI
- Moderacija vsebine – za filtriranje nevarne vsebine uporabi Moderations API
- Zasebnost podatkov – preglej pravilnike o uporabi podatkov OpenAI za svojo uporabo