AI智能体技能集市:构建可复用、标准化的AI技能生态

news2026/5/1 14:00:28
1. 项目概述一个面向AI智能体的技能集市最近在折腾AI智能体Agent开发的朋友估计都遇到过同一个头疼的问题功能复用性太差。每次接到一个新需求比如让智能体去分析一份财报、或者自动处理一批用户反馈都得从头开始写代码、调API、处理异常。明明上个项目里已经实现过一个差不多的“数据查询”技能到了新项目里要么代码复制粘贴搞得一团糟要么因为环境依赖不同直接跑不起来。agent-skills-hub这个项目就是冲着解决这个“重复造轮子”的痛点来的。你可以把它理解成一个专为AI智能体打造的“技能应用商店”或者“插件中心”。它的核心目标很简单让开发者能够像搭积木一样快速、标准化地创建、分享和调用各种AI技能Skill。想象一下你正在构建一个客服智能体。你需要它具备“查询订单状态”、“处理退货申请”、“解答产品FAQ”等能力。在传统的开发模式下这些功能逻辑都糅合在一个庞大的代码库里。而有了agent-skills-hub你可以作为技能消费者直接从Hub里搜索并调用别人已经封装好的“订单查询技能”、“情感分析技能”通过简单的配置就能集成到你的智能体中省去大量开发时间。作为技能贡献者把你项目中打磨成熟的、通用性强的功能比如一个精准的“地址解析器”、一个高效的“PDF信息抽取器”按照Hub的规范打包成一个独立的Skill发布上去。既方便了自己后续项目复用也能帮助社区甚至可能获得反馈和Star。这个项目瞄准的是AI应用开发的下一个阶段从构建单一的、功能固化的智能体转向构建一个由可互操作、可组合的标准化技能模块驱动的智能体生态系统。无论是个人开发者快速验证想法还是企业团队希望建立内部的能力中台agent-skills-hub都提供了一个非常值得参考的架构范式和实现。2. 核心架构与设计理念拆解要理解agent-skills-hub怎么工作得先抛开代码看看它脑子里在想什么。它的设计不是凭空而来的而是深刻回应了当前AI智能体开发中的几个核心矛盾。2.1 为什么需要“技能中心”—— 解决智能体开发的“碎片化”与“孤岛化”目前大多数AI智能体项目都是“烟囱式”的。每个智能体为了完成其任务都内置了一整套从感知、思考到行动的逻辑。这导致两个大问题能力碎片化A智能体里的优秀代码B智能体无法直接使用。同样的“发送邮件”功能可能在十个项目里有十种不同的实现和Bug。知识孤岛化智能体之间无法共享经验和能力。一个智能体学会了高效处理某种格式的文档另一个智能体遇到同样问题还得从头学起。agent-skills-hub的应对策略是“关注点分离”和“标准化接口”。分离它将智能体的“大脑”决策与规划和“手脚”具体执行能力解耦。智能体核心只负责理解用户意图、规划任务步骤先查天气再推荐穿搭而具体的“查天气”、“推荐穿搭”动作则委托给Hub中注册的标准化Skill去执行。标准化它定义了一套统一的Skill描述、注册、发现和调用协议。无论一个Skill内部是用Python、Node.js还是Go写的无论它调用的是本地函数还是云端API对外都呈现为统一的接口。这就好比USB接口你不需要关心U盘内部是三星还是闪迪的芯片插上就能用。2.2 核心组件与数据流一个典型的agent-skills-hub体系通常包含以下核心组件我们可以通过一个用户请求“帮我总结最近三篇AI论文的核心观点”的处理流程来串联理解它们技能仓库Skills Repository是什么一个集中存储和管理所有Skill定义文件通常是YAML或JSON格式的地方。可以类比为Docker Hub或PyPI但存储的是技能元数据。在流程中当智能体需要“总结论文”时它会先向技能仓库查询寻找注册了的、功能描述中带有“总结”、“论文”、“AI”等标签的Skill。技能运行时Skill Runtime是什么负责加载、隔离并执行具体Skill代码的“沙箱”环境。这是安全性和稳定性的关键。一个Skill的崩溃不应该导致整个智能体系统挂掉。在流程中智能体决策引擎选定了一个“论文总结Skill”后运行时负责从仓库拉取该Skill的代码和依赖在一个受控的环境如独立的容器、进程中初始化它。技能网关/路由Skill Gateway/Router是什么接收智能体的执行请求根据技能名称、版本、输入参数等将请求路由到正确的技能运行时实例。它可能还负责负载均衡、熔断降级等。在流程中智能体发出指令“执行summarize_papers技能参数为{papers: [paper1, paper2, paper3]}”。网关接收这个请求找到正在运行该技能的实例将请求转发过去。技能描述与发现服务Skill Description Discovery是什么每个Skill都必须提供一个机器可读的描述文件明确说明我是什么名称、版本、我能干什么功能描述、输入输出格式、我需要什么依赖、权限。发现服务允许智能体通过功能、标签进行搜索。在流程中智能体在规划阶段就是通过查询发现服务才知道存在“summarize_papers”这个技能并且它的输入需要一个“论文列表”输出是“观点摘要”。智能体框架适配器Agent Framework Adapters是什么为了让agent-skills-hub能无缝接入不同的智能体框架如LangChain、AutoGen、CrewAI等通常需要提供对应的适配器。这些适配器负责将框架特定的Agent调用转换成Hub能理解的通用技能调用协议。在流程中如果你用LangChain开发智能体你可以使用Hub提供的LangChain Tool封装这样你的LangChain Agent就能像调用本地Tool一样透明地调用Hub里注册的任何一个远程Skill。注意以上是一个逻辑架构在具体实现中技能仓库、发现服务、网关可能被合并到一个服务中或者采用更去中心化的设计如基于服务网格。但核心思想不变标准化描述、集中管理、动态发现、安全执行。2.3 关键设计权衡灵活性 vs. 复杂性 vs. 性能引入Hub必然带来额外的复杂度设计者必须在以下几点做出权衡技能粒度技能应该多“细”是一个“发送邮件”算一个技能还是“构造邮件头连接SMTP服务器发送”每个步骤都算一个技能agent-skills-hub通常鼓励中等粒度、功能完备的技能。过细会导致调用链复杂、网络开销大过粗则失去了复用的意义。一个好的经验法则是一个技能应完成一个对用户或智能体有明确价值的、相对独立的原子操作。通信协议技能间如何通信同步HTTP/RPC简单直接但可能有延迟异步消息队列解耦性好适合长任务但复杂度高agent-skills-hub的参考实现可能同时支持多种协议以适应不同场景。状态管理技能本身应该是无状态的吗如果一个“多轮对话管理”技能需要记住上下文状态存在哪里Hub的设计需要明确规范技能的状态边界通常建议技能自身无状态将状态外置到数据库或由调用者智能体管理这能极大提升技能的可靠性和可扩展性。3. 从零开始手把手创建并发布你的第一个Skill理论说了这么多我们来点实际的。假设我们要创建一个“天气查询”技能并发布到agent-skills-hub。这里我以假设的Hub实现规范为例演示全流程。请注意具体命令和文件格式需以你使用的agent-skills-hub实际版本文档为准。3.1 技能定义告诉Hub“你是谁能做什么”任何技能的第一步都是创建一个技能清单文件例如skill.yaml。这个文件是你的技能的“身份证”和“说明书”。# skill.yaml name: weather-query version: 1.0.0 author: your-name description: 根据城市名称查询实时天气情况。 tags: - weather - api - utility # 定义技能的输入输出接口这是智能体调用你的依据 interface: input: type: object properties: city: type: string description: 城市名称例如“北京”、“Shanghai”。 units: type: string enum: [metric, imperial] default: metric description: 温度单位metric为摄氏度imperial为华氏度。 required: - city output: type: object properties: temperature: type: number description: 当前温度。 condition: type: string description: 天气状况如“晴”、“多云”、“小雨”。 humidity: type: number description: 湿度百分比。 wind_speed: type: number description: 风速。 # 技能的执行入口点 execution: type: http # 也可以是 process, docker 等 endpoint: /query method: POST # 技能运行所需的权限或资源声明 requirements: environment_variables: - WEATHER_API_KEY # 声明需要此环境变量来访问天气API关键点解析interface部分是重中之重。它使用类似JSON Schema的格式严格定义了输入输出的数据结构。智能体框架在调用前会据此进行参数校验调用后会解析输出。定义得越清晰技能就越容易被正确使用。execution.type指明了技能的运行方式。http表示技能本身是一个HTTP服务Hub会向指定的endpoint发送请求。这是最通用和松散耦合的方式。requirements用于声明依赖特别是像API密钥这样的敏感信息。这提示Hub或技能部署者需要提前配置好这些环境变量而不是硬编码在代码里。3.2 技能实现编写核心逻辑接下来我们实现这个HTTP服务。这里用Python的FastAPI框架为例因为它轻量且适合构建API。# main.py import os import requests from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Optional app FastAPI(titleWeather Query Skill) # 定义输入模型与skill.yaml中的input对应 class WeatherQueryInput(BaseModel): city: str units: Optional[str] metric # 定义输出模型与skill.yaml中的output对应 class WeatherQueryOutput(BaseModel): temperature: float condition: str humidity: float wind_speed: float # 假设我们使用一个开放的天气API例如 OpenWeatherMap WEATHER_API_URL https://api.openweathermap.org/data/2.5/weather API_KEY os.getenv(WEATHER_API_KEY) # 从环境变量读取密钥 if not API_KEY: raise ValueError(WEATHER_API_KEY environment variable is not set!) app.post(/query, response_modelWeatherQueryOutput) async def query_weather(data: WeatherQueryInput): 处理天气查询请求 try: # 调用外部天气API params { q: data.city, appid: API_KEY, units: data.units } response requests.get(WEATHER_API_URL, paramsparams, timeout10) response.raise_for_status() weather_data response.json() # 解析API返回数据适配我们的输出格式 return WeatherQueryOutput( temperatureweather_data[main][temp], conditionweather_data[weather][0][description], humidityweather_data[main][humidity], wind_speedweather_data[wind][speed] ) except requests.exceptions.RequestException as e: raise HTTPException(status_code502, detailfWeather API error: {e}) except KeyError as e: raise HTTPException(status_code500, detailfUnexpected API response format: {e}) if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8080)实操心得错误处理要健壮技能可能会被各种智能体以意想不到的方式调用。必须对输入校验、外部API调用失败、数据解析异常等情况进行捕获并返回结构化的错误信息而不是让进程崩溃。这能极大提升技能的可靠性。环境变量管理API密钥等敏感信息绝对不要硬编码在代码或配置文件中。必须通过requirements声明并由部署环节注入。这是安全开发的基本要求。输出标准化即使外部API返回了数十个字段你也应该只输出skill.yaml中定义的那些字段。保持接口的稳定和简洁。如果需要增加输出字段属于破坏性变更需要升级技能版本如从1.0.0到2.0.0。3.3 技能打包与发布实现完成后我们需要将技能“打包”以便Hub能够识别和部署。创建Docker镜像推荐这是确保环境一致性的最佳实践。# Dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [uvicorn, main:app, --host, 0.0.0.0, --port, 8080]构建并推送镜像docker build -t your-registry/weather-query:1.0.0 .和docker push your-registry/weather-query:1.0.0发布到技能仓库 使用Hub提供的CLI工具或API进行发布。通常需要准备好skill.yaml和镜像地址。# 假设有 hub-cli 工具 hub-cli skill publish --manifest ./skill.yaml --image your-registry/weather-query:1.0.0发布后你的技能就进入了Hub的仓库其他开发者可以通过hub-cli skill search weather找到它。3.4 在智能体中调用技能技能发布后在其他智能体项目中调用它就非常简单了。以下是一个概念性的代码示例# 在你的智能体项目代码中 from hub_sdk import SkillClient # 假设Hub提供了SDK # 初始化技能客户端连接到Hub网关 skill_client SkillClient(gateway_urlhttp://your-hub-gateway) # 发现并获取技能信息 weather_skill_info skill_client.discover(nameweather-query, version1.0.0) # 调用技能 try: result skill_client.execute( skill_idweather_skill_info.id, input_data{city: 北京, units: metric} ) print(f北京天气{result[condition]}温度{result[temperature]}°C) except Exception as e: print(f调用技能失败{e}) # 智能体可以在这里进行降级处理例如询问用户是否换一个城市至此一个完整的“创建-发布-调用”闭环就完成了。你会发现一旦技能生态建立起来开发新智能体的效率会呈指数级提升。4. 高级特性与最佳实践打造企业级技能中台如果只是个人玩玩上面的基础功能就够了。但如果想在公司内部推广构建一个稳定、高效、安全的技能中台就需要考虑更多。4.1 技能版本管理与灰度发布技能不可能一成不变。修复Bug、增加功能、优化性能都需要更新。agent-skills-hub必须支持完善的版本管理。语义化版本严格遵守主版本.次版本.修订号的规则。修改interface破坏兼容性必须升主版本新增功能但不影响现有调用升次版本只修复Bug升修订号。多版本共存Hub应允许同一技能的多个版本同时注册和运行。这样依赖老版本技能的智能体可以继续工作而新智能体可以选择使用新版本。灰度发布与流量切分这是关键的生产级特性。当发布技能v1.1.0时可以先让1%的调用流量切到新版本观察错误率和性能指标再逐步放大比例。这需要Hub网关与监控系统紧密配合。4.2 技能依赖管理与组合复杂的任务往往需要多个技能协作完成。Hub可以支持技能组合。声明式依赖在skill.yaml中除了环境变量还可以声明依赖的其他技能。# 一个“出行建议”技能依赖“天气查询”和“交通查询”技能 dependencies: - name: weather-query version: ^1.0.0 # 版本范围 - name: traffic-query version: ^2.1.0动态编排更高级的Hub可以提供简单的编排引擎允许开发者定义一个“工作流技能”将多个原子技能按顺序或条件组合起来。例如“生成周报”技能内部可能依次调用“数据提取”、“数据分析”、“文本生成”和“邮件发送”四个子技能。4.3 监控、日志与可观测性当你有成百上千个技能在运行时没有监控就是睁眼瞎。关键指标必须为每个技能收集调用量、延迟P50, P95, P99、错误率4xx, 5xx、成功率等指标。分布式追踪一个用户请求可能触发智能体智能体再调用多个技能。需要有一个唯一的trace_id贯穿整个调用链方便在出问题时快速定位是哪个环节慢了或错了。可以集成Jaeger、Zipkin等工具。结构化日志技能输出的日志应该包含统一的字段如skill_name,skill_version,invocation_id,input_params(脱敏后)等便于集中收集和检索使用ELK或Loki。4.4 安全与权限控制在企业环境安全是生命线。技能沙箱技能运行时必须在严格的资源限制CPU、内存、网络下运行防止恶意或Bug技能拖垮主机。认证与授权技能间调用技能A调用技能B时Hub网关需要验证A是否有权调用B。这可以通过API密钥、服务账户或更细粒度的RBAC基于角色的访问控制实现。技能访问外部资源技能可能需要访问内部数据库或API。不应让技能持有长期有效的高权限凭证。推荐使用类似“工作负载身份”的机制由Hub在调用时动态为技能注入短期有效的临时凭证。输入输出验证与过滤除了interface中定义的Schema校验网关层还应具备基础的防注入攻击如SQL注入、命令注入的过滤能力特别是对那些执行动态代码如Pythoneval的技能要格外警惕。5. 实战避坑指南与效能提升技巧结合我自己在构建类似系统时踩过的坑分享一些纯干货的经验。5.1 技能设计层面的“坑”坑1技能粒度过细网络开销成为瓶颈现象一个简单的“用户信息处理”流程需要先后调用“验证邮箱”、“查询数据库”、“计算评分”、“更新日志”四个技能每个都是远程HTTP调用导致整体延迟高达几百毫秒。避坑技巧遵循“网络调用最小化”原则。将高频、强相关、数据交换量小的操作合并到一个技能中。一个经典的判断方法是如果两个操作总是在同一个业务上下文被顺序调用且它们之间交换的数据只是简单的ID或状态那么它们很可能应该合并。反之如果某个操作被多个完全不相关的流程使用则应独立为技能。坑2技能接口设计过于灵活导致难以使用和维护现象一个“文档处理”技能输入参数doc可以接受URL、本地文件路径、Base64字符串、二进制流……技能内部用了大量的if-else来判断类型代码臃肿且调用方常常传错格式。避坑技巧接口设计应追求“精准”而非“万能”。优先支持一种最通用、最标准的输入格式例如对于文档优先支持URL或经过标准编码的Base64字符串。如果必须支持多种应在skill.yaml的interface中用oneOf清晰定义并在技能实现入口处立即进行严格的分发和验证。更好的做法是提供两个不同名的技能如process-document-by-url和process-document-by-base64。坑3忽略技能的无状态要求现象一个“会话管理”技能在内存里保存了用户上下文当该技能实例因为扩容或重启而消失时用户会话丢失体验断裂。避坑技巧默认所有技能都是无状态的。任何需要持久化的数据用户会话、任务进度、缓存都必须存储到外部服务中如Redis、数据库。技能实例本身应被视为“随时可能被销毁和重建的消耗品”。如果业务上必须要有状态如WebSocket长连接那这个“技能”就更像一个需要特殊部署和管理的“服务”可能需要跳出Hub的标准模式来考虑。5.2 性能与稳定性调优技巧1实现技能客户端缓存对于查询类、结果变化不频繁的技能如“查询产品信息”、“获取配置”在智能体SDK侧或网关侧实现缓存能极大降低延迟和负载。可以为技能接口定义缓存策略如cache_ttl: 60标明结果可缓存60秒。技巧2设置合理的超时与重试在Hub网关配置全局和针对每个技能的超时、重试策略。例如对于“支付”技能可能不重试或只重试幂等操作对于“查询”技能可以设置快速失败和有限次重试。超时时间要根据技能的实际P99延迟来设定并留有余量。技巧3做好容量规划与弹性伸缩监控每个技能的调用频率和资源消耗。对于热点技能要确保其运行时可以快速水平扩展。可以利用Kubernetes的HPA水平Pod自动伸缩或基于QPS的弹性伸缩策略。同时也要为技能设置资源上限防止某个技能异常后挤占其他技能的资源。5.3 团队协作与治理建立技能开发规范包括skill.yaml的模板、代码结构、日志格式、错误码定义、测试要求单元测试、集成测试、文档规范等。这是保证技能库质量的基础。设立技能审核流程新技能上线前应有专人或团队进行代码安全扫描、接口设计评审、性能测试和文档完整性检查。可以集成到CI/CD流水线中自动完成部分检查。构建技能度量与淘汰机制定期如每季度回顾技能库。对于长期无人调用、存在已知严重问题、有更好替代品的技能应予以标记、归档或下线。保持技能库的活力与健康度。6. 未来展望技能生态的想象空间agent-skills-hub这类项目所描绘的愿景远不止于提升开发效率。它正在为AI智能体的演进铺路。技能的可发现性与自动化组合未来的Hub或许会集成更强大的语义搜索功能。智能体不再需要开发者显式指定调用哪个技能而是可以根据自然语言描述的任务目标自动在Hub中搜索、评估并组合出合适的技能链来执行。比如用户说“帮我规划一个周末的北京出游行程”智能体自动发现并组合“天气查询”、“景点推荐”、“路线规划”、“餐厅预订”等一系列技能。技能的学习与进化技能本身也可以具备学习能力。一个“图片分类”技能可以根据新的标注数据持续微调模型一个“数据清洗”技能可以记录常见的清洗模式并建议优化规则。Hub可以成为这些“可进化技能”的管理和版本追踪平台。跨平台与标准化就像Docker镜像可以在任何支持OCI标准的容器运行时上运行一样未来的AI技能也可能出现类似“Open Skill Initiative”的开放标准。一个按照标准封装的技能可以无缝运行在AWS、Azure、Google Cloud或任何私有的agent-skills-hub实现上真正打破平台锁定。商业化技能市场最激动人心的可能是技能经济的出现。开发者可以将自己训练的高精度模型、对接的独特数据源、或解决复杂问题的技能封装起来在公共技能市场上出售或订阅。企业则可以采购专业技能来快速增强其智能体的能力而不必自己从头研发。回过头看agent-skills-hub不仅仅是一个工具或框架它更是一种思维范式将复杂智能体的能力原子化、标准化、服务化。它降低了AI应用开发的门槛让开发者可以更专注于业务逻辑和创新而非基础设施的重复建设。无论你是想快速搭建一个原型还是计划构建一个企业级的能力中台深入理解并实践这套理念都将是你在AI工程化道路上极具价值的一步。

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