会話型AIの力を解き放て: Qwen、Model Studio、FCを使って自分だけのチャットボットを作成しよう

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/unlock-the-power-of-conversational-ai-create-your-own-chatbot-using-qwen-model-studio-and-fc_602087?spm=a2c65.11461433.0.0.4ee35355bCemAJ)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# インドネシアのアリババクラウドソリューションアーキテクト、M Fakhri Darmawanが執筆

今日の急速に進化するデジタル世界において、チャットボットはビジネスや開発者がユーザーエクスペリエンスを向上させ、ワークフローを自動化し、顧客とのやり取りを拡大するために欠かせないツールとなっています。しかし、もし完全にカスタマイズ可能な高度な知能を持つチャットボットを作ることができたらどうでしょうか？そこで登場するのが、[Qwen](https://www.alibabacloud.com/solutions/generative-ai/qwen)です。これはアリババクラウドの最先端の大規模言語モデルであり、さらに[Model Studio](https://www.alibabacloud.com/product/modelstudio)と[Function Compute](https://www.alibabacloud.com/product/function-compute)（FC）の強力な機能と組み合わせることで、その可能性を最大限に引き出すことができます。このブログでは、これらの最新技術を使用して独自のチャットボットを作成するためのステップバイステップガイドをお届けします。これにより、会話型AIのすべてのポテンシャルを簡単に活用できるようになります。

## ステップ 1  
次の[LINK](https://bailian.console.alibabacloud.com/?spm=a2c63.p38356.0.0.17a074a7kzMCVp#/home)を使用して無料でModel Studioをアクティベートしてください。次にAPIキーを作成します。

## ステップ 2  
### APIキーの作成と取得
1. ページ右上にある![1](https://yqintl.alicdn.com/5ba5c2cd101146343f26ce332a7f9b16cac71814.png)にカーソルを合わせ、「API-KEY」を選択します。  
   ![2](https://yqintl.alicdn.com/96d00c28376ce11fbe719ee6f2a5a025f8b5b9d0.png)
2. 左側のナビゲーションペインで「All API Keys」または「My API Key」を選択して、APIキーを表示または作成します。「Create My API Key」または既存のAPIキーを確認するにはクリックします。  
   ![3](https://yqintl.alicdn.com/11e32971b09e0728e546166e6f65c3b2df0d11dc.png)

**注意**  
- Alibaba Cloudアカウントを使用している場合のみ、「All API Keys」ページを利用できます。Alibaba CloudアカウントはすべてのRAMユーザーのAPIキーを取得できますが、RAMユーザーは自身のAPIキーのみ取得可能です。  
- APIキーは秘密にして、不正使用によるセキュリティリスクや財政的な損失を避けてください。APIキーは重要な資産であるため、安全に保管してください。  
- 「Actions」列の「Delete」をクリックして既存のAPIキーを削除すると、そのキーを使用してModel Studioサービスを利用することはできなくなります。このキーに関連付けられているすべてのアプリケーションやサービスは動作しなくなります。

## ステップ 3  
### Model Studioアプリケーションの作成とデプロイ  
[エージェントアプリケーション - Alibaba Cloud Model Studio - Alibaba Cloud Documentation Center](https://www.alibabacloud.com/help/en/model-studio/user-guide/single-agent-application/?spm=a2c63.p38356.help-menu-2400256.d_1_1_1.2a339f6b1EdYMZ)

## ステップ 4  
### アプリケーションIDの取得  
[アプリケーションIDとワークスペースIDの取得 - Alibaba Cloud Model Studio - Alibaba Cloud Documentation Center](https://www.alibabacloud.com/help/en/model-studio/developer-reference/obtain-api-key-app-id-and-workspace-id?spm=a2c63.p38356.help-menu-search-2400256.d_0)

## ステップ 5  
### チャットボットサンプルアプリケーションのデプロイ  

### 前提条件  

- nodejsバージョン22をインストール ([LinuxでNode.js v22をインストールする方法: ステップバイステップガイド](https://linuxtldr.com/installing-node-js/))  
- npmをインストール  
- serverless devをインストールおよび設定 ([クイックスタート - Function Compute - Alibaba Cloud Documentation Center](https://www.alibabacloud.com/help/en/functioncompute/fc-3-0/developer-reference/install-serverless-devs-and-docker?spm=a2c63.p38356.0.i3))  

### 手順  

1. この[githubリポジトリ](https://github.com/fakhridarmawan/doc-extraction/archive/refs/heads/master.zip)からコードをダウンロードします。  
2. コードを解凍します。  
3. `s.yaml`ファイル内のコードを変更します。  yaml
edition: 3.0.0
name: fc3-example
access: default
resources:
  fcDemo:
    component: fc3
    props:
      region: ap-southeast-1
      handler: handler
      role: 
      disableOndemand: false
      description: web-chatbot
      timeout: 180
      internetAccess: true
      layers:
        - acs:fc:ap-southeast-1:official:layers/Nodejs16/versions/2
      customRuntimeConfig:
        args:
          - run
          - start
        port: 9000
        command:
          - npm
      # logConfig: # slsでログプロジェクトを定義してFC用のログを有効にする
      #   enableRequestMetrics: true
      #   enableInstanceMetrics: true
      #   logBeginRule: DefaultRegex
      #   project: serverless-ap-southeast-5-xxx
      #   logstore: default-logs
      functionName: webchat-bot
      runtime: custom
      instanceConcurrency: 1
      memorySize: 128
      environmentVariables:
        PATH: &gt;-
          /opt/nodejs16/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin:/opt/bin:/code:/code/bin
        BAILIAN_APP_ID: 386XXX # ここにmodel studioアプリケーションIDを入力
        BAILIAN_API_KEY: sk-xxx # ここにAPIキーを入力、またはFC設定 -&gt; 環境変数で設定
        LD_LIBRARY_PATH: &gt;-
          /code:/code/lib:/usr/local/lib:/opt/lib:/opt/php8.1/lib:/opt/php8.0/lib:/opt/php7.2/lib
        STATIC_DIR: /public
        NODE_PATH: /opt/nodejs/node_modules
        SECRET: 
      code: ./webchat-bot-fd
      triggers:
        - triggerConfig:
            methods:
              - GET
              - POST
              - PUT
              - DELETE
              - HEAD
              - PATCH
            authType: anonymous
            disableURLInternet: false
          triggerName: httpTrigger
          description: 
          qualifier: LATEST
          triggerType: http

変更が必要なコード：  
a) 行37. `BAILIAN_APP_ID: 386XXX # ここにmodel studioアプリケーションIDを入力`  
b) 行38. `BAILIAN_API_KEY: sk-xxx # ここにAPIキーを入力、またはFC設定 -&gt; 環境変数で設定`  

4. serverless deploymentを使用してコードをデプロイします。  bash
s deploy s.yaml

デプロイ成功時の結果：text
[2025-03-14 17:08:53][WARN][s_cli] It is not recommended to run the command as root user. (node:56555) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead. (Use `node --trace-deprecation ...` to show where the warning was created)
⌛  Steps for [deploy] of [fc3-example]
====================
disableOndemand: false

* You can also specify to use local configuration through --assume-yes/-y during deployment
? Deploy it with local config? Yes
(node:56555) [DEP0040] DeprecationWarning: The `punycode` module
# TIPS:

`s info` を使用すると、より詳細な情報を取得できます。

✔ [fcDemo] が完了しました (14.88秒)

🚀  [fc3-example] の [deploy] 結果
====================
リージョン:               ap-southeast-1
customRuntimeConfig: 
  args: 
    - run
    - start
  command: 
    - npm
  port:    9000
説明:          web-chatbot
環境変数: 
  BAILIAN_API_KEY: sk-xxx
  BAILIAN_APP_ID:  386b4ab2a301472688b3e35906a15fe1
  LD_LIBRARY_PATH: /code:/code/lib:/usr/local/lib:/opt/lib:/opt/php8.1/lib:/opt/php8.0/lib:/opt/php7.2/lib
  NODE_PATH:       /opt/nodejs/node_modules
  PATH:            /opt/nodejs16/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin:/opt/bin:/code:/code/bin
  SECRET:          
  STATIC_DIR:      /public
functionArn:          acs:fc:ap-southeast-1:5846842125303498:functions/webchat-bot
関数名:         webchat-bot
ハンドラ:              handler
インスタンス同時実行数:  1
インターネットアクセス:       true
レイヤー: 
  - acs:fc:ap-southeast-1:official:layers/Nodejs16/versions/2
メモリサイズ:           128
ロール:                 
ランタイム:              custom
タイムアウト:              180
トリガー: 
  - 
    説明:   
    修飾子:     LATEST
    トリガー設定: 
      メソッド: 
        - GET
        - POST
        - PUT
        - DELETE
        - HEAD
        - PATCH
      認証タイプ:           anonymous
      URLインターネット無効化: false
    トリガー名:   httpTrigger
    トリガー種別:   http
URL: 
  システムURL:          https://webchat-bot-usebaqmcxe.ap-southeast-1.fcapp.run
  システムイントラネットURL: https://webchat-bot-usebaqmcxe.ap-southeast-1-vpc.fcapp.run
__component:          fc3

5. FCが正常にデプロイされ、環境変数が正しく設定されていることを確認してください。
! [4](https://yqintl.alicdn.com/f3c2979e8d44270b0d01928eb5034cfbfd028aef.png)
! [5](https://yqintl.alicdn.com/9ba35d53733bbb40b776803e30ab9ca488324c22.png)

6. ドメインを追加します。
! [6](https://yqintl.alicdn.com/ff78ad546f6ff30f1f1d5a6aab03c494a1145366.png)
ドメインを入力し、関数とバージョンを選択してからアプリケーションを作成します。
! [7](https://yqintl.alicdn.com/b075036a399539f47595a6946467b356aa3b8f5c.png)
ドメインを設定し、Function ComputeからのCNAMEにポイントします。

7. ドメインに移動し、アプリケーションをテストして独自のプロンプトを使用してみてください。
! [8](https://yqintl.alicdn.com/05c3111dbb1154a8c40dd5cf9f78e4f103f63979.png)

**メリット:**
•    簡単なデプロイ: サーバーを管理する必要はありません。Function Computeがスケーリングとインフラストラクチャを処理します。
•    カスタマイズ可能: Model Studioを使用すると、Qwenを特定のビジネス要件に合わせて調整できます。
•    コスト効率: 会話中に使用されるコンピューティングリソースに対してのみ支払います。

**ユースケース:**
•    カスタマーサポートの自動化。
•    Webサイトやアプリ用の仮想アシスタント。
•    対話型FAQボット。

このセットアップは、Qwenの強力な対話型AI、Model Studioのカスタマイズ機能、およびFunction Computeのスケーラビリティを組み合わせることで、柔軟で効率的なチャットボットソリューションを提供します。