AIでデータをクエリする
Squid AIの Query with AI 機能を使って、リアルタイムでデータの情報を取得します。
作成するもの
- ask questions を使って、ヘルスケアデータに関する質問ができるアプリ
- データはランダムに生成され、Squidの built-in database に保存されます
学習内容
- Squid の
executeAiQueryメソッドを使用して、データに関する質問を行う方法 - クライアントがバックエンドと連携できるようにするための executable function の設定方法
TypeScriptの経験が必要です。Reactの経験があると便利ですが、必須ではありません。
Huge thanks to our partners at Otairo for collaborating with us on this tutorial!
Environment setup
- In the Squid Console, switch to the
devenvironment.

Download the ai-for-data code sample using the following command. Replace the placeholders with the values from your Squid application as shown in the console.
npx @squidcloud/cli init-sample ai-for-data --template ai-for-data --appId YOUR_SQUID_APP_ID --apiKey YOUR_SQUID_API_KEY --environmentId dev --squidDeveloperId YOUR_SQUID_DEVELOPER_ID --region YOUR_REGION
You can find your environment variables under: 'Application' -> 'Show env vars' as seen below:

- Open the project in the IDE of your choice.
- Start the app locally by running the following command in the project folder:
npm run start
- To view the app, navigate to localhost:PORT, where PORT is logged in the terminal. The address will likely be
http://localhost:5173.
アプリの機能を確認する
-
Add mock data ボタンをクリックして、ランダム生成されたデータをデータベースに追加します。データはリアルタイムでクライアントに同期されるため、追加されたことを確認できます。
-
Squid Console で、アプリの Connectors タブをクリックします。
-
built_in_db コネクタの
...をクリックし、ドロップダウンから Schema を選択します。 -
次に、スキーマのコレクションおよびフィールドに説明を追加します。これにより、Squid AI がデータをより正確に理解し、質問に対して適切な回答を提供できるようになります。
health_dataコレクションの鉛筆アイコンをクリックし、以下の内容をコレクションの説明に追加します:
Each document contains patient information regarding their age, patient ID, and their medical diagnosis.
ageフィールドの...ボタンをクリックし、ドロップダウンメニューから Edit field を選択します。以下の説明を追加し、Update をクリックします。
The age of the patient
diagnosisフィールドの...ボタンをクリックし、ドロップダウンメニューから Edit field を選択します。以下の説明を追加し、Update をクリックします。
The patient's medical diagnosis
patentIdフィールドの...ボタンをクリックし、ドロップダウンメニューから Edit field を選択します。以下の説明を追加し、Update をクリックします。
The patient's ID
-
Save schema をクリックします。これにより、Squid AI に対してクエリをどのように作成するかを知らせるスキーマと説明が提供されます。
-
サンプルアプリで、チャットボットにデータに関する質問をしてみましょう。Squid AI は、あなたのプロンプトに基づいて自動的にデータベースクエリを生成します。例えば、以下の質問を試してみてください:
- How many people were diagnosed with the flu?
- What is the most common diagnosis among people over 50 years old?
- What is the average age of patients diagnosed with asthma?
コードの内訳
バックエンドで AI クエリを実行する
Squid のバックエンドでは、data-ai-service.ts ファイル内で @executable デコレーターが付与されたクラスが存在します。Squid の executable は、サーバー上で実行される関数をクライアントに提供します。
Executables はクライアントから直接アクセスでき、バックエンドのリソースやシークレットに無制限の権限でアクセス可能です。つまり、認証されたユーザーのみが実行できるよう、十分な注意が必要です。
executeAiQuery メソッドは、データベースのコネクタIDと質問をパラメータとして受け取り、Squid AI のレスポンスへ解決する Promise を返します。詳細は AI queries documentation をご覧ください。
export class SquidAiDataService extends SquidService {
@executable()
async askQuestion(question: string): Promise<AiResponse> {
const aiResponse = await this.squid
.ai()
.executeAiQuery('built_in_db', question);
return {
author: 'ai',
answer: aiResponse.answer,
executedQuery: aiResponse.executedQuery,
explanation: aiResponse.explanation,
};
}
}
クライアントで質問を行う
フロントエンドでは、クライアントが executeFunction メソッドを使用して、executable 関数名とそのパラメータをバックエンドに渡します。
squid.executeFunction('askQuestion', question).then((response) => {
// Handle the response
}
これで完了です!
おめでとうございます! Squid AI 上で動作するチャットボットを利用して、データに関する質問に回答するウェブアプリの構築と動作確認に成功しました。次のことに挑戦してみましょう:
- お好みのデータベースで Squid を利用する。View available database connectors をご覧ください。
- Squid AI を使って他に何ができるか確認してみましょう!
- このチュートリアル で AI エージェントの作成とセキュリティの強化に挑戦してみましょう。
追加ノート
Squid の環境
- Squid は
dev(開発用)とprod(本番用)の2種類のターゲット環境を提供しています。このチュートリアルではdev環境を使用します。詳細は Squid の environments を参照してください。 - プロジェクトをローカルで実行する際に、Squid developer ID が使用されます。
Squid の機能
- Squid の built-in database を使用する場合、追加のカスタマイズなしで Squid バックエンドがフルに機能します。また、Schedulers、データベースイベントに応答する Triggers、生の SQL やデータベース固有のクエリを実行するための native queries など、Squid バックエンドに機能を追加することも可能です。すべてのオプションについては Backend SDK docs をご覧ください。
- built-in database はドキュメントベースのため、notes コレクションはドキュメントの集合を示します。SQL データベースを使用する場合、コレクションはテーブルを表し、ドキュメントはテーブルの行となります。