4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OCI Generative AI を使用するための Dify 設定ファイルの作成方法

4
Last updated at Posted at 2025-02-28

はじめに

OCI Generative AI を使用する場合、API キーとその関連情報の設定が必要です。この記事では、Dify に必要な認証情報を効率的に生成する方法を説明します。


1. 必要な情報の準備

OCI Generative AI を使用する前に、以下の情報が必要です。

  • ユーザー OCID: OCI アカウントのユーザー ID
  • フィンガープリント: OCI API キーのフィンガープリント
  • テナント OCID: OCI アカウントのテナント ID
  • PEM ファイルのパス: OCI API キーの PEM ファイルのパス
  • リージョン: 使用する OCI リージョン
  • コンパートメント OCID: 使用するコンパートメントの OCID

2. OCI設定ファイルを活用した効率的な認証情報生成

既存のOCI設定ファイルを活用することで、より効率的に認証情報を生成できます。dify-on-oci-guideプロジェクトで提供されているスクリプトを使用すると、必要な情報を自動的に読み取ることができます。

2.1. スクリプトの入手と実行

curl -O https://raw.githubusercontent.com/engchina/dify-on-oci-guide/main/tools/oci-dify-credentials-generator.sh
chmod +x oci-dify-credentials-generator.sh
./oci-dify-credentials-generator.sh <profile> <compartment_ocid>

例:

./oci-dify-credentials-generator.sh DEFAULT ocid1.compartment.oc1..aaaaaaaa

2.2. スクリプトの機能

このスクリプトは以下の処理を行います:

  1. 指定されたプロファイル名とコンパートメントOCIDを受け取ります
  2. ~/.oci/configファイルから指定されたプロファイルの設定情報を読み取ります
  3. 必要な設定項目(ユーザーOCID、フィンガープリント、テナントOCID、リージョン、PEMファイルパス)が存在するか検証します
  4. 設定情報とPEMファイルの内容をBase64エンコードし、Difyで使用できる形式で出力します

2.3. 出力例

Reading [DEFAULT] configuration from config file...
Configuration loaded:
User OCID: ocid1.user.oc1..aaaaaaaa
Fingerprint: 11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff
Tenancy OCID: ocid1.tenancy.oc1..aaaaaaaa
Region: ap-osaka-1
PEM file path: /home/opc/.oci/oci_api_key.pem
Compartment OCID: ocid1.compartment.oc1..aaaaaaaa

[Dify: oci api key config file's content]
b2NpZDEudXNlci5vYzEuLmFhYWFhYWFhLzExOjIyOjMzOjQ0OjU1OjY2Ojc3Ojg4Ojk5OjAwOmFhOmJiOmNjOmRkOmVlOmZmL29jaWQxLnRlbmFuY3kub2MxLi5hYWFhYWFhYS9hcC10b2t5by0xL29jaWQxLmNvbXBhcnRtZW50Lm9jMS4uYWFhYWFhYWE=

[Dify: oci api key file's content]
LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUVwQUlCQUFLQ0FRRUEwZmR5M0ZRVkFtRXRzOVZmSGtNOEFtWk9XbVhUMmNWZU5SdTZPYzZQVEFPU3ZYaXoKLy4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==

2.4. メリット

  • 手動で情報を入力する必要がなく、ミスを減らせます
  • 既存のOCI設定を再利用できるため、効率的です
  • 複数の環境やプロファイルで簡単に切り替えられます

3. 手動での認証情報生成(代替方法)

既存のOCI設定ファイルがない場合や、手動で認証情報を生成したい場合は、以下の方法を使用できます。

3.1. シェルスクリプトの作成

以下のシェルスクリプトを作成します:

vi genai-credentials.sh
---
#!/bin/bash

# 以下を自分の情報に置き換える
user="ユーザー OCID"
fingerprint="フィンガープリント"
tenancy="テナント OCID"
pem_file_path="PEM ファイルのパス"

# 以下は変更しない
compartment_ocid="コンパートメント OCID"
region="ap-osaka-1"  # 使用するリージョンを指定

# 複合文字列の作成
combined_string="$user/$fingerprint/$tenancy/$region/$compartment_ocid"

# 複合文字列を Base64 結合
encoded_combined_string=$(echo -n "$combined_string" | base64 --wrap=0)

# 結果を表示
echo "[Dify: oci api key config file's content]"
echo "$encoded_combined_string"

# PEM ファイルの存在チェック
if [ ! -f "$pem_file_path" ]; then
    echo "PEM ファイルが見つかりません: $pem_file_path"
    exit 1
fi

# PEM ファイルを Base64 結合
encoded_pem_content=$(base64 --wrap=0 "$pem_file_path")

# 結果を表示
echo
echo "[Dify: oci api key file's content]"
echo "$encoded_pem_content"
---

3.2. シェルスクリプトの説明

3.2.1. 変数の設定

  • user: OCI アカウントのユーザー OCID を指定します。
  • fingerprint: OCI API キーのフィンガープリントを指定します。
  • tenancy: OCI アカウントのテナント OCID を指定します。
  • pem_file_path: OCI API キーの PEM ファイルのパスを指定します。
  • compartment_ocid: 使用するコンパートメントの OCID を指定します。
  • region: 使用する OCI リージョンを指定します。

3.2.2. 複合文字列の作成

combined_string="$user/$fingerprint/$tenancy/$region/$compartment_ocid"

この行では、ユーザー OCID、フィンガープリント、テナント OCID、リージョン、コンパートメント OCID を / で区切った文字列を作成します。

3.2.3. Base64 結合

encoded_combined_string=$(echo -n "$combined_string" | base64 --wrap=0)

この行では、作成した複合文字列を Base64 結合します。Dify に必要な設定ファイルの内容として使用します。

3.2.4. PEM ファイルの処理

if [ ! -f "$pem_file_path" ]; then
    echo "PEM ファイルが見つかりません: $pem_file_path"
    exit 1
fi

encoded_pem_content=$(base64 --wrap=0 "$pem_file_path")

この行では、PEM ファイルの存在を確認し、存在する場合に PEM ファイルの内容を Base64 結合します。


4. 結果の確認

どちらの方法でも、スクリプトを実行すると、以下のような出力が表示されます。

[Dify: oci api key config file's content]
<Base64 結合された複合文字列>

[Dify: oci api key file's content]
<Base64 結合された PEM ファイルの内容>

これらの出力を Dify に必要な設定ファイルとして使用します。


5. 注意事項

  • セキュリティ: API キーと PEM ファイルは非常に重要な情報です。これらの情報を第三者に漏洩しないように注意してください。
  • ファイルの保管: 作成した設定ファイルも同様に重要な情報です。安全な場所に保管してください。
  • リージョン: 使用するリージョンを正しく指定してください。指定したリージョンに存在しないリソースを使用するとエラーが発生します。

6. 終わりに

この記事では、OCI Generative AI を使用するための Dify 認証情報を生成する方法を説明しました。既存のOCI設定を活用する効率的な方法と、手動で認証情報を生成する代替方法の両方を紹介しました。OCI と Dify を使用する際には、セキュリティに十分注意してください。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?