AI First + Mobile First:构建下一代智能应用开发范式 🚀

132 阅读9分钟

在当今技术飞速发展的时代,人工智能(AI)🤖移动设备📱 已经成为我们日常生活和工作中不可或缺的一部分。随着大语言模型(LLM)能力的不断提升,以及移动端用户占比持续增长,“AI First” 与 “Mobile First” 正逐渐成为现代软件开发的核心理念。

本文将从一个“点奶茶”的生活场景出发,结合完整代码示例,深入讲解如何使用 Python + AI 自动生成数据库操作,让你轻松理解整个流程!


一、AI First:让 AI 成为你最聪明的程序员助手 🤖

1.1 什么是 AI First?💡

AI First 是指:先用自然语言告诉 AI 你想做什么,然后由 AI 帮你生成代码或执行任务。

比如:

“帮我查一下工程部门有哪些员工?”
→ AI 自动写好 SQL 并帮你运行!

不需要你记住复杂的语法,就像有个“博士级程序员”在帮你打工 👨‍💻✨


1.2 场景演示:帮我点一杯最便宜的热奶茶!🥤

想象你说:

“豆包,帮我点一杯少糖热的珍珠奶茶,在美团、抖音、淘宝上比价,用优惠券后选最便宜的一家下单。”

这背后其实涉及很多步骤:

  1. 🔍 理解你说的话(AI 听懂人话)
  2. 🌐 打开多个平台查价格(调用 API)
  3. 💳 查看你能用的优惠券
  4. 🧮 算出哪家最便宜
  5. 🛒 自动下单

而这些都可以通过 AI + 小程序/APP 实现!未来我们可能真的只要“说话”,就能完成各种任务 ✅


二、实战教学:用 Python 让 AI 帮你写 SQL 查询 💬➡️💾

我们将做一个小项目:
👉 创建一个“员工信息表” → 插入数据 → 让 AI 根据中文问题自动生成 SQL 查询语句!

即使你是 Python 新手,也能看懂每一步 😊


🔧 步骤 1:连接到 AI 模型(DeepSeek)

我们要让 AI 帮我们写 SQL,所以需要连上它的“大脑”。

from openai import OpenAI  # 导入 OpenAI 的库(通用接口)

# 设置连接参数
client = OpenAI(
    api_key='sk-832eee1997f0472c97cb7cc00364b871',  # 你的密钥(像密码一样重要!🔑)
    base_url='https://api.deepseek.com/v1'         # DeepSeek 提供的服务地址 🌐
)

📌 讲解:

  • from openai import OpenAI:导入一个可以和 AI 对话的工具包。
  • api_key:是你登录 AI 服务的“通行证”。⚠️ 不要分享给别人!
  • base_url:告诉程序去哪里找 AI 大脑 —— 这里是 DeepSeek 的服务器。

✅ 就像你要用微信发消息,必须先登录账号一样,这里也是“登录”AI 服务。


🗃️ 步骤 2:创建本地数据库和表格

我们用 SQLite —— 一种轻量级数据库,适合学习和测试。

import sqlite3  # 导入数据库模块

# 创建或打开一个叫 test.db 的数据库文件
conn = sqlite3.connect("test.db")

# 创建一个“游标”,它是用来操作数据库的“手”
cursor = conn.cursor()

# 执行建表命令
cursor.execute("""
CREATE TABLE IF NOT EXISTS employees(
    id INTEGER PRIMARY KEY,      -- 编号,整数,主键(唯一标识)
    name TEXT,                   -- 姓名,文本类型
    department TEXT,            -- 部门,比如“销售”、“工程”
    salary INTEGER              -- 工资,整数
)
""")

📌 讲解:

  • sqlite3.connect("test.db"):如果电脑里没有 test.db 文件,会自动创建一个。
  • cursor():你可以把它想象成鼠标指针,所有操作都要通过它来点击执行。
  • CREATE TABLE IF NOT EXISTS:意思是“如果这个表不存在,就创建它”,避免重复报错。
  • 字段说明:
    • id INTEGER PRIMARY KEY:每个人的编号,不能重复。
    • name TEXT:名字是文字类型(如 "黄佳")。
    • salary INTEGER:工资是数字(如 50000)。

✅ 就像你在 Excel 里新建一张表,设置了列名:“编号”、“姓名”、“部门”、“工资”。


➕ 步骤 3:插入一些测试数据

现在我们往表里加几个人:

# 准备要插入的数据(每一行是一个元组)
sample_data = [
    (6, "黄佳", "销售", 50000),
    (7, "宁宁", "工程", 75000),
    (8, "谦谦", "销售", 60000),
    (9, "悦悦", "工程", 80000),
    (10, "黄仁勋", "市场", 55000),
    (11, "曾繁花", "工程", 80000)
]

# 一次性插入多条数据
cursor.executemany(
    "INSERT INTO employees VALUES(?,?,?,?)",  # ? 是占位符,防止出错
    sample_data
)

# 提交更改,否则数据不会保存!
conn.commit()

📌 讲解:

  • sample_data 是一个列表,里面每个括号 ( ) 表示一条记录(一行数据)。
  • executemany():批量插入,比一条一条插快得多 ⚡
  • ? 符号:代表“等下我会填一个值”,这样更安全,防止黑客攻击(SQL 注入)🔒
  • conn.commit():非常重要!就像文档编辑完要点“保存”按钮 💾 否则关机就没了!

✅ 类比:你在 Excel 表格填好了几行员工信息,然后点击“保存”。


📐 步骤 4:告诉 AI 数据库长什么样(Schema)

为了让 AI 能正确写出 SQL,我们必须先告诉它表结构。

# 获取表的字段信息
schema = cursor.execute("PRAGMA table_info(employees)").fetchall()
print("原始字段信息:", schema)

# 把字段信息整理成 AI 容易理解的格式
schema_str = "CREATE TABLE EMPLOYEES(\n" + \
             "\n".join([f"  {col[1]} {col[2]}" for col in schema]) + \
             "\n);"
print("给 AI 看的 Schema:\n", schema_str)

📌 讲解:

  • PRAGMA table_info(...):SQLite 内置命令,用来查看表有哪些字段。
  • 返回结果类似:
    [(0, 'id', 'INTEGER'), (1, 'name', 'TEXT'), ...]
    
  • 我们用 for col in schema 遍历每一行,取出字段名 col[1] 和类型 col[2]
  • 最终拼成一段看起来像建表语句的文字,让 AI 更容易理解。

🎯 输出效果:

CREATE TABLE EMPLOYEES(
  id INTEGER
  name TEXT
  department TEXT
  salary INTEGER
);

✅ 就像你画一张表格草图给同事看:“这是我们的员工表,有这四个字段。”


🤖 步骤 5:定义函数 ask_deepseek —— 让 AI 写 SQL

我们现在写一个函数,把问题 + 表结构一起发给 AI,让它返回 SQL。

def ask_deepseek(query, schema):
    # 构造提示词(Prompt),就是我们对 AI 说的话
    prompt = f"""
    这是一个数据库的Schema:
    {schema}
    
    根据这个Schema,请输出一个SQL查询来回答以下问题。
    只输出SQL查询语句本身,不要使用任何Markdown格式,
    不要包含反引号、代码块标记或额外说明。

    问题:{query}
    """
    print("【发送给 AI 的内容】:\n", prompt)
    
    # 调用 DeepSeek 的 AI 模型
    response = client.chat.completions.create(
        model="deepseek-chat",      # 使用 DeepSeek 的对话模型
        max_tokens=2048,            # 最多生成 2048 个字(足够写复杂 SQL)
        messages=[{
            "role": "user",
            "content": prompt
        }],
        temperature=0               # 温度为 0 → 输出稳定,不随机
    )
    # 提取 AI 回复的内容
    return response.choices[0].message.content.strip()

📌 重点讲解:

  • def:定义一个函数,相当于“制作一个工具”。
  • prompt:是我们给 AI 的指令,告诉它“这是表结构,这是问题,请你写 SQL”。
  • messages=[{"role": "user", "content": prompt}]:模拟人类聊天,你是提问者(user)。
  • temperature=0:让 AI 回答更固定,适合写代码(不然每次答案不一样 ❌)
  • response.choices[0].message.content:从 AI 的回复中提取真正的内容。

✅ 就像你问学霸:“根据这张成绩单,谁考了最高分?” 学霸告诉你答案。


🧪 步骤 6:实际调用 AI 写 SQL 并执行

示例 1:查询工程部门员工

# 提出一个问题(用中文)
question = "工程部门员工的姓名和工资是多少"

# 让 AI 生成对应的 SQL
sql_query = ask_deepseek(question, schema_str)
print("AI 生成的 SQL:", sql_query)

# 执行这条 SQL 并获取结果
result = cursor.execute(sql_query).fetchall()
print("查询结果:", result)

🎯 输出是:

SELECT name, salary FROM employees WHERE department = '工程';

结果:

[('宁宁', 75000), ('悦悦', 80000), ('曾繁花', 80000)]

🎉 成功了!AI 正确理解了“工程部门”对应 department = '工程',并选择了正确的字段。


示例 2:新增员工(INSERT)

question = "在销售部门增加一个新员工,姓名为张三,工资为45000"
sql_query = ask_deepseek(question, schema_str)
print("AI 生成的 SQL:", sql_query)

# 执行插入操作
cursor.execute(sql_query)
conn.commit()  # 记得提交!否则数据没保存

🎯 生成:

INSERT INTO employees (name, department, salary) VALUES ('张三', '销售', 45000);

✅ AI 学会了怎么写 INSERT 语句!


示例 3:删除某员工(DELETE)

question = "删除市场部门的黄仁勋"
sql_query = ask_deepseek(question, schema_str)
print("AI 生成的 SQL:", sql_query)

cursor.execute(sql_query)
conn.commit()

🎯 生成:

DELETE FROM employees WHERE name = '黄仁勋' AND department = '市场';

🚨 注意:删除操作不可逆!真实项目中建议先做“软删除”(比如加个 is_deleted 字段)。


三、AI 如何融入 MVC 架构?—— 智能后端开发新模式 🔄

传统开发要手动写前后端代码,现在我们可以让 AI 帮忙!

示例:让 AI 生成一个 Web 接口(Node.js Express)

你可以对 AI 说:

“用 Node.js 写一个 Express 路由,查询工程部员工并返回 JSON。”

AI 就会给你生成:

const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const router = express.Router();
const db = new sqlite3.Database('./test.db');

router.get('/engineering', (req, res) => {
    const sql = "SELECT name, salary FROM employees WHERE department = '工程'";
    db.all(sql, [], (err, rows) => {
        if (err) {
            res.status(500).json({ error: err.message });
            return;
        }
        res.json({ data: rows });
    });
});

module.exports = router;

📌 虽然这是 JavaScript,但思路一样:

  • AI 能根据需求自动生成完整功能模块。
  • 开发者只需审核是否正确即可 ✅

四、Mobile First:优先做好手机体验 📱

为什么叫 Mobile First?

因为现在大多数人都是用手机上网:

  • 小程序、App 是主要入口 📲
  • PC 端只用于管理后台 🖥️

所以我们应该:

✅ 80% 精力优化手机端体验
✅ 20% 精力适配电脑浏览器


CSS 实践:响应式布局(让网页在手机和电脑都能看)

/* 默认样式:针对手机设计 */
.container {
    padding: 10px;       /* 手机屏幕小,边距小一点 */
    font-size: 14px;     /* 字体也不要太大 */
}

/* 当屏幕宽度 >= 768px(平板及以上)时生效 */
@media (min-width: 768px) {
    .container {
        padding: 20px;
        font-size: 16px;
    }
}

/* 当屏幕宽度 >= 1024px(桌面电脑)时生效 */
@media (min-width: 1024px) {
    .container {
        max-width: 1200px;
        margin: 0 auto;   /* 居中显示 */
        font-size: 18px;
    }
}

📌 新手讲解:

  • @media 是 CSS 的“条件判断”:满足某个条件才应用这些样式。
  • min-width:最小宽度,意思是“大于等于这个尺寸就用这个样式”。
  • 移动优先原则:先写手机样式,再逐步增强大屏体验 ✅

✅ 就像你做衣服,先按小号做,再慢慢放大成中号、大号。


五、ModelScope:阿里云的大模型社区 ☁️

ModelScope 是中国的 Hugging Face,提供:

  • 📦 上千个免费大模型(如 Qwen、ChatGLM)
  • 🧪 数据集资源
  • 🧠 在线 Jupyter Notebook(免安装运行代码)

你可以在这里:

  1. 下载预训练模型
  2. 微调自己的专属 AI 客服
  3. 部署为 API 供小程序调用

六、总结:给 Python 新手的学习建议 🎯

技能学习建议
Python 基础学会变量、列表、函数、循环
SQLite 数据库理解 SELECT, INSERT, WHERE 等基本操作
API 调用学会用 requestsOpenAI SDK 和 AI 对话
Prompt 工程练习如何清晰地向 AI 描述问题 💬
Mobile First 思维设计产品时先想“手机上怎么用” 📱

结语 🌈

“最好的代码,是你不用写的那一行。”
—— AI First 时代的开发者信条

只要你能说清楚“我想做什么”,AI 就能帮你实现!

🚀 从今天开始,学会与 AI 协作,成为未来的超级开发者吧!

📘 动手建议:复制上面的代码,自己运行一遍,改几个名字试试看!实践是最好的学习方式。