Skip to content

pastchais/TechSpar

 
 

Repository files navigation

TechSpar

FastAPI React LangChain Docker License

An AI interview coach that learns you — the more you practice, the better it knows your weaknesses.

Demo · 快速开始 · 部署说明 · English


Fork 说明(魔改版)

本仓库当前作为 TechSpar 的 fork / custom 变体 使用。

  • 原始上游项目:AnnaSuSu/TechSpar
  • 当前魔改主线:custom
  • 建议将 upstream-main 视为上游同步基线,将 custom 视为长期功能分支

详细的分支与同步说明见:FORK.md

核心功能

  • 持久记忆 - 基于 Mem0 架构的用户画像系统,每次训练后自动提取薄弱点、强项、思维模式,持续演进
  • 个性化出题 - 融合全局画像、领域掌握度、知识库检索三层上下文,每道题都有针对性
  • 智能评估 - 逐题评分 + 薄弱点提取 + 改进建议,确定性掌握度算法量化能力水平
  • 间隔重复 - SM-2 算法为每个薄弱点维护复习调度,到期知识点优先出题
  • 知识库管理 - 按领域维护核心知识文档和高频题库,支持 Markdown 编辑,RAG 检索提供出题依据
  • 简历模拟面试 - AI 读取简历,基于 LangGraph 状态机驱动完整面试流程(自我介绍 → 技术 → 项目深挖 → 反问)
  • 专项强化训练 - 选择领域集中刷题,AI 根据画像动态调整难度,精准定位薄弱点
  • 录音复盘 - 上传面试录音或粘贴文字,AI 自动转写分析,结构化 Q&A 逐题评分
  • 移动端适配 - 响应式布局,移动端自动切换为顶栏 + 汉堡菜单,随时随地刷题
  • 多用户隔离 - JWT 认证,数据按用户完全隔离,可配置是否开放注册

Demo

Try TechSpar online: https://stu.6bits.de/

Email Password
admin@techspar.local admin123

Overview

传统面试工具是无状态的——每次练习都从零开始。TechSpar 构建了持久化的候选人画像系统:每次训练后自动提取薄弱点、评估掌握度、记录思维模式。下一次出题时,AI 面试官基于画像精准命中短板。

Landing Page

Dashboard

Profile

Profile

Profile

Tech Stack

Component Technology
Backend FastAPI, LangChain, LangGraph, LlamaIndex
Frontend React 19, React Router v7, Vite, Tailwind CSS v4
Storage SQLite, bge-m3 embeddings
Auth JWT, bcrypt
LLM Any OpenAI-compatible API

快速开始

1. 环境配置

cp .env.example .env

编辑 .env

# LLM(支持任何 OpenAI 兼容接口)
API_BASE=https://your-llm-api-base/v1
API_KEY=sk-your-api-key
MODEL=your-model-name

# 嵌入模型(留空则使用本地 bge-m3)
EMBEDDING_API_BASE=
EMBEDDING_API_KEY=
EMBEDDING_MODEL=BAAI/bge-m3

# 阿里云 DashScope ASR(录音转写,录音复盘功能需要)
DASHSCOPE_API_KEY=

# 七牛云 OSS(录音上传到 OSS 后供 DashScope 转写)
QINIU_ACCESS_KEY=
QINIU_SECRET_KEY=
QINIU_BUCKET=
QINIU_DOMAIN=

# 认证
JWT_SECRET=change-me-in-production
DEFAULT_EMAIL=admin@techspar.local
DEFAULT_PASSWORD=admin123
DEFAULT_NAME=Admin
ALLOW_REGISTRATION=false

2a. Docker 部署(推荐)

优先使用仓库内的包装脚本,兼容 docker compose 插件缺失、以及部分 Debian 环境下 docker-compose 被 Python 包污染的问题:

./scripts/compose.sh -f docker-compose.prod.yml up --build

常用部署命令:

# 仅重建前端
./scripts/deploy.sh deploy frontend

# 仅重建后端
./scripts/deploy.sh deploy backend

# 整体重建
./scripts/deploy.sh deploy all

# 重启前端
./scripts/deploy.sh restart frontend

# 查看日志
./scripts/deploy.sh logs frontend

# 查看最近 200 行日志
./scripts/deploy.sh logs all 200

# 拉取最新代码并重建前端
./scripts/deploy.sh update frontend

# 查看状态
./scripts/deploy.sh status

# 仅拉取最新代码
./scripts/deploy.sh pull

访问 http://localhost

生产环境默认使用:

  • ./data 保存后端数据
  • ./.runtime/caddy_data 保存 Caddy 证书与状态
  • ./.runtime/caddy_config 保存 Caddy 配置状态

2b. 手动启动

# 后端
pip install -r requirements.txt
uvicorn backend.main:app --reload --port 8000

# 前端
cd frontend && npm install && npm run dev

访问 http://localhost:5173

3. 旧版迁移

从无认证旧版升级:

python -m backend.migrate

Project Structure

TechSpar/
├── backend/
│   ├── main.py                 # FastAPI, 40+ API routes
│   ├── auth.py                 # JWT auth, user management
│   ├── memory.py               # Profile engine (Mem0-style)
│   ├── vector_memory.py        # Vector memory (SQLite + bge-m3)
│   ├── indexer.py              # Knowledge indexing (LlamaIndex)
│   ├── spaced_repetition.py    # SM-2 scheduler
│   ├── migrate.py              # Database migration
│   ├── graphs/
│   │   ├── resume_interview.py # Resume interview (LangGraph)
│   │   └── topic_drill.py      # Topic drill & evaluation
│   ├── prompts/                # System prompts
│   └── storage/sessions.py     # Session persistence (SQLite)
├── frontend/src/
│   ├── App.jsx                 # Routing + auth guards
│   ├── contexts/AuthContext.jsx
│   ├── components/Sidebar.jsx
│   ├── pages/                  # Landing, Login, Home, Profile, etc.
│   └── api/interview.js        # API client (authFetch)
├── data/users/{user_id}/       # Per-user isolated data
│   ├── profile/profile.json
│   ├── resume/
│   ├── knowledge/
│   └── topics.json
├── docker-compose.yml
└── .env.example

License

MIT


If you find this project useful, please give it a star!

About

AI 驱动的八股文面试备战系统。支持长期记忆和人物画像,系统会记住你每次的表现,追踪薄弱点和掌握度,自动针对短板出题。支持简历模拟面试和专项强化训练,练得越多,题目越精准,一个越来越了解你的 AI 面试教练。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 51.9%
  • Python 46.5%
  • Other 1.6%