本地AI小镇Alicization-Town部署指南:从零搭建多智能体模拟环境

news2026/5/16 14:02:46
1. 项目概述与核心价值最近在社区里看到不少朋友在讨论一个名为“Alicization-Town”的项目它源自GitHub上的一个仓库ceresOPA/Alicization-Town。这个名字听起来有点二次元但别被它迷惑了这其实是一个相当硬核的、面向开发者和技术爱好者的本地化AI应用项目。简单来说它旨在让你在自己的电脑上搭建一个功能相对完整的、类似“AI小镇”或“数字居民社区”的模拟环境。这里的“居民”是由大型语言模型驱动的智能体它们可以在一个虚拟的城镇场景中自主交互、对话甚至发展出简单的“社会关系”。这个项目的核心吸引力在于它的“本地化”和“可定制性”。它不依赖于OpenAI或Claude的API这意味着你的所有对话数据、角色设定都运行在你自己的硬件上隐私和安全得到了最大程度的保障。对于想要深入研究智能体模拟、多智能体系统或者单纯想打造一个独一无二的私人AI角色扮演环境的朋友来说Alicization-Town提供了一个绝佳的起点和框架。它把那些听起来很高深的“多智能体协同”、“环境模拟”、“记忆与规划”等概念封装成了一个可以实际运行和把玩的“玩具箱”。我自己花了一周多的时间从零开始部署、配置再到尝试修改角色和规则整个过程就像在拼装一个复杂的乐高模型既有挑战也有巨大的成就感。接下来我就把自己趟过的路、踩过的坑以及对这个项目技术内核的理解毫无保留地分享出来。无论你是刚接触AI应用的小白还是有一定经验的开发者相信都能从中找到有价值的信息。2. 技术架构与核心组件拆解要玩转Alicization-Town不能只停留在双击运行一个exe文件的层面。理解其背后的技术架构是后续一切自定义和问题排查的基础。这个项目可以看作是一个精心设计的“多层蛋糕”每一层都有其特定的职责。2.1 核心分层从界面到模型整个系统大致可以分为四层表现层 (Presentation Layer):这是用户直接交互的部分。Alicization-Town通常提供了一个Web界面让你可以通过浏览器来观察小镇的全局状态、查看特定角色的对话日志、甚至进行手动干预。这个前端界面一般由HTML、CSS和JavaScript构建通过API与后端服务通信。应用逻辑层 (Application Logic Layer):这是整个小镇的“大脑”和“调度中心”。它包含了最核心的模拟引擎。这个引擎负责环境状态管理维护一个虚拟的时钟、地图可能包含地点如“咖啡馆”、“公园”、“住宅”、以及所有角色的当前状态位置、情绪、目标等。事件驱动与调度决定在每一个模拟步进比如游戏里的“一天”或“一小时”中哪个角色该执行什么动作。是去工作还是去社交这个决策逻辑是智能体行为的核心。记忆与上下文管理为每个智能体维护一个“记忆流”记录它过去的对话、观察到的事件、以及达成的目标。这是智能体能够进行连贯对话和做出合理决策的关键。智能体层 (Agent Layer):这一层是每个“数字居民”的独立“小脑”。每个智能体都是一个独立的程序实例或线程它包含角色设定 (Persona):一个详细的文本描述定义了角色的姓名、年龄、职业、性格、背景故事、口头禅等。这是智能体行为的“初始人格”。目标系统 (Goal System):短期和长期的目标比如“今天写完一份报告”、“和邻居成为朋友”。目标会驱动智能体的日常行为选择。决策模块基于当前环境状态、自身记忆、角色设定和目标决定下一步要执行的动作动作类型和要说的话对话内容。这个决策过程最终会转化为一个给大语言模型的提示词。模型服务层 (Model Service Layer):这是整个系统的“算力心脏”。所有智能体的决策、对话生成都依赖于本地运行的大型语言模型。Alicization-Town项目本身不包含模型它需要你自行部署一个兼容OpenAI API格式的本地模型服务。常见的选择是使用Ollama、LM Studio或者text-generation-webui来在本地运行诸如Llama 3、Qwen、Mistral等开源模型并将它们的服务接口“伪装”成OpenAI API。提示模型的选择直接决定了小镇的“智力水平”和运行速度。一个70亿参数的模型可能在消费级显卡上就能流畅运行但智能体的对话深度和逻辑性会受限而一个700亿参数的模型需要强大的硬件但能带来更惊艳的交互体验。你需要根据自己的硬件在“智商”和“速度”之间做出权衡。2.2 关键技术与通信流程理解了分层我们再看数据是如何流动的。一个典型的交互循环如下模拟步进触发你点击前端的“下一步”按钮或者系统自动计时器触发。环境更新应用逻辑层更新虚拟时间并收集所有智能体的最新状态如上一步的结果。智能体决策对于小镇中的每个智能体通常是并行或按优先级顺序引擎为该智能体准备一个提示词 (Prompt)。这个提示词是工程上的精华它通常包含角色设定、当前环境描述时间、地点、周围其他角色、近期记忆、当前目标。将这个提示词通过HTTP请求发送到你本地运行的模型服务API地址通常是http://localhost:11434/v1/chat/completions如果你用Ollama。模型推理本地大语言模型接收提示词理解上下文然后生成一段文本作为响应。这段文本需要被设计成能被引擎解析的格式例如动作去咖啡馆\n对话嘿老板来杯 usual 的拿铁。动作解析与执行应用逻辑层解析模型返回的文本提取出“动作”和“对话”部分。然后它根据动作类型更新智能体的状态如位置变为“咖啡馆”并将对话内容广播给场景内或在同一地点的其他智能体。记忆更新将此轮交互的关键信息谁在哪里做了什么说了什么写入该智能体的长期记忆库中。过于久远或琐碎的记忆可能会被压缩或遗忘。前端渲染所有变化通过API传递给前端界面更新地图上的角色位置并在对话日志中显示新的对话内容。这个循环周而复始一个动态的、充满故事性的AI小镇就“活”了过来。3. 从零开始的本地部署实战理论讲得再多不如亲手跑起来。下面是我在Windows系统上使用Ollama作为模型服务的一次完整部署记录。你可以完全跟着这个流程走。3.1 基础环境准备首先你需要确保你的电脑具备基本的开发环境。安装Python前往Python官网下载并安装Python 3.10或3.11版本。安装时务必勾选“Add Python to PATH”。安装完成后打开命令提示符CMD或 PowerShell输入python --version和pip --version确认安装成功。安装Git从Git官网下载安装。这是克隆项目代码必备的工具。安装CUDA可选但强烈推荐如果你有一张NVIDIA显卡并且希望模型推理速度更快你需要安装对应版本的CUDA Toolkit和cuDNN。这步稍微复杂建议参考NVIDIA官方文档。安装后可以通过nvidia-smi命令验证。如果没有显卡或不想折腾可以纯用CPU运行只是速度会慢很多。3.2 部署本地大语言模型服务以Ollama为例Ollama是目前最易用的本地大模型运行框架之一它帮你处理了模型下载、加载和提供API的所有脏活累活。下载安装Ollama访问Ollama官网下载对应操作系统的安装包直接安装即可。拉取模型安装完成后打开一个新的终端CMD/PowerShell使用ollama run命令拉取你想要的模型。对于初次尝试建议从较小的模型开始比如7B参数的版本ollama run llama3.2:1b这个命令会自动下载llama3.2:1b模型并进入交互式对话。第一次运行会下载模型需要一定时间取决于你的网速。验证API服务Ollama在后台会自动启动一个API服务默认地址是http://localhost:11434。你可以通过一个简单的curl命令测试curl http://localhost:11434/api/generate -d { model: llama3.2:1b, prompt: Hello, world! }如果返回一串包含生成文本的JSON说明服务运行正常。保持这个终端窗口打开Ollama服务会一直运行。实操心得模型选择是第一个关键决策点。llama3.2:1b模型很小速度快但能力有限生成的内容可能比较浅显。如果你有8GB以上显存可以尝试llama3.2:3b或qwen2.5:3b。如果显存达到16GB或以上llama3.1:8b或qwen2.5:7b会带来质的飞跃。用ollama list可以查看已下载的模型。3.3 获取与配置Alicization-Town项目现在让我们把小镇的“代码”搬回家。克隆项目仓库打开一个新的终端找一个你喜欢的目录执行git clone https://github.com/ceresOPA/Alicization-Town.git cd Alicization-Town创建Python虚拟环境强烈推荐这能避免项目依赖污染你的系统Python环境。python -m venv venv激活虚拟环境Windows (CMD):venv\Scripts\activate.batWindows (PowerShell):venv\Scripts\Activate.ps1可能需要先执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser来允许脚本执行Mac/Linux:source venv/bin/activate激活后命令行提示符前会出现(venv)字样。安装项目依赖项目根目录下通常会有一个requirements.txt文件。pip install -r requirements.txt如果安装过程报错通常是某些包版本冲突或缺少系统编译工具。常见的解决方法是升级pippip install --upgrade pip对于Windows可能需要安装Microsoft C Build Tools。可以尝试逐个安装主要依赖如pip install fastapi uvicorn sqlalchemy等。3.4 关键配置详解项目跑起来之前必须正确配置告诉它你的模型服务在哪里以及小镇的基本规则。找到配置文件配置文件通常是一个.env文件或config.yaml/config.json文件。在项目根目录或config子目录下仔细寻找。我们假设它叫.env.example或config.example.yaml你需要复制一份并重命名去掉.example。配置模型API端点这是最关键的配置项。打开配置文件寻找类似OPENAI_API_BASE,MODEL_API_URL, 或LLM_PROVIDER的字段。你需要将其指向你的Ollama服务。对于Ollama配置通常如下# 在 config.yaml 中 llm: provider: openai # 虽然用Ollama但协议兼容OpenAI api_base: http://localhost:11434/v1 # 注意是 /v1 路径 model: llama3.2:1b # 你实际使用的模型名 api_key: ollama # Ollama不需要真密钥但有些框架要求非空填任意字符串即可或者在一个.env文件中OPENAI_API_BASEhttp://localhost:11434/v1 OPENAI_API_KEYollama DEFAULT_MODELllama3.2:1b重要api_base的末尾一定要有/v1因为Ollama的OpenAI兼容端点是在这个路径下的。配置其他参数小镇规模寻找agent_count,max_agents之类的参数初次运行建议设置为3-5个减少负载和复杂度。模拟速度寻找step_interval,time_per_step等参数控制模拟步进的速度。可以设为5-10秒一步方便观察。记忆长度memory_limit,context_window等控制每个智能体保留多少条近期记忆。初始可以设为10-20。3.5 启动与初步验证配置完成后激动人心的时刻到了。启动后端服务在项目根目录下根据项目说明启动服务。常见命令是python main.py或者uvicorn app.main:app --reload --host 0.0.0.0 --port 8000观察终端输出如果没有报错并看到类似“Application startup complete.”或“Running onhttp://0.0.0.0:8000”的信息说明后端启动成功。启动前端界面如果分离有些项目前后端分离前端需要单独启动。进入frontend或web目录执行npm install npm run dev如果项目是单体应用后端可能已经集成了前端服务直接访问即可。访问小镇打开浏览器访问终端提示的地址通常是http://localhost:8000或http://localhost:3000。你应该能看到一个控制面板和一个小镇视图。进行第一次模拟在界面上找到“开始模拟”、“下一步”或“Step”按钮点击它。观察后端终端的日志你会看到它向http://localhost:11434/v1/chat/completions发送请求并接收到模型的回复。前端界面上的角色状态和对话日志应该开始更新。注意事项第一次运行时由于需要初始化数据库、加载角色数据可能会比较慢。如果前端一直加载或报错重点检查后端终端是否有错误日志以及浏览器开发者工具F12控制台中的网络请求是否成功特别是访问后端API的请求。4. 深度定制打造你的专属小镇让默认的小镇运行起来只是第一步。Alicization-Town的真正乐趣在于定制你可以创造独一无二的角色和世界规则。4.1 角色设定Persona的创作艺术智能体的灵魂在于其角色设定。这不仅仅是一个名字和职业而是一份详细的“人物小传”。设定文件在哪里角色设定通常以JSON或YAML文件的形式存放在data/agents/,characters/, 或personas/这样的目录下。每个文件对应一个角色。核心字段解析打开一个示例文件你会看到类似这样的结构{ name: 艾米丽, age: 28, occupation: 独立咖啡馆店主, personality: 外向、热情、富有创造力但偶尔会因追求完美而焦虑。热爱咖啡艺术和爵士乐。, background: 在城市打拼多年后用积蓄在街角开了一家名为‘回声’的小咖啡馆。希望这里成为社区温暖的连接点。, current_goal: 研发出本季度的特色新品咖啡并策划一场小型的周末爵士夜活动。, traits: [creative, friendly, perfectionist], initial_location: 咖啡馆 }personality性格和 background背景这是最重要的部分。写得越具体、越有画面感AI角色的行为就越连贯和独特。避免使用“善良”、“聪明”这种泛泛之词用具体事例或倾向来描述如“相信每个顾客的故事都值得倾听总会多问一句‘今天过得怎么样’”。current_goal当前目标这是驱动角色短期行为的核心。目标应该是具体、可操作的比如“完成财务报表”而不是“管理好财务”。traits特质一些项目会用标签化的特质来辅助决策引擎可以理解为性格的关键词。创作技巧给角色制造内在冲突一个“节俭的收藏家”一个“渴望冒险的公务员”冲突能产生更戏剧性的行为。关联角色关系在背景故事中提及其他角色如“是‘大卫’的大学同学一直暗中欣赏他的才华”。这能帮助引擎建立初始的社会连接。设定口语化表达可以在设定中加入“常用语”字段比如“catchphrases”: [‘嗯哼让我想想...’”, “‘伙计这简直太棒了’”]让对话更有辨识度。4.2 环境与规则引擎的修改小镇的物理规则和社会规则同样由你定义。地图与地点在data/locations.json或类似文件中定义了小镇的所有地点。你可以修改地点名称、描述和属性。例如增加一个“地下图书馆”或“屋顶花园”并描述其氛围“屋顶花园安静视野开阔夜晚常有萤火虫是思考和解压的好去处。” 引擎可能会让喜欢安静的角色更频繁地访问这里。动作体系引擎允许角色执行哪些基本动作如move_tosay_touse_item。查看actions.py或core/actions.md这类文件。通常不建议直接修改底层动作逻辑但你可以通过修改动作的可用性条件或效果来改变规则。例如在代码中搜索“咖啡馆”你可能会找到一条规则在“咖啡馆”地点角色有概率触发“购买咖啡”的动作。事件脚本更高级的定制是引入脚本化事件。有些框架支持在特定时间或条件下触发自定义事件。例如每周六上午在广场触发“周末市集”事件所有角色前往市集的概率增加并生成特殊的市集对话主题。这需要你阅读项目的插件或事件系统文档通常涉及编写Python函数并将其注册到事件钩子上。4.3 提示词工程优化智能体如何思考完全取决于我们发给大模型的提示词模板。这是定制化最核心、最有效的部分。找到提示词模板在项目代码中搜索prompt_templategenerate_prompt或查看prompts/目录。你会找到用于生成角色决策和对话的模板文件。解构默认模板一个典型的决策提示词模板可能长这样你是一个生活在虚拟小镇的居民。以下是你的信息 [角色设定信息] 当前时间是[时间] 你在 [地点]。 你最近的记忆 {近期记忆} 你当前的目标是{目标} 你观察到周围有[其他角色信息] 请根据以上信息决定你接下来最想做什么一个动作以及如果你想说话你会说什么对话内容。 请严格按照以下格式回复 动作[动作类型如去公园、与X交谈、回家] 对话[你想说的话如果没有则留空]优化你的模板强化格式要求在模板末尾用非常明确、强制的语言要求模型按格式输出可以显著减少解析失败。例如“你必须且只能输出两行‘动作...’和‘对话...’。不要输出任何其他解释、思考过程或额外文本。”提供动作示例在模板中列举几个有效的动作示例能引导模型做出更符合预期的选择。“动作示例去咖啡馆、回家、阅读书籍、与艾米丽交谈”。控制输出长度在系统指令或用户提示中加入“请将对话内容控制在20个词以内”可以防止模型生成冗长的独白让交互更紧凑。注入世界观规则在模板开头加入小镇的基本规则如“本小镇是一个和平、现代的社区。禁止任何暴力或侮辱性言行。” 这能在底层约束角色的行为边界。修改提示词模板后重启后端服务即可生效。观察角色的行为变化这是一个迭代优化的过程。5. 性能调优、问题排查与进阶技巧当小镇运行起来后你可能会遇到性能、稳定性或逻辑上的问题。下面是一些实战中总结的经验。5.1 性能瓶颈分析与优化本地运行多智能体模拟对算力和内存都是挑战。CPU/GPU/内存监控使用任务管理器或htop、nvidia-smi等工具实时监控资源占用。瓶颈通常出现在GPU内存显存不足这是最常见的问题。运行大模型时如果显存爆满会导致推理速度极慢甚至崩溃。解决方案换用更小模型这是最直接有效的方法。启用量化使用4-bit或8-bit量化版本的模型。在Ollama中很多模型自带量化版本如llama3.1:8b-instruct-q4_K_M。量化能大幅降低显存占用对质量损失却很小。调整并发数在配置文件中降低同时进行推理的智能体数量如果支持并发。让智能体“排队”思考。系统内存不足每个智能体的记忆、环境状态都会占用内存。角色过多或记忆过长会导致内存增长。解决方案减少agent_count调低memory_limit或者定期重启后端服务释放内存。推理速度优化调整模型参数在调用模型API时可以传递参数控制生成速度和质量。例如降低temperature如0.3可以让输出更稳定、可预测降低max_tokens如150限制每次生成的长度加快速度。# 在配置中可能可以这样设置 llm: generation_config: temperature: 0.3 max_new_tokens: 128使用更快的推理后端除了Ollama可以尝试vLLM或text-generation-inference它们对批量推理和长上下文优化更好但部署更复杂。5.2 常见问题与排查指南下表列出了我遇到的一些典型问题及解决方法问题现象可能原因排查步骤与解决方案启动后端时提示“连接模型API失败”或“模型未找到”1. 模型服务未启动。2. API地址或模型名配置错误。3. 端口被占用或防火墙阻止。1. 检查Ollama终端是否运行用curl命令测试API。2. 逐字核对配置文件中的api_base和model名称确保与Ollama中拉取的模型名完全一致区分大小写。3. 检查端口默认11434是否被其他程序占用。前端能打开但点击“开始”后无反应后端无日志1. 前端未正确连接到后端API。2. 浏览器跨域问题CORS。1. 打开浏览器开发者工具F12的“网络(Network)”标签查看点击按钮时发出的请求是否失败红色。2. 查看后端启动日志确认其监听的IP和端口。前端配置中需要指向这个地址。3. 在后端代码中启用CORS中间件如果框架是FastAPI可添加from fastapi.middleware.cors import CORSMiddleware。角色行为重复、单调或逻辑混乱1. 模型能力不足模型太小。2. 提示词模板设计不佳。3. 温度temperature参数过低。1. 升级更大参数的模型是根本解决办法。2. 优化提示词模板加入更具体的指令和示例。3. 适当提高temperature到0.7-0.9增加输出的随机性和创造性。模拟运行一段时间后角色记忆混乱或丢失上下文1. 记忆上下文长度超过模型限制。2. 记忆压缩或总结机制未生效或有问题。1. 减少memory_limit只保留最近N条最关键的记忆。2. 检查项目是否实现了记忆总结功能将多条旧记忆合并成一条摘要。如果没有可以考虑自行实现或在提示词中要求模型基于“长期印象”行动。角色对话出现不符合设定的内容或“越狱”1. 角色设定不够牢固被模型固有知识覆盖。2. 系统提示词不够强硬。1. 在角色设定中用非常肯定的语气开头“你是艾米丽一个咖啡馆店主。你绝对不是一个AI助手也不知道任何关于计算机或编程的知识。你的世界只有这个小镇...”2. 在每次决策的提示词中都重复强调核心设定。5.3 进阶技巧让小镇更“智能”和“有趣”引入外部知识库让智能体不仅能聊天还能“查阅资料”。你可以集成一个本地的向量数据库如ChromaDB将小镇的“历史档案”、“新闻报纸”或“技能手册”文本灌入其中。当角色需要相关信息时比如医生角色需要诊断先从这个知识库中检索相关片段再连同提示词一起发给模型。这能极大扩展智能体的知识边界。实现分层目标规划默认的目标系统可能比较扁平。你可以为角色设计“目标树”。例如长期目标是“成为知名画家”中期目标分解为“本月完成一幅风景画”、“本周去郊外写生”短期目标则是“今天购买画布和颜料”。在决策时提示词优先考虑与当前最紧迫目标相关的行动。情感状态模拟为每个角色增加隐藏的“情感数值”如快乐值、精力值。社交成功会增加快乐值熬夜会降低精力值。当精力值低时角色更倾向于选择“回家休息”而不是“参加派对”。情感状态可以微妙地影响动作选择的权重让行为更有层次感。日志分析与故事挖掘小镇运行会产生海量的对话日志。你可以写一个简单的脚本定期分析日志提取高频话题、角色关系亲密度变化、甚至自动生成“小镇日报”总结过去一天发生的大事。这能让你从上帝视角发现意想不到的、由AI自发演绎出的有趣故事线。部署和定制Alicization-Town的过程就像是在担任一个微型世界的架构师和观察者。从冰冷的代码和配置开始到最终看到一个个数字角色产生出令人会心一笑或陷入思考的互动这种成就感是独一无二的。它不仅是技术的实践更是对智能体行为、社会模拟乃至叙事生成的一次深度探索。每个遇到的问题和解决的方案都让你对这个领域的理解更深一层。不妨就从今天开始搭建你的第一个AI小镇看看这些“居民”会给你带来怎样的惊喜。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2618412.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…