Initial commit: Air Agent Framework v2:全双工对话智能体(打断、插话、主动开口)

This commit is contained in:
WpyQwq
2026-09-19 12:09:51 +08:00
commit fa0cb5824d
26 changed files with 2362 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/env python3
import asyncio
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from config.settings import AppSettings
def run_cli():
from cli.chat_cli import ChatCLI
cli = ChatCLI(config)
asyncio.run(cli.run())
def run_gui():
from gui.chat_gui import run_gui as gui_main
gui_main(config)
def first_time_setup():
print("=" * 50)
print(" Air Agent — 首次运行配置")
print("=" * 50)
config.llm.api_key = input("OpenAI API Key: ").strip()
config.llm.base_url = input(f"Base URL [{config.llm.base_url}]: ").strip() or config.llm.base_url
config.llm.model = input(f"Model [{config.llm.model}]: ").strip() or config.llm.model
config.save()
print("配置已保存到 ~/.air_agent/config.json\n")
if __name__ == "__main__":
config = AppSettings.load()
if not config.llm.api_key:
first_time_setup()
mode = "gui"
if len(sys.argv) > 1:
mode = sys.argv[1]
if mode == "cli":
run_cli()
else:
try:
run_gui()
except ImportError as e:
print(f"GUI 模式需要 PyQt6 + qfluentwidgets: pip install PyQt6 qfluentwidgets")
print(f"导入错误: {e}")
print("切换到 CLI 模式...")
run_cli()