AI開発でも「オブザーバビリティ」！

OpenAIから始まり、自社でAIを使ったソリューションを開発、運用し始めている方が増えています。
開発しているAIアプリのレスポンスタイムや品質の管理をどうするか検討されていたりしませんか？
そんな今まさに困っている開発者の方々には朗報です！！
New RelicではAIアプリのパフォーマンスを計測し、コスパの良いAIアプリ開発に役立ててください!

:::note info
このアップデートの詳細はこちら。
[New Relic アップデート(2024年2月)](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202402)
[New Relic アップデート](https://newrelic.com/jp/blog/nerdlog/new-relic-update "New Relic アップデート")
:::

## 始め方
New RelicでAI Monitoringを始めるためには、対応しているバージョン以上のNew Relic APMエージェントのインストールが必要になります。
2024年5月20日現在の対応状況は以下の通りです（今後更新される想定となりますので、最新情報は[ドキュメント](https://docs.newrelic.com/jp/docs/ai-monitoring/compatibility-requirements-ai-monitoring/)をご参照ください）

![aimonitoring_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/e6a24b69-5e3e-026d-6b35-9ca74e793166.png)

各言語毎にAI Monitoringを有効にするかのフラグがありますので<B>有効</B>に変更してください。
こちらの[ドキュメント](https://docs.newrelic.com/jp/install/ai-monitoring/)に言語毎のconfigファイルおよび環境変数での設定に関して記載されていますので、設定の際にはご活用ください(APMエージェントのインストール自体は、通常のインストールと変わりありません)

例としてRubyを選択した場合は下記のように確認できます。

![aimonitoring_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/14f2652d-baae-6da2-b48c-cffdff4ee720.png)

## データを見る
取得したデータは「AI Monitoring」から確認することが可能です。
(左メニューに表示させたい時はAll Capabilitiesからピン留めすることで表示されるようになります)

![aimonitoring_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/d6ead7a0-ca6f-4677-8632-737277f86c67.png)

画面としてはこれまでのAPMと同様ですが、左メニューに「AI Responses」が増えています。

![aimonitoring_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/53e6ed5e-d079-f589-48f1-c6cce7fc6702.png)

「AI Responses」をクリックすると、リクエスト数や平均レスポンスタイム、トークンの利用状況などを確認することが可能です。

![aimonitoring_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/dd51b0af-1d32-f09b-b424-e02e0f1f0eef.png)

「Responses」に記録されたリクエストをクリックすると、処理の詳細を確認することが可能です。
画面はAPMのTransaction Traceと似ているので、同じように各処理時間の詳細分析を行なっていただけます。
どんな質問に対して回答を返しているのかもわかります。

![aimonitoring_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/ac2922b1-6b3e-9065-9f86-6d4fafb569e0.png)

ログも紐付けて見ることが可能なので、いちいち検索しなくても良いのも便利ポイントです。

![aimonitoring_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/0f3ecdd8-7a7b-72db-2577-0496200d4970.png)

## 機密性のあるデータをNew Relicに送らないようにしたい場合
含まれてしまった機密情報をNew Relicに保存されないようにするためには、事前に下記の方法を設定することで対応することが可能です。
詳細はこちらの[ドキュメント](https://docs.newrelic.com/docs/ai-monitoring/drop-sensitive-data/)もご参照ください。

(1)configファイルの`ai_monitoring.record_content.enabled`を　`false`にする
LLM イベントでキャプチャされた入力および出力コンテンツ (プロンプトや応答からのテキスト文字列など) の情報取得を省略します。
LLM との間で送受信される機密データを記録したくない場合のオプションとして設定することが可能です。
（デフォルトは`true`です）

(2)ドロップフィルターを作成する

個別のドロップフィルターを設定することも可能です。
設定は AI Monitoring -> Drop Filter から行います。

![aimonitoring_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/6c1a9486-c8f9-53ea-ed30-0e5e9ed460b4.png)

情報を削除するイベントを選択するか、すべてのイベントから選択することが可能です。
正規表現のルールを選択することが可能ですが、現状は1ルールにつき１つまで選択となります。
追加でNRQLを追加することも可能なので、場合によって使い分けることが可能です。

![aimonitoring_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/9a15b5a5-3e27-320d-ac77-e24e11279ce1.png)

※ルールでDropしたデータは復元することができません。
また保存されてしまったデータを削除したい場合は、サポートにお問い合わせください。


## まとめ
これから増えていくことがAIアプリをさらに効率的に開発、運用していくために
是非New RelicのAI Monitoringをご活用ください！！

:::note info
このアップデートの詳細はこちら。[New Relic アップデート(2024年2月)](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202402)
:::
:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::
:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::