mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-10 07:27:57 -05:00
192 lines
6.3 KiB
Plaintext
192 lines
6.3 KiB
Plaintext
---
|
||
title: データ構造
|
||
---
|
||
|
||
import { Callout } from 'fumadocs-ui/components/callout'
|
||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||
|
||
ブロックを接続する際、異なるブロック出力のデータ構造を理解することが重要です。なぜなら、ソースブロックからの出力データ構造によって、宛先ブロックで利用可能な値が決まるからです。各ブロックタイプは、下流のブロックで参照できる特定の出力構造を生成します。
|
||
|
||
<Callout type="info">
|
||
これらのデータ構造を理解することは、接続タグを効果的に使用し、ワークフローで正しいデータにアクセスするために不可欠です。
|
||
</Callout>
|
||
|
||
## ブロック出力構造
|
||
|
||
ブロックタイプによって、異なる出力構造が生成されます。各ブロックタイプから期待できる出力は次のとおりです:
|
||
|
||
<Tabs items={['Agent Output', 'API Output', 'Function Output', 'Evaluator Output', 'Condition Output', 'Router Output']}>
|
||
<Tab>
|
||
|
||
```json
|
||
{
|
||
"content": "The generated text response",
|
||
"model": "gpt-4o",
|
||
"tokens": {
|
||
"prompt": 120,
|
||
"completion": 85,
|
||
"total": 205
|
||
},
|
||
"toolCalls": [...],
|
||
"cost": [...],
|
||
"usage": [...]
|
||
}
|
||
```
|
||
|
||
### エージェントブロックの出力フィールド
|
||
|
||
- **content**: エージェントによって生成されたメインテキスト応答
|
||
- **model**: 使用されたAIモデル(例:「gpt-4o」、「claude-3-opus」)
|
||
- **tokens**: トークン使用統計
|
||
- **prompt**: プロンプトのトークン数
|
||
- **completion**: 完了のトークン数
|
||
- **total**: 使用された合計トークン数
|
||
- **toolCalls**: エージェントによって行われたツールコールの配列(存在する場合)
|
||
- **cost**: 各ツールコールのコストオブジェクトの配列(存在する場合)
|
||
- **usage**: 応答全体のトークン使用統計
|
||
|
||
</Tab>
|
||
<Tab>
|
||
|
||
```json
|
||
{
|
||
"data": "Response data",
|
||
"status": 200,
|
||
"headers": {
|
||
"content-type": "application/json",
|
||
"cache-control": "no-cache"
|
||
}
|
||
}
|
||
```
|
||
|
||
### APIブロックの出力フィールド
|
||
|
||
- **data**: APIからのレスポンスデータ(任意の型)
|
||
- **status**: レスポンスのHTTPステータスコード
|
||
- **headers**: APIから返されたHTTPヘッダー
|
||
|
||
</Tab>
|
||
<Tab>
|
||
|
||
```json
|
||
{
|
||
"result": "Function return value",
|
||
"stdout": "Console output",
|
||
}
|
||
```
|
||
|
||
### 関数ブロックの出力フィールド
|
||
|
||
- **result**: 関数の戻り値(任意の型)
|
||
- **stdout**: 関数実行中にキャプチャされたコンソール出力
|
||
|
||
</Tab>
|
||
<Tab>
|
||
|
||
```json
|
||
{
|
||
"content": "Evaluation summary",
|
||
"model": "gpt-5",
|
||
"tokens": {
|
||
"prompt": 120,
|
||
"completion": 85,
|
||
"total": 205
|
||
},
|
||
"metric1": 8.5,
|
||
"metric2": 7.2,
|
||
"metric3": 9.0
|
||
}
|
||
```
|
||
|
||
### 評価ブロックの出力フィールド
|
||
|
||
- **content**: 評価の要約
|
||
- **model**: 評価に使用されたAIモデル
|
||
- **tokens**: トークン使用統計
|
||
- **[metricName]**: 評価者で定義された各メトリックのスコア(動的フィールド)
|
||
|
||
</Tab>
|
||
<Tab>
|
||
|
||
```json
|
||
{
|
||
"conditionResult": true,
|
||
"selectedPath": {
|
||
"blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
|
||
"blockType": "agent",
|
||
"blockTitle": "Follow-up Agent"
|
||
},
|
||
"selectedOption": "condition-1"
|
||
}
|
||
```
|
||
|
||
### 条件ブロックの出力フィールド
|
||
|
||
- **conditionResult**: 条件評価の真偽値結果
|
||
- **selectedPath**: 選択されたパスに関する情報
|
||
- **blockId**: 選択されたパスの次のブロックのID
|
||
- **blockType**: 次のブロックのタイプ
|
||
- **blockTitle**: 次のブロックのタイトル
|
||
- **selectedOption**: 選択された条件のID
|
||
|
||
</Tab>
|
||
<Tab>
|
||
|
||
```json
|
||
{
|
||
"content": "Routing decision",
|
||
"model": "gpt-4o",
|
||
"tokens": {
|
||
"prompt": 120,
|
||
"completion": 85,
|
||
"total": 205
|
||
},
|
||
"selectedPath": {
|
||
"blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
|
||
"blockType": "agent",
|
||
"blockTitle": "Customer Service Agent"
|
||
}
|
||
}
|
||
```
|
||
|
||
### ルーターブロックの出力フィールド
|
||
|
||
- **content**: ルーティング決定テキスト
|
||
- **model**: ルーティングに使用されたAIモデル
|
||
- **tokens**: トークン使用統計
|
||
- **selectedPath**: 選択されたパスに関する情報
|
||
- **blockId**: 選択された宛先ブロックのID
|
||
- **blockType**: 選択されたブロックのタイプ
|
||
- **blockTitle**: 選択されたブロックのタイトル
|
||
|
||
</Tab>
|
||
</Tabs>
|
||
|
||
## カスタム出力構造
|
||
|
||
一部のブロックでは、その設定に基づいてカスタム出力構造を生成することがあります:
|
||
|
||
1. **レスポンスフォーマットを持つエージェントブロック**: エージェントブロックでレスポンスフォーマットを使用する場合、出力構造は標準構造ではなく、定義されたスキーマに一致します。
|
||
|
||
2. **関数ブロック**: `result` フィールドには、関数コードから返される任意のデータ構造が含まれます。
|
||
|
||
3. **APIブロック**: `data` フィールドには、APIが返す任意の有効なJSON構造が含まれます。
|
||
|
||
<Callout type="warning">
|
||
開発中は常にブロックの実際の出力構造を確認し、接続で正しいフィールドを参照していることを確認してください。
|
||
</Callout>
|
||
|
||
## ネストされたデータ構造
|
||
|
||
多くのブロック出力にはネストされたデータ構造が含まれています。これらにはドット表記を使用して接続タグでアクセスできます:
|
||
|
||
```
|
||
<blockName.path.to.nested.data>
|
||
```
|
||
|
||
例えば:
|
||
|
||
- `<agent1.tokens.total>` - エージェントブロックから合計トークン数にアクセス
|
||
- `<api1.data.results[0].id>` - APIレスポンスの最初の結果のIDにアクセス
|
||
- `<function1.result.calculations.total>` - 関数ブロックの結果内のネストされたフィールドにアクセス
|