news 2026/4/16 10:37:06

从零开始:使用 Python Flask 和 DeepSeek API 打造智能 AI 聊天助手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零开始:使用 Python Flask 和 DeepSeek API 打造智能 AI 聊天助手

从零开始:使用 Python Flask 和 DeepSeek API 打造智能 AI 聊天助手

在人工智能爆发的今天,拥有一款属于自己的 AI 助手是很多开发者的梦想。今天,我将带大家深入剖析一个基于Python FlaskMySQLDeepSeek API构建的智能聊天助手项目。

这个项目不仅是一个简单的问答工具,更是一个包含了完整前端界面后端 API 服务以及数据库持久化存储的全栈实战案例。

项目架构概览

我的项目采用了经典的MVC (Model-View-Controller)架构模式,结构清晰,易于扩展:

前端 (View): 使用 HTML5、CSS3 和原生 JavaScript 构建,提供响应式的聊天界面,支持移动端适配。

后端 (Controller): 基于轻量级的 Flask 框架,负责处理 HTTP 请求、路由分发以及业务逻辑。

模型 (Model): 使用 MySQL 数据库存储每一条对话记录,方便后续回溯和分析。

AI 大脑: 接入 DeepSeek 的强大 API,提供智能对话能力。

核心代码解析

1. 后端核心:app.py

后端是整个系统的指挥官。我们定义了两个核心 API:

/api/chat(POST): 接收用户的消息,调用 DeepSeek API 获取回复,并将对话存入数据库。

/api/history(GET): 获取历史聊天记录,让用户刷新页面后也能看到之前的对话。

python

app.py 片段

@app.route('/api/chat',methods=['POST'])

defchat():

1. 获取用户输入

user_message=request.json.get('message', '')

2. 调用 AI (DeepSeek)

ai_response=get_ai_response(user_message)

3. 存入 MySQL 数据库

save_to_db(user_message, ai_response)

4. 返回结果

returnjsonify({'response': ai_response})

2. 数据库设计:db.py

数据是应用的基石。我们使用pymysql库来管理数据库连接,并设计了一个简单的chat_history表:

sql

CREATETABLEchat_history(

idINTAUTO_INCREMENTPRIMARY KEY,

user_messageTEXTNOT NULL,

ai_responseTEXTNOT NULL,

created_atTIMESTAMPDEFAULTCURRENT_TIMESTAMP

);

3. 前端交互:script.js

为了提供流畅的用户体验,我在前端实现了以下细节:

自动长高输入框: 输入框高度会随着内容增加而自动变高,避免滚动条遮挡视线。

智能发送: 支持Enter发送消息,Shift + Enter换行。

状态反馈: 发送消息时自动禁用按钮,防止重复提交,并给予用户视觉反馈。

javascript

// script.js 片段:智能回车发送

userInput.addEventListener('keydown',function(e) {

if(e.key==='Enter'&&!e.shiftKey) {

e.preventDefault();// 阻止默认换行

sendMessage();// 发送消息

}

});

为什么选择 DeepSeek?

在这个项目中,我选择了 DeepSeek 作为 AI 模型提供商。它提供了兼容 OpenAI 格式的 API,这意味着我可以使用标准的openaiPython 库直接调用,无需学习新的 SDK,大大降低了接入成本。

项目亮点

1.全栈实践: 涵盖了从前端 UI 到后端逻辑再到数据库存储的完整链路。

2.极简配置: 通过requirements.txt管理依赖,一键安装。

3.健壮性: 包含了错误处理机制,无论是 API 调用失败还是数据库连接异常,都能给用户友好的提示。

总结

通过这个项目,我不仅学会了如何调用 AI 接口,更重要的是掌握了构建一个完整 Web 应用的通用流程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 17:28:29

物联网赋能新能源汽车:技术融合与产业变革

物联网技术正深度融入新能源汽车产业,成为推动其向智能化、网联化和绿色化转型的核心驱动力。截至2026年初,物联网与5G、AI、大数据等技术的协同创新,已在智能座舱、自动驾驶、远程监控及充电基础设施智能化等方面取得显著成果,形…

作者头像 李华
网站建设 2026/4/16 5:49:20

【Docker】核心概念 常用指令总结 Docker Compose

文章目录 核心概念指令一、守护进程(Docker Daemon)二、镜像(Image)三、容器(Container)四、卷管理五、容器挂载卷 数据卷多个容器挂载数据卷容器 Docker 容器和镜像的细节Docker镜像原理Dockerfile关键字D…

作者头像 李华
网站建设 2026/4/6 22:39:04

python数据结构之栈和队列

一、栈(Stack)栈是一种后进先出(LIFO)的线性数据结构。就像往手枪弹夹里装子弹时,子弹从弹夹口依次压入(入栈 push),先装的子弹会沉到弹夹底部;开枪时,最上面…

作者头像 李华
网站建设 2026/4/14 7:32:03

springboot养殖畜牧业养牛可视化大屏设计与实现vue

目录摘要开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 SpringBoot与Vue结合的养殖畜牧业养牛可…

作者头像 李华
网站建设 2026/4/15 10:16:17

ssm springboot人脸识别物流运输管理系统vue

目录 摘要技术栈 开发技术 核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 摘要 基于SSM(SpringSp…

作者头像 李华
网站建设 2026/4/11 10:23:00

通达信五行金针选股指标公式

VAR1:REF(CLOSE,1); VAR2:SMA(MAX(CLOSE-VAR1,0),7,1)/SMA(Abs(CLOSE-VAR1),7,1)*100; VAR8:SMA(MAX(CLOSE-VAR1,0),14,1)/SMA(ABS(CLOSE-VAR1),14,1)*100; VAR9:SMA(MAX(CLOSE-VAR1,0),21,1)/SMA(ABS(CLOSE-VAR1),21,1)*100; 五行金针:VAR2<15 AND VAR8<25 AND VAR9<…

作者头像 李华