一、引言与个人职责

由于初始项目的定位较为简单,经过小组成员的商讨后,我们对项目的功能进行了细化和创新,从而推出更具智能且个性化的考研助手。通过了协商任务后,小组讨论确认了项目初始的架构以及进一步的分工。其中我负责AI后端模块的开发,主要目标为构建智能错题分析、个性化推荐及RAG问答服务,并集成大模型API,为平台提供智能化核心能力。

二、系统架构设计

系统架构的设计上,我们采用了客户端层-服务端层-数据层的三层架构:

┌─────────────────────────────────────────────────────────────┐
│                        客户端层                              │
├──────────────────────┬──────────────────────────────────────┤
│  Web浏览器           │  移动设备                             │
│  (管理后台)          │  (移动App - HBuilder打包)            │
│  Vue3 + TypeScript   │  Vue3 + TypeScript + UniApp          │
│  Element Plus        │  Vant UI组件库                        │
│  Pinia状态管理       │                                      │
└──────────────────────┴──────────────────────────────────────┘
                          │ HTTPS/WSS
┌─────────────────────────▼──────────────────────────────────┐
│                        服务端层                             │
├──────────────────────┬──────────────────────────────────────┤
│  AI后端服务器        │  业务后端服务器                       │
│  Python AI服务       │  Spring Boot应用 (Java 21)           │
│  (FastAPI/Flask)     │  - Tomcat嵌入式容器                   │
│  - RabbitMQ消费者    │  - Mapper层 (MyBatis-Plus)           │
│  - LangChain框架     │  - RabbitMQ客户端                     │
│  - AI模型接口        │  - Service层 (业务逻辑)               │
│  - 向量数据库        │  - WebSocket服务                      │
│                      │  - Controller层 (REST API)            │
└──────────────────────┴──────────────────────────────────────┘
                          │
┌─────────────────────────▼──────────────────────────────────┐
│                        数据层                               │
├──────────────┬──────────────┬──────────────┬───────────────┤
│ MySQL数据库  │ Redis缓存    │ 阿里云OSS    │ RabbitMQ      │
│ - 各种数据   │ - 会话缓存   │ - 图片/PDF   │ - 传递数据    │
│              │ - 消息缓存   │              │               │
│              │ - 热点数据   │              │               │
└──────────────┴──────────────┴──────────────┴───────────────┘

采用Spring Boot (业务层) + RabbitMQ (异步总线) + FastAPI/LangChain (AI层)的异构微服务架构,兼顾业务稳定性与AI技术敏捷性。

三、接口契约设计:Spec驱动与RabbitMQ消息规范

3.1 核心功能模块划分

项目包含六大核心功能模块

  1. 智能错题本系统
    • 自主组卷练习 ↔ 每日智能推题
    • 管理错题 ↔ AI分析与识别
    • 生成查看知识图谱 ↔ 图片上传(OCR识别)
    • 自定义错题标签、管理错题本
  2. 智能院校推荐
    • 查看院校详情 ↔ 查看专业排名
    • 查看分数线、查看报录比数据
    • 获取个性化推荐 ↔ 院校信息检索
  3. 考研学习社区
    • 查看个人历史、浏览信息流
    • 发布帖子(含设置标签)↔ 富文本编辑
    • 删除帖子、点赞帖子、评论帖子、收藏帖子
  4. 即时聊天与社交
    • 好友管理、分享院校信息
    • 实时消息通知 ↔ 一对一好友聊天
    • 分享错题难题
  5. 个性化AI助手
    • 学习规划建议、智能问答
    • 智能对话 ↔ RAG知识检索
    • 操作提示
  6. 管理员端功能
    • 用户管理、帖子审核(AI智能审核 + 人工审核)
    • 数据统计与可视化、AI大模型工具集成

3.2RabbitMQ Topic规划与消息体设计

Exchange Queue Routing Key 用途 消息体关键字段
ai.task.exchange ai.task.error-analysis task.error.analysis 下发错题分析任务 task_id, user_id, question_text, user_answer, correct_answer
ai.result.exchange ai.result.analysis result.analysis 回传分析结果 task_id, weak_points[], knowledge_tags[], analysis, recommended_ids[]
ai.task.exchange ai.task.rag-query task.rag.query RAG增强问答检索 query, user_id, history[], top_k
ai.task.exchange ai.task.knowledge-graph task.knowledge.graph 知识图谱生成 user_id, error_topics[]

3.3 幂等性与可靠性保障

  • 去重机制:Python消费者根据task_id查询Redis缓存,若已处理则直接ACK,避免大模型重复计费。
  • 死信队列(DLQ):解析失败或LLM连续超时3次的消息路由至ai.task.dlq,供运维人工介入。
  • RabbitMQ配置publisher confirms + mandatory flag确保消息不丢失;manual ack配合业务逻辑保障至少一次消费。

四、知识图谱生成策略

对知识图谱的可视化进行了初步思索:

# 知识图谱生成伪代码
async def generate_knowledge_graph(user_id: int) -> dict:
    # 1. 查询用户错题
    error_topics = await get_user_error_topics(user_id)
    
    # 2. 提取知识点标签
    knowledge_points = await extract_knowledge_points(error_topics)
    
    # 3. 构建图谱节点与边
    nodes = []
    edges = []
    for point in knowledge_points:
        nodes.append({
            "id": point.id,
            "label": point.name,
            "mastery": calculate_mastery(user_id, point.id),
            "category": point.category
        })
        # 添加知识点间的关联边
        for relation in point.relations:
            edges.append({
                "source": point.id,
                "target": relation.target_id,
                "type": relation.type
            })
    
    return {"nodes": nodes, "edges": edges}

五、总结

本周以准备工作为主,目前主要完成了:

  • 微服务架构设计文档与技术选型讨论
  • 搭建Python 3.10 + FastAPI + LangChain的开发环境,解决依赖冲突
  • 协助配置RabbitMQ容器化部署与网络规则
  • 定义RabbitMQ Topic规划与消息体JSON Schema,完成Pydantic/DTO契约对齐
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐