01_AI应用开发入门 - 从Web开发到AI开发的思维转变
本课程帮助Python Web开发者理解AI应用开发的思维方式。通过对比传统Web开发和AI开发的差异,用通俗易懂的类比解释LangChain的作用和价值。学完本课,你将建立起AI应用开发的基本认知,理解为什么需要LangChain,以及如何用新的思维方式来构建AI应用。
🎯 学习目标
- 理解AI应用和传统Web应用的区别
- 了解LangChain是什么,为什么需要它
- 建立AI应用开发的基本思维模型
📖 核心概念
1. AI应用 vs Web应用:一个类比
传统Web开发(你熟悉的)
想象你在开发一个餐厅点餐系统:
1 | 用户输入 → 路由判断 → 业务逻辑处理 → 数据库操作 → 返回结果 |
特点:
- ✅ 逻辑确定:你写什么代码,就执行什么
- ✅ 结果可控:同样的输入,总是得到同样的输出
- ✅ 流程固定:if-else、循环、函数调用
- ✅ 数据结构化:数据库、JSON、明确的字段
AI应用开发(新的世界)
现在想象你雇了一个聪明的服务员(AI):
1 | 用户输入 → AI理解意图 → AI思考 → AI生成回答 → 返回结果 |
特点:
- 🤔 逻辑不确定:AI会”思考”,每次回答可能不同
- 🎲 结果概率性:同样的问题,可能得到不同答案
- 🧠 需要引导:通过提示词(Prompt)引导AI
- 💬 处理非结构化数据:自然语言、图片、文本
2. 为什么需要LangChain?
问题1:直接调用AI模型很麻烦
不用LangChain(原始方式):
1 | import requests |
用LangChain(简化方式):
1 | from langchain_openai import ChatOpenAI |
问题2:复杂应用需要多个步骤
假设你要做一个”智能文章写手”:
传统思路(Web开发):
1 | # 步骤1: 生成标题 |
每一步都要自己调用API、处理响应、传递数据,很繁琐。
LangChain思路:
1 | from langchain.chains import SequentialChain |
问题3:需要给AI添加”能力”
AI默认只能”说话”,不能:
- ❌ 查询数据库
- ❌ 调用API
- ❌ 搜索网页
- ❌ 读取文件
LangChain提供了工具(Tools)和Agent,让AI可以:
- ✅ 自己决定是否需要查询数据
- ✅ 自己调用工具获取信息
- ✅ 组合多个工具完成复杂任务
3. LangChain的核心思想:乐高积木
把LangChain想象成乐高积木系统:
1 | 基础积木(组件): |
核心优势:
- 标准化:统一的接口调用不同模型
- 组件化:可重用、可组合
- 简化开发:不需要关心底层细节
- 生态丰富:大量现成的工具和集成
🌰 通俗类比
类比1:AI应用 = 雇佣助手
传统Web开发:
- 你是老板,写了详细的操作手册(代码)
- 员工(程序)严格按手册执行
- 结果完全可预测
AI应用开发:
- 你雇了一个聪明的助手(AI)
- 你给他任务说明(提示词)
- 他自己理解并完成,可能用不同方法
- LangChain就是助手的工作流管理系统
类比2:LangChain = 智能家居系统
不用LangChain:
- 每个设备(模型、工具)都要单独控制
- 需要记住每个设备的遥控器怎么用
- 组合使用很麻烦
用LangChain:
- 统一的控制面板
- 一键场景模式(链)
- 自动化流程(Agent)
🔄 思维转变对照表
| 方面 | Web开发思维 | AI应用开发思维 |
|---|---|---|
| 输入 | 结构化参数 | 自然语言描述 |
| 处理 | 确定的逻辑 | AI理解和生成 |
| 输出 | 精确的结果 | 概率性的答案 |
| 调试 | 看日志、断点 | 调整提示词、观察输出 |
| 优化 | 优化算法、SQL | 优化提示词、选择模型 |
| 测试 | 单元测试、固定结果 | 评估质量、多样本测试 |
| 错误处理 | try-catch | 提示词引导、输出验证 |
💡 实际应用场景
场景1:智能客服
传统方式:
1 | def handle_customer_query(query: str) -> str: |
问题:
- 需要穷举所有情况
- 用户问法稍有不同就识别不了
- 维护成本高
AI方式(用LangChain):
1 | from langchain.agents import create_agent |
优势:
- AI理解各种问法
- 自动选择合适的工具
- 可以组合多个步骤
场景2:文档分析
传统方式:
- 关键词搜索
- 正则表达式匹配
- 固定的规则提取
AI方式(RAG):
1 | # 让AI理解文档内容,智能回答问题 |
场景3:数据转换
传统方式:
1 | # 需要为每种格式写转换逻辑 |
AI方式:
1 | # AI理解各种表达方式 |
🎓 关键要点总结
AI应用是”概率性”的
- 不像传统代码那样确定
- 需要通过提示词”引导”而不是”控制”
LangChain是工具箱,不是魔法
- 它简化了AI应用开发
- 但仍需要理解底层原理
从”编程”到”提示工程”
- Web开发:写精确的代码逻辑
- AI开发:设计有效的提示词
组件化思维
- 像搭积木一样组合组件
- 重用和组合是关键
测试和调试方式不同
- 需要评估质量而不是验证正确性
- 需要多样本测试而不是单一测试用例
📚 下一步
现在你已经理解了AI应用开发的基本思维,接下来我们将:
- 第2课:搭建环境,配置国内可用的AI模型
- 第3课:学习LangChain的核心组件
- 第4课:开始构建实际的AI应用
🤔 思考题
在进入下一课之前,思考这些问题:
- 你目前的工作中,哪些场景可以用AI来优化?
- 这些场景更适合传统方式还是AI方式?
- 如果用AI,可能会遇到什么挑战?
准备好了吗? 继续第2课:环境搭建 →