对于项目,我们考虑后决定采用以下架构:

  1. 前端: Vue3 + Vite + Element Plus。侧重桌面端展示,负责刷题、代码编辑器、可视化图表的渲染。

  2. 后端 Python FastAPI库。专门用于处理 AI 任务,如 LangChain 链路、大模型 HTTP 交互、OCR 图片解析以及 Python 代码的 AST 语法树分析。它具备异步处理能力,能高效应对大模型 API 调用的高并发与高延迟问题;契合 Python 丰富的 AI 生态库,为整个项目提供了极速、规范且高度契合 AI 场景的底层架构支撑。

APIkey的获取:项目初期使用了智谱大模型中的免费apikey,我们暂时通过智谱平台提供的免费模型进行项目相关功能的开发,具体获取流程如图。

一、 前端:Vue3 + Vite 

1. 初始化项目

Bash

npm create vite@latest yantu-buddy-frontend -- --template vue
cd frontend
npm install

3. 搭建基础路由骨架src/router/index.js 中:

JavaScript

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  { path: '/', component: () => import('../views/Home.vue') },       // 首页
  { path: '/qa', component: () => import('../views/QA.vue') },       // 智能问答区
  { path: '/practice', component: () => import('../views/Practice.vue') }, // 刷题区
  { path: '/code', component: () => import('../views/Code.vue') },     // 代码辅助区
]

export const router = createRouter({
  history: createWebHistory(),
  routes,
})

 二、后端搭建

由于我们要用 LangChain 做 RAG 知识库,还要处理 OCR,所以单独起一个 Python 服务。选用 FastAPI 是因为它自带异步特性,处理 AI API 调用的网络 I/O 延迟时性能更好,且自带 Swagger 文档。

1. 创建虚拟环境并安装依赖

Bash

python -m venv venv
source venv/bin/activate 
pip install fastapi uvicorn langchain requests

2. 后端架构如下所示

backend/
├─ api/          # 接口层
│  ├─ __init__.py
│  ├─ auth.py    # 权限认证接口
│  ├─ chat.py    # 聊天模块接口
│  ├─ login.py   # 登录/注册接口
│  ├─ practice.py# 练习模块接口
│  └─ user.py    # 用户信息接口
├─ app/          # 内核业务层
│  ├─ core/      # 全局配置
│  │  ├─ config.py   # 全局配置
│  │  ├─ deps.py     # 依赖注入
│  │  └─ security.py # 安全鉴权
│  ├─ crud/      # 业务逻辑层
│  │  ├─ crud_chat.py # 聊天业务逻辑
│  │  └─ crud_user.py # 用户业务逻辑
│  ├─ models/    # 数据模型
│  └─ schemas/   # 接口数据校验
└─ main.py       # 项目入口

 三、 上传项目

将项目上传至gitee,建立.env文件用于存储apikey,并将其保留在本地,防止apikey的泄露。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐