import os import base64 import urllib.parse from pathlib import Path import gradio as gr def _logo_data_uri() -> str: """logo.png を Base64 エンコードして data URI を返す。ファイルがなければ空文字。""" logo_path = Path(__file__).parent / "logo.png" if logo_path.exists(): data = base64.b64encode(logo_path.read_bytes()).decode() return f"data:image/png;base64,{data}" return "" LOGO_SRC = _logo_data_uri() # --- チャット(コメントアウト) --- # # Level Bridge Chat の Space URL(環境変数で上書き可能) # CHAT_SPACE_URL = os.environ.get( # "LEVEL_BRIDGE_CHAT_URL", # "https://dlpo-level-bridge-chat.hf.space", # ) # # チャットiframeに転送するパラメータ名一覧 # FORWARD_PARAMS = ["url", "industry", "campaign_name", "cvr", "ctr", "cpa"] # # # def build_chat_html(params: dict) -> str: # """URLパラメータをチャットiframe srcに付与してHTML生成""" # chat_params = {k: v for k, v in params.items() if k in FORWARD_PARAMS and v} # if chat_params: # src = CHAT_SPACE_URL + "?" + urllib.parse.urlencode(chat_params) # else: # src = CHAT_SPACE_URL # return f""" #
## Powered by Level Bridge Chat #
# """ def create_login_ui(handle_login_fn): """ Create Gradio login UI (チャットはコメントアウト済み). Args: handle_login_fn: Function to handle login (request, email, password) -> (form_update, status_update, token) First argument must be gr.Request for source detection. Returns: Gradio Blocks UI for login """ with gr.Blocks(title="Login") as ui: # --- 上段: ロゴ --- gr.HTML(f'