---
title: AIによる回答を生成する
description: KurocoのAI機能では、ChatGPTのように質問に回答するAIを容易に利用できます。[AI/RAG] -> [ベクトルデータ]のAIを有効にするだけですぐに利用開始できます。
---

## 概要
KurocoのAI機能では、ChatGPTのように質問に回答するAIを容易に利用できます。
また、AIの回答時に登録したコンテンツを参照させたり、事前に登録したAI辞書で置換するなどにより、回答の調整が可能です。

本チュートリアルでは、KurocoのAPIを通して、AIによる回答を得る方法と、回答の精度を上げる設定について紹介します。

### 学べること
本チュートリアルでは以下の手順でKurocoのAPIを利用して、AIによる回答を得る方法を学びます。  

- [AIの準備をする](#aiの準備をする)
- [AIの回答をKurocoのAPIから得る](#aiの回答をkurocoのapiから得る)
- [回答の精度を上げる](#回答の精度を上げる)


## AIの準備をする
### AIを有効にする
[AI/RAG] -> [ベクトルデータ]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/4e47d56cef62185748d29321b79ba79d.png)

AIの項目を有効にして、[更新する]をクリックします。 

![Image from Gyazo](https://t.gyazo.com/teams/diverta/e166aac6a92486724a8354f73504e7d4.png)

### エンドポイントを設定する
エンドポイント一覧のページから[追加]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/1c774d38f6c1b50bac7e7e08845708ca.png)

以下のエンドポイントを作成します。

|項目|設定内容|
| :--- | :--- |
|パス|ai/chat|
|カテゴリー|AI|
|モデル|OpenAI|
|オペレーション|chat|
|model|auto|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/1fe68ea7b57ed2c0cf6f74026b023bc7.png)

## AIの回答をKurocoのAPIから得る
`text`の名前でリクエストボディにAIへの質問を設定して、エンドポイントにリクエストを送ると、質問に対する回答のレスポンスが返ってきます。  

APIのページから[SwaggerUI]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/a29ed36beb5d900833fd272709a947dd.png)

以下のようにtext項目に「Kurocoについて教えてください。」と入力し、[Execute]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/9be1c71e167d8ecdf02e046d24d6f755.png)

以下の回答がレスポンスされました。  

> `Kuroco（クロコ）は、主に日本で提供されているクラウド型のデータベース管理システムやバックエンドサービスの一つです。Kurocoは、開発者がアプリケーションやウェブサービスを迅速に構築できるように設計されており、特にモバイルアプリやウェブアプリのバックエンドを簡単に構築・管理するための機能を提供しています。\n\n### Kurocoの主な特徴\n\n1. **ノーコード/ローコード開発**: Kurocoは、プログラミングの知識が少ないユーザーでも使いやすいインターフェースを提供しており、迅速なアプリケーション開発を可能にします。\n\n2. **データベース管理**: データの管理や操作が簡単に行えるように設計されており、データのCRUD（作成、読み取り、更新、削除）操作が直感的に行えます。\n\n3. **APIの自動生成**: Kurocoは、データベースの設計に基づいて自動的にAPIを生成する機能を持っており、フロントエンドとバックエンドの連携がスムーズに行えます。\n\n4. **セキュリティ**: ユーザー認証やデータのアクセス制御など、セキュリティに関する機能も充実しており、安全なアプリケーション開発が可能です。\n\n5. **スケーラビリティ**: クラウドベースのサービスであるため、トラフィックの増加に応じてスケールアップが容易です。\n\n6. **多様なインテグレーション**: 他のサービスやツールとの連携が可能で、開発者は必要に応じて機能を拡張できます。\n\nKurocoは、特にスタートアップや中小企業にとって、迅速にプロトタイプを作成したり、MVP（Minimum Viable Product）を開発したりする際に非常に有用なツールです。`

![Image from Gyazo](https://t.gyazo.com/teams/diverta/66bfc5d0d01b8ce2d9c048ea643e63d4.png)

## 回答の精度を上げる
以上の設定だけで簡単に、AIからの回答を得ることができますが、AIの回答が間違っていることも多いです。
特にAIが知らない内容については内容を予測して回答してきますので、回答に利用する情報を予め学習させます。

### AIが回答に利用する情報を予めコンテンツに登録する
#### コンテンツ定義を追加する
[コンテンツ定義一覧](/ja/docs/management/content-structure-topics-group/)の画面から[追加]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/ec5be190619828fb06182069a8ced69c.png)

以下の内容で設定をします。  

**全般**

|項目|設定|
|:--|:--|
|名前|AIに利用させるコンテンツ|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/1cab52b604c3bf5ac2871160511c08f5.png)

**項目設定**

|項目|設定|
|:--|:--|
|ext_1|項目名：テキスト<br/>項目設定：テキストエリア<br/>繰り返し回数：1|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/2b4b95d6f14350e2513dc76c9e7284f1.png)

**検索設定**

|項目|設定|
|:--|:--|
|ベクトルデータに変換する|有効にする|
|その他|デフォルト設定を利用|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b06016149163eee24733676b339f7f76.png)

設定ができたら[追加する]をクリックしてコンテンツ定義を追加します。 

#### コンテンツを追加する
AIが利用する為の情報をコンテンツに登録します。    

[コンテンツ一覧](/ja/docs/management/content-structure-topics/)の画面から[追加]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/1a4e135e98ca7613521c6114d047e485.png)

以下を入力し、[追加する]をクリックします。 

|項目|値|
|:--|:--|
|タイトル|Kurocoとは？|
|テキスト|Kurocoは株式会社ディバータが提供するヘッドレスCMSです。|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/bee89d5b7b8097db59c46dfb6bf11b7d.png)

コンテンツの内容を参照して回答を生成する場合は、OpenAI::chat_contents_search のエンドポイントを使用します。
以下のエンドポイントを作成します。  

|項目|設定内容|
| :--- | :--- |
|パス|ai/chat_contents_search|
|カテゴリー|AI|
|モデル|OpenAI|
|オペレーション|chat_contents_search|
|model|auto|
|topics_group_id|参照するコンテンツのコンテンツ定義ID|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/4a4d6af7b937cbe32ef2dd9bb7e53c63.png)

準備が追加できたら、SwaggerUIを開き、エンドポイントに「Kurocoについて教えてください。」とリクエストを送ります。  
すると今度は以下のような回答が得られました。  

> Kurocoは株式会社ディバータが提供するヘッドレスCMSです。\n

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c88f7bc69c72f4936d304df5f7fc5bdf.png)

### AIの回答内容に指示を出す。
また、回答の際に選択する言葉遣いや内容の調整については、エンドポイントの`prompt`のパラメータで渡します。  

エンドポイント一覧のページから先ほど作成したエンドポイントの[編集]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/50aa909d3272c12f9fd25034ae9cb4c3.png)

以下の設定を追加して[更新する]をクリックします。    

|項目|値|
|:--|:--|
|prompt|あなたは株式会社ディバータの営業です。Kurocoについて質問がきたらミーティングに繋がるように回答してください。|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/2e68f548f08866d1a135f3026776a000.png)

この状態で再度SwaggerUIを開き、エンドポイントに「Kurocoについて教えてください。」とリクエストを送ります。  
すると今度は以下のような回答が得られました。 

> Kurocoについてですね！ありがとうございます。\n\nKurocoは株式会社ディバータが提供するヘッドレスCMSで、コンテンツをAPI経由で様々なデバイスに配信できます。Webサイトはもちろん、モバイルアプリ、デジタルサイネージなど、多様なチャネルでコンテンツを一元管理できるのが強みです。\n\n例えば、Webサイトとモバイルアプリでそれぞれ別々にコンテンツを管理するのは大変ですよね。Kurocoを使えば、一つのプラットフォームでコンテンツを作成・編集するだけで、全てのチャネルに反映されるので、運用コストを大幅に削減できます。\n\nその他にも、柔軟なAPI連携、多言語対応、ワークフロー機能など、様々な機能が備わっています。\n\nもしKurocoにご興味をお持ちでしたら、貴社の課題や要件に合わせてより詳しい情報をご提供し、最適なソリューションをご提案できます。具体的なお話やデモのご希望がありましたら、ぜひお気軽にお問い合わせください。ミーティングを設定させて頂き、Kurocoがどのように貴社のビジネスに貢献できるかをご説明させていただきます。いかがでしょうか？\n

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c01eba25cd2bbf7d264d0310bf9864b6.png)

<!--設定が無くなったので非表示-->
<!--
### temperatureを調整する
OpenAIのエンドポイントは生成された回答にランダム性を加えるために、生成プロセス中にtemperatureと呼ばれるパラメータを使用します。
具体的には、temperatureを小さくすると回答に曖昧さがなくなり、temperatureを大きくするとより多様でランダムな回答が生成されます。

回答の精度を上げるためには、適切なtemperature値を選択することが重要です。一般的には、temperature値が高すぎると、回答が不自然になり、低すぎると回答が繰り返しがちになるため、中間の値を選択することが望ましいです。また、特定のタスクに応じて、最適なtemperature値が異なることもあります。


### top_pを調整する
OpenAIのエンドポイントは生成された回答にランダム性を加えるために、生成プロセス中にtop_pと呼ばれるパラメータを使用します。
具体的には、top_pを小さくすると参照するコンテンツの探索が厳密になり、top_pを大きくするとより多様でランダムな回答が生成されます。

回答の精度を上げるためには、適切なtop-p値を選択することが重要です。一般的には、top-p値が高すぎると、コンテンツの探索が緩くなるため、生成された回答が不自然であったり、誤った回答になる可能性があります。一方、値が低すぎると、回答が非常に制限され、登録したコンテンツを元にした反復的な回答が生成されます。

### 関連コンテンツがない場合は回答させない
`no_contents_no_answer` のパラメータを有効にすると、関連コンテンツが無い場合は、以下のようにnot_foundのエラーを返すようになります。  
不確実な回答をさせたく無い場合に設定してください。
また、 `min_score`を大きく設定すると、関連コンテンツとしての判定が厳しくなりますので合わせて設定ください。  

```json
{
  "errors": [
    {
      "code": "not_found",
      "message": "質問に関連する適切なコンテンツが見つかりませんでした。"
    }
  ],
  "x-rcms-request-id": "23f3ca66-aa8b-4a34-891c-9c1f958a0eab"
}
```
-->

以上のようにKurocoのAPIを利用することで、AIによる回答を簡単に得ることができます。  

AIを効果的に活用するには、AIが必要とする情報を正確に登録し、適切にpromptを設定することが不可欠です。回答の精度を上げるための設定にも注目して、KurocoとAIを利用した機能を実装してみましょう。  