
项目实训博客四 基于DeepSeek API实现个性化学习计划制定功能
本文结合实际教学辅助项目,详细介绍如何用Flask搭建Web后端,通过DeepSeek API实现用户个性化学习计划制定功能。内容包括环境搭建、核心代码、接口说明与测试,并附前端调用示例,适合有一定Python基础的开发者快速上手。
目录
一、项目背景与需求分析
我们项目旨在利用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模型、自动化评估学习进度等,以进一步完善和提升项目的实用价值。
更多推荐
所有评论(0)