构建AI长短期记忆系统:从向量检索到混合架构的工程实践

news2026/5/12 19:37:01
1. 项目概述当AI开始拥有“记忆”最近在折腾一个挺有意思的东西我把它叫做“Memory Bear”。这名字听起来有点萌但内核其实挺硬核的。简单来说它不是一个具体的产品而是一套关于如何让AI系统拥有更接近人类“记忆”能力的架构思路和实践方法。我们平时用的那些大语言模型比如ChatGPT虽然能说会道但每次对话都像一张白纸它记不住你上一句说了什么更记不住你上周跟它聊过什么。这种“健忘”是当前AI在深度交互和持续学习上的一个核心瓶颈。Memory Bear要解决的就是这个“健忘”问题。它的核心是“基于长短期记忆增强的AI认知架构”。听起来有点拗口拆开来看就明白了“长短期记忆”借鉴了人类记忆的分类短期记忆处理即时信息长期记忆存储重要经验“增强”意味着这不是简单的数据存储而是有选择、有结构、能推理的记忆“认知架构”则说明这是一个系统性的工程涉及到记忆的编码、存储、检索和应用整个闭环。这个项目的目标就是探索一套可行的技术方案让AI不仅能“记住”还能“回忆”和“运用”记忆从而在客服、教育、个人助理、创意协作等需要长期、个性化交互的场景中表现得更加智能和“善解人意”。如果你正在构建需要与用户进行多轮、深度对话的应用或者希望你的AI助手能随着时间推移越来越懂你那么理解Memory Bear背后的思路可能会给你带来不少启发。接下来我会从设计思路、核心实现、具体实践到踩坑经验完整地拆解一遍。2. 架构核心长短期记忆如何协同工作2.1 记忆分层的设计哲学为什么要把记忆分成长短期这直接源于对人类认知效率的模仿。我们的大脑不会事无巨细地记住所有事情。正在进行的对话内容、刚读到的几个句子这些是短期记忆工作记忆它容量有限但存取速度快用于处理当前任务。而你的个人经历、学到的专业知识、对某个朋友的深刻印象这些则存入长期记忆需要时再提取出来。Memory Bear的架构也遵循这个原则。在技术实现上短期记忆池通常是一个在线的、高吞吐量的向量数据库比如ChromaDB, Pinecone或内存缓存比如Redis。它负责存储最近几轮对话的上下文。每次用户发起新请求系统会优先从这里检索最相关的几条记录作为即时上下文喂给大模型。这保证了对话的连贯性。而长期记忆库则是一个更稳定、结构化的存储可能是一个关系型数据库如PostgreSQL或文档数据库如MongoDB用于存储经过提炼的“记忆片段”。这些片段不是原始的对话记录而是经过摘要、分类、打上丰富元数据如重要性分数、情感标签、关联实体的结构化信息。关键在于两者之间的“记忆交换”机制。不是所有短期记忆都会进入长期库那会导致信息爆炸。这里需要一个“记忆凝结”过程系统会定期或基于事件触发对短期记忆池中的内容进行重要性评估。评估模型可以是一个轻量级的分类器根据对话的深度、信息密度、用户反馈如点赞、收藏操作来打分。只有高于阈值的内容才会被摘要、结构化然后存入长期记忆库。反过来当处理新问题时系统会同时从长、短期记忆中检索相关信息经过一个重排序模块将最相关的记忆组合成最终的提示词Prompt。这个设计确保了记忆系统的效率和有效性。2.2 记忆的表示与向量化检索记忆光存起来没用关键是要能高效、准确地找回来。传统的关键词匹配在理解语义上力不从心所以Memory Bear的核心检索依赖于向量嵌入。无论是短期还是长期记忆在存储前其文本内容都会被一个嵌入模型如OpenAI的text-embedding-3-small或开源的BGE-M3转换为一个高维向量比如1536维。这个向量就像这段文本的“数学指纹”语义相近的文本其向量在空间中的距离也更近。检索时将用户当前问题的文本也转化为向量然后在向量数据库中进行近似最近邻搜索。这就是为什么向量数据库如此重要它能在大规模数据中快速找到最相似的几个向量。但这里有个常见的误区单纯依赖余弦相似度可能不够。因为“记忆”的相关性不仅仅是语义相似还涉及到时间临近性、重要性、甚至情感关联。因此在Memory Bear的实践中我们通常采用混合检索策略先通过向量检索召回一批候选记忆然后利用记忆元数据如时间戳、重要性权重、实体标签进行二次重排序。例如你可以设计一个打分函数最终分数 语义相似度 * 0.6 时间衰减因子 * 0.3 重要性权重 * 0.1。通过调整这些权重你可以让系统更倾向于回忆最近的、重要的、且语义相关的内容。注意嵌入模型的选择至关重要。通用模型可能不适合你的垂直领域。如果涉及专业术语如医疗、法律务必使用在该领域语料上微调过的嵌入模型或者至少在检索前加入一个查询改写步骤将用户口语化提问改写成更接近专业文档的表述。2.3 记忆的更新与遗忘机制一个只有增长、没有淘汰的记忆系统最终会变得臃肿不堪检索效率下降甚至回忆起大量无关的“垃圾信息”。因此遗忘机制和记忆更新与记忆存储同等重要。这可能是整个架构中最具“人性化”设计的一环。对于短期记忆我们采用简单的滑动窗口或基于时间的TTL生存时间自动过期。对于长期记忆策略则复杂得多重要性衰减每条长期记忆都有一个初始的重要性分数。如果一条记忆在很长一段时间内比如数月从未被成功检索和调用过其重要性分数会随时间缓慢衰减。当分数低于某个阈值时它会被移入“归档”区在常规检索中优先级降低或在存储成本压力大时被清理。冲突与修正当新的记忆与旧记忆在事实上冲突时例如用户之前说“我对芒果过敏”后来又说“我吃芒果没问题”系统需要能处理这种冲突。一种策略是信任最新的信息并降低旧记忆的权重或将其标记为“已过时”。更复杂的做法是记录这种冲突并在下次相关查询时让AI主动向用户确认“我记得您之前提过对芒果过敏但最近的信息似乎有所不同可以帮我确认一下吗” 这需要系统具备一定的逻辑判断和主动交互能力。记忆融合对于描述同一事物但角度不同的多条记忆例如关于“我的项目目标”的多次碎片化讨论系统可以定期尝试进行自动摘要和融合生成一条更完整、更简洁的“融合记忆”替代原先的碎片从而优化存储。3. 核心组件实现拆解3.1 记忆处理流水线从原始对话到结构化记忆原始的用户对话消息是嘈杂且非结构化的。直接存储它们效率低下且不利于精准检索。Memory Bear需要一个记忆处理流水线将原始输入转化为富结构化的记忆对象。这个流水线通常包含以下步骤实时摄入与缓冲所有对话消息首先进入一个消息队列如RabbitMQ, Kafka或缓冲池。这解耦了对话接收和记忆处理避免高并发时阻塞主线程。关键信息提取使用一个轻量级的信息提取模型或规则引擎从对话中提取关键实体。这不仅仅是命名实体识别人名、地点还包括用户自定义的重要概念比如“项目A的截止日期”、“客户的特殊偏好X”。我们可以用提示词工程让大模型来完成这个工作例如# 伪代码示例使用LLM进行信息提取 extraction_prompt f 请从以下用户对话中提取关键事实、用户陈述的偏好或重要信息。 以JSON格式输出包含字段entities提及的关键实体列表key_facts陈述的重要事实列表user_preference可能存在的用户偏好或态度importance_score1-10分你认为这段话的重要性。 对话内容{message} # 调用LLM API解析返回的JSON记忆摘要生成对于一段较长的对话轮次我们需要生成一个简洁的摘要。同样可以借助大模型提示它“请为以下对话生成一个简洁的摘要聚焦于用户表达的核心意图或新信息。” 摘要的质量直接决定了未来检索的准确性。向量化与元数据封装将摘要文本有时连同原始关键信息通过嵌入模型转化为向量。同时封装一个结构化的记忆对象包含以下字段{ id: unique_uuid, user_id: user_123, session_id: session_456, raw_text: 原始对话片段, summary: 生成的摘要, embedding_vector: [0.12, -0.05, ...], // 向量 metadata: { timestamp: 2023-10-27T10:30:00Z, importance: 7.5, entities: [项目截止日, 芒果过敏], tags: [工作, 健康], source: user_message // 或 ai_response, 用于区分 } }路由与存储根据预设规则如重要性分数6决定这个记忆对象是仅存入短期记忆池还是同时需要进入长期记忆库的候选队列等待进一步的凝结审核。3.2 混合检索器的工程实现检索是记忆系统的“回忆”过程其速度和准确度至关重要。一个高效的混合检索器实现如下# 伪代码示例混合检索器核心逻辑 class HybridMemoryRetriever: def __init__(self, vector_store, sql_store, weights{semantic:0.6, recency:0.3, importance:0.1}): self.vector_db vector_store # 向量数据库客户端 self.sql_db sql_store # 关系型数据库客户端存元数据 self.weights weights def retrieve(self, query_text, user_id, top_k10): # 步骤1向量检索语义召回 query_embedding get_embedding(query_text) vector_results self.vector_db.similarity_search_by_vector( query_embedding, filter{user_id: user_id}, ktop_k*3 # 多召回一些供后续重排序 ) # 步骤2获取候选记忆的完整元数据 memory_ids [res.id for res in vector_results] metadata_list self.sql_db.get_metadata_by_ids(memory_ids) # 批量查询 # 步骤3计算综合得分并重排序 scored_memories [] for mem, meta in zip(vector_results, metadata_list): # 计算语义相似度得分向量检索结果通常已包含 semantic_score mem.score # 计算时间衰减得分越近越高 time_diff now() - meta[timestamp] recency_score math.exp(-time_diff.days / 30) # 以30天为半衰期 # 获取重要性得分 importance_score meta[importance] / 10.0 # 归一化到0-1 # 加权综合得分 total_score (self.weights[semantic] * semantic_score self.weights[recency] * recency_score self.weights[importance] * importance_score) scored_memories.append({ memory: mem, metadata: meta, total_score: total_score }) # 按综合得分排序取前top_k个 scored_memories.sort(keylambda x: x[total_score], reverseTrue) final_memories scored_memories[:top_k] return final_memories这个实现的关键在于权重的调优。你需要根据实际场景进行A/B测试。例如在客服场景中“时间临近性”权重可能更高因为用户更关心最近的问题进展而在个人知识库场景中“语义相关性”和“重要性”的权重可能更高。3.3 记忆增强的提示词工程检索到的记忆需要巧妙地整合进给大模型的提示词Prompt中才能真正发挥作用。生硬地堆砌记忆文本会浪费上下文窗口并可能干扰模型。这里有一些经过验证的提示词设计模式角色与记忆绑定在系统提示词System Prompt中明确告知AI它的“身份”和记忆能力。“你是一个拥有记忆能力的智能助手。在对话中你可以参考之前与用户交流的相关历史信息来提供更贴切的回答。以下是一些可能相关的过往记忆片段供你参考”结构化记忆注入将检索到的记忆以清晰的结构如列表、JSON放入提示词的用户消息或上下文部分。为每条记忆标注来源时间或关键标签。相关记忆 - [2023-10-20] 用户提到他正在进行的“智能家居项目”需要兼容HomeKit协议。 - [2023-10-25] 用户询问过关于“本地化部署的隐私问题”表现出对数据安全的重视。明确指令在提示词末尾明确指示模型如何使用这些记忆。“请基于当前问题和以上相关记忆进行回答。如果记忆中的信息与当前问题直接相关请自然地引用它来增强回答的个性化和准确性。如果记忆信息与当前问题无关请忽略它们不要强行关联。”处理记忆缺失或冲突可以在提示词中加入处理边界情况的指令。“如果你发现记忆信息之间存在矛盾或者没有找到直接相关的记忆请基于通用知识进行回答并可以礼貌地向用户询问更多细节以澄清。”实测下来这种结构化的记忆注入方式比简单地将历史对话全文拼接Full Context Window效果更好因为它减少了噪声突出了重点并且更节省Token。4. 应用实践从个人助手到企业知识库4.1 场景一具有长期记忆的个人AI助手这是最直接的应用。想象一个你的专属数字伙伴它记得你所有的喜好、工作进度、甚至聊天时的情绪。实现这样一个助手除了上述核心架构还需要特别注意几点记忆的个性化与隐私边界所有记忆必须严格按用户ID隔离。在存储和传输过程中敏感信息如密码、身份证号需要在提取阶段就被过滤或脱敏。可以设计一个用户可控的“记忆面板”让用户查看、编辑或删除AI关于自己的任何记忆这既是功能也是建立信任的必要措施。主动记忆与被动记忆大部分记忆是被动产生的即从对话中提取。但我们可以设计“主动记忆”机制。例如当用户说“这个很重要记下来”或者AI检测到用户反复提及某个任务如“我的护照快到期了”系统可以主动创建一条高重要性的记忆并甚至设置一个提醒。情感记忆的融入除了事实性记忆还可以尝试记录对话的情感基调。例如当用户表达出强烈的挫折或喜悦时系统可以给这段记忆打上“情感标签”。未来当用户情绪低落时AI或许可以主动回忆起一些愉快的记忆来鼓励用户。这需要更细腻的情感分析模型但能极大增强交互的深度。在实际部署中你可以基于LangChain、LlamaIndex这类框架快速搭建原型但生产环境需要考虑内存、持久化、分布式检索等问题。对于个人助手场景从单机版的SQLiteChromaDB开始验证概念是性价比最高的选择。4.2 场景二持续学习的领域专家系统在医疗咨询、法律分析、技术支持等垂直领域我们往往需要AI具备深厚的专业知识。传统的知识库是静态的而基于Memory Bear架构我们可以构建一个能从每次交互中学习的专家系统。记忆作为经验库每次成功的问答特别是经过人工审核或用户好评的其问题和答案可以被凝结成一条高质量的“经验记忆”存入长期库。这条记忆的元数据会格外丰富包括所属领域分类、涉及的专业术语、解决方案的有效性评分等。迭代式知识提炼当系统遇到新问题时它会同时检索公共知识库如医学文献向量库和私有的“经验记忆库”。如果从经验库中找到了高度匹配的案例它可以优先参考这个“实战经验”来生成回答这往往比单纯的文献知识更贴切、更实用。处理不确定性与溯源当AI基于某条“经验记忆”给出建议时它应该能够注明“根据之前处理过的类似案例……”。更重要的是系统需要记录记忆的溯源链。如果某条经验记忆后来被证明有误系统需要有能力定位所有基于它产生的建议并进行修正或通知。这要求记忆系统具备版本管理或因果关联图的能力。在这个场景下记忆的“质量”远比“数量”重要。必须建立严格的人工审核或自动化质量评估流程确保进入长期经验库的记忆是准确、有价值的。4.3 场景三协作型AI与集体记忆将Memory Bear从单用户扩展到多用户群体就形成了“集体记忆”。这在团队协作、游戏NPC、虚拟社区等场景中潜力巨大。记忆的共享与权限团队项目中关于项目需求的讨论、决策过程、技术方案选型这些记忆可以被所有成员共享。架构上需要在记忆对象中增加visibility可见性私有、团队公开、全局公开和access_control_list访问控制列表字段。检索时根据用户身份动态过滤。记忆的融合与群体智能不同成员对同一事物的记忆角度不同。系统可以尝试对围绕同一主题如“项目架构设计”的多条记忆进行自动融合生成一份更全面的“群体共识记忆”。这类似于一个自动化的会议纪要生成与知识提炼过程。NPC的长期人设与剧情记忆在游戏或互动叙事中NPC可以拥有基于Memory Bear的长期记忆。它记得玩家之前的选择、对它的态度从而做出符合其“人设”和“过往经历”的反应。玩家的每一次互动都在塑造NPC独一无二的“人生经历”这能带来前所未有的沉浸感。实现时需要为每个NPC维护独立的记忆空间并设计符合其性格的记忆重要性评估算法例如一个记仇的角色会对“侮辱”类记忆赋予极高权重。5. 实战挑战与避坑指南5.1 性能、成本与规模的平衡记忆系统一旦运行起来数据量会持续增长带来直接的挑战检索延迟当记忆条数达到百万级时即使使用高效的向量索引如HNSW检索延迟也可能从毫秒级上升到百毫秒级影响对话体验。解决方案实施分级存储。将最活跃用户的近期记忆或高重要性记忆放在高速缓存如内存向量数据库中将全量记忆放在可扩展的分布式向量数据库如Weaviate Cluster, Qdrant中。检索时先查缓存未命中再查主库。嵌入成本如果使用OpenAI等付费API进行文本向量化海量记忆的嵌入成本会非常可观。解决方案1) 对记忆摘要进行压缩在保留核心语义的前提下减少文本长度。2) 采用高质量的开源嵌入模型在本地部署如BGE、GTE系列它们在某些基准测试上已接近甚至超越付费API。3) 并非所有文本都需要实时向量化对低重要性记忆可以采用异步批量处理。存储成本向量本身占用空间大且需要专用向量数据库。解决方案定期清理低重要性记忆或将其转移到廉价的冷存储如对象存储仅保留向量索引在热库中。也可以研究有损压缩或量化技术来减小向量维度但这可能影响检索精度需要仔细评估。5.2 记忆的准确性、偏见与幻觉问题这是最具风险的技术挑战。AI可能“记错”或“创造”出不存在的事实。记忆污染如果用户提供了错误信息或被AI误解的信息进入了长期记忆它就会成为一个持续的污染源。解决方案建立记忆的“置信度”体系。对于AI自己生成并存储的记忆如对用户问题的总结应标记较低的置信度。对于用户明确陈述的事实可以标记较高的置信度。在检索时高置信度记忆获得更高权重。同时提供便捷的记忆修正入口。检索导致的幻觉即使记忆本身正确不恰当的检索或提示词设计也可能导致AI“张冠李戴”错误地引用记忆。解决方案在提示词中严格要求AI“仅使用提供的记忆信息”并采用“检索后验证”机制。例如让AI在生成最终答案前先输出它引用了哪几条记忆的ID以及引用原因。这个中间步骤可以用于日志分析和后续优化。偏见固化如果早期交互中形成了有偏见的记忆例如基于片面信息对某人产生负面评价这个偏见可能会被系统不断强化。解决方案引入记忆的“多样性检索”在特定情况下系统可以故意检索一些与当前查询语义相反或不同的记忆以提供更平衡的视角。同时需要定期的人工审核来发现和纠正系统性偏见。5.3 工程化落地的关键决策从实验原型到稳定可用的生产系统有许多工程细节决定成败记忆的一致性保证当多个会话同时试图更新同一用户的同一条记忆时如同时更新项目状态需要处理并发冲突。可以采用乐观锁在内存对象中增加版本号或通过消息队列将记忆更新操作串行化。可观测性与调试记忆系统是个黑盒吗绝对不是。必须建立完善的日志体系记录每一次记忆的存储、检索和使用的全过程。你需要能方便地查询“用户A的这条回答是基于哪几条记忆生成的” 可视化工具能展示用户的“记忆图谱”对于调试和用户体验都至关重要。冷启动问题新用户没有任何记忆系统如何提供价值你需要准备一个高质量的“初始记忆集”或“公共记忆库”即领域通用知识让系统在缺乏个人记忆时也能良好运作。随着交互增多再逐渐过渡到个性化记忆为主。6. 未来演进方向Memory Bear架构目前仍处于探索和实践的早期阶段。从我个人的实践来看有几个方向值得深入多模态记忆目前的记忆主要以文本为载体。未来的记忆系统应该能处理图像、音频甚至视频。例如用户分享的一张设计草图、一段产品演示的录音都可以成为可检索、可引用的记忆片段。这需要多模态嵌入模型和跨模态检索技术的支持。记忆的主动推理与触发现在的记忆主要是“被动检索”即用户问了才去找。更智能的系统应该能“主动回忆”在恰当的时机触发相关记忆。例如当用户提到“准备出差”时系统能主动回忆起用户上次出差抱怨过酒店枕头不舒服并提前提醒“需要我帮你找一家提供多种枕头选择的酒店吗” 这需要系统具备更强的事件感知和上下文推理能力。记忆的可解释性与用户共塑让用户不仅能查看还能以更自然的方式“调教”AI的记忆。比如用户可以告诉AI“关于我咖啡口味的那条记忆优先级可以调低一点”或者“把这两条关于项目A的记忆合并成一条”。让用户参与到记忆的管理中能极大地提升系统的实用性和亲和力。构建一个有记忆的AI本质上是在尝试赋予机器一种连续性的“经验”。这条路充满挑战从技术实现到伦理隐私每一步都需要谨慎权衡。但它的回报也是巨大的——它能让我们与机器的交互从一次次孤立的问答变成一场真正持续的、不断深化的对话与合作。Memory Bear是我在这条路上的一次实践记录希望其中的思路和踩过的坑能为你点亮一盏小灯。

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