Drupal、OpenAI、Pinecone 生成AIの検索機能を作る
最初に
Drupal Advent Calendar 2024 の 8日目の記事です。
生活にあらゆるところに登場するようになった生成AIですが、
現在、Drupalコミュニティでは急ピッチで生成AIを利用するためのモジュール開発が進んでいます。
今回はLLMはOpenAI、ベクターデータベースはPinecone を利用する検索機能の実装方法を簡単にご紹介します。
準備
まず必要なアカウントやモジュールを準備します。
OpenAI
OpenAIのアカウントが必要です。2024/12/5 現在、無料で利用できる枠はなさそうなので、5ドルを払って有償アカウントにしてください。テストで使う分には5ドルで問題ないです。 Pinecone
Pineconeのアカウントが必要です。2024/12/5 現在、無料枠があります。Indexを作成する時にOpenAIとモデルを合わせる必要があります。 Drupalモジュール
Drupal 10.3系 もしくは Durpal 11.0 系をインストール、composer で 次のモジュールをインストールします。
現時点でアルファ版、ベータ版が多いので各モジュールページに記載された最新の composer のコマンドで導入することをおすすめします。
AI Coreとも言えるAI関連の基幹モジュールです
Open AI と接続するためのモジュールです
Pinecone と接続するためのモジュールです
Drupalで高度な検索を提供すると言えばコレ!なモジュールです。
プロセッサーでOpen AIを使ってデータをベクトル化し、バックエンドサーバにPineconeを指定してデータを流します。
その他
Pinecone VDB Provider が内部で使用していたので、個別に導入しました。
モジュールのインストール
各種モジュールをインストールします。
AI Core
OpenAI Provider
(Deprecated) がついてない方をインストールします
Pinecone Serverless VDB Provider
こちらも(Deprecated) がついてない方をインストールします
AI Search
Search API
AI API Explorer
オプションです。開発者向けツールでOpen AIの疎通確認に使えます。
各種設定
OpenAI
アクセスキーの設定
Configuration > Provider Settings > OpenAI Authentication で、OpenAI API Key を設定します。
実際はそのページから create a new key でキー設定します。
キーの設定値 ( Configuration > Keys からも登録可能です)
Key name ・・・ Open AI などわかりやすい名称
Key type ・・・ Authentication
Key value ・・・ Open API のキー
セットアップが正常完了できると、自動で Configuration > AI Default Settings がアップデートされます。
この段階で、各種AIモジュールが機能するようになるので気になる方は試してみてください。
OpenAIの疎通確認
AI API Explorer モジュールを有効にした場合、Configuration > AI API Explorers > Chat Generation Explorer からChatGPTのようなチャット形式でお試しができます。エラーになった場合も詳細に表示されるので疎通確認に便利です。
Pinecone
アクセスキーの設定
Configuration > Vector DBs Settings > Pinecone Configuration でOpenAIと同様、アクセスキーを設定します。
Key name ・・・ Pineconeなどわかりやすい名称
Key type ・・・ Authentication
Key value ・・・ Pineconeのキー
アカウントを作成直後、ダッシュボードにモーダル表示で出てきたキーがそれでした。
PineconeのIndex作成
Pineconeのダッシュボードでindexを作成します。
https://scrapbox.io/files/675176eea4b8ed63ee6f8338.png
Configuration で モデルの指定があります。
Drupalの Configuration > AI Default Settings で Embeddings に指定されたモデルをPinecone側でもするのが良さそうです。
Search API
OpenAIとPineconeの設定ができたら、Search APIでサーバとインデックス対象の設定を行います。
大変申し訳ないのですがSearch APIの使い方は以下の記事がとても詳しいのでそちらを参照してください。
コツはSearch APIのサーバ作成時に Backend を AI Search に選択するだけです。
Pineconeと疎通ができていれば、Pineconeのindexも自動で選択肢と表示されるので流れでいけます。
https://scrapbox.io/files/675176f2d049f8761b5eb8b2.png
おしまいに
今回の記事はDrupal Meetup Tokyo で取り扱うためにデモ環境を作ってみたのがきっかけでした。
DrupalとSearch API は知っている、でもOpenAI も Pinecone も実は全然わからない・・・状態からスタートして、2時間くらいで検索っぽい機能の動作確認までできました。
2024/12/5現在、ベータ版のモジュールが多いAI関連モジュールですが近い将来、実運用でも組み込んで機能提供できるのではないかと期待しています。