Skip to content

Latest commit

 

History

History
49 lines (31 loc) · 4.51 KB

open-source-status.md

File metadata and controls

49 lines (31 loc) · 4.51 KB

开源示例运行检查

检查日期:2026-10-06。冲突解决后以当前 main 的运行代码为基准复核,不接入生产数据库、不调用收费模型、不注册账号,不修改 Python、JavaScript、CSS、HTML、依赖或部署配置。

结论

可以运行一个历史数据命令行闭环,但不是可直接部署的完整网站。

15 个 Python 源文件语法解析通过。当前机器已经安装相关依赖;这不意味着仅安装 requirements.txt 的干净环境也能运行全部脚本。

实际执行 python -B scripts/parlay_predictor.py --matches matches.json,退出码 0,读取英超、西甲、意甲、德甲四份历史特征文件,输出四场示例的单场概率和组合结果。仓库缺少 data/features_FL12024.csv,因此本路径没有加载法甲 CSV。运行成功不等于数据新鲜、概率经过校准或模型有效;旧版泊松截断后部分概率总和小于 1,需要在另一次明确授权的代码修复中处理。

Web 冒烟检查

使用 Flask test_client() 在进程内检查,无监听端口。数据库连接和 HTTP 调用均由测试拦截,不能发送真实外部请求。

  • / 返回 200:旧页面可渲染。
  • /api/teams 返回 200:返回五个联赛的简化球队列表。
  • /api/lottery/matches 返回 404:离线测试拦截了数据库连接,代码按暂无数据处理;这不代表线上数据库没有比赛。
  • PostgreSQL 数据库对象可构建,但真实连通性和数据结构未验收;AI 服务和赛程服务未加载。

没有把登录、支付、AI 请求或生产写入作为测试步骤。

已核实的阻塞项

  1. 数据库部署不完整:当前主分支使用 PostgreSQL,需要维护者自己的连接配置与已初始化数据结构;docs/legacy/backup.sql 为空,不能作为数据库安装脚本。没有用源码中的默认连接配置去尝试真实数据库连接。
  2. 导入路径不匹配:app.py 从根目录导入 lottery_api 和 ai_predictor,实际文件位于 scripts/。正常从仓库根目录运行时相关服务不会加载。
  3. 数据处理链不完整:多个脚本导入 config,仓库没有 config.py;scripts/config_example.py 仅是示例。scripts/match.py 读取的 data/features.csv 也不存在。
  4. 依赖不完整:requirements.txt 没有声明多个脚本使用的 pandas、NumPy、SciPy、scikit-learn。本地示例的额外依赖在首页命令中单独列出,依赖文件未被修改。
  5. 旧部署说明有误:app.py 直接启动使用 8000 端口,不是旧 README 中的 5000;直接执行会启用 debug 并监听 0.0.0.0,不推荐在公网运行。

不适合直接上线的安全边界

  • 主分支历史代码包含硬编码的默认数据库连接配置,应由维护者移到环境变量并核对、轮换可能曾公开的凭证。这里不复述任何值,也不将其复制到文档或配置示例。本次按“仅文档”范围保留主分支代码,不能因此宣称其安全。
  • 旧模板将服务端 GEMINI_API_KEY 写入 window.GEMINI_API_KEY。即使是自己的密钥,也不应在这个旧示例中填入真实生产密钥。
  • 默认会话密钥是占位值;登录密码采用直接 SHA-256,缺少现代密码哈希保护。
  • CORS 会反射任意 Origin,并允许凭证;同时保留会话调试接口。
  • Cookie 默认强制 Secure / SameSite=None,HTTP 本地登录需要额外核对。
  • 没有执行完整安全审计,也没有保证旧前端算法的概率正确性。仅通过语法检查或 HTTP 200 不能视为生产可用。

本次未做的改动

没有复制线上私有核心组件,没有修复上述代码,没有修改 requirements.txt、vercel.json、next.config.js,没有安装依赖到项目目录,没有接入生产环境。文档和冲突整合通过公开仓库 PR 提交,不部署服务。

分支差异

最初文档整理时检查的是 ok 的 Supabase REST 实现,它缺少 self.key、self.url 初始化,导致数据库模块导入失败。解决 PR 冲突时没有把这个旧实现切换到 main,而是保留 main 的现有运行文件,因此最初的“数据库对象未加载 / 500”检查结果不再作为合并版本的现状描述。

如后续需要“最小可部署 Web 版”,应另行授权一次小范围修复:修正数据库配置与导入、补齐依赖和结构、移除浏览器密钥暴露、增加安全的演示模式,再验收完整用户路径。这不是本次文档更新已经完成的内容。