目录

一、项目背景与需求分析

二、技术选型

三、项目环境搭建

四、核心代码实现

        1. 配置管理(config.py)

        2. Flask核心逻辑(app.py)

五、接口说明与测试

六、前端简单调用示例(可选)

七、总结与展望


一、项目背景与需求分析

我们项目旨在利用AI技术辅助传统教学,减轻教师繁重的工作量,让教师更专注于思想道德的引领以及教学节奏的掌控,而知识传授、答疑解惑、教学素材生成等任务,则由AI辅助完成。

本篇博客重点介绍其中一项关键功能:

「学习计划制定」:基于用户输入的学习目标、学习周期和学习难度,调用DeepSeek API实现个性化的学习任务推荐,自动为用户生成具体而细致的学习计划。


二、技术选型

本项目Web端选用Flask框架,主要基于以下考量:

  • Flask为轻量级框架,快速搭建RESTful API接口;

  • 与AI模型快速集成,适合微服务架构;

  • 可扩展性高,便于后期复杂功能的扩展。

AI能力由DeepSeek API提供,具备强大的知识整合、任务拆解和内容生成能力。


三、项目环境搭建

首先创建一个新项目文件夹,并初始化虚拟环境:

mkdir flask_learning_plan
cd flask_learning_plan
python -m venv venv
source venv/bin/activate  # Windows为 venv\Scripts\activate
pip install flask requests python-dotenv flask-cors

目录结构如下:

flask_learning_plan
├── app.py
├── config.py
├── .env
└── requirements.txt

四、核心代码实现

1. 配置管理(config.py)

管理配置文件,加载API密钥等敏感信息:

import os
from dotenv import load_dotenv

load_dotenv()

class Config:
    DEEPSEEK_API_KEY = os.getenv('DEEPSEEK_API_KEY')
    DEEPSEEK_API_URL = "https://api.deepseek.com/chat/completions"

.env文件:

DEEPSEEK_API_KEY=your_deepseek_api_key

2. Flask核心逻辑(app.py)

定义路由,调用DeepSeek API生成学习计划:

from flask import Flask, request, jsonify
from flask_cors import CORS
import requests
from config import Config

app = Flask(__name__)
CORS(app)

headers = {
    "Authorization": f"Bearer {Config.DEEPSEEK_API_KEY}",
    "Content-Type": "application/json"
}

def generate_study_plan(topic, duration, difficulty):
    system_prompt = "你是一个专业的教学规划助手,帮助用户规划详细的学习计划。"
    user_prompt = f"请你根据以下信息为我制定详细的学习计划:\n主题:{topic}\n学习周期:{duration}\n难度要求:{difficulty}\n请给出每周或每天具体的学习任务安排。"

    data = {
        "model": "deepseek-chat",
        "messages": [
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ],
        "temperature": 0.7
    }

    response = requests.post(Config.DEEPSEEK_API_URL, json=data, headers=headers)
    result = response.json()

    if response.status_code == 200:
        return result['choices'][0]['message']['content']
    else:
        return "请求DeepSeek API时发生错误,请稍后重试。"

@app.route('/api/study-plan', methods=['POST'])
def study_plan():
    data = request.json
    topic = data.get('topic')
    duration = data.get('duration')
    difficulty = data.get('difficulty')

    if not all([topic, duration, difficulty]):
        return jsonify({"error": "缺少参数,请提供完整的topic, duration, difficulty"}), 400

    plan = generate_study_plan(topic, duration, difficulty)
    return jsonify({"study_plan": plan})

if __name__ == "__main__":
    app.run(debug=True)

五、接口说明与测试

启动Flask服务:

python app.py

接口地址:

POST http://127.0.0.1:5000/api/study-plan

请求体示例(JSON格式):

{
    "topic": "数据结构与算法",
    "duration": "4周",
    "difficulty": "中等"
}

返回结果示例:

{
    "study_plan": "### 数据结构与算法(4周)学习计划\n\n#### 第1周:基础数据结构\n- **周一至周二**:学习数组与链表的定义、实现、基本操作\n- **周三**:练习链表的各种变种(单链表、双链表)\n- **周四**:队列与栈的实现与使用场景\n- **周五至周末**:综合练习,完成数组、链表、栈和队列的综合习题\n\n#### 第2周:高级数据结构\n- **周一至周三**:树与二叉树基础\n- **周四至周五**:图的基本概念与常见算法(DFS/BFS)\n- **周末**:完成树与图的相关习题,巩固知识\n\n(……更多详细内容省略)"
}

六、前端简单调用示例

若希望在前端页面直接调用此API,可以使用JavaScript:

fetch('http://127.0.0.1:5000/api/study-plan', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    topic: "数据结构与算法",
    duration: "4周",
    difficulty: "中等"
  })
})
.then(response => response.json())
.then(data => {
  console.log(data.study_plan);
})
.catch(error => {
  console.error('Error:', error);
});

七、总结与展望

本篇博客详细展示了如何使用Flask框架与DeepSeek API结合,实现用户个性化学习计划制定功能。通过这个示例,我们能够看到:

  • Flask框架的轻量级与灵活性,快速搭建RESTful接口;

  • AI模型调用的便捷性和高效性,大大提升了教学辅助工具的实用价值;

  • 项目功能模块的易于扩展性。

在未来的开发中,我们将继续扩展项目功能,例如集成更多的AI模型、自动化评估学习进度等,以进一步完善和提升项目的实用价值。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐