文件预览

main.py

查看 帝国架构 Empire Architecture 技能包中的文件内容。

文件内容

main.py

#!/usr/bin/env python3
"""帝国架构 v3.1 - 轻量版(边缘设备)
保留核心功能,去除重型依赖
"""
import asyncio
import json
import sys
import os
import time
import urllib.request

sys.path.insert(0, os.path.dirname(__file__))

# 最小化配置
API_KEY = os.environ.get("MIMO_API_KEY", "")
API_URL = os.environ.get("MIMO_API_ENDPOINT", "https://api.xiaomimimo.com/v1")

def call_llm(prompt: str, system: str = "") -> str:
    url = f"{API_URL.rstrip(\'\'\/\'\')}/chat/completions"
    messages = []
    if system:
        messages.append({"role": "system", "content": system})
    messages.append({"role": "user", "content": prompt})
    body = json.dumps({"model": "mimo-v2.5-pro", "messages": messages, "max_tokens": 2048}).encode()
    headers = {"Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}"}
    req = urllib.request.Request(url, data=body, headers=headers)
    with urllib.request.urlopen(req, timeout=60) as resp:
        data = json.loads(resp.read())
    return data["choices"][0]["message"]["content"]

async def main():
    print("🏛️ Empire Architecture v3.1 Lite (Edge)")
    print(f"模型: mimo-v2.5-pro | API: {API_URL}")
    print()

    while True:
        try:
            cmd = input("👑 > ").strip()
            if cmd in ("exit", "quit", "q"):
                break
            if not cmd:
                continue
            result = call_llm(cmd, "你是帝国架构的丞相,简洁高效地回答皇帝的指令。")
            print(f"\n📊 {result}\n")
        except (KeyboardInterrupt, EOFError):
            break

if __name__ == "__main__":
    asyncio.run(main())