この記事では、Astra DB と Langflow、watsonx.ai を使って、ノーコードで最小限のRAGアプリケーションを構築する手順を紹介します。
なお、生成AIの部分は他のサービスを利用する場合でも、同様の流れで構築可能なため、参考にしていただける内容になっています。
各サービスの公式ドキュメントは以下になります。
1. 事前準備
1-1. DataStax Astra のアカウント作成
無料プランが用意されているため、検証や学習用途で気軽に試すことができます。
以下のページから、Astra のアカウントを作成してください。
https://astra.datastax.com/signup
1-2. 生成AIサービスの準備
本記事では、Embedding Model および Language Model として watsonx.ai を使用します。
Langflow では、watsonx.ai 以外にも複数の生成AIサービスに対応しています。
例えば、以下のような生成AIサービスが選択できます。
![]() |
![]() |
|---|
なお、watsonx.ai を利用するためには、事前に以下の情報を用意しておく必要があります。
- API Key
- Project ID
- API Endpoint
これらの具体的な取得方法については、以下の記事で詳しく解説しています。
2. Astra DB (ベクトルDB) の作成
Astra の管理画面から、「Create database」 をクリックします。
また、初回ログイン時は、サインアップ後に Database 作成画面へ自動的に遷移します。
データベースの設定を入力します。
- Services:
vector - Database name:
vectordb - Provider:
AWS Web Service - Region:
us-east-2
※ Database name、Provider、Region は、本記事では例として上記の設定を使用しています。必要に応じて適宜変更してください。

設定を入力したら、「Create database」 をクリックします。
ステータスが 「Active」 になると、Database が利用可能な状態になります。
3. コレクションの作成
コレクション は、ベクトル化された文書データを格納するための単位です。
RAG 構成においては、「検索対象となる文書のまとまり」を表すものと考えると分かりやすいです。
作成した Database の画面から、「Go to Explorer」 をクリックします。
Explorer 画面で、「Create collection」 → 「Empty collection」 をクリックします。

※ 「Create collection」 が表示されない場合は、ページをリロードしてください。
コレクションの情報を入力します。
- Collection name:
my_collection - Embedding method:
Bring my own - Dimensions:
1024 - Similarity metric:
DotProduct
設定を入力したら、「Create collection」 をクリックします。
Collection name:
任意の名前を指定できます。本記事では例として my_collection としています。
Embedding method:
公式マニュアル:Auto-generate embeddings with vectorize
今回は watsonx.ai を利用するため、Bring my own を選択しています。
Dimensions:
使用する Embedding model のベクトル次元数に合わせて指定します。
本記事では Embedding model として intfloat/multilingual-e5-large を使用しており、このモデルは 1024 次元 のベクトルを出力するため、1024 を指定しています。
Similarity metric:
公式マニュアル:Similarity metrics
ベクトル検索時の類似度計算方法を指定します。
今回は DotProduct を選択しています。これはベクトルの内積を用いた類似度計算方法で、正規化済みのベクトルと相性が良く、Embedding model でよく利用される指標です。
他にも、ベクトル同士の角度の近さで類似度を計算する Cosine や、ベクトル間の距離そのものを用いる Euclidean などが用意されています。
コレクションの作成が完了すると、Explorer 画面に作成したコレクションが表示されます。
4. Langflow を開く
AstraDB の画面右上にある 「Applications」 をクリックします。
一覧から 「Langflow」 をクリックします。
Langflow の画面が立ち上がるので、「+ Create first flow」 をクリックします。
Langflow にはサンプルのフローも用意されていますが、
今回は一からフローを作成するため、「+ Blank flow」 をクリックします。
こちらがフローを作成するキャンバスです。
5. ドキュメントをベクトル化して Astra DB に登録
左側の検索欄で 「Astra DB」 と検索します。
表示された AstraDB ノードを、キャンバスにドラッグ&ドロップします。
先ほど作成した Database と Collection を選択します。
次に、Embedding Model を追加します。
「Model & Agents」 カテゴリにある 「Embedding model」 を配置します。
ご自身で用意した AI サービスを選択します。
本記事では watsonx.ai を使用するため、Model Provider を watsonx.ai に変更します。
次に、API Endpoint、Model Name、API Key を入力します。
具体的な取得方法については、以下の記事で詳しく解説しています。
また、日本語のドキュメントを扱うため、今回は Embedding Model として intfloat/multilingual-e5-large を使用します。
設定が完了したら、Embedding model ノードと AstraDB ノードを接続します。
これにより、Embedding model で生成したベクトルを Astra DB に登録できるようになります。
次に、ファイルの読み込みを行います。
「Files」 カテゴリにある 「Read file」 を配置します。
今回のデモでは、以下のドキュメントを使用します。
ご自身のお好きなドキュメントを使用しても問題ありません。
「Files」 の緑色のボタンをクリックし、使用するファイルを選択します。
次に、テキストを分割(チャンク)するための設定を行います。
「Processing」 カテゴリから 「Split Text」 を配置します。
Chunk size と Chunk overlap を設定します。
- Chunk size:1 つのチャンクに含める文字数の上限を指定します。
- Chunk overlap:チャンク間でテキストを重複させる文字数を指定します。
今回は、いずれもデフォルト設定のまま使用します。
Read file ノードの出力を Split Text ノードの入力に接続し、
Split Text で分割した出力を AstraDB ノードの入力に接続します。
AstraDB ノード右上の 「Run Component」 をクリックし、データの取り込みを開始します。
取り込みが完了しました。
データが正しく取り込まれているか確認します。
再び、右上の 「Applications」 から 「AstraDB」 に戻ります。
作成した Database を選択します。
「Data Explorer」 を選択します。
Records 欄を見ると、
テキストがチャンク化され、ベクトルDBに格納されていることが確認できます。
6. Chat フローの作成
次に、チャット形式のアプリケーションを作成します。
Langflow に戻り、先ほどまで使用していたフローを選択します。
「Input & Output」 から 「Chat Input」 を配置します。
次に、「LLM Operation」 から 「Prompt template」 を配置します。
Template のテキストボックスをクリックして開きます。
以下のプロンプトを入力します。
この後のフロー設定により、{context} には検索結果が、{question} にはユーザーの質問が渡されるようになります。
{context}
---
上記の文脈を踏まえ、可能な限り質問に答えてください。
質問: {question}
回答:
なお、ここで設定するプロンプトは一例です。 目的に合わせて自由に調整してください。
次に、「Models & Agents」 から 「Language Model」 を配置します。
これは推論で使用する LLM モデルです。
用意した AI サービスの接続情報を入力します。
今回は、推論に使用するモデルとして Llama 4 Maverick を選択します。
次に、「Chat Output」 を配置します。
下図のように各ノードを接続し、右上の 「Playground」 をクリックします。
チャット画面が表示されたら、推論モデルが正しく反映されているか確認します。
ここでは例として、「Langflow について教えてください。」 と質問してみます。
すると、設定した watsonx.ai の Llama 4 Maverick が回答を返します。
次に、左側の 「+」 ボタンをクリックし、「New Chat」 を開きます。
続いて、「どんな文章を知っていますか?」 と質問してみます。
この時点ではまだベクトルDBを接続していないため、資料の内容に基づいた正確な回答は返ってきません。
7. RAG フローの作成
次に、先ほど作成したチャットアプリに RAG を追加していきます。
まず、「Astra DB」 を先ほどの Chat Flow の近くに配置します。
上段で、データを登録した Database と Collection を選択します。
次に、「Embedding model」 を配置します。
これは、ユーザーの質問文をベクトル化するために使用します。
すでに配置済みのノードは、コピー&ペーストして同じ設定のまま再利用することもできます。
※ Embedding Model は必ずデータ投入時と同じものを使用してください。
Embedding model を Astra DB に接続します。
次に、「Processing」 カテゴリから 「Parser」 を配置します。
これは、Astra DB から取得した検索結果を、Prompt に渡しやすいテキスト形式へ整形するために使用します。詳しくは、Langflow の公式ドキュメント を参照してください。
Astra DB ノードの出力を 「DataFrame」 に変更します。
これは、検索結果を構造化データとして扱い、Parser ノードで適切に処理するためです。
Astra DB の出力を Parser に接続します。
次に、Chat Input ノードを Astra DB に接続します。
これにより、ユーザーの質問文をベクトル化し、ベクトルDBに登録されたデータに対して類似検索を行います。
Parser ノードの出力を、Prompt template の {context} に設定します。
これにより、検索結果がプロンプトに渡され、RAG による回答生成が行われるようになります。
これで RAG フローの構成は完了です。
右上の 「Playground」 をクリックして、動作を確認してみます。
8. RAG を組み込んだチャットを試す
「New Chat」を開きます。
まず、「どんな文章を知っていますか?」 と質問してみます。
先ほどとは異なり、ベクトルDBに格納した文書の内容を踏まえた回答が返ってきます。
次に、「この資料のデモシナリオを教えてください。」 と質問してみます。
資料の内容に沿った回答が返され、RAG が正しく機能していることを確認できます。
9. まとめ
本記事では、Astra DB と Langflow を使って、ノーコードで最小限の RAG アプリケーションを構築する手順を紹介しました。
Langflow を活用することで、コードを書かなくても RAG アプリケーションを構築でき、フローを視覚的に確認しながら RAG の構造や処理の流れを直感的に理解できます。
RAG やベクトルDBに初めて触れる方が、「まずは動かして理解する」ための入り口として、本記事が参考になれば幸いです。





















































