Skip to main content

AI-powered engineer capability evaluator (FastAPI backend + optional dashboard)

Project description

工程师能力评估系统(Engineer Capability Assessment System)

English README | 中文 README

基于 GitHub / Gitee 的 commit、diff、仓库结构与协作信号,对工程师贡献者进行**六维能力评估(0-100)**的工具链,包含 FastAPI 后端与可选的前端 Dashboard。

概览

  • 后端evaluator/(FastAPI + 数据抽取 + LLM 评估 + 缓存)
  • 前端(可选)webapp/(Next.js Dashboard)
  • CLIoscanner(统一命令行入口)
  • 依赖管理:推荐使用 uvpyproject.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

默认地址:

  • APIhttp://localhost:8000
  • API Docshttp://localhost:8000/docs

4) 启动 Dashboard(可选)

Dashboard 是独立的前端工程,不作为 pip 安装强依赖:

# 仅启动前端(会在需要时自动提示/安装依赖)
uv run oscanner dashboard --install

# 一键启动:后端 + 前端(开发模式)
uv run oscanner dev --reload --install

默认地址:

  • Dashboardhttp://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

oscanner_skill_evaluator-0.1.4.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oscanner_skill_evaluator-0.1.4-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

Details for the file oscanner_skill_evaluator-0.1.4.tar.gz.

File metadata

  • Download URL: oscanner_skill_evaluator-0.1.4.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

Hashes for oscanner_skill_evaluator-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c37a80da136768997ab134f448536e08e3ebfde1a1f381be5387a356f2276f29
MD5 5bd6cbcc3f7d4588aaf0a5e49c29df22
BLAKE2b-256 062efefbd80fcdf785455545f2de77bcecd3a8f450fd71a8d9433628f20a333d

See more details on using hashes here.

File details

Details for the file oscanner_skill_evaluator-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: oscanner_skill_evaluator-0.1.4-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

Hashes for oscanner_skill_evaluator-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 79f4cd14fa46b71e045c30d303cdc4789b48a6e95d88e329e8ce7eda3a131d09
MD5 7c7298d655786b146fa5f8ad5b59594f
BLAKE2b-256 7139dd1a96689350f2292adbe6f75e6266e959a932aa83bf9ed37360c55812aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page