---
title: "OpenAI コネクタ"
description: "Tajo を介して OpenAI を Brevo と連携し、AI 駆動のコンテンツ生成、顧客インサイト、インテリジェントなマーケティング自動化を実現する完全な OpenAI 統合ガイド。"
url: https://tajo.io/jp/docs/connectors/custom/openai/
markdown: https://tajo.io/jp/docs/connectors/custom/openai.md
lang: ja-JP
robots: noindex
---

先行利用を申し込む

お名前と会社のメールアドレスを入力してください。Tajoへのアクセス申請を確認するためのリンクをメールでお送りします。

# OpenAI コネクタ

コネクターのステータス: 予定 まだ構築されていません。Tajo は現在このコネクターを実行していません。

| 送信元フィールド | 送信先フィールド | サンプル値 |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Tajo を介して OpenAI を Brevo に接続し、AI 駆動のコンテンツ生成、顧客のセンチメント分析、インテリジェントなセグメンテーション、予測分析をマーケティング自動化ワークフローに活用します。

## 概要

| プロパティ | 値 |
| --- | --- |
| **プラットフォーム** | OpenAI |
| **カテゴリ** | AI / ML(カスタム) |
| **セットアップの複雑さ** | 中 |
| **公式統合** | いいえ |
| **同期データ** | コンテンツ、埋め込み、インサイト、予測 |
| **認証方式** | API Key(Bearer Token) |

## 機能

- **AI コンテンツ生成** - GPT モデルでメール件名、本文、CTA を生成
- **顧客センチメント分析** - サポートチケットやフィードバックを分析してセンチメントスコアリング
- **スマートセグメンテーション** - 埋め込みを使用して行動パターン別に顧客をクラスタリング
- **予測分析** - チャーン、LTV、購入傾向を予測
- **多言語コンテンツ** - サポートされている任意の言語でマーケティングコンテンツを生成
- **画像生成** - DALL-E 統合でキャンペーンビジュアルを作成

## 前提条件

開始する前に、以下を準備してください。

1. API アクセス可能な OpenAI アカウント
2. [OpenAI ダッシュボード](https://platform.openai.com/api-keys) からの API キー
3. API アクセス可能な Brevo アカウント
4. コネクタ権限を持つ Tajo アカウント
5. 想定される使用量に十分な OpenAI API クレジット

## 認証

### API キー認証

OpenAI はすべての API リクエストに Bearer トークン認証を使用します。

```bash
# 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
```

```javascript
// すべてのリクエストに 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 ダッシュボードから定期的にキーをローテーションしてください。

## 設定

### 基本セットアップ

```yaml
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
```

### コンテンツ生成テンプレート

```yaml
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/responses` | POST | AI レスポンスを作成(Responses API) |
| `https://api.openai.com/v1/chat/completions` | POST | テキスト補完を生成 |
| `https://api.openai.com/v1/embeddings` | POST | テキスト埋め込みを作成 |
| `https://api.openai.com/v1/images/generations` | POST | 画像を生成 |
| `https://api.openai.com/v1/audio/speech` | POST | テキストから音声を生成 |
| `https://api.openai.com/v1/audio/transcriptions` | POST | 音声からテキストに文字起こし |
| `https://api.openai.com/v1/moderations` | POST | コンテンツモデレーション |
| `https://api.openai.com/v1/models` | GET | 利用可能なモデルを一覧取得 |

## コード例

### コネクタの初期化

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

### メールコンテンツを生成

```javascript
// パーソナライズされたメール件名を生成
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;
```

### 顧客センチメント分析

```javascript
// 顧客フィードバックのセンチメントを分析
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 }
});
```

### 埋め込みを使用したスマートセグメンテーション

```javascript
// 顧客クラスタリング用の埋め込みを生成
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-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 |

レート制限ヘッダー

API レスポンスのレート制限ヘッダー(`x-ratelimit-remaining-requests`、`x-ratelimit-remaining-tokens`)を監視して、事前にスロットリングを実装し、429 エラーを回避してください。

## トラブルシューティング

| 問題 | 原因 | 解決策 |
| --- | --- | --- |
| 401 Unauthorized | API キーが無効 | OpenAI ダッシュボードでキーを確認 |
| 429 Rate Limited | リクエスト過多 | 指数バックオフを実装 |
| 500 Server Error | OpenAI の障害 | status.openai.com を確認して再試行 |
| レスポンスが切り捨てられる | max\_tokens が低すぎる | max\_tokens パラメータを増やす |
| コンテンツ品質が低い | Temperature が高すぎる | 一貫性のため temperature を下げる |

### デバッグモード

```yaml
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 生成コンテンツを検証

## セキュリティ

- **ベアラートークン認証** - Authorization ヘッダー経由で API キーを送信
- **サーバーサイドのみ** - クライアントサイドコードに API キーを決して公開しない
- **キーローテーション** - OpenAI ダッシュボードから定期的に API キーをローテーション
- **使用量監視** - OpenAI 課金設定で支出制限を設定
- **コンテンツモデレーション** - Moderations API を使用して安全でないコンテンツをフィルタリング
- **データプライバシー** - ユースケースに応じて OpenAI のデータ使用ポリシーを確認

## 関連リソース

- [Brevo コネクタ](https://tajo.io/jp/docs/connectors/marketing/brevo)
- [顧客同期スキル](https://tajo.io/jp/docs/skills/data-sync/customer-sync)
- [メールマーケティングスキル](https://tajo.io/jp/docs/skills/email-marketing)
- [OpenAI API リファレンス](https://platform.openai.com/docs/api-reference)
