Generative AI Use Case JP (GenU) で Amazon Bedrock Flows で作成したフローを連携する
2026.3.3
概要
本記事では、Amazon Bedrock Flows で作成した AI ワークフローを、Generative AI Use Cases JP (GenU) に連携する手順をご紹介します。
今回はユースケースとして、「調査するデータソースに優先度を設ける」というテーマのフローを構築します。
Bedrock Flows の作成
社内ナレッジを優先的に検索し、関連度スコアが閾値を超えた場合は社内情報を基に回答、超えなかった場合は社外ナレッジを検索する条件分岐型の RAG フローを構築しました。
- 社内ナレッジ:社内特有の詳細な操作手順
- 社外ナレッジ:一般的な操作手順
処理の流れは以下の通りです。
- 社内ナレッジソースを検索
- 関連度が閾値を超える場合はその内容を回答する
- 関連度が閾値を超えない場合は社外ナレッジソースをもとに回答
このフローにより、優先的に検索させたいナレッジソースを先に検索させることが可能になります。
完成したフローは以下の通りです。

フローの全体像
フローの全体像をテキスト形式で表すと、以下のようになります。
ユーザー入力(質問文)
│
├──→ [KnowledgeBaseNode_1_copy] 社内ナレッジ検索(Knowledge Base)
│ │
│ ├──→ [InlineCodeNode_1] 関連度スコア判定(スコア > 0.5 )
│ │ │
│ │ └──→ [ConditionNode_1] 分岐
│ │ ├─ true → [Prompt_1] LLM で回答生成 → [FlowOutputNode_2]
│ │ └─ false → [KnowledgeBaseNode_2] 社外ナレッジを検索し回答生成 → [FlowOutputNode_3]
│ │
│ └──→ [Prompt_1] へ検索結果を渡す(true ルートの場合)
│
├──→ [Prompt_1] へ質問文を渡す(true ルートの場合)
└──→ [KnowledgeBaseNode_2] へ質問文を渡す(false ルートの場合)
ノード構成
各ノードの役割は以下の通りです。
| No | ノード名 | タイプ | 役割 |
|---|---|---|---|
| 1 | FlowInputNode | Flow input | ユーザーからの質問文を受け取る |
| 2 | KnowledgeBaseNode_1_copy | Knowledge base | 社内ナレッジを検索する |
| 3 | InlineCodeNode_1 | Inline Code | 検索結果の関連度スコアを判定する |
| 4 | ConditionNode_1 | Condition | スコア判定結果に基づいて処理を分岐する |
| 5 | Prompt_1 | Prompts | 検索結果と質問文を基に LLM で回答を生成する |
| 6 | KnowledgeBaseNode_2 | Knowledge base | 社外ナレッジで回答を生成する |
| 7 | FlowOutputNode_2 | Flow output | LLM 生成回答を出力する(関連度が高い場合) |
| 8 | FlowOutputNode_3 | Flow output | 社外 Knowledge Base による回答を出力する(関連度が低い場合) |
各ノードの詳細解説
以下 3 つのポイントに絞って解説します。
- Inline Code での関連度スコア判定
- Condition の条件分岐
- 社内ナレッジに関連があった場合の回答
Inline Code での関連度スコア判定
今回は、RAG の関連度を Knowledge Base の出力結果に含まれるscoreを使って判別する仕組みを実装しました。
Knowledge Base からの回答は、以下のように JSON 形式の複雑な構造になっています。
Knowledge Base の出力トレースの一部抜粋
"score": 0.40366350531418077,
"location": {
"sharePointLocation": null,
"salesforceLocation": null,
"sqlLocation": null,
"kendraDocumentLocation": null,
"confluenceLocation": null,
"customDocumentLocation": null,
"s3Location": {
"uri": "s3://cold-airflow-148761661473/flows/internal_knowledge.md"
},
"type": "S3",
"webLocation": null
},
しかし、条件ノードは単純な比較しか行えないため、この出力をそのまま利用できません。
そのため、InlineCodeNode を使って score の値のみを抽出し、真偽値 (Boolean) を返す処理を実装しました。
以下の Python コードを使用して、検索結果の関連度を判定します。
def __func(variable):
return any(item.get('score', 0) > 0.5 for item in variable)
__func(variable)
検索結果の配列を受け取り、いずれかの結果でscoreが 0.5 を超えれば true を返します。
Condition の条件分岐
インラインコードの判定結果(Boolean)に基づいて処理を分岐します。
- 社内ナレッジに関連度がある場合:社内ナレッジを活用して LLM で回答
- 社内ナレッジに関連度がない場合:社外ナレッジベースで回答を生成
社内ナレッジに関連があった場合の回答
最初の Knowledge Base を使った社内ナレッジ検索では、score の判定を行なうために、取得した結果を返すだけにしています。
そのため、実際の回答を生成するために、以下の 2 つの入力を受け取っています。
retrieveResults: 社内ナレッジからの検索結果document: ユーザーからの元の質問文
なお、社外ナレッジについては、取得した結果に基づいて応答を生成する設定にしています。
エイリアスの作成
フローが完成したら、エイリアスを作成します。


このエイリアス ID とフロー ID を、GenU の設定で使用するのでコピーしておきます。

GenU の設定更新
作成したフローを GenU から呼び出せるように、parameter.ts を更新してデプロイします。
flows の配列に作成したフローの情報を追加します。
const envs: Record<string, Partial<StackInput>> = {
test: {
flows: [
{
flowId: "XXXXXXXX",
aliasId: "XXXXXXXX",
flowName: "Sample1",
description: "サンプルフロー",
},
],
},
};
generative-ai-use-cases/docs/ja/DEPLOY_OPTION.md at main · aws-samples/generative-ai-use-cases
GenU での動作確認
デプロイ完了後、GenU のチャット画面から実際に動作を確認してみます。
社内ナレッジに該当する検索の場合
社内情報として登録されている内容を聞くと、スコア判定(true ルート)を通過し、社内ナレッジベースの情報を基に回答が生成されます。

社外ナレッジに該当する検索の場合
社内ナレッジには存在しない一般的な内容を聞くと、スコア判定(false ルート)に分岐し、汎用ナレッジベース側の情報から回答が生成されます。

社内・社外どちらにも情報がない場合
どちらのナレッジベースにも関連する情報が含まれていない場合は、「提供された検索結果には〇〇に関する情報は含まれていません。」と、ハルシネーションを起こすことなく適切な回答が返ってきます。

まとめ
Bedrock Flows を使用することで、条件分岐や複数のナレッジベースのルーティングを含む複雑な AI ワークフローを、視覚的かつ直感的に作成できます。
さらに GenU と連携することで、構築した高度なフローを素早く安全に社内ユーザー向けのチャットインターフェースとして展開することができます。
ユーザーの質問意図に応じた柔軟な生成 AI アプリケーションの実装に、ぜひ Bedrock Flows と GenU の連携を活用してみてください。
NHN テコラスの採用情報はこちら
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。
Recommends
こちらもおすすめ
-
『生成 AI』における『ガードレール』とは?
2024.12.14
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28

AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16

