AI-powered engineer capability evaluator (FastAPI backend + optional dashboard)
Project description
工程师能力评估系统(Engineer Capability Assessment System)
基于 GitHub / Gitee 的 commit、diff、仓库结构与协作信号,对工程师贡献者进行**六维能力评估(0-100)**的工具链,包含 FastAPI 后端与可选的前端 Dashboard。
概览
- 后端:
evaluator/(FastAPI + 数据抽取 + LLM 评估 + 缓存) - 前端(可选):
webapp/(Next.js Dashboard) - CLI:
oscanner(统一命令行入口) - 依赖管理:推荐使用
uv(pyproject.toml+uv.lock)
快速开始
TODO: 增加 uv 和 npm 的安装说明
1) 安装依赖(推荐 uv)
本仓库使用 pyproject.toml:
# 首次使用(仓库没有提交 uv.lock 时)需要先生成 lock
uv lock
# 然后再同步依赖(创建/更新 .venv)
uv sync
# 如果你只是想快速跑起来、且不想生成/使用 lock:
# uv sync --no-lock
2) 配置环境变量
推荐直接用 CLI 交互式初始化(会生成/更新 .env.local;如已存在会提示你选择复用/合并/覆盖):
uv run oscanner init
如果你需要无交互/CI 场景,可以用 --non-interactive 配合参数写入(示例):
uv run oscanner init \
--provider openai \
--base-url https://api.siliconflow.cn/v1 \
--api-key sk-your-key-here \
--model Pro/zai-org/GLM-4.7 \
--action overwrite \
--non-interactive
说明:OpenAI-compatible 会默认请求
.../chat/completions;如服务商路径不标准,可在oscanner init里设置--chat-completions-url(或对应环境变量)。
3) 启动后端 API
开发模式(自动 reload):
uv run oscanner serve --reload
默认地址:
- API:
http://localhost:8000 - API Docs:
http://localhost:8000/docs
4) 启动 Dashboard(可选)
Dashboard 是独立的前端工程,不作为 pip 安装强依赖:
# 仅启动前端(会在需要时自动提示/安装依赖)
uv run oscanner dashboard --install
# 一键启动:后端 + 前端(开发模式)
uv run oscanner dev --reload --install
默认地址:
- Dashboard:
http://localhost:3000
如果你是通过 PyPI 安装运行(本地没有 webapp/ 目录),可以用:
oscanner dashboard --print
查看启动指引(需要 clone 仓库才能运行前端)。
CLI 使用
启动服务
uv run oscanner serve --reload
启动前端 Dashboard
uv run oscanner dashboard --install
一键启动后端 + 前端
uv run oscanner dev --reload --install
抽取仓库数据(moderate:diff + file context)
uv run oscanner extract https://github.com/<owner>/<repo> --out /path/to/output --max-commits 500
说明:后端在需要时也会自动触发抽取(见 API 的
/api/authors/{owner}/{repo})。
数据/缓存落盘位置(默认策略)
为了保证 pip 安装后在任意目录运行都不会把数据写到当前工作目录,本仓库已改为默认写入用户目录,并支持环境变量覆盖:
- OSCANNER_HOME:统一根目录(最高优先级)
- OSCANNER_DATA_DIR:抽取数据目录
- OSCANNER_CACHE_DIR:请求/中间缓存目录
- OSCANNER_EVAL_CACHE_DIR:评估缓存目录
默认值(未设置 env 时):
- data:
~/.local/share/oscanner/data(或XDG_DATA_HOME/oscanner/data) - cache:
~/.cache/oscanner/cache(或XDG_CACHE_HOME/oscanner/cache) - evaluations:
~/.local/share/oscanner/evaluations/cache
项目结构(简版)
.
├── pyproject.toml # uv/packaging 元信息
├── evaluator/ # 后端实现
├── oscanner/ # CLI(oscanner)
└── webapp/ # 可选 Dashboard(Next.js)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oscanner_skill_evaluator-0.1.2.tar.gz.
File metadata
- Download URL: oscanner_skill_evaluator-0.1.2.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb78508b40e9a6485479f74b842dfb90d6f2d09283de6d1a3b0edb131abf6403
|
|
| MD5 |
3689930580a52e9230aabab996b587a3
|
|
| BLAKE2b-256 |
19dfe73896f074c5219e4b6a31fc38cfa184699f07ed57435193596d9a16b089
|
File details
Details for the file oscanner_skill_evaluator-0.1.2-py3-none-any.whl.
File metadata
- Download URL: oscanner_skill_evaluator-0.1.2-py3-none-any.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
100f1257282655243926fe5c6b67f07acac4847476e506ecfe27b8adbb16bdc3
|
|
| MD5 |
733c7a037e62a22b5d0005a6481ccc45
|
|
| BLAKE2b-256 |
f341b241eccbb823d042b8a59c9987d32c43cde2738d8108e36b8babd3aad905
|