React组件 vs AI组件:思维是通的
先看一下,平时写的React组件是什么样的?
// React组件:接收输入,处理状态,返回UIfunction SearchComponent(props) {const [query, setQuery] = useState("");const [results, setResults] = useState([]);async function handleSearch() { const res = await fetch(`/api/search?q=${query}`); setResults(await res.json()); }return ( <div> <input onChange={e => setQuery(e.target.value)} /> <button onClick={handleSearch}>搜索</button> <ul>{results.map(r => <li>{r.title}</li>)}</ul> </div> );}再看一个AI Agent组件:
// AI组件:接收提示,处理上下文,返回响应import { ChatOpenAI } from "@langchain/openai";import { HumanMessage } from "@langchain/core/messages";async function createAIAgent() {const model = new ChatOpenAI({ model: "gpt-4o-mini", openAIApiKey: process.env.OPENAI_API_KEY, });const response = await model.invoke([ new HumanMessage("解释一下React的useEffect") ]);return response.content;}看出来了吗?结构一模一样:
| React组件 | AI组件 | 对应关系 |
|---|---|---|
| props | prompt | 输入 |
| state | memory | 状态/记忆 |
| setState | 工具调用 | 改变状态的方式 |
| UI渲染 | 文本生成 | 输出 |
理解了这个映射,LangChain.js用起来就和写React组件一样自然。
第一个AI组件:让模型说句话
先跑通最简单的调用,建立直觉:
mkdir ai-component-demo && cd ai-component-demonpm init -ynpm install langchain @langchain/openai typescript tsx @types/node创建tsconfig.json:
{ "compilerOptions": { "target": "ES2020", "module": "commonjs", "lib": ["ES2020"], "outDir": "./dist", "rootDir": "./src", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "resolveJsonModule": true},"include": ["src/**/*"],"exclude": ["node_modules"]}写第一个AI组件(src/ai-component.ts):
import { ChatOpenAI } from "@langchain/openai";import { HumanMessage, SystemMessage } from "@langchain/core/messages";// 像创建React组件一样创建AI组件export async function AIAgentComponent(props: { systemPrompt: string; userMessage: string;}) {// 1. 初始化"渲染器"(ChatModel)const model = new ChatOpenAI({ model: "gpt-4o-mini", openAIApiKey: process.env.OPENAI_API_KEY, temperature: 0.7, // 控制"创造力",像CSS控制样式 });// 2. 构造"虚拟DOM"(Messages)const messages = [ new SystemMessage(props.systemPrompt), new HumanMessage(props.userMessage), ];// 3. "渲染"得到输出const response = await model.invoke(messages);// 4. 返回"UI"(文本内容)return response.content;}// 使用(像渲染React组件一样)async function main() {const result = await AIAgentComponent({ systemPrompt: "你是一个前端技术专家,回答简洁明了。", userMessage: "用一句话解释React的useEffect", });console.log(result);}main();运行:
OPENAI_API_KEY=sk-xxxx npx tsx src/ai-component.ts# 输出:useEffect 让你在组件渲染完成后执行副作用,比如获取数据、订阅事件。流程如下(和React组件渲染流程对比):
React组件渲染 vs AI组件渲染
加个"状态":让组件记住上下文
React组件用useState记状态,AI组件用ChatMessageHistory记对话历史:
import { ChatOpenAI } from "@langchain/openai";import { HumanMessage, SystemMessage, AIMessage } from "@langchain/core/messages";// "状态管理":记住对话历史const conversationHistory: (SystemMessage | HumanMessage | AIMessage)[] = [new SystemMessage("你是一个前端技术专家。"),];export async function AIAgentWithMemory(userInput: string) {const model = new ChatOpenAI({ model: "gpt-4o-mini", openAIApiKey: process.env.OPENAI_API_KEY, });// 把用户输入加到历史里(像setState一样) conversationHistory.push(new HumanMessage(userInput));// "渲染"(模型推理)const response = await model.invoke(conversationHistory);// 把AI回答也加到历史里(更新状态) conversationHistory.push(response);return response.content;}// 测试多轮对话async function main() {console.log(await AIAgentWithMemory("React是什么?"));console.log(await AIAgentWithMemory("它和Vue有什么区别?")); // 第二问能理解"它"指的是React}关键点:AI组件的"状态"就是对话历史。每次调用都把完整历史传给模型,模型才能理解上下文。
流式输出:像React的Suspense一样
实际产品里,用户不想等5秒看完整答案。流式输出——一个字一个字往外蹦——体验好得多。
这就像React的Suspense + 流式SSR,用户能越早看到内容越好。
import { ChatOpenAI } from "@langchain/openai";import { HumanMessage } from "@langchain/core/messages";const model = new ChatOpenAI({model: "gpt-4o-mini",openAIApiKey: process.env.OPENAI_API_KEY,streaming: true, // 启用流式});// 流式"渲染"const stream = await model.stream([new HumanMessage("详细解释React的useEffect"),]);// 像读取ReadableStream一样for await (const chunk of stream) { process.stdout.write(chunk.content); // 逐字打印}非流式 vs 流式
集成到React组件(这才是前端该干的)
上面的代码是纯TypeScript,实际项目中要集成到React组件里:
// components/AIChat.tsximport { useState } from "react";import { ChatOpenAI } from "@langchain/openai";import { HumanMessage } from "@langchain/core/messages";export function AIChat() {const [input, setInput] = useState("");const [response, setResponse] = useState("");const [isLoading, setIsLoading] = useState(false);const [error, setError] = useState<string | null>(null);const abortControllerRef = useRef<AbortController | null>(null);const handleSubmit = async () => { setIsLoading(true); setResponse(""); setError(null); try { const model = new ChatOpenAI({ model: "gpt-4o-mini", openAIApiKey: process.env.NEXT_PUBLIC_OPENAI_API_KEY, streaming: true, }); const stream = await model.stream([new HumanMessage(input)]); for await (const chunk of stream) { setResponse(prev => prev + chunk.content); } } catch (err) { setError(err instanceof Error ? err.message : "出错了"); } finally { setIsLoading(false); } };// 取消请求const handleCancel = () => { abortControllerRef.current?.abort(); setIsLoading(false); };return ( <div> <input value={input} onChange={e => setInput(e.target.value)} /> <button onClick={handleSubmit} disabled={isLoading}> {isLoading ? "思考中..." : "发送"} </button> {isLoading && <button onClick={handleCancel}>取消</button>} {error && <div className="error">{error}</div>} <div>{response}</div> </div> );}这才是前端开发者熟悉的节奏:组件 + 状态 + 错误处理 + 取消请求,和写普通React组件没区别。
第一天小结
今天讲了一件事:React组件和AI组件,思维是通的。
| 概念 | React组件 | AI组件 |
|---|---|---|
| 输入 | props | prompt |
| 状态 | useState | message history |
| 输出 | UI | 文本/工具调用 |
| 更新方式 | setState | 追加message |
| 流式渲染 | Suspense + SSR | model.stream() |
| 错误处理 | try/catch | try/catch |
| 取消操作 | AbortController | AbortController |
明天聊:怎么让AI组件"动手"?定义Tool(工具),让Agent能查天气、搜文档、调API。这就像给React组件加onClick处理函数,只是现在调用者是AI模型。
传统产品经理,正在成为下个被淘汰的“传统岗位”。
过去画原型、写 PRD、跟进度的“传统技能包”,在AI时代正迅速贬值。63% 的企业转型做 AI 产品!当下的问题不再是“要不要学 AI ”,而是“如何构建 AI 产品”。
前段时间还跟字节、腾讯的资深 AI 产品经理沟通,他们反馈:在大量招人,只要有 AI 相关的项目经验,基本都能拿到面试机会,而且领导很舍得给钱,涨薪 40-60% 很正常!
01
接下来的产品人,得卷AI能力了!
如今AI大火,行业极速发展的背后,懂AI 产品人才却严重稀缺。这不是要你转技术岗,而是要掌握构建 AI 产品的核心方法:
- 如何将你的领域知识,转化为 AI 产品的核心竞争力?
- 如何用 AI 技术实现你的产品需求?
- 如何设计真正懂用户的 AI 交互体验?
- ……
懂AI,就是产品经理的“救命稻草”!
风口之下,与其焦虑被行业淘汰
不如先人一步享受AI技术带来的红利!
我把AI产品经理的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
(不限年龄!不限岗位!没有代码基础也能学!)
🎁现在扫码,完课还送:
《AI产品面试题库》《AI大模型应用案例集》
02
掌握技术+实战,快速转型!
想成为一名卓越的AI大模型产品经理,需要从技术、到项目实战的全方位转型指南!
**1)**AI产品应用原理解析,产品经理也能听懂!
对于产品经理来说,如果你不懂技术,做不了业务和AI大模型技术衔接、定义不了数据需求,是没法完整的落地一个产品的!
本次课程,专门面向产品经理人群,解析当下最热门的AI产品应用的必备的「大模型」、「多模态」的实际应用和算法原理!解析AI产品应用技术,积累大模型能力!简单易懂,不需要会代码,小白也能掌握!
- 大模型微调:掌握主流大模型(如DeepSeek、Qwen等)的微调技术,针对特定场景优化模型性能。学习如何利用领域数据(如制造、医药、金融等)进行模型定制
- AI Agent智能体搭建:学习如何设计和开发AI Agent,实现多任务协同、自主决策和复杂问题解决。构建垂类场景下的智能助手产品(如制造业中的设备故障诊断Agent、金融领域的投资分析Agent等)
2)超全行业案例解析!
课程详细讲解现阶段,大模型在各个行业和领域的应用现状!包括:零售与电商、教育、医疗、泛娱乐、法律等等10大行业!
详细讲解案例的思路、应用场景,以及背后的技术原理、核心技术!揭秘各个行业、场景的真实现状,和未来产品的发展与机遇!
可以说,讲解完一个案例,就能积累一个AI产品实践的经验!
课程中所涉及到的实战项目,都可以直接在自己的工作中使用,让自己的产品/项目有可借鉴的成功案例!
3)AI产品经理求职专项辅导
课程中会系统的帮助大家拆解字节、腾讯、百度等大厂AI PM岗位JD关键词,掌握AI PM高频面试题型与回答框架;展示 AI 相关能力的关键技巧:Prompt设计、模型评估、A/B测试、成本意识、与算法/工程协作经验;
- To B类AI产品经理:突出“行业理解 + 技术落地 + 商业闭环”能力的简历结构设计,展示项目成果;从客户需求洞察到技术方案设计,展现端到产品思维;如何评估To B AI产品的可行性、客户付费意愿与实施成本
- To C类AI产品经理:拆解头部公司岗位JD,将过往尽力转化为AI产品叙事逻辑;从行业趋势、产品设计题、案例分析&数据分析题、技术理解边界等全流程辅导面试;避免无效海投、锁定最适合的AI产品岗位;
03
本次课程,全程直播讲解,能直接对话大佬和专业助教,不懂就问,超详细的案例,小白也能轻松get!
完课后,还赠送《AI产品经理面试题库》、《AI大模型应用案例集》!不断更新中……
适合人群:
- 想转型AI产品经理、AI项目管理专家、AI产品解决方案等岗位
- 想进行AI产品创业的创业者
- 想成为制作AI产品的程序员
- 想利用AI解决企业问题的管理岗
- 想在AI方向寻找就业方向的毕业生
- AI方向前景广阔、待遇好!
目前,很多产品人已经通过完整学习拿到大厂高薪offer,收入嗷嗷涨!
我把AI产品经理的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~