Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 13 additions & 16 deletions docs/src/content/docs/ja/extensions/ai-sdk.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import { Aside, Steps, Code } from '@astrojs/starlight/components';
import aiSdkSetupExample from '../../../../../../examples/docs/extensions/ai-sdk-setup.ts?raw';

<Aside type="caution">
このアダプターはまだベータ版です。特に小規模なモデルプロバイダーでは問題が発生することがあります。問題は
このアダプターはまだベータ版です。特に小規模なモデルプロバイダーでは問題が発生する可能性があります。問題があれば
[GitHub issues](https://github.com/openai/openai-agents-js/issues)
に報告してください。迅速に対応します
から報告してください。迅速に修正します
</Aside>

Agents SDK は標準で OpenAI モデルに対して Responses API または Chat Completions API を通じて動作します。別のモデルを使用したい場合は、[Vercel's AI SDK](https://sdk.vercel.ai/) がサポートする幅広いモデルを、このアダプターを介して Agents SDK に取り込むことができます
Agents SDK は標準で Responses API または Chat Completions API を通じて OpenAI モデルで動作します。ただし、他のモデルを使用したい場合は、[VercelAI SDK](https://sdk.vercel.ai/) がサポートするさまざまなモデルをこのアダプター経由で Agents SDK に組み込めます

## セットアップ

Expand All @@ -24,46 +24,41 @@ Agents SDK は標準で OpenAI モデルに対して Responses API または Cha
npm install @openai/agents-extensions
```

2. [Vercel's AI SDK](https://ai-sdk.dev/docs/foundations/providers-and-models) から目的のモデルパッケージを選び、インストールします:
2. [VercelAI SDK](https://ai-sdk.dev/docs/foundations/providers-and-models) から目的のモデルパッケージを選んでインストールします:

```bash
npm install @ai-sdk/openai
```

3. アダプターとモデルをインポートして、エージェントに接続します:
3. アダプターとモデルをインポートしてエージェントに接続します:

```typescript
import { openai } from '@ai-sdk/openai';
import { aisdk } from '@openai/agents-extensions';
```

4. エージェントが使用するモデルのインスタンスを初期化します:
4. エージェントで使用するモデルのインスタンスを初期化します:

```typescript
const model = aisdk(openai('o4-mini'));
const model = aisdk(openai('gpt-5-mini'));
```

</Steps>

<Aside type="caution">
現在、ai-sdk の model provider v2 モジュールをサポートしており、これは Vercel
AI SDK v5 と互換性があります。特別な理由で v1 の model provider
を使い続けたい場合は、
[examples/ai-sdk-v1](https://github.com/openai/openai-agents-js/tree/main/examples/ai-sdk-v1)
を使い続ける必要がある場合は、[examples/ai-sdk-v1](https://github.com/openai/openai-agents-js/tree/main/examples/ai-sdk-v1)
からモジュールをコピーしてプロジェクトに含めてください。
</Aside>

## 例

<Code
lang="typescript"
code={aiSdkSetupExample}
title="AI SDK のセットアップ"
/>
<Code lang="typescript" code={aiSdkSetupExample} title="AI SDK Setup" />

## プロバイダーのメタデータの受け渡し
## プロバイダー メタデータの受け渡し

メッセージにプロバイダー固有のオプションを送る必要がある場合は、`providerMetadata` を通して渡します。値は基盤となる AI SDK モデルへそのまま転送されます。例えば、Agents SDK で次の `providerData`
メッセージにプロバイダー固有のオプションを送る必要がある場合は、`providerMetadata` に渡します。値は基盤となる AI SDK モデルにそのまま転送されます。たとえば、Agents SDK で次の `providerData`

```ts
providerData: {
Expand All @@ -86,3 +81,5 @@ providerMetadata: {
}
}
```

となります。
49 changes: 25 additions & 24 deletions docs/src/content/docs/ja/extensions/twilio.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@ import { Aside, Steps, Code } from '@astrojs/starlight/components';
import twilioBasicExample from '../../../../../../examples/docs/extensions/twilio-basic.ts?raw';
import twilioServerExample from '../../../../../../examples/realtime-twilio/index.ts?raw';

Twilio は、電話の通話音声の元オーディオを WebSocket サーバーへ送信する [Media Streams API](https://www.twilio.com/docs/voice/media-streams) を提供しています。このセットアップを使って、あなたの [音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を Twilio に接続できます。Twilio から届くイベントを Realtime Session に接続するには、`websocket` モードのデフォルトの Realtime Session transport が使えます。ただし、その場合は適切なオーディオ形式の設定や、Web ベースの会話よりも通話のほうが自然にレイテンシが大きくなるため、割り込みタイミングを自分で調整する必要があります
Twilio は、電話の **raw** オーディオを WebSocket サーバーに送信する [Media Streams API](https://www.twilio.com/docs/voice/media-streams) を提供します。これを使って、[音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を Twilio に接続できます。Twilio から届くイベントを Realtime Session に接続するには、`websocket` モードのデフォルトの Realtime Session トランスポートを使用できます。ただし、通話は Web ベースの会話より遅延が大きくなるため、適切なオーディオ形式の設定と中断タイミングの調整が必要です

セットアップ体験を改善するために、Twilio への接続を処理し、割り込み処理や音声転送も行う専用のトランスポートレイヤーを用意しました
セットアップを簡素化するため、Twilio への接続、中断処理、オーディオ転送を代行する専用のトランスポートレイヤーを用意しました

<Aside type="caution">
このアダプターはまだベータ版です。レアケースの問題やバグに遭遇する可能性があります
問題があれば [GitHub
このアダプターはまだベータ版です。稀なケースで問題やバグに遭遇する場合があります
問題が発生した場合は [GitHub
issues](https://github.com/openai/openai-agents-js/issues)
に報告してください。すぐに修正します
からご報告ください。迅速に対応します
</Aside>

## セットアップ

<Steps>

1. **Twilio アカウントと Twilio の電話番号を用意すること**
1. **Twilio アカウントと Twilio の電話番号を用意します。**

2. **Twilio からのイベントを受け取れる WebSocket サーバーをセットアップすること**
2. **Twilio からのイベントを受け取れる WebSocket サーバーを用意します。**

ローカル開発の場合、[`ngrok`](https://ngrok.io/) や
ローカル開発の場合は、[`ngrok`](https://ngrok.io/) や
[Cloudflare Tunnel](https://developers.cloudflare.com/pages/how-to/preview-with-cloudflare-tunnel/)
のようなローカルトンネルの設定が必要になり、ローカルサーバーを Twilio からアクセス可能にする必要があります。`TwilioRealtimeTransportLayer`
などでローカルトンネルを設定し、ローカルサーバーを Twilio からアクセス可能にする必要があります。`TwilioRealtimeTransportLayer`
を使って Twilio に接続できます。

3. **エクステンションパッケージをインストールして Twilio アダプターを導入すること:**
3. **extensions パッケージをインストールして Twilio アダプターを導入します:**

```bash
npm install @openai/agents-extensions
```

4. **アダプターとモデルをインポートして`RealtimeSession` に接続すること:**
4. **アダプターとモデルをインポートして `RealtimeSession` に接続します:**

<Code
lang="typescript"
Expand All @@ -47,39 +47,40 @@ Twilio は、電話の通話音声の元オーディオを WebSocket サーバ
)}
/>

5. **`RealtimeSession` を Twilio に接続すること:**
5. **`RealtimeSession` を Twilio に接続します:**

```typescript
session.connect({ apiKey: 'your-openai-api-key' });
```

</Steps>

`RealtimeSession` で期待されるあらゆるイベントや挙動は、ツール呼び出しやガードレールなども含めて期待どおりに動作します。`RealtimeSession` を音声エージェントと使う方法については、[音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を参照してください。
`RealtimeSession` に期待されるイベントや動作は、ツール呼び出しやガードレールなどを含めて、そのまま機能します。`RealtimeSession` を音声エージェントで使う方法の詳細は、[音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を参照してください。

## ヒントと考慮事項

1. **スピードがすべてです**
1. **スピードが最重要です。**

Twilio から必要なイベントと音声をすべて受け取るには、WebSocket 接続の参照を取得したらすぐに
`TwilioRealtimeTransportLayer` インスタンスを作成し、その直後に `session.connect()` を呼び出すべきです
Twilio から必要なイベントとオーディオを受け取るには、WebSocket 接続の参照を取得したらすぐに
`TwilioRealtimeTransportLayer` インスタンスを作成し、直ちに `session.connect()` を呼び出してください

2. **Twilio の生イベントにアクセスする**
2. **Twilio の raw イベントにアクセスします。**

Twilio から送られてくる元のイベントにアクセスしたい場合は、`RealtimeSession` インスタンスの
`transport_event` をリッスンします。Twilio からのすべてのイベントは `twilio_message` という type を持ち、元のイベントデータを含む `message` プロパティがあります。
Twilio が送信する **raw** イベントにアクセスしたい場合は、`RealtimeSession` インスタンスの
`transport_event` をリッスンします。Twilio からのすべてのイベントは `twilio_message` という type を持ち、
**raw** イベントデータを含む `message` プロパティを持ちます。

3. **デバッグログを確認する**
3. **デバッグログを確認します。**

何が起きているかについて、より多くの情報が必要になることがあります。環境変数 `DEBUG=openai-agents*` を使うとAgents SDK のすべてのデバッグログが表示されます。あるいは、Twilio アダプターのデバッグログだけを有効にするには
`DEBUG=openai-agents:extensions:twilio*` を使います
状況を詳しく把握したい場合は、環境変数 `DEBUG=openai-agents*` を使うと Agents SDK のすべてのデバッグログが表示されます。
もしくは、`DEBUG=openai-agents:extensions:twilio*` で Twilio アダプターのデバッグログだけを有効にできます

## 完全なサーバー例

以下は、Twilio からのリクエストを受け取り、`RealtimeSession` に転送するエンドツーエンドの WebSocket サーバーの例です
以下は、Twilio からのリクエストを受け取り、`RealtimeSession` に転送する WebSocket サーバーのエンドツーエンドのサンプルです

<Code
lang="typescript"
code={twilioServerExample}
title="Fastify を使ったサーバー例"
title="Fastify を使用したサーバー例"
/>
Loading