はじめに
本記事では、DifyプラットフォームとOracle Base Database Service(23aiエディション)を連携させる方法を解説します。クラウド環境における大規模データ処理を想定した設定方法となっています。
前提条件
- Oracle Base Database Service 23ai の稼働環境
- 基本的なSQLコマンドの操作知識
- Dockerランタイムの利用可能な環境
1. データベース側の設定
1.1 接続設定とユーザー作成
sshでOracle Base Database Serviceのコンピュート・インスタンスに接続して、以下コマンドを実行
$ sqlplus / as sysdba
-- コンテナデータベースへの接続
SQL> alter session set container=<PDB名>;
-- 接続数パラメータ変更
ALTER SYSTEM SET PROCESSES=500 SCOPE=SPFILE;
-- アプリケーション用ユーザー作成
CREATE USER dify IDENTIFIED BY <パスワード>
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
GRANT DB_DEVELOPER_ROLE TO dify;
exit;
1.2 全文検索用レクサー作成
技術ノート: Difyの現行バージョン(2025年3月2日時点)ではデフォルトで
my_chinese_vgram_lexer
という命名が使用されていますが、今後は変更される可能性があります。
BEGIN
CTX_DDL.CREATE_PREFERENCE(
'my_chinese_vgram_lexer',
'CHINESE_VGRAM_LEXER'
);
END;
/
2. Dify環境の設定
2.1 リポジトリの取得
git clone -b 1.0.0 https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env # 設定ファイルのテンプレートをコピー
2.2 環境変数設定
.env
ファイルの変更箇所:
### Oracle連携設定 ###
VECTOR_STORE=oracle
ORACLE_HOST=<データベースサーバーIP>
ORACLE_PORT=1521
ORACLE_USER=dify
ORACLE_PASSWORD=<設定したパスワード>
ORACLE_DATABASE=<PDB名>
2.3 Docker Composeの調整
docker-compose.yaml
のOracle関連設定(外部DB利用時):
services:
oracle:
image: container-registry.oracle.com/database/free:latest
profiles:
- oracle-skip # 外部DB利用時はコンテナ起動をスキップ
volumes:
- oradata:/opt/oracle/oradata
environment:
ORACLE_PWD: ${ORACLE_PWD:-Dify123456}
3. システム起動
docker compose up -d
4. 動作検証方法
ログ確認
docker compose logs -f
Webインターフェース確認
http://localhost:3000 にアクセスし、管理画面が表示されることを確認
重要注意事項
-
セキュリティ設定
- ファイアウォールで1521ポートのインバウンド許可
- パスワードポリシーの遵守(大文字/数字/記号を含む12桁以上)
-
命名規則
- PDB名はインスタンス作成時に指定した名称を使用
-
パフォーマンス
- 初期データ投入時は
PROCESSES
パラメータを適宜調整 - 表領域の監視を推奨
- 初期データ投入時は
お勧めのDify関連記事
Oracle(OCI)ずくめでDifyしよう!
Dify v1.0.0のSelf-Host版を宇宙最速でデプロイしてみた@OCI
まとめ
Oracle Base Database Service 23aiをDifyのバックエンドとして活用することで、エンタープライズレベルの自然言語処理アプリケーションを構築できます。本手順は開発環境向けの設定ですので、本番環境ではセキュリティガイドラインに沿った追加設定が必要です。
参考資料: