OpenAI-kobling
Koble OpenAI til Brevo gjennom Tajo for å utnytte AI-drevet innholdsgenerering, analyse av kundesentiment, intelligent segmentering og prediktiv analyse i markedsføringsautomatiseringsarbeidsflytene dine.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | OpenAI |
| Kategori | AI / ML (Custom) |
| Oppsettskompleksitet | Moderat |
| Offisiell integrasjon | Nei |
| Synkroniserte data | Innhold, embeddings, innsikt, prediksjoner |
| Autentiseringsmetode | API-nøkkel (Bearer-token) |
Funksjoner
- AI-innholdsgenerering - Generer emnelinjer, brødtekst og CTA-er med GPT-modeller
- Analyse av kundesentiment - Analyser supportsaker og tilbakemeldinger for sentimentscoring
- Smart segmentering - Bruk embeddings for å klynge kunder etter atferdsmønstre
- Prediktiv analyse - Prognostiser churn, LTV og kjøpssannsynlighet
- Flerspråklig innhold - Generer markedsføringsinnhold på alle støttede språk
- Bildegenerering - Lag kampanjevisualer med DALL-E-integrasjon
Forutsetninger
Før du begynner, sørg for at du har:
- En OpenAI-konto med API-tilgang
- En API-nøkkel fra OpenAI-dashbordet
- En Brevo-konto med API-tilgang
- En Tajo-konto med konnektor-rettigheter
- Tilstrekkelig med OpenAI API-kreditt for forventet bruk
Autentisering
API-nøkkelautentisering
OpenAI bruker Bearer-tokenautentisering for alle API-forespørsler:
# Sett API-nøklene dineexport OPENAI_API_KEY=sk-your-api-keyexport TAJO_API_KEY=your_tajo_api_keyexport BREVO_API_KEY=your_brevo_api_key// Alle forespørsler krever Authorization-headerconst headers = { 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`, 'Content-Type': 'application/json'};
// For organisasjonsavgrenset tilgangconst orgHeaders = { ...headers, 'OpenAI-Organization': process.env.OPENAI_ORG_ID, 'OpenAI-Project': process.env.OPENAI_PROJECT_ID};API-nøkkelsikkerhet
Ikke eksponer OpenAI API-nøkkelen din i klientside-kode. Bruk alltid miljøvariabler og tjenersideforespørsler. Roter nøkler jevnlig via OpenAI-dashbordet.
Konfigurasjon
Grunnleggende oppsett
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.7Maler for innholdsgenerering
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-endepunkter
| Endepunkt | Metode | Beskrivelse |
|---|---|---|
https://api.openai.com/v1/responses | POST | Opprett AI-svar (Responses API) |
https://api.openai.com/v1/chat/completions | POST | Generer tekstfullføringer |
https://api.openai.com/v1/embeddings | POST | Opprett tekst-embeddings |
https://api.openai.com/v1/images/generations | POST | Generer bilder |
https://api.openai.com/v1/audio/speech | POST | Tekst-til-tale-generering |
https://api.openai.com/v1/audio/transcriptions | POST | Tale-til-tekst-transkripsjon |
https://api.openai.com/v1/moderations | POST | Innholdsmoderasjon |
https://api.openai.com/v1/models | GET | List tilgjengelige modeller |
Kodeeksempler
Initialiser kobling
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'});Generer e-postinnhold
// Generer personaliserte e-postemnelinjerconst 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;Sentimentanalyse av kunder
// Analyser sentiment i kundetilbakemeldingerconst 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 }});Smart segmentering med embeddings
// Generer embeddings for kundeklyngeanalyseconst 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();// Bruk embeddings for likhetsbasert kundeklyngeanalyseRatebegrensninger
| Modell | RPM (forespørsler/min) | TPM (tokens/min) | RPD (forespørsler/dag) |
|---|---|---|---|
| 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 |
Ratebegrensningsheadere
Overvåk ratebegrensningsheadere (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) i API-svar for å implementere proaktiv struping og unngå 429-feil.
Feilsøking
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig API-nøkkel | Verifiser nøkkelen i OpenAI-dashbordet |
| 429 Rate Limited | For mange forespørsler | Implementer eksponentiell backoff |
| 500 Server Error | OpenAI-nedetid | Sjekk status.openai.com og prøv igjen |
| Avkortet respons | max_tokens for lav | Øk max_tokens-parameteren |
| Dårlig innholdskvalitet | Temperature for høy | Senk temperature for konsistens |
Feilsøkingsmodus
connectors: openai: debug: true log_level: verbose log_prompts: false # Ikke logg prompts i produksjon log_usage: trueBeste praksis
- Cache svar - Lagre generert innhold for å redusere API-kall og kostnader
- Bruk strukturerte utdata - Be om JSON-svar for pålitelig parsing
- Implementer retry-logikk - Håndter ratebegrensninger med eksponentiell backoff
- Overvåk tokenbruk - Spor forbruk for å kontrollere kostnader
- Bruk passende modeller - Bruk gpt-4o-mini for enkle oppgaver, gpt-4o for komplekse
- Valider utdata - Valider alltid AI-generert innhold før det sendes til kunder
Sikkerhet
- Bearer-tokenautentisering - API-nøkler overføres via Authorization-header
- Kun tjenerside - Eksponer aldri API-nøkler i klientside-kode
- Nøkkelrotasjon - Roter API-nøkler regelmessig via OpenAI-dashbordet
- Bruksovervåking - Sett utgiftsgrenser i OpenAI-faktureringsinnstillinger
- Innholdsmoderasjon - Bruk Moderations API for å filtrere usikkert innhold
- Personvern - Gjennomgå OpenAIs retningslinjer for databruk for ditt bruksområde