项目介绍

在人工智能技术日新月异的今天,拥有一个属于自己的智能对话助手不再是遥不可及的梦想。今天,我将分享一个完整的全栈实战项目——基于 Python Flask、MySQL 和 DeepSeek API 构建的智能聊天助手。

这不仅仅是一个简单的问答工具,而是一个集完整前端界面、后端 API 服务和数据库持久化存储于一体的全栈解决方案,适合想要学习 AI 应用开发的开发者。

项目架构设计

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

前端(View)

  • 使用 HTML5、CSS3 和原生 JavaScript 构建

  • 响应式聊天界面设计

  • 完美适配移动端设备

  • 流畅的用户交互体验

后端(Controller)

  • 基于轻量级 Flask 框架

  • 处理 HTTP 请求和路由分发

  • 实现核心业务逻辑

  • 提供 RESTful API 接口

模型(Model)

  • 使用 MySQL 数据库持久化存储

  • 记录完整的对话历史

  • 支持数据回溯和分析

AI 核心

  • 接入 DeepSeek 强大的语言模型 API

  • 提供智能对话和上下文理解能力

核心代码实现

1. 后端核心:app.py

后端是整个系统的大脑,我们定义了两个核心 API 端点:

@app.route('/api/chat', methods=['POST'])
def chat():
    # 1. 获取用户输入
    user_message = request.json.get('message', '')
    
    # 2. 调用 DeepSeek API
    ai_response = get_ai_response(user_message)
    
    # 3. 持久化到 MySQL
    save_to_db(user_message, ai_response)
    
    # 4. 返回AI回复
    return jsonify({'response': ai_response})

@app.route('/api/history', methods=['GET'])
def get_history():
    # 获取历史聊天记录
    history = fetch_chat_history()
    return jsonify({'history': history})

2. 数据库设计:db.py

数据是应用的基石,我们设计了简洁高效的数据库表结构:

CREATE TABLE chat_history (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_message TEXT NOT NULL,
    ai_response TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

使用 pymysql 库管理数据库连接,确保数据的安全性和一致性。

3. 前端交互优化:script.js

为了提供极致的用户体验,前端实现了多项智能功能:

// 智能回车发送:Enter发送,Shift+Enter换行
userInput.addEventListener('keydown', function(e) {
    if (e.key === 'Enter' && !e.shiftKey) {
        e.preventDefault();  // 阻止默认换行
        sendMessage();       // 发送消息
    }
});

// 自动长高输入框
function autoResizeTextarea(textarea) {
    textarea.style.height = 'auto';
    textarea.style.height = (textarea.scrollHeight) + 'px';
}

// 状态反馈机制
function toggleSendButton(disabled) {
    sendButton.disabled = disabled;
    sendButton.innerHTML = disabled ? 
        '<span class="spinner"></span>发送中...' : 
        '发送';
}

为什么选择 DeepSeek?

在这个项目中,我选择了 DeepSeek 作为 AI 模型提供商,主要基于以下考虑:

  1. API 兼容性:提供兼容 OpenAI 格式的 API 接口

  2. 开发便捷:可以使用标准的 openai Python 库直接调用

  3. 成本效益:性价比高,适合个人开发者和小型项目

  4. 性能稳定:响应速度快,上下文理解能力强

项目亮点

全栈实践

涵盖从前端 UI 设计、后端业务逻辑到数据库设计的完整开发链路,是学习全栈开发的绝佳案例。

极简配置

通过 requirements.txt 管理所有依赖,实现一键安装部署:

pip install -r requirements.txt

健壮性保障

  • 完善的错误处理机制

  • API 调用失败时的优雅降级

  • 数据库连接异常的用户友好提示

  • 输入验证和安全性检查

用户体验优化

  • 响应式设计适配各种设备

  • 实时消息状态反馈

  • 历史对话永久保存

  • 智能输入框交互

技术栈总结

  • 后端框架:Flask - 轻量级且灵活的 Python Web 框架

  • 数据库:MySQL - 成熟稳定的关系型数据库

  • AI 服务:DeepSeek API - 提供强大的语言模型能力

  • 前端技术:HTML5 + CSS3 + JavaScript - 原生技术栈

  • 数据库驱动:PyMySQL - Python 连接 MySQL 的库

  • HTTP 客户端:Requests - 简洁的 HTTP 请求库

扩展可能性

这个项目为基础框架,你可以在此基础上进行多种扩展:

  1. 多用户支持:添加用户注册登录功能

  2. 对话主题分类:对历史对话进行分类管理

  3. 文件上传:支持图片、文档等文件的上传和分析

  4. 语音交互:集成语音识别和语音合成

  5. 多模型切换:支持切换不同的 AI 模型

总结

通过这个项目,我不仅学会了如何调用 AI 接口,更重要的是掌握了构建一个完整 Web 应用的通用流程。从需求分析、技术选型、架构设计到编码实现,每一步都是宝贵的学习经验。

这个项目展示了如何将前沿的 AI 技术与传统的 Web 开发技术相结合,创造出一个实用且有趣的应用程序。无论你是 AI 初学者还是有经验的开发者,这个项目都能为你提供有价值的参考和实践机会。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐