import json
import subprocess
import sys
from json_openai import llm_format_text, EXTRACT_OUNTLINE_SYSTEM_PROMPT

def run_typescript_converter(markdown_content):
    """运行TypeScript的markdownToJSON函数"""
    try:
        # 创建临时文件存储markdown内容
        with open('temp_markdown.md', 'w', encoding='utf-8') as f:
            f.write(markdown_content)
        
        # 运行TypeScript转换器
        result = subprocess.run([
            'node', 'dist/test_markdown.js'
        ], capture_output=True, text=True, input=markdown_content)
        
        if result.returncode == 0:
            return result.stdout
        else:
            print(f"TypeScript转换错误: {result.stderr}")
            return None
    except Exception as e:
        print(f"运行TypeScript转换器时出错: {e}")
        return None

def main():
    # 测试配置
    model = "glm-4.5"
    base_url = "https://open.bigmodel.cn/api/paas/v4/"
    api_key = "ce39bdd4fcf34ec0aec75072bc9ff988.hAp7HZTVUwy7vImn"

    # 测试内容
    test_content = """
    人工智能的发展历程

    早期发展
    人工智能的概念最早可以追溯到1950年代。图灵测试的提出标志着AI研究的开始。

    图灵测试
    图灵测试是判断机器是否具有智能的重要标准。

    现代发展
    近年来，深度学习技术的突破推动了AI的快速发展。

    深度学习
    深度学习通过神经网络模拟人脑的工作方式。
    """

    # 构建消息
    messages = [
        {"role": "system", "content": EXTRACT_OUNTLINE_SYSTEM_PROMPT},
        {"role": "user", "content": f"请分析以下文章内容并转换为Markdown格式：\n\n{test_content}"}
    ]

    print("=== 第一步：AI处理生成Markdown ===")
    try:
        markdown_result = llm_format_text(model, base_url, api_key, messages, 2000)
        print("AI生成的Markdown:")
        print(markdown_result)
        print("\n" + "="*50 + "\n")
        
        print("=== 第二步：Markdown转换为JSON ===")
        json_result = run_typescript_converter(markdown_result)
        if json_result:
            print("转换后的JSON结构:")
            print(json_result)
        else:
            print("转换失败")
            
    except Exception as e:
        print(f"处理失败: {e}")
        print("可能的原因:")
        print("1. API密钥无效或过期")
        print("2. 网络连接问题")
        print("3. API服务不可用")
        print("4. 模型名称不正确")

if __name__ == "__main__":
    main()
