2025年8月5日火曜日

n8nのカスタム・ノードn8n-nodes-oracle-cloudを使ってみる

オラクルのサービスを呼び出すn8nのカスタム・ノードの実装はあまり見つけられないのですが、GitHubのoracle-community-creatorよりn8n-nodes-oracle-cloudが公開されています。

最近(履歴を見ると2025年7月29日に最初のコミット)リリースされたばかりのため、このノードの使い方について情報が見つかりません。少し調べただけですが、まったく情報がないよりは参考になると思うので、以下にまとめてみます。

n8n-nodes-oracle-cloudのGitHubのページは以下です。

Disclaimerにて、本ソフトウェアはオラクルによる公式のコミュニティ・ノードではない点が強調されています。開発者はオラクルに所属している方のようなので、誤解のないように強調しているのだと思います。

n8n-nodes-oracle-cloudのインストールから紹介します。

インストールはSettingsCommunity nodesから行います。インストールするnpmパッケージとしてn8n-nodes-oracle-cloudを指定します。


2025年8月5日時点でn8n-nodes-oracle-cloudをインストールすると、以下の5つのカスタム・ノードが使用可能になります。
  • Embeddings OCI Generative AI
  • OCI Generative AI Chat Model
  • Oracle Database Vector Store
  • Oracle Database Vector Store: Insert
  • Oracle Database Vector Store: Tool
Embeddings OCI Generative AIは入力ポートとしてEmbeddingsを持つノードで、Embeddings OpenAIEmbeddings Google Geminiといったノードと同様に扱うことができます。


設定する内容としては、OCIのクリデンシャルとして以下の情報を設定します。


Embeddings固有の設定として、Compartment IDとModel NameまたはIDを設定します。


OCI Generative AI Chat Modelは入力ポートとしてModelを持つノードで、OpenAI Chat ModelGoogle Gemini Chat Modelといったノードと同様に扱うことができます。


ノードOracle Database Vector Store: Insertは、チャンク分割してそれぞれのチャンクにたいして生成した埋め込みベクトルを、設定した表に保存するノードです。

以下のようなワークフローになります。


上記のワークフローは、フォームからアップロードしたファイルをノードDefault Data Loaderの設定に従ってチャンク分割します。分割したチャンクから、Embeddings Ollamaを呼び出してベクトル埋め込みを生成します。

ノードOracle Database Vector Store: Insertの設定ですが、データベースへの接続先の設定の他にTable Nameがあります。


ここで指定する表の定義ですが、以下の定義でチャンクやベクトル埋め込みを保存することができました。

SQL> desc docs


名前           Nullかどうか    タイプ                  

____________ ___________ ____________________ 

ID                       RAW(16 BYTE)         

TEXT                     CLOB                 

EMBEDDING                VECTOR(*,*,DENSE)    

METADATA                 CLOB                 

SQL> 


一番簡単なDDLとしては以下になります。

create table docs(id raw(16), text clob, embedding vector, metadata clob);

23aiであれば、列METADATAはJSON型として定義も可能です。

ノードOracle Database Vector Store: Toolは入力ポートにToolを持ちます。これはAI AgentToolに接続して、いわゆるRAGのソースを提供します。


ノードの設定のTable Nameには、ノードOracle Database Vector Store: Inputでチャンクと埋め込みベクトルを保存した表DOCSを設定します。Descriptionはツールの説明になるので、以下のようなFor RAGではなく、しっかりとした記述が必要です。

AI Agentに接続するModelは、ツール呼び出しのサポートが必須です。


ノードOracle Database Vector Storeは入力ポートとしてVector Storeを持っています。これはVector Store Retrieverに接続します。


設定としては間違っていないと思うのですが、ノードOracle Database Vector Storeについては動作を確認できませんでした。

今回の記事は以上になります。