Tajo 사전 이용 신청

이름과 이메일 주소 또는 전화번호를 입력해 주세요. Tajo 이용 방법을 안내해 드립니다.

OpenAI 커넥터

Tajo를 통해 OpenAI를 Brevo와 연결하여 AI 기반 콘텐츠 생성, 고객 감정 분석, 지능형 세그먼테이션, 마케팅 자동화 워크플로를 위한 예측 분석을 활용하십시오.

개요

속성
플랫폼OpenAI
카테고리AI / ML (Custom)
설정 복잡도중간
공식 통합아니오
동기화 데이터콘텐츠, 임베딩, 인사이트, 예측
인증 방법API 키 (Bearer Token)

기능

  • AI 콘텐츠 생성 - GPT 모델로 이메일 제목, 본문, CTA 생성
  • 고객 감정 분석 - 지원 티켓 및 피드백을 분석하여 감정 점수 산출
  • 스마트 세그먼테이션 - 임베딩을 사용하여 행동 패턴별로 고객 클러스터링
  • 예측 분석 - 이탈, LTV, 구매 성향 예측
  • 다국어 콘텐츠 - 지원되는 모든 언어로 마케팅 콘텐츠 생성
  • 이미지 생성 - DALL-E 통합으로 캠페인 비주얼 생성

사전 요구 사항

시작하기 전에 다음이 준비되어 있는지 확인하십시오.

  1. API 접근이 가능한 OpenAI 계정
  2. OpenAI 대시보드의 API 키
  3. API 접근이 가능한 Brevo 계정
  4. 커넥터 권한이 있는 Tajo 계정
  5. 예상 사용량에 충분한 OpenAI API 크레딧

인증

API 키 인증

OpenAI는 모든 API 요청에 Bearer 토큰 인증을 사용합니다.

Terminal window
# 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
// 모든 요청에는 Authorization 헤더가 필요함
const headers = {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
};
// 조직 범위 접근용
const orgHeaders = {
...headers,
'OpenAI-Organization': process.env.OPENAI_ORG_ID,
'OpenAI-Project': process.env.OPENAI_PROJECT_ID
};

API 키 보안

OpenAI API 키를 클라이언트 측 코드에 절대 노출하지 마십시오. 항상 환경 변수와 서버 측 요청을 사용하십시오. OpenAI 대시보드를 통해 키를 주기적으로 교체하십시오.

구성

기본 설정

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:
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

API 엔드포인트

엔드포인트메서드설명
https://api.openai.com/v1/responsesPOSTAI 응답 생성 (Responses API)
https://api.openai.com/v1/chat/completionsPOST텍스트 완성 생성
https://api.openai.com/v1/embeddingsPOST텍스트 임베딩 생성
https://api.openai.com/v1/images/generationsPOST이미지 생성
https://api.openai.com/v1/audio/speechPOST텍스트-음성 변환 생성
https://api.openai.com/v1/audio/transcriptionsPOST음성-텍스트 변환
https://api.openai.com/v1/moderationsPOST콘텐츠 조정
https://api.openai.com/v1/modelsGET사용 가능한 모델 목록

코드 예제

커넥터 초기화

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

이메일 콘텐츠 생성

// 맞춤형 이메일 제목 생성
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;

고객 감정 분석

// 고객 피드백 감정 분석
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 }
});

임베딩을 사용한 스마트 세그먼테이션

// 고객 클러스터링을 위한 임베딩 생성
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();
// 유사성 기반 고객 클러스터링에 임베딩 사용

속도 제한

모델RPM (분당 요청)TPM (분당 토큰)RPD (일당 요청)
gpt-4o50030,00010,000
gpt-4o-mini500200,00010,000
text-embedding-3-small5001,000,00010,000
dall-e-35N/A200

속도 제한 헤더

API 응답의 속도 제한 헤더(x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens)를 모니터링하여 사전 조절을 구현하고 429 오류를 방지하십시오.

문제 해결

문제원인해결 방법
401 Unauthorized잘못된 API 키OpenAI 대시보드에서 키 확인
429 속도 제한너무 많은 요청지수 백오프 구현
500 서버 오류OpenAI 장애status.openai.com 확인 후 재시도
잘린 응답max_tokens가 너무 낮음max_tokens 매개변수 증가
낮은 콘텐츠 품질temperature가 너무 높음일관성을 위해 temperature 낮추기

디버그 모드

connectors:
openai:
debug: true
log_level: verbose
log_prompts: false # 프로덕션에서는 프롬프트를 로깅하지 않음
log_usage: true

모범 사례

  1. 응답 캐싱 - API 호출 및 비용을 줄이기 위해 생성된 콘텐츠 저장
  2. 구조화된 출력 사용 - 안정적인 파싱을 위해 JSON 응답 요청
  3. 재시도 로직 구현 - 지수 백오프로 속도 제한 처리
  4. 토큰 사용량 모니터링 - 비용 관리를 위해 소비량 추적
  5. 적절한 모델 사용 - 단순한 작업에는 gpt-4o-mini, 복잡한 작업에는 gpt-4o 사용
  6. 출력 검증 - 고객에게 전송하기 전에 AI 생성 콘텐츠를 항상 검증

보안

  • Bearer 토큰 인증 - Authorization 헤더를 통해 API 키 전송
  • 서버 측 전용 - 클라이언트 측 코드에 API 키를 노출하지 않음
  • 키 교체 - OpenAI 대시보드를 통해 API 키를 정기적으로 교체
  • 사용량 모니터링 - OpenAI 청구 설정에서 지출 한도 설정
  • 콘텐츠 조정 - Moderations API를 사용하여 안전하지 않은 콘텐츠 필터링
  • 데이터 개인 정보 보호 - 사용 사례에 대한 OpenAI 데이터 사용 정책 검토

관련 리소스

Tajo 사전 이용 신청

이름과 이메일 주소 또는 전화번호를 입력해 주세요. Tajo 이용 방법을 안내해 드립니다.

자동 감지
AI 어시스턴트

안녕하세요! 문서에 대해 무엇이든 물어보세요.