返回博客列表

OKR 教练系统:智能打分与培训平台

一个基于智能体的 OKR 打分与培训系统,支持文件上传、自动清洗、智能打分并导出结果。

#AI#Full-Stack#FastAPI#Vue#DeepSeek

项目概述

本系统是一个基于 AI 智能体的 OKR 打分与培训平台,支持上传 OKR 文件、自动清洗、智能打分并导出结果。帮助企业标准化 OKR 评估并提供可操作的反馈。

技术架构

层级技术
后端FastAPI, Uvicorn, SQLite
前端Vue 3, Vite
评分LLM(DeepSeek via DashScope)/ Coze API
文档处理python-docx, openpyxl

核心功能

文件处理

  • 支持格式:docx / xlsx / xls
  • 自动清洗:解析 O(目标)和 K(关键结果)结构,统一格式
  • 批量处理:使用 ThreadPoolExecutor 并发分析多份简历

智能打分

系统采用 130 分制,难度系数最高 10 倍:

部分占比制度上限
O(目标)30%加分制30 分
K(关键动作)40%扣分制40 分
R1(结果)30%加分制30 分
R2(复盘)30%加分制30 分

计算公式min(O,30) + min(R1,30) + min(R2,30) + max(0, 40-min(K,40))

岗位定制

支持不同岗位的评分标准,通过配置文件自定义各维度的权重和评分细则。

项目结构

app/
  main.py                 # Streamlit 入口(已废弃)
  services/
    okr_ingestion.py      # 文件读取与记录归一化
    okr_cleaning.py       # O/K 解析与清洗
    okr_scoring.py        # 打分后端选择
    okr_export.py         # Excel/文档导出
api/
  main.py                 # FastAPI 后端(流式接口)
frontend/
  src/                    # Vue + Vite 前端

API 设计

流式评分接口

@app.post("/api/analyze/stream")
async def analyze_stream(file: UploadFile):
    async def generate():
        async for progress in okr_analyzer.analyze_stream(file):
            yield f"data: {json.dumps(progress)}\n\n"
    return StreamingResponse(generate(), media_type="text/event-stream")

导出接口

@app.post("/api/export")
async def export_results(results: List[AnalysisResult], format: str):
    # 支持 Excel、CSV、DOCX 格式导出
    return export_file(results, format)

使用方法

# 安装依赖
pip install -r requirements.txt
 
# 启动后端
cd api && uvicorn main:app --reload
 
# 启动前端
cd frontend && npm run dev

当前状态

生产可用,持续迭代优化中。


相关链接


最后更新: 2026-04-01