TechCoach:AI 面试教练技术全景报告

基于真实代码库的深度技术剖析

项目概述

TechCoach 是一个面向求职者的、以大语言模型(LLM)为核心的个人技术面试教练平台。它通过分析用户上传的简历、项目经历和目标岗位描述,利用先进的 AI 技术生成高度定制化的模拟面试问题,帮助用户高效准备技术面试。

核心目标: 将用户的个人背景材料转化为高质量的模拟面试体验,赋能个人求职者。

项目采用现代化的前后端分离架构,通过 Docker 容器化技术进行封装和部署,体现了微服务的设计思想。其核心创新在于将复杂的 AI 任务(如 RAG 检索和面试问题生成)分解为多个协同工作的智能体(Agent),从而提供精准、个性化的服务。

系统架构

整体架构

TechCoach 项目采用前后端分离的现代化 Web 应用架构,并通过 Docker 容器化技术进行封装和部署。整个系统由多个协同工作的服务组成,通过 docker-compose.yml 进行编排。

graph TD subgraph "User" U[Browser] end subgraph "Docker Compose Stack" F[Frontend
Vue.js SPA] A[Backend API
FastAPI] C[Vector DB
ChromaDB] end subgraph "External Services" LLM[LLM Provider
OpenAI/Gemini/etc.] end U -->|HTTPS| F F -->|REST API| A A -->|Vector Search| C A -->|LLM Calls| LLM style U fill:#f9f,stroke:#333,stroke-width:2px style F fill:#bbf,stroke:#333,stroke-width:2px style A fill:#9f9,stroke:#333,stroke-width:2px style C fill:#ff9,stroke:#333,stroke-width:2px style LLM fill:#f96,stroke:#333,stroke-width:2px

核心模块

后端核心模块 (app/)

  • gateway: API 网关,基于 FastAPI,负责请求分发和中间件处理。
  • agentic_core: AI 能力核心,实现 RAG、CrewAI 工作流和 LLM 路由。
  • question_service: 封装面试问题生成与管理的业务逻辑。
  • shared_kernel: 共享组件,如数据库模型、异常定义等。

前端核心模块 (frontend/)

  • views: 主要页面,如 Dashboard、Interview、Documents。
  • router: Vue Router 管理前端路由。
  • services: 封装与后端 API 的通信逻辑。
  • stores: Pinia 进行全局状态管理。

技术栈

层级 技术 说明
后端 Python, FastAPI, Uvicorn 高性能异步 API 服务
AI 框架 CrewAI, LangChain 智能体编排与 LLM 交互
数据库 PostgreSQL, ChromaDB 关系型数据与向量存储
前端 Vue.js 3, Vite, Pinia 现代化单页应用
部署 Docker, Docker Compose 容器化微服务部署

AI 核心模块详解

Agentic Core

Agentic Core 是 TechCoach 项目最关键的智能中枢,它采用了智能体 (Agent) 和工作流 (Crew) 的模式,将复杂的 AI 任务分解为多个步骤,由不同的 Agent 协同完成。

设计哲学: 通过模块化和分工,将复杂的 LLM 交互(如面试问题生成)转化为可管理、可扩展的智能体工作流。

核心组件

RAG 系统

检索增强生成 (RAG) 是 TechCoach 实现个性化面试问题的核心技术。它允许系统从用户上传的文档中检索相关信息,并将其作为上下文提供给 LLM,从而生成更精准的问题。

sequenceDiagram participant U as User participant B as Backend API participant DP as Document Processor participant DS as Document Store (ChromaDB) participant AG as Agent Crew participant LLM as LLM Provider U->>B: Upload Resume & JD B->>DP: Process Documents DP->>DS: Store as Vectors U->>B: Request Interview Questions B->>AG: Trigger Crew AG->>DS: Vector Search (Query) DS-->>AG: Relevant Context AG->>LLM: Generate Questions with Context LLM-->>AG: Generated Questions AG-->>B: Final Question List B-->>U: Display Questions

CrewAI 工作流

CrewAI 框架用于定义和管理 AI 智能体工作流。一个典型的面试问题生成任务可能涉及以下 Agent:

  1. 简历分析师 (Resume Analyst): 分析用户简历,提取关键技能和经验。
  2. 岗位匹配师 (Job Matcher): 将简历与目标岗位描述进行匹配,识别差距。
  3. 问题生成器 (Question Generator): 基于分析结果和匹配差距,生成具体的技术面试问题。
# 伪代码示例:定义一个 Crew
from crewai import Crew, Agent, Task

resume_analyst = Agent(
    role='Resume Analyst',
    goal='Extract key skills and experiences from the provided resume',
    tools=[VectorSearchTool()]
)

job_matcher = Agent(
    role='Job Matcher',
    goal='Identify gaps between resume and job description',
    tools=[VectorSearchTool()]
)

question_generator = Agent(
    role='Question Generator',
    goal='Create tailored technical interview questions