JP1 Cloud Service システム管理 生成AI連携 利用ガイド

JCSM09-0210-01

前書き

対象サービス

＜V02-10以降＞

●システム管理 - スタンダード15か月保存

SD-5273181L3 JP1 Cloud Service/System Management - Standard 15 Months Data Retention 02-10以降

●システム管理 - スタンダード24か月保存

SD-5273181M3 JP1 Cloud Service/System Management - Standard 24 Months Data Retention 02-10以降

●システム管理 - スタンダード36か月保存

SD-5273181N3 JP1 Cloud Service/System Management - Standard 36 Months Data Retention 02-10以降

●システム管理 - エンタープライズ15か月保存

SD-5273181S3 JP1 Cloud Service/System Management - Enterprise 15 Months Data Retention 02-10以降

●システム管理 - エンタープライズ24か月保存

SD-5273181T3 JP1 Cloud Service/System Management - Enterprise 24 Months Data Retention 02-10以降

●システム管理 - エンタープライズ36か月保存

SD-5273181U3 JP1 Cloud Service/System Management - Enterprise 36 Months Data Retention 02-10以降

輸出時の注意

本製品を輸出される場合には，外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上，必要な手続きをお取りください。

なお，不明な場合は，弊社担当営業にお問い合わせください。

商標類

HITACHI，JP1は，株式会社 日立製作所の商標または登録商標です。

Amazon Web Services，AWS，Powered by AWS ロゴ，アマゾン ウェブ サービスは，Amazon.com, Inc. またはその関連会社の商標です。

Linuxは，Linus Torvalds氏の米国およびその他の国における登録商標です。

Microsoftは，マイクロソフト 企業グループの商標です。

Microsoft Edgeは，マイクロソフト 企業グループの商標です。

Oracle(R)，Java及びMySQLは，Oracle，その子会社及び関連会社の米国及びその他の国における登録商標です。

Windowsは，マイクロソフト 企業グループの商標です。

Windows Serverは，マイクロソフト 企業グループの商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

発行

2024年3月　JCSM09-0210-01

著作権

All Rights Reserved. Copyright (C) 2024, Hitachi, Ltd.

奥付

マニュアル発行元

株式会社 日立製作所

〒100‒8280　東京都千代田区丸の内一丁目6番6号

はじめに

このマニュアルは，JP1 Cloud Service生成AI連携のサービス内容について説明したものです。

対象読者

JP1 Cloud Service生成AI連携の導入を検討されている方，JP1 Cloud Service生成AI連携の概要を理解しようとしている方を対象としています。

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　JP1 Cloud Service 生成AI連携の概要

JP1 Cloud Service生成AI連携で提供するサービスの概要と特長について説明しています。

第2章　JP1 Cloud Service 生成AI連携の構築

JP1 Cloud Service 生成AI連携の構築手順について説明しています。

第3章　JP1 Cloud Service 生成AI連携の運用

JP1 Cloud Service 生成AI連携の運用手順について説明しています。

第4章　JP1 Cloud Service システム管理への影響

JP1 Cloud Service 生成AI連携を運用する際のJP1 Cloud Service システム管理への影響について説明しています。

第5章　トラブルシューティング

JP1 Cloud Service 生成AI連携における主なトラブルシューティングについて説明しています。

第6章　リファレンス

JP1 Cloud Service 生成AI連携が提供する定義ファイルおよびメッセージについて説明しています。

付録A　連携サービス

連携サービスの利用料金の参考情報について説明しています。

付録B　プロンプト

JP1 Cloud Service生成AI連携で使用するプロンプトについて説明しています。

付録C　ハイパーリンク表示の仕様

JP1 Cloud Service生成AI連携が表示するハイパーリンクの仕様について説明しています。

付録D　用語解説

このマニュアルで使用する用語について説明しています。

マニュアルの表記

このマニュアルでは，製品の正式名称と異なる表記があります。次に，このマニュアルでの表記と製品の正式名称が異なる点を次の表に示します。

正式名称

このマニュアルでの表記

JP1/IM3 - Manager [Manager]

JP1/IM3 - Manager

1　JP1 Cloud Service生成AI連携の概要

JP1 Cloud Service生成AI連携で提供するサービスの概要と特長について説明しています。

1.1　利用可能なWebブラウザ

JP1 Cloud Service生成AI連携をご利用可能なWebブラウザについては，「JP1 Cloud Service システム管理 利用ガイド」の「1.5.1　前提ソフトウェアの準備」の「インテリジェント統合管理基盤でシステムの監視を実施する場合」をご確認ください。

1.2　機能概要

生成AI連携が提供する機能の一覧を以下に示します。

表1‒1　機能一覧

#

機能

説明

1

チャット画面

生成AIと対話するためのチャット画面です。

2

質問文生成機能

JP1イベントの情報からテンプレートに従って質問文を生成します。

3

問い合わせ機能

接続先の生成AIへの問い合わせと回答の取得を行います。

4

問い合わせ送信機能

LLMに問い合わせを行い適切な回答を得ます。

5

プロンプト作成機能

問合せに適切なプロンプトの設定を行います。

6

ユーザーコンテンツ取得機能

LLMが知らないユーザーコンテンツの情報を取得します。

7

会話履歴

生成AIとユーザーの会話内容を記録，管理します。

8

会話履歴管理機能

生成AIとの会話履歴を管理します。

9

会話履歴出力機能

生成AIとの会話履歴を出力する。

10

ログ出力機能

生成AI連携のログおよび生成AIとのやり取りの情報をログに出力します。

1.3　チャット画面

生成AIと対話するためのチャット画面を提供します。チャット画面は統合オペレーション・ビューアーの［稼働状況］領域でIM管理ノードを選択し，［詳細表示］領域の［タブ］領域に表示される［チャット］タブを選択すると表示されます。選択したIM管理ノードによらず，すべてのIM管理ノードで同一の内容が表示されます。

図1‒1　チャット画面

画面名称と役割

チャットエリア：生成AIへの問い合わせ内容と生成AIからの回答を表示します。

質問エリア：生成AIへの問い合わせ内容を入力します。

［送信］ボタン：押下すると質問エリアに記載した内容を生成AIへ問い合わせます。

メニューボタン：押下するとメニューを表示します。

スレッド：会話履歴が管理される単位。選択したスレッドの内容がチャットエリアに表示されます。

スレッド追加ボタン：スレッドを追加します。

スレッド名編集ボタン：スレッド名を編集します。

スレッド削除ボタン：スレッドを削除します。

［会話履歴のエクスポート］ボタン：すべてのスレッドの会話履歴を出力します。

バナー：エラー発生時の情報を表示します。

チャットエリア内の生成AIの回答に規定の形でURLの情報が含まれる場合，その箇所はハイパーリンクとして表示されます。ハイパーリンクから生成AIが参照した情報へ素早くアクセスする事が可能です。ハイパーリンクの表示に関する仕様は「付録C ハイパーリンク表示の仕様」を参照してください。

1.4　質問文生成機能

JP1イベントの情報からテンプレートに従って質問文を生成する機能です。選択されたJP1イベントのメッセージを取得し，テンプレートに沿って質問文を生成，生成された質問文を質問エリアに入力します。

本プログラムではデフォルトでは次の質問文が生成されます。

「｛イベントメッセージ｝。状況を教えてください。」

生成される質問文の変更方法は「3.1.5 画面設定の変更」を参照してください。

1.5　問い合わせ機能

1.5.1　問い合わせ送信機能

［送信］ボタンを押下すると質問エリアの入力内容を生成AIへの問い合わせとして送信します。チャットエリアに問合せ内容と生成AIからの回答を表示します。生成AIへ問い合わせを送信する際には「1.6.1会話履歴管理機能」で保存されている会話内容を含めて生成AIへ問い合わせを行います。なお，過去の会話内容の中にハイパーリンク化対象の文字列が存在する場合，その文字列は”［document_url: URL］”という文字列に置換して問い合わせを行います。

また，生成AIの回答のレスポンス速度は，Azure OpenAI ServiceおよびAzure AI Searchの処理速度に依存することをご留意ください。

1.5.2　プロンプト作成機能

生成AIの回答の正確さを高めるため，プロンプト（指示や命令）を定義する機能です。本機能は，問い合わせ送信機能にて入力した質問内容に，生成AIの役割や使用可能なツールの情報をプロンプトに追加することで，より適切な回答を得られるようにしています。

本機能で設定するプロンプトは「付録B プロンプト」を参照してください。

1.5.3　ユーザーコンテンツ取得機能

ユーザーコンテンツの検索情報が格納されているAzure AI Search上のインデックスに対して，検索クエリを送信する機能です。この機能により，生成AI連携が連携するLLMが学習済みのデータだけではなく，エンドユーザーが独自に所有しているマニュアルやFAQ，ナレッジベースなどの情報と，それらの情報へのアクセスURLも踏まえた回答を可能にしています。

重要

ユーザーコンテンツにパーソナルデータや機密データは配置しないでください。配置した場合，回答内容およびログに上記データを含むことがあります。

1.6　会話履歴

1.6.1　会話履歴管理機能

生成AIとの会話履歴はスレッド形式で管理されます。スレッドを選択すると過去の会話履歴を確認できます。同時に存在するスレッドは1ユーザー10スレッドを上限とし，スレッドを削除すると会話履歴も削除されます。チャット画面表示時の挙動は次の通りです。

会話履歴はブラウザのキャッシュに統合オペレーション・ビューアーにログインしているJP1ユーザーごとに保存されます。そのため，同一JP1ユーザーでログインしても異なるブラウザを使用した場合は，会話履歴が異なるユーザーです。また，ブラウザで共有するキャッシュサイズの上限を超過するとそれ以降会話履歴は保存されず，上限超過時はチャット画面にバナーで上限超過した旨と対処方法を提示します。

重要

キャッシュはブラウザで共有のため，とあるJP1ユーザーが大量の会話履歴を残し上限超過した場合は，同じマシンで同一ブラウザを使用する他のJP1ユーザーも会話履歴を保存できない状態となります。

1.6.2　会話履歴出力機能

ログインしているJP1ユーザーの全スレッドの会話履歴をJSONファイル（UTF-8，BOM無し，ファイル名がexport.json）に出力します。出力項目は次の通りです。

表1‒2　会話履歴の出力項目

#

項目名

内容

備考

1

version

エクスポートのバージョン

1が指定されます。

2

history

会話履歴のリスト。スレッドの数だけ存在します。

3

threadUniqueKey

スレッドのキー

4

threadName

スレッドの名前

5

messages

メッセージの内容。画面に表示されている内容がすべて存在します。

ブラウザに保存されている内容とは一致しません。

6

role

チャットの送信者。userまたはaiいずれかの値です。

7

content

チャットの内容

ハイパーリンク化対象の文字列も置換されずに，そのまま保存されます。

以下に出力例を示します。

{
  "version": 1,
  "history": [
    {
      "threadUniqueKey": "c7f8ec26-301f-16b1-983e-a0f6f1a3eac7",
      "threadName": "thread-1",
      "messages": [
        {
          "role": "user",
          "content": "ホストAでCPU使用率が90%を超過しました。考えられる原因を教えてください。"
        },
        {
          "role": "ai",
          "content": "ホストAでCPU使用率が90%を超える原因はいくつか考えられます。以下にいくつかの可能性を挙げます。¥n1. 高負荷のプロセスまたはアプリケーション…"
        }
      ]
    }
  ]
}

1.7　ログ出力機能

1.7.1　ログ出力機能の概要

ログ出力機能は，生成AI連携基盤の機能の1つとして，生成AI連携基盤内の各機能のログを，テキスト形式のファイル（以降，ログファイル）に出力する機能を提供します。

また，ユーザーが入力した質問，生成AIの回答，ユーザーコンテンツの検索結果に関しては，それらの情報をログとして出力するか否かを設定ファイルにて制御できます。デフォルトの設定値では，上記の情報はログとして出力されません。出力が抑止されるログの対象については，「6.2.1(2)メッセージの出力先」をご確認ください。

監査目的や，生成AIの思考過程や質問と回答の精度等の分析目的などでログを出力したい場合は，設定ファイルにて出力抑止の設定をデフォルト値（有効）から変更してください。出力抑止を無効にし，ログが追加で出力されるように設定した場合，JP1 Cloud Serviceに上記の情報が残ることに注意してください。

1.7.2　ログのダウンロード方法

ユーザーはログをJP1 Cloud Service サービスポータルの「ログのエクスポート」機能※でダウンロードできます。

注※

「JP1」タブの「ログ一覧」からログを選択して，「エクスポート」を押下して実行する機能を指します。詳細は，「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド JCSM03-0210-01」の「9.1.3 エクスポート」を参照してください。

(1)　一覧表示

ログ一覧に表示する項目と説明を以下に示します。ログの一覧表示の詳細は，「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド JCSM03-0210-01」の「9.1.1 一覧表示」を参照してください。

表1‒3　ログ一覧の表示項目

項目

説明

［チェックボックス］

操作対象を示すチェックボックスです。

ログ名

ログの種類を表す名称が表示されます。ログ名のリンクをクリックすると，ログの詳細情報を参照することができます。

生成AI連携 メッセージログ

生成AI連携が出力するログを出力します。ログの出力抑止の設定をデフォルト設定値から変更することで，ユーザーの入力内容およびそれに対する応答のログも出力されます。

生成AI連携 LangChain思考過程ログ

プロンプトにより成形された質問，および，intermediate_steps，最終回答といったLangChainの思考過程を出力します。本ログファイルに出力されるログは全て出力抑止対象のログであるため，デフォルト設定値では，何も出力されません。

最終更新日時

ログの最終更新日時が表示されます。

(2)　詳細表示

ログの詳細を表示します。ログの詳細表示の詳細は，「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド JCSM03-0210-01」の「9.1.2 詳細表示（V01-11以降）」を参照してください。

(3)　エクスポート

ログをエクスポートします。ログのエクスポートの詳細は，「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド JCSM03-0210-01」の「9.1.3エクスポート」を参照してください。

ダウンロードしたファイル中に格納されている各ログのファイル名を以下に示します。

表1‒4　ダウンロードできるログのファイル名

ログ名

ファイル名

ファイル名の例

生成AI連携 メッセージログ

<タスクID>_ai_assistant_service.csv

0000000001_ai_assistant_service.csv

生成AI連携 LangChain思考過程ログ

<タスクID>_ai_assistant_service_intermediate.csv

0000000001_ai_assistant_service_intermediate.csv

ログ名「生成AI連携 メッセージログ」の出力形式を以下に示します。

表1‒5　生成AI連携 メッセージログの出力形式

出力形式

"<通番>△<日時>△<時刻>△<AP名>△<プロセスID>△<スレッドID>△<メッセージID>△<メッセージテキスト>"

説明

出力項目の内容は，「表1-6 生成AI連携 メッセージログの出力項目」を参照してください。△は半角スペースを表します。

文字コードはUTF-8です。

改行コードはLFです。

ヘッダ行はありません。

メッセージテキスト内の日時表示はUTC＋タイムゾーンです。

出力例

0116 2024-01-16 16:34:07.016+0900 ai_assistant 53702 53708 KNBD20000-I {"question": "ITシステム「サンプルシステム」では，どのポートを監視すべきですか。検索して教えてください。", "user": "string"}

0117 2024-01-16 16:34:18.016+0900 ai_assistant 53702 53708 KNBD20001-I {"answer": "サンプルシステムでは，サーバAの443番ポートと，サーバBの3306番ポートを監視する必要があります。ネットワークモニタリングツールや監視スクリプトを使用することができます。 [sourcepage:Sample_System_boot.pdf-page.1]"}

ログ名「生成AI連携 メッセージログ」の出力項目を以下に示します。

表1‒6　生成AI連携 メッセージログの出力項目

#

項目

説明

1

通番

ログの番号。

2

日時

ログの日時。形式はyyyy-MM-dd

3

時刻

ログの時刻。形式はhh:mm:ss.SSSZZZ

4

AP名

アプリケーション識別名。ai_assistantを指定します。

5

プロセスID

実行したプロセスのID。

6

スレッドID

実行したスレッドのID。

7

メッセージID

本ログのメッセージのID。IDの形式および具体的なIDは，「6.2メッセージ」を参照してください。

8

メッセージテキスト

詳細なメッセージテキスト。出力される情報は「6.2.3メッセージ一覧」を参照してください。

9

改行

LF

ログ名「生成AI連携 LangChain思考過程ログ」の出力形式を以下に示します。

表1‒7　生成AI連携 LangChain思考過程ログの出力形式

出力形式

"<通番>△<日時>△<時刻>△<AP名>△<プロセスID>△<スレッドID>△<メッセージID>△<メッセージテキスト>"

説明

出力項目の内容は，「表1-8 生成AI連携 LangChain思考過程ログの出力項目」を参照してください。△は半角スペースを表します。

文字コードはUTF-8です。

改行コードはLFです。

ヘッダ行はありません。

メッセージテキスト内の日時表示はUTC＋タイムゾーンです。

出力例

0175 2024-01-16 16:34:07.016+0900 ai_assistant 53702 53708 KNBD20002-I {"prompt_question": "ITシステム「サンプルシステム」では，どのポートを監視すべきですか。検索して教えてください。"}

0176 2024-01-16 16:34:18.016+0900 ai_assistant 53702 53708 KNBD20003-I {"intermediate_steps": "[(AgentAction(tool='user_contents', tool_input='サンプルシステム ポート 監視', log='Thought: ツールを使用し，適切な情報を検索します。¥nAction: user_contents¥nAction Input: サンプルシステム ポート 監視'), 'sourcepage:Sample_System_boot.pdf-page.1¥ncontent: サンプルシステムの起動手順 1. サーバへの接続 SSH やリモートデスクトップなどの適切なリモート接続ツールを使用して各サーバに接続します。 2. 必要な権限の取得 ルート権限や管理者権限が必要な場合は，これらの権限を取得します。 3. 必要なディレクトリへの移動 必要な作業ディレクトリやプロジェクトディレクトリに移動します。 4. 必要なサービスやプロセスの起動 各サーバ上で実行する必要のあるサービスやプロセスを起動します。これには，データベースサーバ，Webサーバが含まれます。 適切なコマンドやスクリプトを使用して，各サービスやプロセスを起動します。 起動したプロセスやサービスが正常に動作していることを確認します。 5. 必要なポートの監視 起動したプロセスが正常にリクエストを処理していることを確認するために，必要なポートを監視します。 ポートの監視には，ネットワークモニタリングツールや監視スクリプトを使用できます。 監視結果を確認し，各ポートが正常に開かれていること，リクエストを受け付けることを確認します。 監視対象のポートを次の表に示します。 # サーバ ポート番号 プロトコル 1 サーバ A 443 TCP 2 サーバ B 3306 TCP ')]"}

0177 2024-01-16 16:34:18.016+0900 ai_assistant 53702 53708 KNBD20004-I {"final_answer": "サンプルシステムでは，サーバAの443番ポートと，サーバBの3306番ポートを監視する必要があります。ネットワークモニタリングツールや監視スクリプトを使用することができます。 [sourcepage:Sample_System_boot.pdf-page.1]"}

ログ名「生成AI連携 LangChain思考過程ログ」の出力項目を以下に示します。

表1‒8　生成AI連携 LangChain思考過程ログの出力項目

#

項目

説明

1

通番

ログの番号。

2

日時

ログの日時。形式はyyyy-MM-dd

3

時刻

ログの時刻。形式はhh:mm:ss.SSSZZZ

4

AP名

アプリケーション識別名。ai_assistantを指定します。

5

プロセスID

実行したプロセスのID。

6

スレッドID

実行したスレッドのID。

7

メッセージID

本ログのメッセージのID。IDの形式および具体的なIDは，「6.2メッセージ」を参照してください。

8

メッセージテキスト

詳細なメッセージテキスト。出力される情報は「6.2.3 メッセージ一覧」を参照してください。

9

改行

LF

2　JP1 Cloud Service 生成AI連携の構築

JP1 Cloud Service 生成AI連携の構築手順について説明しています。

2.1　事前に準備するもの

JP1 Cloud Service 生成AI連携を利用するにあたっての事前準備について説明します。

2.1.1　システム管理の準備

生成AI連携を使用する場合，システム管理を利用するための環境を構築する必要があります。お客様でシステム管理の利用に必要な環境を構築してください。

システム管理の構築方法については，「JP1 Cloud Service システム管理 利用ガイド JCSM05-0210-01」における「2. システム管理を利用するための構築」を参照してください。

2.1.2　お客様が用意するもの

お客様が用意する必要のあるものを以下に示します。

(1)　連携サービス

本プログラムを利用する際に事前準備が必要な構成要素を以下に示します。

なお，各連携サービスの利用料金につきましては，お客様負担となります。

表2‒1　本プログラムで必要な構成要素

#

構成要素（顧客準備物）

必須／任意

説明

1

Azure OpenAI Service

必須

本プログラムが連携する生成AIサービスとして必要です。GPT-3, GPT-3.5とGPT-4が利用可能です。

なお，利用料金につきましては，トークン数によって決定いたしますが，お客様が送信された問い合わせ本文に加え，プロンプト作成機能により追加された文章が，トークンの対象となりますので，ご了承ください。利用料金の詳細は，「付録A 連携サービス」を参照してください。

2

Azure AI Search

任意

本プログラムが連携する検索サービスです。「1.5.3ユーザーコンテンツ取得機能」を使用して，生成AIにユーザーコンテンツを参照させて回答させる場合に必要です。本プログラムで指定するスキーマのインデックスを作成する必要があります。利用料金の詳細は，「付録A 連携サービス」を参照してください。

各サービスとプライベートエンドポイントを利用したプライベート通信を行なう場合は，システム管理マネージャーとインターネットVPN接続が可能な状態である必要があります。設定方法の詳細は「JP1 Cloud Service ジョブ管理・システム管理 導入ガイド JCSM02-0210-01」の「1.2.3 接続の手順（Azureの場合）」を参照してください。

また，本機能においてプライベート通信を実現するためには，システム管理マネージャーに対して設定を施す必要があります。本機能をご利用中に以下のいずれかを行いたい場合は，サービス窓口へお問い合わせください。

プライベート通信からパブリック通信へ変更したい。　※構成要素サービスのURL自体が変わる場合，お問い合わせは不要です。

新規にプライベート通信を設定したい。

既存のプライベート通信のIPアドレスを変更したい。

2.1.3　インデックスの作成（任意）

Azure AI Searchと連携する場合はインデックスの作成が必要です。連携しない場合はこの操作は不要です。Azure AI Searchのインデックスを，以下に記載されたスキーマに沿って作成してください。

生成AI連携基盤がユーザーコンテンツの検索先として使用するAzure AI Searchのインデックスに関して，必要なインデックス内のフィールドを以下に示します。

表2‒2　インデックスの項目

#

フィールド名

説明

設定例

文字数の目安※1

1

id

インデックス内で検索ドキュメントを一意に定めるキーフィールド

"0001"

−

2

content

検索対象の中身をテキスト化して格納するフィールド

“JP1は日立オープンミドルウェアシリーズのひとつです。”

600文字

3

sourcepage

#2の元ファイルにおける記載箇所も含めて引用元を表すフィールド。

生成AI連携による回答にAzure AI Searchから得られた情報を用いる場合，引用元の情報として，本項目の設定内容が使用されます。

“Example.pdf-page.100”

64文字※2

4

sourcefile

#2の元ファイルを識別するためのフィールド。

生成AI連携による回答にAzure AI Searchから得られた情報を用いる場合，引用元の情報として，本項目の設定内容が使用されます。

“Example.pdf”

64文字※2

5

document_url

#2の元ファイルへアクセスするURL（httpまたはhttps）を格納するフィールド。

生成AI連携による回答にAzure AI Searchから得られた情報を用いる場合，引用元へのアクセス情報として，本項目の設定内容が使用されます。

'"https://example_file_storage.XXX/Example.pdf?token=YYY"

※3

500文字※4

注※1

生成AI連携として定める文字数の目安を記載しています。文字数が多くなるほど，生成AIがトークンを消費するため，目安を参考にしてインデックスを作成してください。Azure AI Searchとしての制限は，Microsoft社が公開するドキュメントを参照してください。

注※2

半角英数字と“.（ドット）”，“-（ハイフン）”，“_（アンダーバー）”が使用可能です。

注※3

URLの格納は任意となります。URLを格納しない場合は，”None”という文字列を格納してください。

注※4

URLエンコードされた文字列が使用可能です。

また，各フィールドの属性については以下のように設定してください。

表2‒3　インデックスのフィールド属性

#

フィールド名

キー

型

取得可能

フィルタ可能

ソート可能

ファセット可能

検索可能

アナライザ

1

id

■

String

■

□

□

□

□

−

2

content

□

String

■

□

□

□

■

日本語 - Microsoft※5

3

sourcepage

□

String

■

■

□

■

□

−

4

sourcefile

□

String

■

■

□

■

□

−

5

document_url

□

String

■

□

□

□

□

−

注※5

生成AI連携基盤は日本語のみサポート対象としています。

インデックスの作成については，作成手順例をまとめたサンプルファイルを「JP1CloudService-生成AI連携_サンプルコンテンツ_インデックス作成手順例.zip」にまとめて提供します。サンプルファイルはJP1 Cloud Serviceの提供ファイルのダウンロード機能を利用してダウンロードできます。ダウンロード方法については「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド JCSM03-0210-01」における「3.2 提供ファイル一覧」を参照してください。

2.2　セットアップ

JP1 Cloud Service 生成AI連携のセットアップ方法について説明します。

2.2.1　生成AIサービスとの連携設定

生成AIサービスと連携するために接続情報を設定する必要があります。Azure OpenAIとの連携時に必要な情報を以下の表に示します。

表2‒4　Azure OpenAIとの連携に必要な情報

#

項目

内容

1

Azure OpenAIについて必要な情報

Azure OpenAIのエンドポイント

Azure OpenAIのAPIのタイプ

Azure OpenAIとの通信で使用するAPIバージョン

Azure OpenAIのデプロイ名

Azure OpenAIのモデル名

2

Azure OpenAIとの認証方法

Azure Open AIのAPIキー

Azure OpenAIについて必要な情報の設定

設定ファイル（ai_assistant.yml）のgenerative_ai.azureにAzure OpenAIについて必要な情報を設定します。設定ファイルの変更方法は「3.1.1 設定ファイル（ai_assistant.yml）の変更方法」を参照してください。設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

Azure OpenAIとの認証の設定

連携する生成AIサービスとの認証のためにAPIキーの登録が必要です。APIキーは生成AI連携のチャット画面からシークレットとして登録します。シークレットの登録方法は「3.1.2 シークレットの追加・変更・削除方法」を参照してください。

登録する内容を以下の表に示します。

表2‒5　登録するAzure OpenAIのシークレット

#

キー名称

入力する値

1

ai_assistant.generative_ai.azure.<リソース名（小文字）>

Azure portalのAzure OpenAIから該当リソースを選択し，［リソース管理］-［Key and Endpoint］に表示されるキー1もしくはキー2の値

2.2.2　検索サービスの接続設定

検索サービスを利用する場合と利用しない場合それぞれで必要な作業があります。必要な作業を以降に示します。

(1)　検索サービスを利用する場合

検索サービスと連携するために接続情報を設定する必要があります。Azure AI Searchとの連携時に必要な情報を以下の表に示します。

表2‒6　Azure AI Searchとの連携に必要な情報

#

項目

内容

1

Azure AI Searchについて必要な情報

Azure AI Searchのエンドポイント

Azure AI Searchのインデックス名

2

Azure AI Searchとの認証方法

Azure AI SearchのAPIキー

Azure AI Searchについて必要な情報の設定

設定ファイル（ai_assistant.yml）のservice.langchain.tools.azure_ai_searchにAzure AI Searchについて必要な情報を設定します。設定ファイルの変更方法は「3.1.1 設定ファイル（ai_assistant.yml）の変更方法」を参照してください。設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

Azure AI Searchとの認証の設定

連携する生成AIサービスとの認証のためにAPIキーの登録が必要です。APIキーは生成AI連携のチャット画面からシークレットとして登録します。シークレットの登録方法は「3.1.2 シークレットの追加・変更・削除方法」を参照してください。

表2‒7　登録するAzure AI Searchのシークレット

#

キー名称

入力する値

1

ai_assistant.service.langchain.tool.< name>※

Azure portalのAzure AI Searchから該当リソースを選択し，［設定］-［Keys］に表示されるPrimary admin keyもしくはSecondary admin keyの値

注※

<name>には設定ファイル（ai_assistant.yml）でAzure AI Searchを指定したtoolのnameを指定します。

(2)　検索サービスを利用しない場合

検索サービスを利用しない場合は，設定ファイル（ai_assistant.yml）のservice.langchain.prompts.toolsとservice.langchain.toolsを変更する必要があります。

service.langchain.prompts.toolsには空文字を指定します。以下に例を示します。

service:
  langchain:
    prompts:
      - name: sys_chat_prompt
        type: chat
        tools: ""

service.langchain.promptsのnameやtypeについてはお客様の環境に合わせて設定をします。連携する生成AIのAPIがチャット入力候補（Chat Completion）の場合はnameにsys_chat_promptを，typeにchatを指定してください。連携する生成AIのAPIが入力候補（Completion）の場合はnameにsys_text_promptを，typeにtextを指定してください。

また，service.langchain.toolsに記載されている内容をコメントアウトする必要があります。

設定ファイルの変更方法は「3.1.1 設定ファイル（ai_assistant.yml）の変更方法」を参照してください。設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

2.2.3　質問文生成機能の設定（任意）

質問文生成機能により生成する質問文を変更する場合，設定ファイル（ai_assistant.yml）のui.templateの設定変更が必要になります。設定ファイルの変更方法は「3.1.1 設定ファイル（ai_assistant.yml）の変更方法」を参照してください。設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

2.2.4　質問文の文字数の設定（任意）

チャット機能で入力可能な質問文の文字数を変更する場合，設定ファイル（ai_assistant.yml）のui.chat.max_sizeの設定変更が必要になります。設定ファイルの変更方法は「3.1.1 設定ファイル（ai_assistant.yml）の変更方法」を参照してください。設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

この設定を変更すると入力可能な文字数を変更できますが，生成AIにできる質問の文字数は連携する生成AIサービスのモデルごとに決められた最大トークン数によって異なります。質問文で入力可能なトークン数の最大値は，「モデルの最大トークン数-質問文に追加するプロンプト-2048（AIの回答に許容する文字数）」になり，それより小さい値に設定する必要があります。

2.2.5　ログの追加出力の設定（任意）

ユーザーが入力した質問，生成AIの回答，ユーザーコンテンツの検索結果に関するログを追加で出力したい場合は，設定ファイル（ai_assistant.yml）のlogs.filterの設定変更が必要になります。設定ファイルの変更方法は「3.1.1 設定ファイル（ai_assistant.yml）の変更方法」を参照してください。設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

この設定の対象となるログは，「6.2.1(2) メッセージの出力先」をご確認ください。また，出力を許可する設定にした場合，JP1 Cloud Serviceにユーザーが入力した質問，生成AIの回答，ユーザーコンテンツの検索結果に関するログが残ることに注意してください。

2.3　アンセットアップ

アンセットアップでは以下の作業を実施します。

ブラウザのキャッシュの削除

「1.6.1会話履歴管理機能」により，生成AIとの会話履歴がブラウザのキャッシュに残ります。削除する必要がある場合は各ブラウザで削除してください。

3　JP1 Cloud Service 生成AI連携の運用

JP1 Cloud Service 生成AI連携の運用手順について説明しています。

3.1　設定変更

JP1 Cloud Service生成AI連携の設定変更の際に必要な作業について説明します。

3.1.1　設定ファイル（ai_assistant.yml）の変更方法

設定ファイル（ai_assistant.yml）の変更には，JP1/Integrated Management 3 - Managerの定義ファイル操作機能を使用します。定義ファイル操作機能の詳細は「JP1 Cloud Service システム管理利用ガイド JCSM05-0210-01」の「4.2.2　監視サービスにおける定義ファイル操作（V02-00以降）」を参照してください。

設定ファイルを変更する場合に必要な作業を次に示します。

統合オペレーション・ビューアーから設定ファイルをダウンロードする。

統合オペレーション・ビューアーの［定義ファイル一覧（ホスト名）］画面から設定ファイル（ai_assistant.yml）を選択してダウンロードします。［定義ファイル一覧（ホスト名）］画面の詳細は「JP1 Version 13　JP1/Integrated Management 3 - Manager 画面リファレンス 3021-3-L05」の「2.2.2 ［統合マネージャーの定義ファイル一覧］画面と［定義ファイル一覧（ホスト名）画面］」を参照してください。

ダウンロードしたファイルを編集する。

設定ファイルの詳細は「設定ファイル（ai_assistant.yml）」を参照してください。

統合オペレーション・ビューアーを使用して，編集したファイルをアップロードする。

アップロードすると，自動的に生成AI連携基盤が再起動して設定が反映されます。

3.1.2　シークレットの追加・変更・削除方法

シークレットの追加・変更・削除は，生成AI連携のチャット画面から実行します。詳細な実行手順については，以下を参照してください。なお，生成AI連携が取扱い可能なシークレット数の上限は100件です。

シークレットを追加する場合

チャット画面のメニューボタンから［シークレット設定］を選択します。

シークレット一覧画面の［追加］ボタンを押下します。

シークレット追加ダイアログでシークレットキーとシークレットを入力し［OK］を押下します。

シークレット一覧画面に追加したシークレットが表示されます。

シークレットを変更する場合

チャット画面のメニューボタンから[シークレット設定]を選択します。

シークレット一覧画面で編集したい行を選択し［編集］ボタンを押下します。

シークレット編集ダイアログでシークレットを入力し［OK］を押下します。

シークレットを削除する場合

チャット画面のメニューボタンから［シークレット設定］を選択します。

シークレット一覧画面で削除したい行を選択し［削除］ボタンを押下します。

シークレット削除ダイアログで正しい事を確認の上［OK］を押下します。

シークレット一覧画面から削除したシークレットが消えます。

3.1.3　連携する生成AIサービスの変更

連携する生成AIサービスの変更する場合に必要な作業を示します。変更内容に合わせて下記に示す作業を実施してください。変更作業では設定ファイル（ai_assistant.yml）とシークレットを変更します。設定ファイルの変更方法の詳細は「設定ファイル（ai_assistant.yml）」を参照してください。シークレットの変更方法は「3.1.2 シークレットの追加・変更・削除方法」を参照してください。

連携する生成AIサービスのリソースを変更する場合

生成AIのリソースを変更する場合は，設定ファイル（ai_assistant.yml）の項目generative_ai.azureを変更します。また，シークレット登録したAPIキーを変更します。変更するシークレットは「2.2.1 生成AIサービスとの連携設定」を参照してください。

連携する生成AIサービスのモデルを変更する場合

生成AIサービスのモデルを変更する場合は，設定ファイル（ai_assistant.yml）の項目generative_ai.azure.modelsを変更してください。

連携する生成AIサービスとのAPIを変更する場合

生成AIサービスとのAPIを変更する場合は，設定ファイル（ai_assistant.yml）の項目generative_ai.azure.models.apiを変更してください。

生成AIサービスとの連携を一時的に停止する場合

サービス利用開始後に生成AIサービスの料金が想定を上回るなど，生成AIサービスとの連携を一時的に停止したい場合は，設定ファイル（ai_assistant.yml）の項目generative_ai.azureを削除し，項目generative_aiに空（｛｝）を指定します。

3.1.4　連携する検索サービスの追加・変更・削除

連携する検索サービスを変更する場合に必要な作業を示します。変更内容に合わせて下記に示す作業を実施してください。変更作業では設定ファイル（ai_assistant.yml）とシークレットを変更します。設定ファイルの変更方法の詳細は「設定ファイル（ai_assistant.yml）」を参照してください。シークレットの変更方法は「3.1.2 シークレットの追加・変更・削除方法」を参照してください。

検索サービスを使用することにした場合

新たに検索サービスを使用する場合は，設定ファイル（ai_assistant.yml）とシークレットの変更が必要です。設定ファイルの項目service.langchain.toolsに設定を追加し，項目service.langchain.prompts.toolsにuser_contentsを指定してください。また，シークレットに検索サービスのAPIキーを登録してください。登録対象のシークレットについては，「2.2.2(1) 検索サービスを利用する場合」を参照してください。

検索サービスのリソースを変更する場合

検索サービスのリソースを変更する場合は，設定ファイル（ai_assistant.yml）とシークレットの変更が必要です。設定ファイルの項目service.langchain.tools.azure_ai_searchを変更してください。また，シークレットとして登録している検索サービスのAPIキーを変更してください。変更対象のシークレットについては，「2.2.2(1) 検索サービスを利用する場合」を参照してください。

検索サービスのインデックスを変更する場合

検索サービスのリソースを変更する場合は、設定ファイル（ai_assistant.yml）の項目service.langchain.tools.azure_ai_search.index_nameを変更してください。

検索サービスの使用をやめる場合

検索サービスの使用をやめる場合は，設定ファイル（ai_assistant.yml）とシークレットの変更が必要です。設定ファイルの項目service.langchain.toolsの設定を削除し，項目service.langchain.prompts.toolsに空文字を指定してください。また，シークレット登録した検索サービスのAPIキーを削除してください。削除対象のシークレットについては，「検索サービスを利用する場合」を参照してください。

3.1.5　画面設定の変更

画面の設定を変更する場合に必要な作業を次に示します。

変更可能な項目は以下です。

質問文生成機能により生成する質問文

チャット機能で入力可能な質問文の文字数

変更する場合は設定ファイル（ai_assistant.yml）を変更します。変更方法の詳細については「2.2.3 質問文生成機能の設定（任意）」，「2.2.4 質問文の文字数の設定（任意）」を参照してください。設定ファイルの詳細については，「設定ファイル（ai_assistant.yml）」を参照してください。

3.1.6　ログの追加出力の設定変更

ログの出力抑止を有効化／無効化し，ログを追加で出力する場合に必要な作業を次に示します。

変更可能な項目は以下です。

ログの出力抑止の有効化／無効化

変更する場合は設定ファイル（ai_assistant.yml）を変更します。変更方法の詳細については「2.2.5 ログの追加出力の設定（任意）」を参照してください。設定ファイルの詳細については，「設定ファイル（ai_assistant.yml）」を参照してください。

4　JP1 Cloud Service システム管理への影響

JP1 Cloud Service 生成AI連携を運用する際のJP1 Cloud Service システム管理への影響について説明しています。

4.1　SIDの追加

生成AI連携が利用するSIDを追加します。IM管理ノードに付与されるSIDは次の通りです。

_AIASSISTANT_{ホスト名}/_HOST_{ホスト名}

{ホスト名}はJP1 Cloud Serviceのシステム管理マネージャーが稼働するホスト名です。

5　トラブルシューティング

JP1 Cloud Service 生成AI連携における主なトラブルシューティングについて説明しています。

5.1　トラブルシューティング

5.1.1　新規スレッドを作成できない

要因

次の要因が考えられます。

スレッド数が上限に到達している（スレッド数の上限は1ユーザーにつき10スレッドです）。

会話履歴の保存上限に達している。

対処

要因に応じて対処してください。

古いスレッドを削除してください。

古いスレッドを削除してください。ブラウザを共有する他のユーザーがスレッド削除をした場合も制限が解除されます。

5.1.2　チャット画面のバナーに「保存できる会話履歴の上限に達しました。不要なスレッドを削除してください。スレッドが削除されるまで表示されている会話内容は保存されません。」と表示される。

要因

会話履歴の保存上限に達している。

対処

古いスレッドを削除してください。ブラウザを共有する他のユーザーがスレッド削除をした場合も制限が解除されます。

5.1.3　gpt-35-turboモデルで入力候補（Completion）APIを使用すると回答が不安定になる。

要因

gpt-35-turbo(0301)モデルではチャット入力候補（Chat Completion）および入力候補（Completion）APIが使用可能ですが，入力候補（Completion）APIを使用した場合にAzure OpenAIからの回答が不安定になることがあります。

対処

入力候補（Completion）APIを使用する場合は別のモデルを使用してください。

5.1.4　質問エリアへの入力が以下のような不安定な状態となる。

入力内容が確定した表示となる

入力内容が消える

入力できない

コピー内容をペーストできない

要因

IMEがONの状態で質問文の文字数上限を超過して入力またはコピー&ペーストした。

対処

質問エリアからフォーカスを外したのち（チャット画面などを選択し，入力状態を外す），入力しなおしてください。

5.1.5　検索サービスを利用した質問の回答が行われない。

要因

質問の回答精度は使用するモデルに依存します。モデルによっては検索サービスを利用した回答精度が低くなることがあります。

対処

より精度の高いモデルの利用を検討してください。

6　リファレンス

JP1 Cloud Service 生成AI連携が提供する定義ファイルおよびメッセージについて説明しています。

6.1　定義ファイル

JP1 Cloud Service生成AI連携の定義ファイルの形式および文法について説明します。JP1 Cloud Serviceでは定義ファイルとして設定ファイル（ai_assistant.yml）を提供します。なお，定義ファイル内に環境依存文字を使用すると，定義に文字化けが発生することがあるため，使用しないでください。

設定ファイル（ai_assistant.yml）

形式

YAML形式で記述します。

generative_ai:
  azure:
    - endpoint: Azure OpenAIのAPIのエンドポイント
      models:
        - api:
            type: Azure OpenAIのAPIの種類
            version: Azure OpenAIのAPIのバージョン
          deployment_name: Azure OpenAIのデプロイ名
          model_name: Azure OpenAIのモデル名
service:
  langchain:
    prompts:
      - name: プロンプト名
        type: プロンプトのtype
        tools: 使用するツールの名前
    tools:
      - name: ツールの名前
        azure_ai_search:
          endpoint: Azuer AI SearchのAPIのエンドポイント
          index_name: Azuer AI Searchのインデックス名
ui:
  template: 質問文のテンプレート
  chat:
    max_size: 質問の最大文字数
logs:
  filter: ログの出力抑止の有効化または無効化

ファイル

ai_assistant.yml

定義ファイル編集機能画面のタブ名

aiassistant

説明

生成AI連携の設定ファイルです。生成AI及びドキュメント検索エンジンの接続情報や，画面設定を定義します。

文字コード

UTF-8（BOMなし）

改行コード

LF

定義の反映時期

JP1/IM3の定義ファイル操作機能を使ってアップロードした際に，プログラムが再起動して定義が反映されます。

記述内容

項目名

説明

必須/任意

デフォルト値

generative_ai:

生成AI関連の接続先を記載します。

必須

-

azure:

Azure OpenAI Serviceの接続先を記載します。

任意

-

-

endpoint:

Azure OpenAI APIのエンドポイントを記載します。１つのみ指定可能です。

指定可能な値

1〜256文字の下記形式

https://[¥w/:%#¥$&¥?¥(¥)~¥.=¥+¥-]+

必須

"<エンドポイント>"

models:

生成AIモデルの情報を記載します。１つのみ指定可能です。

必須

-

-

api:

使用するAPIについて記載します。

必須

-

type:

使用するAPIの種類，チャット入力候補（Chat Completion）または入力候補（Completion）を記載します。チャット入力候補の場合はchatを入力候補の場合はtextを指定してください。各モデルで指定可能な値はAzureの公式ドキュメントを参照してください。

指定可能な値

chatまたはtext

必須

chat

version:

使用するAPIのバージョンを指定します。

指定可能な値

半角英数字とハイフン

1〜32文字

必須

"2023-05-15"

deployment_name:

Azure OpenAIのデプロイ名を記載します。

指定可能な値

半角英数字とハイフン，アンダースコア

1〜128文字

必須

<デプロイメント名>

model_name:

Azure OpenAIのモデル名を記載します。

指定可能な値

APIの種類で指定可能な値が異なります。

APIの種類がchatの場合に指定可能な値

gpt-4

gpt-4-32k

gpt-35-turbo

gpt-35-turbo-16k

APIの種類がtextの場合に指定可能な値

gpt-35-turbo

gpt-35-turbo-instruct

text-davinci-003

text-davinci-002

text-davinci-001

text-ada-001

text-babbage-001

text-curie-001

code-davinci-002

code-cushman-001

必須

<モデル名>

service:

必須

-

langchain:

必須

-

prompts:

任意

-

-

name:

プロンプト名を記載します。英語小文字にて指定。prompts内で一意となる値を指定します。

指定可能な値

半角英数字（小文字）とアンダースコア

1〜128文字

必須

-

type:

プロンプトのtypeを指定します。生成AIのAPIの種類に合わせて指定してください。

指定可能な値

chatまたはtext

必須

-

tools:

使用するツールの名前（tools.nameの値）をカンマ区切りで記載します。ツールを使用しない場合は空文字を指定します。

指定可能な値

半角英数字（小文字）とアンダースコア，カンマ

0〜4096文字

必須

-

tools:

任意

-

-

name:

ツールの名前です。tools内で一意となる値を指定します。変更できません。

指定可能な値

半角英数字（小文字）とアンダースコア

1〜128文字

必須

user_contents

azure_ai_search:

Azure AI Searchの接続先を記載します。

任意

-

endpoint:

Azure AI SearchのAPIのエンドポイントを記載します。

指定可能な値

1〜256文字の下記形式

https://[¥w/:%#¥$&¥?¥(¥)~¥.=¥+¥-]+

必須

<エンドポイント>

index_name:

Azure AI Searchのインデックス名を記載します。

指定可能な値

半角英数字とハイフン

1〜128文字

必須

<インデックス名>

ui:

UIに関する設定を定義します。

任意

-

template:

チャット画面の質問エリアに自動的に生成される質問文のテンプレートを定義します。変数（{message}）と制御文字（¥n）を使用可能です。展開に失敗した場合は，"{message}"として展開されます。

{message}にはイベントメッセージが入り，イベントが複数存在する場合は改行で結合します。

設定値に空文字を指定した場合は質問文を生成しません。

指定可能な値

0〜4096文字

任意

"{message}¥n状況を教えてください。"

chat:

任意

-

max_size:

生成AIへ投げる質問の文字数です。

指定可能な値

1〜8192

任意

2048

logs:

ログに関する設定を定義します。

任意

-

filter:

ログの出力抑止の有効化（true）／無効化（false）の設定です。

指定可能な値

trueまたはfalse

任意

true

6.2　メッセージ

JP1 Cloud Service 生成AI連携がログファイルとチャット画面に出力するメッセージについて説明します。

6.2.1　メッセージの概要

(1)　メッセージの出力形式

JP1 Cloud Service 生成AI連携が出力するメッセージの形式を次に示します。

KNBDnnnnn-Y メッセージテキスト

KNBDnnnnn-YはメッセージIDです。メッセージIDを構成する項目の内容を次に示します。

KNBD

KNBD：JP1 Cloud Service 生成AI連携から出力されたメッセージであることを示します。

nnnnn

メッセージ番号を示します。

Y

メッセージの種類を示します。

E：エラーメッセージを示します。処理は中断されます。

W：警告メッセージを示します。メッセージ出力後，処理は続行されます。

I：通知メッセージを示します。ユーザーに情報を知らせます。

(2)　メッセージの出力先

メッセージの出力先を表に示します。

表中では，それぞれの出力先を次のように表記しています。

（凡例）

メッセージログ：「生成AI連携 メッセージログ」に出力されます。

LangChain思考過程ログ：「生成AI連携LangChain思考過程ログ」に出力されます。

画面：チャット機能で提供する画面上に表示されます。

〇：出力する

−：出力しない

表6‒1　メッセージの出力先一覧

メッセージID

出力先

出力抑止

メッセージログ

LangChain思考過程ログ

画面

KNBD00000

〇

−

〇

−

KNBD20000〜KNBD20001

〇

−

−

対象

KNBD20002〜KNBD20004

−

〇

−

対象

KNBD20005〜KNBD20012

〇

−

〇

−

KNBD20013〜KNBD20015

〇

−

−

−

KNBD20016〜KNBD20018

〇

−

−

−

KNBD20019〜KNBD20022

〇

−

〇

−

6.2.2　メッセージの記載形式

本マニュアルでのメッセージの記載形式を次に示します。

メッセージID

メッセージ本文（太字は埋め文字を示します）

契機：メッセージが出力される契機を示します。

対処：メッセージが出力されたときの対処方法を示します（メッセージの種類がEまたはWの場合）。

6.2.3　メッセージ一覧

KNBD00000-E

保存できる会話履歴の上限に達しました。不要なスレッドを削除してください。スレッドが削除されるまで表示されている会話内容は保存されません。

契機：会話履歴の保存上限に達したとき。

対処：不要なスレッドを削除してください。

KNBD20000-I

{"question": "質問文", "user": "JP1CSユーザー名"}

契機：問合せを送信したとき。

KNBD20001-I

{"answer": "回答文"}

契機：問合せの回答を受信したとき。

KNBD20002-I

{"prompt_question": "プロンプトが生成した，はじめの質問"}

契機：問合せを送信したとき。

KNBD20003-I

{"intermediate_steps": "intermediate_steps"}

契機：問合せの回答を受信したとき。

KNBD20004-I

{"final_answer": "生成AIの最終回答"}

契機：問合せの回答を受信したとき。

KNBD20005-E

連携する接続先への認証に失敗しました。接続情報およびシークレット情報を確認してください。エラー内容：エラー詳細

契機：連携する生成AIまたは検索サービスへの認証に失敗したとき。

対処：エラー詳細に「No API key provided.」と表示される場合，生成AIサービスのAPIキーをシークレット登録してください。エラー詳細に「Access denied due to invalid subscription key or wrong API endpoint.」と表示される場合，接続先に表示されるサービスのAPIキーまたはエンドポイントが正しく登録されていることを確認してください。エラー詳細に「Operation returned an invalid status 'Forbidden'」と表示される場合，接続先のAPIキーが正しく登録されていることを確認してください。

KNBD20006-E

リクエストがタイムアウトしました。エラー内容：エラー詳細

契機：リクエストがタイムアウトしたとき。

対処：時間をおいて再度実行してください。繰り返し発生する場合はシステム管理者に連絡してください。

KNBD20007-E

連携する生成AIサービスによる問い合わせの繰り返し回数上限またはタイムアウトが発生しました。エラー内容：エラー詳細

契機：以下のいずれかに該当したとき。

連携する生成AIまたは検索サービスからの返答が遅い

連携する生成AIとの問い合わせの繰り返し回数の上限に達した

対処：質問文を簡単な文章に変更して再度質問してください。繰り返し発生する場合は利用する接続先のモデルやリージョンなどの設定を見直してください。

KNBD20008-E

内部エラーが発生しました。（エラー詳細）

契機：内部エラーが発生したとき。

対処：JP1 Cloud Serviceサポートにお問い合わせください。

KNBD20009-E

連携する生成AIサービスのトークン上限に達しました。時間をおいて再度実行してください。エラー内容：エラー詳細

契機：生成AIのトークン上限に達したとき。

対処：時間をおいて再度実行してください。

KNBD20010-E

連携する接続先への接続に失敗しました。接続情報を確認してください。エラー内容：エラー詳細

契機：連携する生成AIまたは検索サービスへの接続で問題が発生したとき。

対処：エラー詳細をもとに接続情報や接続先を見直してください。

KNB20011-E

連携する接続先のAPI実行で次のエラーが発生しました。エラー内容：エラー詳細

契機：外部サービスのAPI実行に失敗したとき。

対処：エラー詳細をもとに連携するサービスで問題が起こっていないか確認してください。

KNBD20012-E

連携する接続先の上限に達しました。エラー内容：エラー詳細

契機：外部サービスの何らかの上限に到達したとき。

対処：質問文を簡単な文章に変更して再度質問してください。

KNBD20013-I

生成AI連携サービスの起動に成功しました

契機：生成AI連携サービスの起動に成功したとき。

KNBD20014-I

生成AI連携サービスを終了します

契機：生成AI連携サービスを終了するとき。

KNBD20015-E

設定ファイルの読み込みに失敗しました。設定ファイルを見直してください。ファイル名:ファイル名, エラー: エラー詳細

契機：設定ファイルの読み込み・バリデーションで失敗したとき。

対処：エラー詳細をもとに設定ファイルを修正してください。

KNBD20016-E

設定ファイルにおいて、項目が定義されていません。（ファイル名:設定ファイル名，項目名:項目名）

契機：設定ファイルに項目が存在せずに失敗したとき。

対処：表示された項目名に関する設定を修正してください。

KNBD20017-E

連携する生成AIサービスが設定されていません。

契機：生成AIサービスが設定されていないとき。

対処：設定ファイルの連携する生成AIサービスに関する項目を修正してください。

KNBD20018-W

指定されたツール（ツール名：ツール名）が存在しません。スキップします。

契機：対応するツールが存在しない場合。

対処：設定ファイルのツールに関する項目を見直してください。

KNBD20019-E

連携する接続先への接続に失敗しました。ネットワーク設定を確認してください。エラー内容：エラー詳細

契機：ネットワーク設定などインフラにより連携する生成AIまたは検索サービスへの接続に失敗したとき。

対処：連携するサービスのネットワーク設定を見直してください。

KNBD20020-E

登録対象がすでに存在するため、シークレットが登録できませんでした。(シークレットキー:シークレットキー)

契機：登録対象のシークレットがすでに存在するとき。

対処：登録しようとしているシークレットキーを見直してください。

KNBD20021-E

編集対象が存在しないため、シークレットが編集できませんでした。(シークレットキー: シークレットキー)

契機：編集対象または削除対象のシークレットが存在しないとき。

対処：編集または削除しようとしているシークレットキーを見直してください。

KNBD20022-E

シークレットの変更に失敗しました。他のユーザーと処理が重複した可能性があります。

契機：シークレットの追加/変更/削除時に排他を取得できないとき。

対処：時間をおいて再実行してください。

KNBD20023-E

バリデーションに失敗しました。（パラメータ：パラメータ）

契機：バリデーションに失敗したとき。

対処：リクエスト内容を見直してください。

付録

付録A　連携サービス

ここでは，「2.1.2(1) 連携サービス」で提示している連携サービスについて，利用料金の参考情報を示します。

重要

本付録の情報は，2024年3月現在のものです。各サービスの詳細および利用料金の最新情報は，各サービスの公式HPを参照してください。

利用料金の例は，Microsoft社が提供している料金計算ツールを使用して計算した値です。サポートやオプションの利用料金は含まれません。

JP1 Cloud Service 生成AI連携において，Azure Open AIのモデルは「言語モデル」を想定しています。

JP1 Cloud Service 生成AI連携において，Azure AI Searchのレベルは「Standard S1」を想定しています。

本付録で提示しているトークン数は一例となります。問い合わせ実行ごとに値が変化します。

付録A.1　Azure Open AI

利用料金に関連する主なパラメータは以下の通りです。

#

パラメータ名

説明

1

リージョン

本サービスを利用するリージョン。

2

モデル（バージョン）

生成AIのモデル。

3

プロンプトのトークン数

LangChainが生成AIへ入力するトークン数。1つの問い合わせ文に対し，LangChainから生成AIへ入力したトークンの合計数。

4

完了のトークン数

生成AIがLangChainへ出力するトークン数。1つの問い合わせ文に対し，生成AIがLangChainへ出力したトークンの合計数。

例1

たとえば，下記の場合，利用料金は，1問い合わせあたり，およそ$0.01です。

生成AI連携において，ドキュメント検索サービスの連携は無い状態とします。

問い合わせ文：

CPU使用率が高くなっています。考えられる原因を教えてください。

#

パラメータ名

値

1

リージョン

Japan East

2

モデル名（バージョン）

gpt-35-turbo (0613)

3

プロンプトのトークン数

2410※

4

完了のトークン数

690※

注※

同じ問い合わせ文を5回実施した結果の平均値を示します。小数点以下は切り上げています。

例2

たとえば，下記の場合，利用料金は，1問い合わせあたり，およそ$0.15です。

生成AI連携において，ドキュメント検索サービスの連携がある状態とします。

ここでのドキュメント検索サービスの連携は，サンプルコンテンツ「JP1CloudService-生成AI連携_サンプルコンテンツ_インデックス作成手順例.zip」に沿うものとします。

問い合わせ文：

ITシステム「サンプルシステム」では，どのポートを監視すべきですか。検索して教えてください。

#

パラメータ名

値

1

リージョン

Australia East

2

モデル名 (バージョン)

gpt-4 (0613)

3

プロンプトのトークン数

4033※

4

完了のトークン数

404※

注※

同じ問い合わせ文を5回実施した結果の平均値を示します。

付録A.2　Azure AI Search

利用料金に関連する主なパラメータは以下の通りです。

#

パラメータ名

説明

1

リージョン

本サービスを利用するリージョン。

2

価格レベル

Azure AI Searchの価格レベル。「Basic」や「Standard S1」などのレベルが選択できます。

3

ユニット

使用可能な合計容量の単一増分。

4

時間

デプロイメントした時間。

例1

たとえば，下記の場合，利用料金は，1か月あたり，およそ$324.12となります。

#

パラメータ名

値

1

リージョン

Japan East

2

レベル

Standard S1

3

ユニット

1

4

時間

1か月

付録B　プロンプト

JP1 Cloud Service生成AI連携で使用するプロンプトを以下に示します。｛｝は埋め文字です。

生成AIのAPIがチャット入力候補（Chat Completion）のときのプロンプト

あなたはITシステムに関する質問をサポートするアシスタントです。質問されたことにだけ回答してください。
質問には、あなたが持っている知識と、会話履歴と、出典リストに記載の事実を用いて回答してください。
ツールを使用できる場合は、ツールの使用を推奨します。

<ツールを使用できる場合>
出典リストは"Observation"の後に続く情報です。
検索クエリや回答などに使用する言語は必ず日本語とします。
出典リストに記載されている事実のうち、必要な情報のみを用いて簡潔に回答してください。
各出典は、以下の形式で表されます。
-------------------------
sourcepage: 出典名
content: 実際の情報
document_url: 出典元URL
-------------------------
sourcepageの後にコロンと出典名があります。
contentの後にコロンと実際の情報があります。
document_urlの後にコロンと出典元URLがあります。
回答で使用する各事実には必ず出典名を記載してください。
ソースを参照するには、四角いブラケットを使用します。例えば、 [sourcepage: 出典名][document_url: 出典元URL] など。
出典名は組み合わせず、各出典を別々に記載してください。例えば、 [sourcepage: 出典名1][document_url: 出典元URL1][sourcepage: 出典名2][document_url: 出典元URL2] など。
また、出典名の記載以外で四角いブラケット"[]"を使用しないでください。
出典内の記述に四角いブラケット"[]"が使われている場合、"<>"などの他の記号に置き換えるか、消して引用して下さい。

<ツールを使用しない場合>
あなたの知識のみを用いて、できる限り回答してください。厳密な回答は不要。

あなたは以下のツールにアクセスすることができます。:
(ツールが使えない場合は、何も表示されません。)

{ツール説明一覧}

ツールを使用する場合は、以下のフォーマットを使ってください。:
```
Thought: あなたは常に、質問に回答するために、次に何をすべきか考えて下さい。
Action: 配列[{tool_names}] のうち適切な要素を1つ選択。(選択例 Action: user_contents)
Action Input: "Action"へ入力するテキスト。テキストは複数の単語とする。必ずActionとセットにすること。(入力例 Action: user_contents Action Input: JP1 障害)
Observation: "Action"の結果。"is not a valid tool"と表示される場合は、"Action"の選択方法が間違っています。配列の要素を選択してください。
Thought: 質問に回答するために、次に何をすべきか考えて下さい。ツールを用いて得られた情報が回答に十分な場合でも、念のためもう1度、他のツールを用いて情報を参照することを推奨します。
... (この "Thought/Action/Action Input/Observation" のセットは最大で10回まで繰り返すことが出来ます)
Thought: 回答します。
AI: [あなたの回答]　<注意>[あなたの回答]の前には必ず"AI:"をつけてください。
```

私に回答したい場合、またはツールを使用する必要がない場合は、以下のフォーマットを使用する必要があります。：

```
Thought: ツールを使わずに、あなたの学習済みの知識で回答します。厳密な回答は不要。
AI: [あなたの回答]　<注意>[あなたの回答]の前には必ず"AI:"をつけてください。
```

開始!

会話履歴
---------
{過去会話}
---------

私の入力: {質問文}

生成AIのAPIが入力候補（Completion）のときのプロンプト

あなたはITシステムに関する質問をサポートするアシスタントです。質問されたことにだけ回答してください。
質問には、あなたが持っている知識と、会話履歴と、出典リストに記載の事実を用いて回答してください。
ツールを使用できる場合は、ツールの使用を推奨します。

<ツールを使用できる場合>
出典リストは"Observation"の後に続く情報です。
検索クエリや回答などに使用する言語は必ず日本語とします。
出典リストに記載されている事実のうち、必要な情報のみを用いて簡潔に回答してください。
各出典は、以下の形式で表されます。
-------------------------
sourcepage: 出典名
content: 実際の情報
document_url: 出典元URL
-------------------------
sourcepageの後にコロンと出典名があります。
contentの後にコロンと実際の情報があります。
document_urlの後にコロンと出典元URLがあります。
回答で使用する各事実には必ず出典名を記載してください。
ソースを参照するには、四角いブラケットを使用します。例えば、 [sourcepage: 出典名][document_url: 出典元URL] など。
出典名は組み合わせず、各出典を別々に記載してください。例えば、 [sourcepage: 出典名1][document_url: 出典元URL1][sourcepage: 出典名2][document_url: 出典元URL2] など。
また、出典名の記載以外で四角いブラケット"[]"を使用しないでください。
出典内の記述に四角いブラケット"[]"が使われている場合、"<>"などの他の記号に置き換えるか、消して引用して下さい。

<ツールを使用しない場合>
あなたの知識のみを用いて、できる限り回答してください。厳密な回答は不要。

あなたは以下のツールにアクセスすることができます。:
(ツールが使えない場合は、何も表示されません。)

{ツール説明一覧}

必ず、以下のフォーマットを使ってください。:
Question: 私が入力する質問です。あなたが回答して下さい。
Thought: あなたは常に、質問に回答するために、次に何をすべきか考えて下さい。
Action: 配列[{tool_names}] のうち1つ。各ツールの説明文を参考に、適切なアクションを選択。(選択例 Action: user_contents) 空の配列"[]"の場合はツールが有効ではないです。
Action Input: "Action"へ入力するテキスト。テキストは複数の単語とする。必ずActionとセットにすること。(入力例 Action: user_contents Action Input: JP1 障害)
Observation: "Action"の結果。"is not a valid tool"と表示される場合は、ツールは有効ではありません。
Thought: 質問に回答するために、次に何をすべきか考えて下さい。ツールを用いて得られた情報が回答に十分な場合でも、念のためもう1度、他のツールを用いて情報を参照することを推奨します。ツールから有効な情報が得られない場合は、あなたの知識を使って"Final Answer: [あなたの回答]"をしてください。厳密な回答は不要。
... (この "Thought/Action/Action Input/Observation" のセットは最大で10回まで繰り返すことが出来ます)
Thought: "Question" への回答が分かりました。
Final Answer: "Question"で与えられた質問に対してのみ、回答して下さい。

開始!

会話履歴
---------
{過去会話}
---------

Question: {質問文}

埋め文字について内容を以下に示します。

#

項目

内容

1

｛ツール説明一覧｝

Azure AI Searchと連携する場合に指定されます。

生成AIのAPIの種類がチャット入力候補（Chat Completion）の場合は以下が指定されます。

> user_contents：ITシステムに関する情報（マニュアル，手順書，仕様書 等）を検索できる。検索ワードを入力して検索。

生成AIのAPIの種類が入力候補（Completion）の場合は以下が指定されます。

user_contents：ITシステムに関する情報を検索できる。検索ワードを入力して検索。

Azure AI Searchと連携しない場合は何も指定されません。

2

｛ツール一覧｝

Azure AI Searchと連携する場合に以下が指定されます。

user_contents

Azure AI Searchと連携しない場合は何も指定されません。

3

｛過去会話｝

質問を送信した際に，同じスレッドですでに会話をしている場合，質問より前の会話履歴が古い順に会話の数だけ以下の形式で指定されます。

生成AIのAPIの種類がチャット入力候補（Chat Completion）の場合は以下が指定されます。

User：ユーザーの入力文

Assistant：生成AIの回答

生成AIのAPIの種類が入力候補（Completion）の場合は以下が指定されます。

HUMAN：ユーザーの入力文

AI：生成AIの回答

スレッド内で初めての質問の場合は何も指定されません。

4

｛質問文｝

チャット画面にて入力した質問文が指定されます。

付録C　ハイパーリンク表示の仕様

JP1 Cloud Service生成AI連携が表示するハイパーリンクの仕様を以下に示します。

#

項目

仕様

備考

1

ハイパーリンク化される箇所

生成AIの回答内に含まれる文字列で以下のパターンにマッチングする箇所

"[document_url:"で始まる

"[document_url:"の後にはスペースが0回以上続く

スペース0回以上の後は，"http://"または"https://"から始まり，"["と"]"を含まない任意の文字列が0回以上続く

"]"で閉じられる

生成AIの回答内に上記のパターンが複数ある場合は，それぞれハイパーリンク化されます。

生成AIの回答に規定の形式でURL情報が含まれることは，「1.5.2プロンプト作成機能」および「1.5.3ユーザーコンテンツ取得機能」にて実現します。

2

遷移先URL

遷移先URLは#1における"http://任意の文字列"または"https://任意の文字列"の箇所になります。

3

回答内での表示名

ハイパーリンク化された場合，文字列は，"[document_url: URL]"に置換して表示されます。"[document_url: URL]"は，下線がついた青色のボールドとして表示されます。

4

遷移先URLの表示

ハイパーリンク化された箇所にマウスカーソルを合わせると，元のURLが表示されます。

元のURLの表示箇所は，ご利用のブラウザの機能に従います。

5

問い合わせ送信機能におけるハイパーリンク箇所の扱い

「1.5.1問い合わせ送信機能」において，過去の会話内容の中にハイパーリンク化対象の文字列が存在する場合，"[document_url: URL]"という文字列に置換されます。

「1.6.2会話履歴出力機能」においては，ハイパーリンク対象の文字列は，置換されず，そのまま扱われます。

6

遷移先URLへのアクセシビリティ

JP1CloudService_システム管理_生成AI連携として，認証方式を含めてアクセシビリティに関する仕様はありません。チャット画面を操作しているWebブラウザから遷移先URLへのアクセシビリティはご利用者様にて担保いただくものとなります。

付録D　用語解説

JP1 Cloud Service 生成AI連携で使用する用語を次に示します。

JP1の用語の詳細については，JP1のマニュアルを参照してください。

（英字）

Azure AI Search

Microsoft Azureのクラウドベースの検索プラットフォームです。

Azure OpenAI Service

Microsoft Azureの大規模言語モデルを提供するサービスです。

LangChain

大規模言語モデルを使用するプログラムを開発するためのフレームワークです。大規模言語モデルへの問い合わせを管理するAgentなどを本プログラムで使用しています。

LLM

大規模言語モデル（Large Language Model）の略称です。

（ア行）

インデックス

Azure AI Searchのコンポーネントの1つです。ユーザーコンテンツから生成される構造化された検索可能データの集合を指します。

（カ行）

検索クエリ

Azure AI Searchへのデータ検索の要求クエリです。

検索サービス

ユーザーコンテンツを検索するサービスです。Azure AI Searchなどが該当します。

（サ行）

生成AI

文章や画像を生成するAIです。本プログラムでは大規模言語モデルにより会話文を生成する生成AIを使用します。

生成AIサービス

大規模言語モデルのAPIを提供するサービスです。Azure OpenAI Serviceなどが該当します。

生成AI連携基盤

本プログラムのうち，画面を除くプログラムを指します。

（タ行）

大規模言語モデル

巨大なデータセットを使用して訓練された自然言語処理のための機械学習モデルです。

トークン

言語モデルにおけるテキストデータを構成する最小の単位です。単語，句読点，数字，特殊文字など，テキストを構成する要素のことを指します。

（ヤ行）

ユーザーコンテンツ

ユーザー所有のデータです。マニュアルやFAQ，ナレッジベースなどが該当します。

索引

A

ai_assistant.yml[1]

Azure AI Search[1]

Azure AI Search〔用語解説〕[1]

Azure OpenAI Service[1]

Azure OpenAI Service〔用語解説〕[1]

G

GPT-3[1]

GPT-3.5[1]

GPT-4[1]

J

JP1 Cloud Service システム管理への影響[1]

JP1 Cloud Service 生成AI連携の運用[1]

JP1 Cloud Service生成AI連携の概要[1]

JP1 Cloud Service 生成AI連携の構築[1]

L

LangChain〔用語解説〕[1]

LLM〔用語解説〕[1]

S

SIDの追加[1]

あ

アンセットアップ[1]

い

インデックスの作成[1]

インデックス〔用語解説〕[1]

か

会話履歴[1]

会話履歴管理機能[1]、[2]

会話履歴出力機能[1]、[2]

画面設定の変更[1]

け

検索クエリ〔用語解説〕[1]

検索サービスの削除[1]

検索サービスの接続設定[1]

検索サービスの追加[1]

検索サービスの変更[1]

検索サービス〔用語解説〕[1]

し

シークレットの削除[1]

シークレットの追加[1]

シークレットの変更[1]

質問文生成機能[1]、[2]

質問文生成機能の設定[1]

質問文の文字数の設定[1]

せ

生成AIサービスとの連携設定[1]

生成AIサービスの変更[1]

生成AIサービス〔用語解説〕[1]

生成AI連携基盤〔用語解説〕[1]

生成AI〔用語解説〕[1]

設定ファイル（ai_assistant.yml）の変更[1]

セットアップ[1]

た

大規模言語モデル〔用語解説〕[1]

ち

チャット画面[1]、[2]

て

定義ファイル[1]

設定ファイル（ai_assistant.yml）[1]

と

問い合わせ機能[1]

問い合わせ送信機能[1]、[2]

トークン〔用語解説〕[1]

トラブルシューティング[1]

は

ハイパーリンク表示の仕様[1]

ふ

プロンプト[1]

プロンプト作成機能[1]、[2]

め

メッセージ[1]

ゆ

ユーザーコンテンツ取得機能[1]、[2]

ユーザーコンテンツ〔用語解説〕[1]

り

リファレンス[1]

ろ

ログ出力機能[1]、[2]

ログの追加出力の設定[1]

ログの追加出力の設定変更[1]