import os

from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI


def main():
    model = ChatOpenAI(
        api_key=os.environ["QUICKROUTER_API_KEY"],
        base_url=os.getenv("QUICKROUTER_BASE_URL", "https://api.quickrouter.ai/v1"),
        model=os.getenv("QUICKROUTER_MODEL", "glm-5.3"),
        use_responses_api=False,
        stream_usage=False,
        timeout=60,
        max_retries=0,
        extra_body={"max_tokens": 1024},
    )
    prompt = ChatPromptTemplate.from_messages([
        ("system", "你是产品文案编辑。保持数字与型号原样，只翻译给定文本。"),
        ("human", "翻译成中文：{text}"),
    ])
    result = (prompt | model).invoke({"text": "Plan A includes 100 requests per day."})
    print("answer:", result.content)
    print("usage:", result.usage_metadata)
    print("finish_reason:", result.response_metadata.get("finish_reason"))
    if not isinstance(result.content, str) or not result.content.strip():
        raise RuntimeError("未收到文字答案；先检查模型、协议和通道。")
    if result.response_metadata.get("finish_reason") == "length":
        raise RuntimeError("输出被截断；先核对账单，再调整输出预算。")


if __name__ == "__main__":
    main()
