import os
import sys
from dotenv import load_dotenv


def read_ai_config(config_path="ai.env"):
    """
    1. スクリプト.ini（ai.env）を読み込む
    2. そこから account_inf_path を取得
    3. account.env を読み込んで環境変数に反映
    """
    # 1. ai.env を読み込む
    if os.path.isfile(config_path):
        load_dotenv(config_path)
    else:
        print(f"Warning: {config_path} not found")

    # 2. account.env のパスを取得
    account_path = os.getenv("account_inf_path", "accounts.env")

    # 3. account.env を読み込む
    if os.path.isfile(account_path):
        load_dotenv(account_path)
    else:
        print(f"Warning: {account_path} not found")


# =========================================================
# OpenAI Chat Completions 互換
# =========================================================
def query_openai4(prompt, openai_model="gpt-4o-mini", role=None):
    messages = []
    if role:
        messages.append({"role": "system", "content": role})
    messages.append({"role": "user", "content": prompt})

    res = completion(
        model=f"openai/{openai_model}",
        messages=messages
    )
    return res


# =========================================================
# OpenAI Responses API 互換（GPT-5 系）
# =========================================================
def query_openai5(prompt, openai_model="gpt-4o-mini", instructions=None):
    messages = []
    if instructions:
        messages.append({"role": "system", "content": instructions})
    messages.append({"role": "user", "content": prompt})

    res = completion(
        model=f"openai/{openai_model}",
        messages=messages
    )
    return res


# =========================================================
# Gemini 互換
# =========================================================
def query_google(prompt, google_model="gemini-2.0-flash", role=None):
    messages = []
    if role:
        messages.append({"role": "system", "content": role})
    messages.append({"role": "user", "content": prompt})

    res = completion(
        model=f"gemini/{google_model}",
        messages=messages
    )
    return res


# =========================================================
# GPT-5 互換のテキスト抽出
# =========================================================
def extract_openai5_text(response):
    try:
        return response.choices[0].message["content"]
    except:
        return None
