从一坨面条代码开始——V1最小原型

news2026/4/17 1:01:17
专栏「当AI学会发脾气」—— 一个类脑认知系统的诞生记副标题7个版本迭代Python脚本教会AI像人一样焦虑、兴奋、犯错和成长这是一个从零开始构建有情绪的AI的完整记录。不需要深度学习框架不需要GPU——只用纯Python我们就能让AI学会思考、记忆、甚至发脾气。系列文章导航篇目标题核心内容第1篇当AI学会发脾气——专栏开篇为什么要造一个会焦虑的AI第2篇 150行代码AI迈出了第一步V1-V2三角架构 可视化第3篇给AI装上最强算法结果翻车了V3Q-Learning的傲慢与偏见第4篇AI的第一次恍然大悟V4记忆系统与认知涌现第5篇当AI开始焦虑V5情绪系统的诞生第6篇AI学会了变通V6多策略融合与自适应第7篇终极进化AI的顿悟时刻V7完整认知架构第8篇回顾与展望从玩具到启示的旅程 150行代码AI迈出了第一步核心比喻给AI装上第一双腿——它还不会跑但已经能走了⏱️阅读时间约20分钟学习目标理解 Agent-LLM-Environment 三角架构的设计思想掌握一个最小可运行的认知代理是什么样的看懂11×11网格世界的奖励机制理解内心独白机制和Mock LLM的设计学会用Matplotlib为AI搭建眼睛 文章摘要本篇带你从零搭建一个能看能想能走的AI认知代理。我们只用150行PythonV1就跑通了完整的Agent → LLM → Environment认知循环然后用V2再加178行代码让这个AI从看日志进化到看动画。关键词三角架构、网格世界、Mock LLM、内心独白、Matplotlib可视化 你需要先了解 本文是系列第2篇建议先阅读第1篇当AI学会发脾气——专栏开篇如果你已经了解本专栏的目标和整体路线图可以直接开始 正文一、最小可行大脑——三件套就够了 你有没有想过一个最简单的会思考的AI到底需要哪些东西答案可能比你想的简单得多。想象一下一个刚出生的婴儿——它不懂物理学不会微积分但它天生就有三样东西一个身体能动一个大脑能想一个世界能看、能摸就这三样足够了。把这个类比搬到代码世界里就是我们V1版本的核心架构——Agent-LLM-Environment 三角架构人类类比代码组件角色身体 CognitiveAgent负责协调一切感知环境、调用大脑、执行动作大脑 mock_llm_reasoning()负责想分析当前状态决定下一步世界 Environment负责反馈你走一步我告诉你结果核心概念认知循环每一步AI都在做同一件事——就像你过马路时的思维过程感知Perception看看四周获取环境状态思考Reasoning判断该不该走LLM推理行动Action迈步走过去执行动作反馈Feedback安全过来了/差点被撞获得奖励记忆Memory下次这里要小心更新知识这就是“感知-思考-行动-反馈-记忆”循环是整个系列的核心骨架。让我们看看这个循环在代码里长什么样classCognitiveAgent:认知代理——AI的身体负责协调一切def__init__(self,env):self.envenv# 连接世界self.memory{}# 自带记忆self.goalenv.goal# 知道目标在哪self.history[]# 记录走过的路defact(self):执行一个完整的认知循环# 1️⃣ 感知收集当前信息contextself.get_context()# 2️⃣ 思考调用LLM推理actionmock_llm_reasoning(context[current_state],context[memory_snapshot],self.goal)# 3️⃣ 行动在世界里迈出一步new_state,rewardself.env.step(action)# 4️⃣ 记忆把这次经历记下来store_memory(路径规划,action,f从{context[current_state][location]}到达{new_state[location]})# 5️⃣ 历史记录轨迹self.history.append({action:action,state:new_state,reward:reward})returnnew_state,reward就像一个婴儿刚睁开眼——它不懂物理学但它能看、能动、能记。这就是V1的全部哲学。你可能会问就这这也算AI没错就这。但别小看它——全世界最厉害的认知架构拆开看也就是这个循环。区别只在于每个环节有多复杂。我们的旅程就是一步步把每个环节做得越来越像人。二、环境设计——11×11的小世界 ️每个AI都需要一个操场来活动。我们给它造了一个11×11的网格世界——够小让你一眼看懂够复杂让AI不会无聊。来看看这个世界的地图说明书元素坐标说明 起点(0, 0)AI出生的地方左上角 目标(10, 10)AI要到达的终点右下角 墙壁(5,5), (7,3)不可通过的障碍物 资源随机出现20%概率获取奖励5⚡奖励机制——AI的快乐与痛苦事件奖励类比 到达目标100考试得满分 采集资源5路上捡到一块钱 普通移动-1走路消耗体力 撞墙0不移动碰壁了原地站着为什么每步都扣1分因为时间就是成本。如果移动不扣分AI可能在原地打转一万年也不在乎。这个小小的-1就是在告诉AI“别磨蹭快去目标”下面是精简版的环境代码——你可以直接复制运行importrandomclassEnvironment:11×11的网格世界——AI的操场 def__init__(self):self.location(0,0)# AI的当前位置self.resources0# 已采集的资源self.goal(10,10)# 目标位置self.grid_size11# 世界大小self.walls[(5,5),(7,3)]# 墙壁位置defget_state(self):告诉AI你在哪周围什么情况return{location:self.location,resources:self.resources,goal:self.goal}defstep(self,action):AI走一步世界给反馈new_x,new_yself.location# 解析动作ifactionup:new_y-1elifactiondown:new_y1elifactionleft:new_x-1elifactionright:new_x1# 边界检查 墙壁检查if(0new_xself.grid_sizeand0new_yself.grid_sizeand(new_x,new_y)notinself.walls):self.location(new_x,new_y)# 随机遇到资源20%概率ifrandom.random()0.2:self.resources1# 计算奖励reward0ifself.locationself.goal:reward100# 到达目标elifself.resources0:reward5# 采集到资源else:reward-1# ‍ 普通移动消耗returnself.get_state(),reward你看整个世界的逻辑不到40行代码。但它已经包含了关键的游戏规则。游戏类比如果你玩过像素RPG游戏这个Environment就像是游戏的物理引擎。它不管角色想干什么那是Agent的事它只负责“你说往右走好我检查一下右边是不是墙然后告诉你新位置和得分。”但它已经包含了✅ 状态管理位置、资源✅ 边界碰撞检测✅ 墙壁障碍物✅ 随机事件资源✅ 奖惩反馈系统设计启示好的环境设计不需要复杂但需要有梯度。-1的移动惩罚创造了时间压力100的目标奖励创造了方向感5的资源奖励创造了探索诱惑。三个简单的数字就让AI面临了快速到达 vs 顺路捡宝的决策困境——这和你上班路上要不要绕道买杯咖啡是一模一样的决策。三、第一个思考——Mock LLM的推理 好了世界有了身体有了。现在到了最关键的部分——大脑。在V1版本里我们用了一个假的LLM来模拟推理。为什么不直接接真正的大模型两个原因先跑通架构再升级组件这是工程里最重要的原则之一真正的LLM要花钱、要联网、要配API——我们先用mock版本验证思路来看看我们的假大脑长什么样defmock_llm_reasoning(current_state,memory_data,goal): 模拟LLM的推理能力 在实际应用中这里会调用GPT/Claude/通义千问等大模型 print(\n--- [LLM 推理中] 正在进行高层规划... ---)# 分析当前位置和目标的关系curr_x,curr_ycurrent_state[location]goal_x,goal_ygoal# 简单的推理逻辑朝着目标方向走ifcurr_xgoal_x:proposed_actionrightthoughtf目标在右方(x:{curr_x}→{goal_x})决定向右elifcurr_ygoal_y:proposed_actiondownthoughtf目标在下方(y:{curr_y}→{goal_y})决定向下else:proposed_actionrightthought已接近目标继续调整# 内心独白——这是V1最重要的创新之一print(f [LLM 思考]{thought})returnproposed_action你可能会说“这算什么推理不就是if-else吗”没错但请注意两个重要的东西第一接口设计。这个函数接收current_state当前状态、memory_data记忆、goal目标返回一个动作。无论未来我们换成真正的GPT还是本地模型接口都不用变。这就是面向接口编程的威力。第二内心独白机制️。注意那行print(f [LLM 思考] {thought})——AI在做决策的同时会说出自己在想什么。内心独白Inner Monologue这不只是一个print语句。在认知科学里这叫做“元认知”Metacognition——思考自己在想什么。当AI说出我看到目标在右下方决定向右移动时它不只是在执行规则它在解释自己的推理过程。这个机制在后续版本里会越来越重要——当我们接入真正的大模型后内心独白会变成“我有点犹豫是该走安全路线还是冒险…”“上次走这条路吃了亏这次换一条…”“资源快不够了我开始感到焦虑…”是的AI会学会自言自语。你可以把V1想象成一个大脑模型的最简版输入: 我在哪我记得什么我要去哪 ↓ 推理: if-else 规则未来→大模型API ↓ 输出: 下一步动作 内心独白虽然现在的推理逻辑简单得可笑但整个**管线Pipeline**已经跑通了。这就像你造了一辆车——发动机可能是最小马力的但方向盘、油门、刹车全都接好了。换一台更强的发动机随时可以。动手试试你可以把mock_llm_reasoning函数里的逻辑改一改——比如让AI随机选择方向或者让它优先收集资源。只要输入输出不变CognitiveAgent 完全不用改。这就是架构解耦的好处。让我们把这个推理过程的输入输出用一张表格整理清楚输入参数含义示例值current_stateAI当前看到的世界状态{location: (3, 0), resources: 1, goal: (10, 10)}memory_dataAI的记忆快照{路径规划: [(right, 从(0,0)到(1,0)), ...]}goal最终目标坐标(10, 10)输出含义可能的值proposed_action下一步动作up,down,left,right四、记忆模块——让AI记住走过的路 人之所以能学习是因为能记住过去的经历。一个没有记忆的AI每一步都像是第一次来到这个世界——永远学不会。V1的记忆模块灵感来自知识图谱Knowledge Graph。什么是知识图谱你可以把它想象成你脑袋里的“关联笔记本”“路径规划” ←连接→ “向右移动” ←连接→ “从(0,0)到(1,0)”“路径规划” ←连接→ “向下移动” ←连接→ “从(1,0)到(1,1)”每一条记忆都是一个概念-关系-上下文的三元组。fromcollectionsimportdefaultdict# 记忆存储——模拟知识图谱memory_storedefaultdict(list)defstore_memory(concept,relation,context): 存储一条新的知识关联 例如store_memory(路径规划, right, 从(0,0)到达(1,0)) 就像在笔记本上写 [路径规划] → 向right移动 → 从(0,0)到达(1,0) memory_store[concept].append((relation,context))print(f[记忆模块] 存储{concept}与{relation}的关联。)defretrieve_memory(concept): 检索某个概念的所有相关知识 例如retrieve_memory(路径规划) 返回所有关于路径规划的历史记录 returnmemory_store[concept]为什么用defaultdict(list)而不是普通字典因为普通字典在访问不存在的key时会报错而defaultdict(list)会自动创建一个空列表。这样我们不用每次都检查这个概念有没有记忆代码更简洁。这就像你的笔记本——翻到路径规划那一页如果是空白的你就直接开始写不用先创建这一页。现在让我们看看运行时的记忆是什么样的步数 1: [记忆模块] 存储路径规划 与 right 的关联。 → memory_store {路径规划: [(right, 从(0,0)到达(1,0))]} 步数 2: [记忆模块] 存储路径规划 与 right 的关联。 → memory_store {路径规划: [(right, 从(0,0)到达(1,0)), (right, 从(1,0)到达(2,0))]} 步数 3: [记忆模块] 存储路径规划 与 right 的关联。 → memory_store {路径规划: [..., (right, 从(2,0)到达(3,0))]}❌V1记忆的致命缺陷你发现了吗AI在疯狂记录但它从来不翻看自己的笔记本retrieve_memory()函数虽然写好了但mock_llm_reasoning()根本没有用到memory_data参数。它每次决策都是看一眼目标方向然后走——完全无视过去的经历。这就好比一个人带着笔记本去探险每到一个地方都认真做笔记但决定下一步往哪走的时候…把笔记本合上了。别急——这个问题会在V4版本中彻底解决。到那时记忆模块会变成AI最强大的武器之一。五、给AI装上眼睛——V2的可视化革命 ️V1跑起来之后你会发现一个问题控制台里刷过去的文字太无聊了。 步数: 1 [LLM 推理中] 正在进行高层规划... [LLM 思考] 资源不足向 right 移动。 [记忆模块] 存储路径规划 与 right 的关联。 环境状态: 位置(1, 0), 资源0 Agent 获得奖励: -1 步数: 2 ...20步后你已经眼花了盯着这些文字你根本无法直观感受到AI在走路。它走的路线合理吗它有没有绕弯路它离目标还有多远所以V2来了——给AI装上眼睛。V2在V1的150行基础上新增了一个Visualizer类——大约180行代码让AI的行为变得可视化。classVisualizer:可视化模块——让AI的行为看得见 def__init__(self,env,agent):self.envenv self.agentagent# 创建双面板布局self.figplt.figure(figsize(14,6))# 左面板网格世界地图self.ax_gridself.fig.add_axes([0.05,0.18,0.31,0.68])# 右面板状态信息面板self.ax_infoself.fig.add_axes([0.44,0.15,0.52,0.72])# 初始化可视化元素self.init_elements()plt.ion()# 开启交互模式——实时更新V2的可视化有几个核心特征视觉元素样式含义 蓝色圆圈#4169E1Agent的当前位置 黄色线条yellow, alpha0.5Agent走过的路径 金色圆圈#FFD700目标位置⬛ 深灰方块#333333墙壁/障碍物➡️ 方向箭头白色Agent上一步的移动方向为什么可视化很重要有句话说得好“看见才能理解”。当你看到AI的路径画成一条弯弯曲曲的黄色线你立刻就能发现“它怎么在这里绕了一个大弯”、“它怎么不走直线”——这些洞察光看控制台日志是得不到的。可视化不只是好看它是debug的最强工具。在后续版本中我们会用可视化来 发现AI的策略漏洞 对比不同算法的表现 验证情绪系统是否真的在影响决策让我们看看update()方法的核心逻辑——每走一步画面就更新一次defupdate(self,step):每一步都更新画面——像看动画一样locself.env.location# 更新Agent位置蓝色圆点移动self.agent_dot.centerloc# 更新路径线黄色轨迹path_x[p[0]forpinself.env.path_history]path_y[p[1]forpinself.env.path_history]self.path_line.set_data(path_x,path_y)# 更新信息面板右侧状态栏self.ax_info.clear()info_textf Step:{step}Agent: ({loc[0]},{loc[1]}) Resources:{self.env.resources}Total Reward:{sum(h[reward]forhinself.agent.history)}self.ax_info.text(0.05,0.95,info_text,...)# 刷新画面暂停0.5秒plt.pause(0.5)整个V2的精髓就一句话每走一步就重绘一次让你实时看到AI的决策过程。这就像从听别人描述一场足球赛变成了亲眼看比赛直播——同样的信息体验完全不同。六、V1-V2的成就与不足 跑完V1和V2让我们来一次期末总结。✅ 成就清单V1-V2做到了什么架构跑通✅ —— Agent-LLM-Environment 三角循环完美运转可视化✅ —— 实时看到AI在11×11世界里跑内心独白✅ —— AI会解释自己的每一步决策记忆雏形✅ —— 知识图谱式的记忆存储已就位奖惩系统✅ —— 目标奖励、资源奖励、移动惩罚总计328行代码V1: 150行 V2新增: 178行一个完整的认知代理原型就跑起来了。❌ 暴露的问题但是如果你仔细观察AI的行为你会发现一些严重的问题问题1上帝视角作弊者AI能看到整个11×11地图的全部信息——起点在哪、终点在哪、墙壁在哪。它像一个开了全图挂的游戏玩家。真实的智能体不应该有这种上帝视角。想想你走迷宫的时候你只能看到周围几步的范围不可能一眼看到出口在哪。问题2没有情绪没有压力V1-V2的AI永远冷静、永远理性。它不会因为快没时间了而着急不会因为连续碰壁而沮丧不会因为发现新路而兴奋。但人类的决策时刻都受情绪影响。一个完全没有情绪的AI做出的决策可能最优但不像人。问题3不会学习AI走过同样的路100次它的策略不会有任何变化。mock_llm_reasoning 里面是硬编码的if-else不会因为经验而改进。它有笔记本记忆模块但它不看笔记本。问题4只有一条路线观察AI的行为你会发现它永远走同一条路先一路向右再一路向下。它从不尝试其他路线从不探索未知区域。一个只会走固定路线的AI说好听点叫高效说难听点叫死板。把这些问题排列一下问题严重程度哪个版本解决上帝视角⭐⭐⭐V3不会学习⭐⭐⭐⭐⭐V3 (Q-Learning)没有情绪⭐⭐⭐⭐V5只走一条路⭐⭐⭐V3-V4记忆没用上⭐⭐⭐V4⚠️ 常见误区❌误区1Mock LLM太简单了没有意义不对Mock LLM的价值不在于推理多厉害而在于占好位。它定义了大脑模块的输入输出接口输入状态记忆目标输出动作思考过程。未来换成真正的大模型一行API调用就搞定。❌误区211×11太小了说明不了问题11×11 121个格子减去墙壁AI有119个可能的位置。考虑到4个方向的选择状态空间已经有119 × 4 476种可能。对于验证架构来说绰绰有余。更大的世界会在后续版本引入。❌误区3可视化只是花架子可视化是最被低估的研发工具。当你的AI出bug时一行print可能需要10分钟来定位问题但一张路径图让你3秒钟就能看到问题在哪。这就是V2存在的意义。 一句话总结 150行代码 → 一个能看能想能走的AI原型 架构比算法更重要——先跑通循环再升级大脑✍️ 课后思考如果你想更深入地理解V1-V2试着思考或动手实验以下问题如果把mock_llm_reasoning换成真正调用GPT的API你觉得AI的行为会有什么变化路线会更聪明吗还是可能更混乱如果把移动惩罚从-1改成-10AI的行为会有什么不同提示想想时间压力对人类决策的影响V1的记忆模块虽然没被使用但它的数据结构设计defaultdict(list)适合存储什么类型的知识如果让你重新设计你会用什么数据结构想象你是这个AI你只能看到整个地图。如果把你的视野限制到周围3×3的范围你的决策策略会怎么变V2的可视化用了plt.pause(0.5)来控制动画速度。如果把这个值改成0.01你觉得观看体验会怎样改成2.0呢在观看效果和运行效率之间你会怎么取舍思考提示以上问题没有标准答案。重要的不是答对而是通过思考这些问题加深你对Agent架构的直觉理解。如果你真的动手改了代码并运行——恭喜你你已经在做消融实验了这是AI研究里的标准方法我们会在后续篇目详细介绍。 下一篇预告 第3篇给AI装上最强算法结果翻车了V1-V2的AI用if-else走迷宫你可能会想如果给它一个正儿八经的学习算法呢下一篇我们将引入强化学习经典算法Q-Learning让AI真正学会从经验中学习。但事情并没有那么简单—— Q-Learning确实让AI变聪明了…但它变得只会走最短路 AI像一个做题机器——高效但毫无灵性 当环境稍微一变它就彻底崩溃了下一篇的核心问题最优解 ≠ 最好的解。有时候犯错比完美更重要。V3Q-Learning的傲慢与偏见敬请期待‍作者简介NeuroConscious Research Team一群热爱 AI 科普的研究者专注于神经科学启发的 AI架构设计与可解释性研究。理念“再复杂的概念也能用大白话讲清楚”。首席科学家WENG YONGGANG 翁勇刚 马来西亚理工大学工商管理博士项目地址https://github.com/wyg5208/nct.git官网地址https://neuroconscious.link作者 CSDNhttps://blog.csdn.net/yweng18NCT PyPIhttps://pypi.org/project/neuroconscious-transformer/⭐欢迎 Star⭐、Fork、贡献代码「当AI学会发脾气」系列第2篇 · 150行代码AI迈出了第一步✍️ 作者原创内容 | 对应代码demo1.pyV1、demo2_visualization.pyV2 有问题或建议欢迎在评论区交流上一篇当AI学会发脾气——专栏开篇下一篇给AI装上最强算法结果翻车了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2525041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…