File size: 4,137 Bytes
a854c6f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
#!/usr/bin/env python3
"""
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__}")
# README.md仕様との比較
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())
|