※当サイトの記事には、広告・プロモーションが含まれます。

GitHub Appのベストプラクティスが回答になっていない気はするが...

www.itmedia.co.jp

 米Metaは10月4日(現地時間)、テキストから高画質の動画と音声を生成する動画生成AIモデル「Movie Gen」を発表した。具体的なリリース時期、ライセンス、開発者向けの利用可能性については言及していないが、多数のサンプル動画を公開している。

Meta、音声付き高解像度動画の生成が可能なAIモデル「Movie Gen」発表 - ITmedia NEWS

 Metaは、Movie Genは複数のタスクで業界の類似モデルを凌駕していると説明している。テキストから動画を生成するタスクでは、Runwayの「Gen-3」Luma Labsの「Dream Machine」OpenAIの「Sora」を上回るパフォーマンスを示すとしている。

Meta、音声付き高解像度動画の生成が可能なAIモデル「Movie Gen」発表 - ITmedia NEWS

 具体的なリリース時期やライセンス、開発者向けの利用可能性については言及されていないが、ザッカーバーグ氏はInstagramで「来年Instagramにやってくる」と語った。

Meta、音声付き高解像度動画の生成が可能なAIモデル「Movie Gen」発表 - ITmedia NEWS

 クリス・コックスCPO(最高製品責任者)はThreadsのポストで、まだコストが掛かるし生成に時間が掛かりすぎるので、すぐに製品としてリリースする準備はできていないと語った。

Meta、音声付き高解像度動画の生成が可能なAIモデル「Movie Gen」発表 - ITmedia NEWS

 Movie Genは、アーティストやアニメーターの仕事を奪うのではなく、クリエイターの創造性を高めるためのツールとして機能することを目指しているとMetaは説明する。「将来的には、誰もが自分の芸術的ビジョンを現実のものとする可能性がある」。

Meta、音声付き高解像度動画の生成が可能なAIモデル「Movie Gen」発表 - ITmedia NEWS

⇧ 生成に時間がかかり過ぎるのに、パフォーマンスは類似モデルを上回るって、パフォーマンスの解釈がよく分からんですな...

「CM(Commercial Message)」の動画制作とかで、「PoC(Proof of Concept)」が捗る感じになるんかね?

GitHub Appのベストプラクティスが回答になっていない気はするが...

公式のドキュメントによると、

docs.github.com

⇧ とあるのだけど、リスクは残りますと。

「Azure Key Vault」などを利用してくださいとあるのだが、「Azure Key Vault」で管理されてる「秘密キー」を取得するための情報は、環境変数などに格納せざるを得ないので、漏洩する可能性を残したままですと。

例えば、オンプレミス環境から「Azure Key Vault」を利用せざるを得ない場合、シェルスクリプトでは、

■Azure Key Vaultで管理している情報を取得するための情報

export AZURE_CLIENT_ID="your_client_id"
export AZURE_CLIENT_SECRET="your_client_secret"
export AZURE_TENANT_ID="your_tenant_id"    

■Azure Key Vaultで管理している情報を取得する

#!/bin/bash

# プロキシの設定
export HTTP_PROXY="http://your_proxy:port"
export HTTPS_PROXY="https://your_proxy:port"

# 設定ファイルを読み込む
source ./config

# Azure Key Vaultの情報
KEY_VAULT_NAME="your_key_vault_name"
SECRET_NAME="your_secret_name"

# トークン取得関数
get_token() {
  TOKEN=$(
    curl -s \
      -x "${HTTPS_PROXY}" \
      -X POST \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=client_credentials\
          &client_id=${AZURE_CLIENT_ID}\
          &client_secret=${AZURE_CLIENT_SECRET}\
          &resource=https://vault.azure.net" \
      https://login.microsoftonline.com/${AZURE_TENANT_ID}/oauth2/token)

  # トークン取得結果の確認
  if echo "${TOKEN}" | grep -q '"access_token"'; then
    echo "${TOKEN}" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4

  else
    echo ""

  fi
}

# 秘密鍵取得関数
get_secret() {
  local token=${1}
  SECRET_VALUE=$(
    curl -s \
      -x "${HTTPS_PROXY}" \
      -H "Authorization: Bearer ${token}" \
      "https://${KEY_VAULT_NAME}.vault.azure.net/secrets/${SECRET_NAME}?api-version=7.2")

  # 秘密鍵取得結果の確認
  if echo "${SECRET_VALUE}" | grep -q '"value"'; then
    echo "${SECRET_VALUE}" | grep -o '"value":"[^"]*' | cut -d'"' -f4

  else
    echo ""

  fi
}

# リトライ設定
RETRIES=5
DELAY=3

for (( i=0; i<${RETRIES}; i++ )); do
  TOKEN=$(get_token)
  
  if [ -n "${TOKEN}" ]; then
    SECRET=$(get_secret "${TOKEN}")
    
    if [ -n "${SECRET}" ]; then
      echo "Secret Value: ${SECRET}"
      export SECRET  # SECRETを環境変数としてエクスポート
      echo "Secret exported as environment variable."
      exit 0

    else
      echo "Failed to retrieve the secret. Retrying..."

    fi
  else
    echo "Failed to obtain token. Retrying..."

  fi
  
  sleep ${DELAY}
done

echo "Exceeded maximum retries. Exiting."
exit 1

■Azure Key Vaultで管理してる情報取得後の処理⇧

#!/bin/bash

# fetch_secret.shを実行してSECRETを取得
source ./fetch_secret.sh

# 環境変数SECRETを使用
if [ -n "${SECRET}" ]; then
  echo "Using Secret: ${SECRET}"
  # TODO:
  
else
  echo "Secret is not set. Make sure to run fetch_secret.sh successfully."
fi

⇧ といった感じになりそうなんだが(動作確認はしていないので)、「Azure Key Vault」で管理している情報を取得するための情報は、

などを利用せざるを得ないと。

結局のところ、「GitHub App」のベストプラクティスで言っているのは、

  1. Azure環境内
  2. 非Azure環境内
    • Azure以外のクラウドサービス
    • オンプレミス環境

⇧「1. Azure環境内」での「Azure Key Vault」を利用した場合の話になるってことなんかな?

具体的に、どうするのが正解なのかをハッキリ示してくれれば、アンチパターンに陥るのを抑制できる気がするんだが...

試行錯誤させておいて、後出しじゃんけんで、駄目だしする感じはストレス溜まるだけなので、勘弁して欲しいですな...

毎度モヤモヤ感が半端ない…

今回はこのへんで。