
こんにちは!三瀬と申します。
ここ数ヶ月は、業務でDrupal職人になっています。
CMSの様々な機能を構築するうちに知見もかなり貯まり散らかしているので、時間を見つけて放出していきたいですね(ただでさえ日本語のドキュメントが少ないので...)
今回は、先月Drupal10向けに OpenAI / ChatGPT Integration モジュールのベータ版が公開されたので、インストールして遊んでみました。
導入
まずはモジュールのページに、公開されている最新バージョンをインストールするコマンドがあるのでコピーして /opt/drupal 直下で実行します。

その際に「Do you trust "php-http/discovery" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) 」というメッセージが表示されるので「y」を押して続行します。

インストールしてOpenAI Coreの有効化まで行ったら /admin/config/openai/settings ページに移動すると設定画面が出てくるので、API KeyとOrganization IDを入力して保存します。

コンテンツの作成サポート機能
機能拡張ページに行くと、OpenAI関連の様々なプラグインが使用可能になっています。

今回はコンテンツ作成をサポートしてくれるプラグインとして「OpenAI CKEditor integration」と「OpenAI Content Editing Tools」の2つを有効化してみます。
OpenAI CKEditor integration
CKEditorにOpenAIの機能を利用するメニューを提供してくださるド有能ツールです。
初期導入として、環境設定の「テキストフォーマットとエディター」ページから、ツールバーの構成にOpenAIのアイコンをしたボタンが選べるようになっているのでActive toolbarにぶち込んでみます。

その後、ページの下らへんに「OpenAI tools」メニューがあるので有効にしてモデル・Temperature・トークン上限を設定します。

これでCKEditor上でOpenAIメニューが扱えます。いくつか使ってみましょう。
Text Completion
入力したお題に従って、文章を生成してくれます。

Summarize
文章を簡潔にまとめてくれます。

Adjust tone/voice
文体や温度感を入力内容に従って調整してくれます。

Translate
入力した言語コードに従って翻訳してくれます。フィンランド語(fi)にしてもらいました。

Reformat/correct HTML
形式をいい感じにしてくれます。

OpenAI Content Editing Tools
本文やタイトル等の指定したフィールドを解析して、よりよい提案をしてくれるプラグインです。
こちらは有効化したら特に設定なく使えるので、いくつか触ってみます。
Analyze text
指定したフィールドがChatGPTポリシーに違反していないかを推定してくれます。
特に問題がなければ「The text does not violate any content policies noted by OpenAI/ChatGPT.」と表示されます。

Suggest content title
指定したフィールドの内容から、そのコンテンツに相応しいタイトルを提案してくれます。

これでよいのかは微妙です。
Suggest taxonomy
指定したフィールドの内容から、そのコンテンツにつけるタグを提案してくれます。

管理者向け機能
コンテンツ作成画面で使える訳ではないのですが、Drupalの管理画面上でOpenAIのサービスを利用するプラグインが提供されています。
いくつか触ってみます。
OpenAI ChatGPT Explorer
一問一答形式ですが、普通に任意のモデルのChatGPTが使えます。
デフォルトだとsystem欄に「あなたはDrupalウェブサイトの中の親切なアシスタントです。励ましと礼儀を忘れず、回答をした後にユーザーにフォローアップの質問をしましょう。」みたいな文章が入っています。

(GPTさんにDrupalに関する知識がふんだんに入っているとは言えないのでアレですが)
OpenAI DALL·E
DALL·Eで何かしらの画像が作れます。生成結果はURL形式で返ってきます。


OpenAI text to speech
TTSもしてくれます。

生成結果はDrupalサーバ内にファイルとして保存してくれます。

まとめ
まだベータ版でIssueもザクザク出ている状態なので、業務システム等に組み込むのは難しいですが、CMSの世界でも生成AIを組み込んで様々な活用ができるようになっていますね。
あと今回は触ってないのですが、ECAモジュールとも組み合わせられそうなので今度色々魔改造して遊んでみたいです。
(「もっとかわいく」の実行結果)
