AI モジュールを使ってみよう

Drupal から生成 AI の API を利用する

『使ってみよう!Drupal』

内容

  • AI モジュールについて
  • Open AI で使ってみる
  • ECA との連携

参考:WSL2/ffdsm ローカル環境

セットアップ手順

https://github.com/bkenro/ffdsm/releases/tag/v20240719

## WSL2 のセットアップ
wsl --install
wsl --update
wsl -l -v
wsl --set-default-version 2

## ffdsm 環境の導入
mkdir c:\ffdsm
wsl --import ffdsm c:\ffdsm ffdsm.tar
wsl -d ffdsm

## DDEV で dxdemo という名前のサイトを立てる
git clone https://github.com/bkenro/nyankotsu.git dxdemo
cd dxdemo
ddev config --project-type=drupal10 --docroot=web
ddev composer install
### ここで drush/sites/self.site.yml を修正
ddev drush @local site:install nyankotsu -y

サイトエイリアスの例

drush/sites/self.site.yml の変更例

local:
  root: /var/www/html
  uri: https://dxdemo.ddev.site
  command:
    sql:
      create:
        options:
          db-su: 'dba'
          db-su-pw: 'dba'
          db-url: 'mysql://db:db@db/db'
    site:
      install:
        options:
          db-url: 'mysql://db:db@db/db'
          locale: ja
          account-name: 'admin'
          account-pass: 'adminpass'
          account-mail: 'admin@example.com'
          site-name: 'にゃんコツ商店街'
          sites-subdir: 'default'

AI モジュールについて

AI モジュールとは

https://www.drupal.org/project/ai

  • ドキュメント
  • AI を Drupal サイトに統合するフレームワーク
  • 既存の AI モジュールのイイトコ取り
  • 特定のモデルやサービスに依存しない
  • 各種サービスとの統合を可能にする抽象化レイヤ
  • ローカル LLM との統合にも対応

利用イメージ

  • サイトビルダー
    • 直観的な UI で AI 機能をノーコード利用
  • モジュール/テーマ開発者
    • 柔軟で容易に使える AI の汎用 API
  • サイト管理者
    • AI オーケストレーションの強力なツール
    • “search_api の AI 版”

インストール

要件:Drupal ^10.3 || 11

### Composer で普通にインストール
$ composer require 'drupal/ai:^1.0@alpha'
  1. AI モジュールを有効化
  2. 使う AI プロバイダのサブモジュールを有効化
  3. Key モジュールで API キーを設定
  4. /admin/config/ai/settings で基本設定
  5. 用途別のモジュールを有効化して利用開始!

基本モジュール

プロバイダのサブモジュール

対応するプロバイダ一覧

試験的/廃止モジュール

ツールのサブモジュール

Open AI で使ってみる

プロバイダの設定

  • キーの設定
    • /admin/config/system/keys
    • Add Key から API キーを設定(Key モジュール)
  • プロバイダ設定
    • /admin/config/ai/providers(有効化プロバイダ一覧)
    • /admin/config/ai/providers/openai(Open AI 設定)
      • 上で設定した API キーを設定して構成を保存
  • AI Settings:機能別のデフォルトプロバイダ設定
    • Open AI サポート機能は自動的に設定される
  • AI API Explorers:試用機能リスト
    • /admin/config/ai/explorers

Chat Generation Explorer

AI Text-To-Speech

AI Text-To-Image

AI Assistant API

ドキュメント:AI Assistant API

  • LLM との対話をチャットボットとして標準化する
  • プラグインベースのシステム
    • LLM でトリガーする独自処理を組み込める
  • チャットボット UI を AI Chatbot モジュールで提供
  • 複数のアシスタント構成を定義できる
    • /admin/structure/ai-assistant
    • 個別に LLM とプロンプトを設定

アシスタントの構成例

AI Chatbot

  • AI Assistant API のフロントエンド
  • ブロックレイアウトにブロックとして組み込める

ECA との連携

ECA とは

https://www.drupal.org/project/eca

参照:前回スライド

Composer インストール:

## ECA モジュールの導入
composer require 'drupal/eca:^2.0'

## BPMN.io モジュールの導入
composer require 'drupal/bpmn_io:^2.0'

AI ECA integration

ECA のタスクで下記を利用可能にする:

  • Chat
    AI Chat モデルでテキストを処理する。
  • Embedding
    入力からテキスト埋め込みを生成する。
  • Speech to Text
    AI の text-to-speech モデルでテキストを処理する。
  • Moderate
    テキストがポリシー違反かどうかを判定する。

例:本文の要約をAIで生成する

  1. StartEvent:記事ノードを保存
  2. Task:本文フィールドの値を取得
  3. Task:AIで要約を生成
  4. Task:AIの要約をフィールドに設定

オリジナル題材

要約生成の ECA タスク

AI 生成による要約の例

ディスカッション

  • AI モジュールが活用できそうなところは?
  • ECA と AI の連携のメリットと可能性は?
  • その他

まとめ

今回の内容

  • AI モジュールについて
  • Open AI で使ってみる
  • ECA との連携