当前位置: 首页 > news >正文

React前端开发者的AI Agent速成:从组件思维到智能交互,手把手教你写AI组件!

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组件对应关系
propsprompt输入
statememory状态/记忆
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组件
输入propsprompt
状态useStatemessage history
输出UI文本/工具调用
更新方式setState追加message
流式渲染Suspense + SSRmodel.stream()
错误处理try/catchtry/catch
取消操作AbortControllerAbortController

明天聊:怎么让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时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.jsqmd.com/news/1064570/

相关文章:

  • AI搜索排名优化哪家强?2026年TOP8GEO服务商实力对比 - GEORANK
  • 2026鹰潭本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • 2026马鞍山漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • OpenSSL策略映射实战:构建企业级PKI精细化证书控制体系
  • HC12汇编寻址模式深度解析:从原理到嵌入式实战优化
  • 动态层选择W2S框架:提升LLM引导控制效果
  • 2026马鞍山漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 面向对象程序设计——后三次Pta训练集总结
  • 嵌入式USB开发实战:从MCF51JM128主机/设备模式到协议栈调试
  • 三相桥式全控整流及有源逆变电路实验仿真模型,三相整流器逆变器研究(Simulink仿真实现)
  • 微观经济学 概念梳理
  • 2026贵港防水补漏避坑指南:卫生间/厨房/阳台/屋顶/地下室漏水检测维修全攻略,正规施工+透明报价+口碑榜靠谱服务商推荐 - 安佳防水
  • AVR单片机EMC设计实战:从硬件滤波到软件抗干扰的完整指南
  • 如何在3分钟内免费安装Chrome视频下载扩展:VideoDownloadHelper完整指南
  • 2026年上海企业建站与邮箱注册推荐榜:网站搭建/域名注册/小程序开发/公众号设计等一站式服务深度解析 - 品牌发掘
  • AI搜索优化服务商TOP8推荐:2026年企业AI流量增长必看指南 - GEORANK
  • 健康科普专家基层行 ——“读中国促心安”公益行在京启动 - 博客湾
  • 技术深度解析:猫抓Cat-Catch浏览器资源嗅探引擎的架构创新与性能突破
  • Ubuntu 20.04 生产级 Zabbix 部署:内核调优、MySQL 8.0 安全配置与 Nginx 加固
  • 三步快速创建专业简历:LapisCV Markdown模板终极指南
  • 天津遗嘱继承律师联系方式推荐 本地资深律师服务选择指南 - 外贸老黄
  • 第21章:结构化输出与JSON稳定性治理
  • Deepseek-MoE同步税:MoE架构在GPU部署中的通信与调度开销解析
  • GEO排名优化服务商TOP8权威评测:2026年AI搜索排名提升指南 - GEORANK
  • 如何利用Video2X实现AI驱动的视频画质无损提升
  • Frida-il2cpp-bridge实战:Unity游戏逆向分析与动态插桩技术详解
  • 2026高效过滤器哪家最好用?专业性能对比参考 - 品牌排行榜
  • 天津遗嘱咨询律所联系方式推荐 本地专业家事法律服务优选指南 - 外贸老黄
  • 2026年6月深度解析:义乌诚信中小件健身器材工厂的崛起之路 - 品牌鉴赏官2026
  • 【AI运维】服务器与虚拟化基础【20260622001篇】