|
|
|
""" |
|
Docker環境設定テストスクリプト |
|
README.md仕様: Gradio 4.29.0, 🦀 emoji, app.py |
|
""" |
|
|
|
import os |
|
import json |
|
import sys |
|
|
|
def test_environment_variables(): |
|
"""環境変数の設定をテスト""" |
|
print("🦀 Docker環境設定テスト - Gradio FastAPI Django Main") |
|
print("=" * 60) |
|
|
|
|
|
required_vars = [ |
|
'OPENAI_API_KEY', |
|
'OPENAI_API_BASE', |
|
'MODEL_NAME', |
|
'GRADIO_SERVER_NAME', |
|
'GRADIO_SERVER_PORT', |
|
'GOOGLE_APPLICATION_CREDENTIALS_CONTENT' |
|
] |
|
|
|
print("📋 必須環境変数チェック:") |
|
all_set = True |
|
for var in required_vars: |
|
value = os.getenv(var, 'NOT_SET') |
|
if value == 'NOT_SET' or value == 'YOUR_VALUE_HERE': |
|
print(f" ❌ {var}: 未設定") |
|
all_set = False |
|
else: |
|
|
|
if 'KEY' in var or 'SECRET' in var or 'TOKEN' in var: |
|
display_value = value[:8] + '...' if len(value) > 8 else '***' |
|
else: |
|
display_value = value |
|
print(f" ✅ {var}: {display_value}") |
|
|
|
print("\n📦 オプション環境変数:") |
|
optional_vars = [ |
|
'APPSHEET_APPID', 'APPSHEET_KEY', 'ChannelAccessToken', |
|
'github_user', 'github_token', 'hf_token' |
|
] |
|
|
|
for var in optional_vars: |
|
value = os.getenv(var, 'NOT_SET') |
|
if value != 'NOT_SET' and value != 'YOUR_VALUE_HERE': |
|
print(f" ✅ {var}: 設定済み") |
|
else: |
|
print(f" ⚠️ {var}: 未設定(オプション)") |
|
|
|
return all_set |
|
|
|
def test_gradio_version(): |
|
"""Gradio バージョンチェック""" |
|
try: |
|
import gradio as gr |
|
print(f"\n🎨 Gradio バージョン: {gr.__version__}") |
|
|
|
|
|
expected_version = "4.29.0" |
|
if gr.__version__ == expected_version: |
|
print(f" ✅ README.md仕様と一致: {expected_version}") |
|
else: |
|
print(f" ⚠️ README.md仕様 ({expected_version}) と異なります") |
|
|
|
return True |
|
except ImportError as e: |
|
print(f" ❌ Gradio インポートエラー: {e}") |
|
return False |
|
|
|
def test_google_cloud_config(): |
|
"""Google Cloud認証設定テスト""" |
|
print("\n☁️ Google Cloud設定:") |
|
|
|
creds_content = os.getenv('GOOGLE_APPLICATION_CREDENTIALS_CONTENT') |
|
if creds_content: |
|
try: |
|
creds_json = json.loads(creds_content) |
|
project_id = creds_json.get('project_id', 'NOT_FOUND') |
|
client_email = creds_json.get('client_email', 'NOT_FOUND') |
|
|
|
print(f" ✅ プロジェクトID: {project_id}") |
|
print(f" ✅ サービスアカウント: {client_email}") |
|
return True |
|
except json.JSONDecodeError: |
|
print(" ❌ 認証情報のJSON形式が無効です") |
|
return False |
|
else: |
|
print(" ❌ Google Cloud認証情報が設定されていません") |
|
return False |
|
|
|
def main(): |
|
"""メインテスト実行""" |
|
print("🚀 Docker環境設定検証開始\n") |
|
|
|
env_ok = test_environment_variables() |
|
gradio_ok = test_gradio_version() |
|
gcp_ok = test_google_cloud_config() |
|
|
|
print("\n" + "=" * 60) |
|
print("📊 テスト結果サマリー:") |
|
print(f" 環境変数: {'✅ OK' if env_ok else '❌ NG'}") |
|
print(f" Gradio: {'✅ OK' if gradio_ok else '❌ NG'}") |
|
print(f" Google Cloud: {'✅ OK' if gcp_ok else '❌ NG'}") |
|
|
|
overall_status = all([env_ok, gradio_ok, gcp_ok]) |
|
if overall_status: |
|
print("\n🎉 すべてのテストが通過しました!") |
|
print("✨ README.md仕様に準拠したDocker環境が正常に設定されています") |
|
else: |
|
print("\n⚠️ いくつかの設定に問題があります") |
|
print("💡 上記のエラーを修正してから再度テストしてください") |
|
|
|
return 0 if overall_status else 1 |
|
|
|
if __name__ == "__main__": |
|
sys.exit(main()) |
|
|