Overview
An agent-based OKR scoring and training system that supports uploading OKR files, automatic data cleaning, intelligent scoring, and result export. The system helps organizations standardize OKR evaluation and provide actionable feedback.
Features
- File Upload: Support for docx / xlsx / xls formats
- Data Cleaning: Parse O/K structure, unify formats
- Auto Scoring: LLM-based scoring (DashScope/DeepSeek) or Coze API
- Export: Excel / CSV / Scored documents (docx)
- Real-time Logs: Streaming analysis process
- Role-specific Standards: Customizable scoring criteria per position
Architecture
app/
main.py # Streamlit entry (deprecated)
services/
okr_ingestion.py # File reading & normalization
okr_cleaning.py # O/K parsing & cleaning
okr_scoring.py # Scoring backend selection
okr_export.py # Excel/document export
api/
main.py # FastAPI backend (streaming)
frontend/
src/ # Vue + Vite frontend
Scoring System
130-point system with difficulty multiplier up to 10x (max 300+ points):
| Part | Weight | Type | Max |
|---|---|---|---|
| O (Objective) | 30% | Additive | 30 pts |
| K (Key Actions) | 40% | Deductive | 40 pts |
| R1 (Results) | 30% | Additive | 30 pts |
| R2 (Review) | 30% | Additive | 30 pts |
Formula: min(O,30) + min(R1,30) + min(R2,30) + max(0, 40-min(K,40))
Tech Stack
| Layer | Technology |
|---|---|
| Backend | FastAPI, requests, sqlite3 |
| Frontend | Vue 3, Vite |
| Scoring | LLM (DeepSeek via DashScope) / Coze |
| Document Processing | python-docx, openpyxl |
Status
Production-ready, under active development with continuous improvements.