AI 食用指南--更好的用AI编程
AI 食用指南–更好的用AI编程
分享目标
- 了解为什么大模型这么聪明
- 掌握如何高效用 AI 辅助刷算法题
- 上手一个真实的 C 语言小项目,用 AI 加速开发
深度学习和大模型原理速通
监督学习
给机器大量带正确答案的数据,让它学会从输入预测输出。
- 邮件 --> 垃圾邮件 | 非垃圾邮件 --> 垃圾邮件的识别
- 视频 --> 文本信息 | 音频信息 --> 视频数据处理
- 英文 --> 中文 --> 翻译
- 广告 + 个人信息 --> 广告推荐
- 图片 + 雷达信息 --> 自动驾驶
- 一系列的词 --> 下一个词 --> 语言模型(llms模型)
数学公式:
f(x)≈yf(x) \approx y f(x)≈y
线性回归,有一点像房价预测
- 输入特征:面积、位置、房龄
- 输出目标:价格
模型通过看大量样本学会规律。
再输入新房子的特征,它预测价格。
from sklearn.linear_model import LinearRegression
import numpy as npX = np.array([[30], [50], [70], [100]]) # 房屋面积
y = np.array([100, 150, 200, 300]) # 对应价格model = LinearRegression()
model.fit(X, y)print("预测90平米的价格:", model.predict([[90]])[0])
深度学习和大语言模型
神经元
有一件衣服,需要预测他的需求。
- 价格 + 购物花费 --> 可负担性
- 市场调研 --> 知名度
- 价格 + 市场调研 + 材料 --> 个人品质
- 可负担性 + 知名度 + 个人品质 --> 需求
这里的afforadability、popularity、quality都是特征,需求是目标。每一个都是神经元。
-
每个神经元本质上就是一个 加权求和 + 激活函数:
y=σ(w1x1+w2x2+b)y = \sigma(w_1 x_1 + w_2 x_2 + b) y=σ(w1x1+w2x2+b)
- www:权重
- bbb:偏置
- σ\sigmaσ:激活函数(让模型能学非线性)
大模型
- 把文本切成token,一个个的作为输入给模型
- 把许多神经元按层堆叠。深层网络能学到层级特征(低层边缘、高层抽象)。
数据 + 神经网络 形成了现在的AI。通过大量的输入,来猜下一个输出。
启示
- 输入的数据决定输出。prompt上下文越精确,AI 的预测空间越小 → 结果越稳定
- 擅长简单的逻辑,不擅长逻辑推理。(长期规划,数学推理)
用 AI 辅助刷算法题
talk is cheap , show me your code --> talk is cheap , show me your prompt
算法步骤
请你帮助我把这道算法题拆解成清晰的解题步骤。
要求:
- 明确输入输出;
- 分析关键操作及其时间复杂度;
- 用伪代码或流程逻辑说明每一步;
- 以通俗例子说明算法在执行过程中的变化。
解题思路
请帮我整理这道题的核心思路。
重点包括:
- 问题抽象(现实类比)
- 常见错误思路及其原因
- 正确思路的关键突破点
- 与其他类似题型的通用解法模板
代码风格和格式
帮我写出风格规范、可读性强的代码。
要求:
- 变量命名清晰;
- 保留关键注释(逻辑目的、复杂度说明);
- 符合PEP8标准;
- 附带函数注释(docstring),解释输入输出含义。
调试和边界值处理
请列出这道题可能出现的边界情况,并帮我分析哪些地方容易出错。
同时请附上每个边界条件的预期行为及调试方法。
对 LRU Cache,请列出以下边界场景:
- 容量 = 1;
- 重复 put 同一个 key;
- 连续访问同一个 key;
- 删除尾部节点后立即访问。
并说明应如何验证这些行为是否正确。
测试用例
请你为这道题设计全面的测试用例,覆盖正常情况与边界情况。
输出形式建议为:
- 输入参数
- 预期输出
- 说明为什么这个测试重要。
这是一道算法题,上面是数据和API,请帮我生成测试用例,在main函数中调用,不需要你实现API或者对测试用例进行扩展,只需要写main函数即可
小结
prompt决定AI的输出,需要学会优雅的提问。找到关键词。
项目实战 —— 用 AI 辅助开发 C 语言项目
可以把下面的提示词输入给AI,这里就不展示AI的回答了。
参考 linenoise,实现一个简单的单线程命令行交互系统
事先前提
我现在是一名学生,需要学习优秀的C语言项目,参考linenoise项目用户实现一个简单的终端交互命令,期望实现命令行补全功能,接下来的对话将围绕这个目的,请你帮助我更好的学习他的精华
描述需求
请你列一个需求文档,说明min_linenoise需要实现的功能点
搭建工程
请你帮我搭建一个cmake环境,分为src和include目录,其中include包含min_linenoise的api,src是main.c和min_linenoise的实现,帮我完成cmakelists,并且加上调试标志
源代码的实现思路
linenoise源代码是如何实现命令补全的,请详细描述这个流程,包括从用户按下tab,到函数的设置,到回调函数的调用,再到输出内容到用户的命令行
细节提问
你的stdout在C语言是没有的啊,line-noise是通过write函数实现的,请讲一下这函数的作用