watsonx.ai を使った会話分析アプリを動かしてみた


**はじめに**


2024年11月末に、IBMの技術者向けのイベントTechXchangeの基調講演のため、watsonxに触れる機会がありました。
[watsonx](https://www.ibm.com/jp-ja/watsonx)とはIBMが提供するビジネスに特化したAIプラットフォームで、IBM Cloud上でもサービスとして利用できます。


TechXchangeではデモのためにIBM Cloudで稼動するPower Virtual Server (Power VS)と連携し、watsonxを使ってみました。今回は公開されている IBM Digital Self-Serve Co-Create Experienceというガイドを参考にして、watsonx.aiサービスを活用した高度な会話分析により販売プロセスの合理化と顧客関係の改善を実現するアプリを稼働させてみました。



**IBM Digital Self-Serve Co-Create Experience (DSCE)は**、データサイエンティスト、アプリ開発者、ML-OpsエンジニアがIBM Watsonライブラリを含むIBMの組み込み用AI及びIBM Watson APIs, ガイド、ソースコードなどが求められているほか、実際にクラウドを使ってAIを稼働させられる環境なども提供します。
また開発の経験がない方々でも様々なAIタスク（コード生成、コンテンツ生成、要約など）をサーバーに接続せず、アプリケーションに組み込んで簡単に利用できるようになっています。 
https://dsce.ibm.com/



このあと、サンプルアプリケーションを実際に動かしてみます。
流れとしては、まず必要な環境であるPythonのインストール、watsonx.aiを呼び出すためのAPIキーの作成、watsonxコンソールでのプロジェクト作成、envファイルの作成、そして最後にアプリケーションを稼働させてみたいと思います。






**アーキテクチャ** 

DSCEで公開されているシナリオのうち、今回は 「Conversation intelligence (会話の高度化)」を利用しました。

「Conversation Intelligence」は、以下のように利用者の端末上で稼働するPythonで書かれたウェブアプリケーションがwatsonx.aiサービスを呼び出し、分析結果を表示します。アプリケーションの利用者はWebブラウザを通して簡単にアプリを体験することができます。


 ![Screenshot 2025-01-20 at 16.38.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/92e5a020-518b-3cf0-b9a7-53102d22d9fe.png)


**アプリを稼働してみた**

アプリケーションのサンプルコードを取得して、watsonx.aiを呼び出せるように構成して、稼働させてみます。

**I. アプリケーションコードサンプルを取得する**


watsonxを触るには、こちらのリンクから欲しいコードサンプルを含むファイル一式をダウンロードすることができます。
このコードは、IBM CloudユーザーAPIキーを使って、watsonxインスタンスのAPIを呼び出します。
また今回のガイドは、このリンクを参考にしています。
https://github.com/IBM/dsce-sample-apps/blob/main/conversation-intelligence/readme.md

 

**II. アプリのセットアップ** 

**II-1. Python3+をインストール** 
コードを使用するためにはPython 3以上をインストールする必要があります。

Pythonの仮想環境を起動し、その環境に対しrequirements.txt に記載された必要なパッケージをインストールします。
```　pip3 install -r requirements.txt```　でファイルをダウンロードします。


**II.2 IBM CloudコンソールでAPIキーを作成**

watsonx.aiを呼び出すためのAPIキーを作成します。そのため、IBM Cloud PortalでAPIキーを取得できるように新しく作成します。
APIキーを作成するためには、まずIBM Cloudコンソールに入って、「Manage」のメニューにある「Access (IAM)」のタグに入ります。

https://cloud.ibm.com/iam/apikeys

![Screenshot 2024-12-13 at 11.12.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/02ad2f89-dd88-f587-ce20-06bb29c65d2f.png)


![Screenshot 2024-12-13 at 11.12.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/39302b6f-ab34-3952-5d70-a761fda9915d.png)
APIキーの画面から「Create」ボタンで新しいAPIキーを作成します。
![Screenshot 2024-12-13 at 12.05.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/ce574cb4-2e08-d59e-430c-ea0a0c0feea2.png)
識別可能な名前を付けてAPIキーを作成します。


**II.3　watsonxコンソールでプロジェクト作成**

次に、watsonxにログインしてプロジェクトを作成し、作成したプロジェクトのIDをenvファイルに入れるために取得する必要があります。
watsonxのアカウントを持ってない利用者もトライアルアカウントでログインすることができ、多様なサービスを体験することができます。
https://www.ibm.com/jp-ja/watsonx
![Screenshot 2025-01-22 at 14.28.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/eaa34a5a-e9cf-9664-2f18-ce7a71555b88.png)
watsonxを画面の中で「Projects」に新しいプロジェクトを作成します。![Screenshot 2025-01-22 at 14.33.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/54398e62-078a-fbf9-0701-13837621f47c.png)
プロジェクトの名前と内容を設定し、作成します。


![Screenshot 2024-12-13 at 11.18.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/5f695fe0-a6d2-a729-e3fc-2577e9bb3f25.png)
続いて、プロジェクトの「Manage」に入ると作ったプロジェクの名前や内容、プロジェクトIDも確認することができます。


作成したプロジェクトのIDを取得します。 

**III. .env ファイルの作成**

**III-1. ターミナルでconversation-intelligenceがあるディレクトリに移動します。** 
アプリからwatsonx.aiのサービスを呼び出すためにenvファイルを作る必要があります。

そのため、そのディレクトリに
```touch .env```　
で.envファイルを作ります。 

 **III-2. VS Code (Visual Studio Code)などを利用し、.envのファイルの中身を作成します** 
 ![Screenshot 2024-12-13 at 12.07.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/25730ef4-f5d2-bc58-6877-a1f156199fca.png)

 
ガイドラインにあるSERVER_URL, 先ほど取得した個人用のwatsonxのプロジェクトID、またIBM Cloud APIキーを書きます。


**IV. アプリの稼働**　 

```Python3 template.py```を実行しアプリを稼働させます。 
　http://localhost:8050
 にアクセスすると下のような画面が表示されます。 
![Screenshot 2024-12-13 at 11.23.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/00ebd4e4-b7da-1503-563d-f03251d8a816.png)
![Screenshot 2025-01-22 at 14.54.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884954/3ff9d22a-dab6-ece9-0467-96ded1b3c590.png)
「Get Insights」を押すと、社員とお客様の会話の内容が要約されて表示されます。会話の主な内容や次のステップとして社員が行うべきこと、さらには該当する業界やお客様の情報が整理され、要約されます。



**まとめ**　

今回の取り組みを通じてIBM Digital Self-Serve Co-Create Experience（DSCE）を活用し、watsonx.aiを用いた高度な会話分析を実現したアプリケーションをIBM Cloudを使用し稼働させてみました。DSCEは、データサイエンティストやアプリ開発者がIBM WatsonのライブラリやAPIを活用し、クラウド環境でAIを実際に動かすための強力なツールを提供しています。また、開発経験がない方でも、AIタスクを組み込んだ形で簡単に体験することができます。

この機会に、皆さんもIBM Cloudを使ってAIサービスに触れ、体験してみませんか？