mirror of
https://github.com/countbot-ai/CountBot.git
synced 2026-09-14 20:46:47 +08:00
e3fd9ace50
主要修复: 1. 统一路径管理 (backend/utils/paths.py) - 新增统一路径管理模块 - 编译版使用 sys.executable 定位 _internal 目录 - 开发版使用项目根目录 - 跨平台兼容 (Windows/macOS/Linux) - 修改 10 个后端文件使用统一路径 2. Unicode 编码错误修复 - 启动脚本设置 PYTHONIOENCODING=utf-8 - logger.py 包装 sys.stderr 为 UTF-8 - 使用 errors='replace' 避免崩溃 3. 循环导入修复 - 移除 backend/modules/agent/skills.py 自引用 4. macOS tkinter 线程错误 - start_desktop.py 检测主线程,非主线程只打印 5. 注释优化 - 移除冗长说明,保留核心信息 功能优化: 6. 批量文件读取 (backend/modules/tools/filesystem.py) - read_file 工具支持 paths 参数批量读取 - 示例: read_file(paths=['a.py', 'b.py', 'c.md']) - 减少工具调用次数,提升效率 - 上下文构建器提示使用批量读取 7. GitHub 工作流优化 (.github/workflows/build-desktop.yml) - 添加 backend.utils.paths 和 logger 隐藏导入 - 添加 backend.models.personality 隐藏导入 - 排除无用模块: playwright, pandas, numpy, PyQt, tkinter, torch 等 - 优化 collect-data 顺序 8. 文档更新 - requirements.txt: 依赖更新 修改文件统计: - 新增: 1 个文件 (backend/utils/paths.py) - 后端: 10 个文件 (路径管理相关) - 工具: 2 个文件 (filesystem.py, context.py) - 启动: 3 个脚本 (Windows编码问题) - 工作流: 1 个文件 (build-desktop.yml) - 文档: 1 个文件 ( requirements.txt) 测试: macOS 开发环境通过
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
CountBot 应用启动脚本
|
|
开发模式启动,支持热重载
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Windows 平台强制 UTF-8 编码,避免 GBK 编码错误
|
|
if sys.platform == "win32":
|
|
# Python 3.7+ 支持
|
|
os.environ["PYTHONIOENCODING"] = "utf-8"
|
|
# 设置控制台代码页为 UTF-8
|
|
try:
|
|
import ctypes
|
|
kernel32 = ctypes.windll.kernel32
|
|
kernel32.SetConsoleCP(65001)
|
|
kernel32.SetConsoleOutputCP(65001)
|
|
except Exception:
|
|
pass
|
|
|
|
# 添加项目根目录到 Python 路径
|
|
project_root = Path(__file__).parent
|
|
sys.path.insert(0, str(project_root))
|
|
|
|
|
|
def main():
|
|
"""启动应用(开发模式)"""
|
|
import uvicorn
|
|
from loguru import logger
|
|
|
|
# 配置
|
|
host = os.getenv("HOST", "127.0.0.1")
|
|
port = int(os.getenv("PORT", "8000"))
|
|
|
|
logger.info("=" * 60)
|
|
logger.info("CountBot 开发模式启动中...")
|
|
logger.info(f"访问地址: http://localhost:{port}")
|
|
logger.info("热重载已启用")
|
|
logger.info("=" * 60)
|
|
|
|
# 不自动打开浏览器,用户可以手动访问
|
|
|
|
# 启动服务器(开发模式)
|
|
uvicorn.run(
|
|
"backend.app:app",
|
|
host=host,
|
|
port=port,
|
|
reload=True, # 开发模式启用热重载
|
|
reload_dirs=["backend"], # 监控 backend 目录
|
|
log_level="debug"
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|