WorkflowAI:开源LLM协作平台,让AI应用开发从周级缩短到分钟级

news2026/4/27 7:53:41
1. 项目概述与核心理念如果你正在为如何将大语言模型LLM的能力快速、可靠地集成到你的产品中而头疼那么WorkflowAI这个项目绝对值得你花时间深入了解。它不是一个简单的API封装器而是一个旨在彻底改变产品团队与工程团队协作方式的开源平台。简单来说WorkflowAI的核心目标是让非技术背景的产品经理、设计师也能直接参与AI功能的定义、测试和迭代同时为工程师提供一个稳定、可观测、易于维护的部署框架从而将AI功能的上市时间从“周”缩短到“分钟”级。我最初接触这个项目是因为团队内部在尝试构建一个智能会议纪要分析功能时遇到了典型的“协作墙”。产品同学写了一大段需求描述和期望的Prompt丢给工程师工程师吭哧吭哧写代码调用OpenAI API然后返回一个JSON。产品同学一看“这个总结不够精炼能不能把‘关键事项’和‘行动计划’分开并且行动计划要按负责人归类” 于是工程师回去改代码、调Prompt、重新部署。几轮下来双方都精疲力尽上线时间一拖再拖。WorkflowAI的出现正是为了解决这种低效的循环。它提供了一个可视化的“游乐场”让产品同学能像搭积木一样直接调整Prompt、切换不同的AI模型如GPT-4、Claude、Gemini等并实时对比效果而所有的配置最终都能一键生成可供工程集成的代码或API端点。更关键的是它将于2026年1月31日停止服务。这听起来像是个坏消息但实际上这恰恰凸显了其开源版本的价值。项目的“日落通知”意味着其商业云服务将终止但整个代码库是Apache 2.0许可下完全开源的。对于有长期需求、注重数据隐私和控制权的团队而言现在正是深入研究并将其自托管部署的最佳时机。你可以完全掌控这套系统避免未来因服务关闭而被迫迁移的风险。接下来我将从设计思路、核心功能拆解、自托管部署的实操细节以及如何将其融入现有开发流程这几个方面为你彻底剖析WorkflowAI。2. 核心设计思路为什么是“协作平台”而非“又一个SDK”市面上LLM的SDK和框架层出不穷LangChain、LlamaIndex等各有所长。WorkflowAI的独特定位在于它首要解决的是“人”的问题而非单纯的技术问题。它的设计哲学可以概括为降低AI应用开发的认知负荷与协作摩擦。2.1 可视化与即时反馈打破黑盒传统AI功能开发中Prompt和模型选择像一个黑盒。工程师写好的逻辑产品经理无法直接感知和调整。WorkflowAI的交互式游乐场Playground是这个理念的核心体现。它允许你并行测试针对同一个任务同时向多个模型支持80个发送请求并排展示它们的回复、耗时和成本。这解决了“哪个模型更适合我这个任务”的经典难题。结构化输出先行在编写任何集成代码之前你就可以用Pydantic模型一个Python数据验证库定义好你期望的输出结构。在Playground中AI的回复会被强制约束并格式化成这个结构你立刻就能看到数据是否规整、字段是否齐全。即时Prompt调优看到输出不满意直接在UI里修改Prompt点击“运行”秒级看到新结果。这个过程无需工程师介入、无需提交代码、无需等待部署。这种设计将AI功能的“调试”和“产品定义”过程大幅前置和民主化。产品决策如“用Claude 3.5 Sonnet总结效果比GPT-4 Turbo更好且便宜30%”是基于实时数据做出的而非猜测。2.2 模型无关与供应商容灾保障稳定性依赖单一AI供应商如OpenAI是巨大的运营风险。WorkflowAI抽象了一层统一的接口你的业务逻辑只与“任务”如“总结会议纪要”和“输出Schema”绑定而不是与openai.ChatCompletion.create这个具体的函数绑定。在后台你可以为同一个任务配置多个后备模型。自动故障转移是其一大亮点。假设你主要使用OpenAI但众所周知其API每月可能有数十分钟的中断。在WorkflowAI中你可以设置Azure OpenAI或Anthropic的Claude作为备份。当主供应商超时或返回错误时流量会无感地切换到备份供应商对于前端用户而言服务没有中断。这个切换不需要你写任何复杂的重试和降级逻辑平台在配置层面就帮你完成了。2.3 内建可观测性与成本追踪从第一天起就可控“AI应用上线后效果怎么样花了多少钱为什么这次回答这么慢” 这些都是运维中的灵魂拷问。WorkflowAI将这些能力作为一等公民内置全链路追踪每一次AI调用称为一次“Run”都会被完整记录包括输入、输出、使用的模型、Token消耗、延迟、成本。成本仪表盘平台会自动聚合所有调用的花费并按照模型、任务、时间维度进行展示。这对于管理预算、优化高成本任务至关重要。结构化日志所有日志都以易于查询和分析的方式存储默认使用ClickHouse专为分析型查询优化方便你排查异常或进行效果分析。这意味着从你第一个AI功能上线起你就拥有了生产级的监控能力而不是等到出问题后再亡羊补牢。3. 核心功能深度解析与实操要点了解了设计理念我们深入到具体功能看看它们如何解决实际痛点。3.1 结构化输入/输出告别脆弱的文本解析这是WorkflowAI的基石功能也是我认为对工程稳健性提升最大的部分。传统方式中你让AI返回一段JSON可能需要写这样的Prompt“请以以下JSON格式回复{“summary”: “...”, “key_points”: [...]}”。但AI可能会返回格式错误的JSON、多一个逗号、少一个引号或者在JSON外面包裹上markdown代码块标记。WorkflowAI通过强制使用Pydantic Schema从根本上解决了这个问题。你定义一个严格的Python数据类继承自BaseModel这个类不仅描述了字段名和类型还可以包含字段描述、示例和验证规则。平台在调用LLM时会使用像“JSON Mode”或“Structured Outputs”这样的底层技术确保返回的数据100%符合你的Schema。实操示例构建一个智能邮件分类器假设我们需要一个功能分析用户邮件内容并自动分类、提取关键信息。from pydantic import BaseModel, Field from enum import Enum class CategoryEnum(str, Enum): SUPPORT 技术支持 BILLING 账单问题 FEEDBACK 产品反馈 OTHER 其他 class EmailAnalysisOutput(BaseModel): category: CategoryEnum Field(description邮件的核心分类) urgency: int Field(description紧急程度1-5分, ge1, le5) summary: str Field(description邮件内容的简要总结不超过100字, max_length100) key_entities: list[str] Field(description从邮件中提取的关键实体如产品名、订单号等) sentiment: str Field(description邮件的情感倾向积极、消极或中性)在WorkflowAI的Playground中你导入这个EmailAnalysisOutput类作为输出Schema然后编写Prompt“请分析以下邮件内容{email_text}”。无论你测试GPT-4还是Claude返回的结果都会是一个完美匹配上述结构的字典对象可以直接被你的后续业务逻辑如存入数据库、触发工单系统使用。这消除了大量的错误处理代码和正则表达式解析。注意定义Schema时字段的描述description非常重要。LLM会参考这些描述来理解每个字段应该填充什么内容。写得越清晰、越具体输出质量就越高。3.2 多模态与托管工具扩展AI的感知与行动能力WorkflowAI不仅处理文本。多模态支持你可以上传图片、PDF、Word文档、音频文件并将其作为AI任务的输入。例如构建一个“PDF问答机器人”用户上传一份产品手册然后直接提问“第3章提到的安全规范是什么”。平台会负责将文件内容进行预处理如提取文本、描述图像并传递给支持多模态的模型如GPT-4V、Claude 3。托管工具Hosted Tools这是让AI“联网”和“行动”的关键。平台内置了如网络搜索Web Search和网页浏览Web Browsing等工具。这意味着你的AI Agent可以主动获取实时信息。场景构建一个“竞品分析助手”。你可以让Agent搜索“2024年最佳项目管理软件”然后浏览前几个结果提取各产品的特点、定价并整理成一份对比报告。优势你无需自己集成Serper API、设置爬虫或处理反爬。WorkflowAI提供了开箱即用的能力并且其调用同样会被记录和追踪。实操心得使用网络工具时Prompt的指令要非常明确。例如“请使用网络搜索工具查找关于‘量子计算最新突破’的3篇权威科技媒体报道并总结其核心观点”。模糊的指令可能导致Agent陷入无效的浏览循环。3.3 即时提示更新与版本控制敏捷迭代的利器这是体现“协作”精髓的功能。在传统开发流程中修改一个Prompt需要产品提需求 - 2. 工程师改代码 - 3. 提交PR - 4. 代码评审 - 5. 合并部署。在WorkflowAI中这个过程被简化为产品或工程师在Playground中修改Prompt - 2. 点击“保存为新版本”。新的Prompt版本会立即生效如果你配置了自动部署或者可以通过API/SDK指定版本来调用。所有历史版本都被完整保存你可以随时回滚到任何一个旧版本。这实现了真正的“秒级”迭代并且将Prompt的变更管理纳入了版本控制系统责任清晰回滚无忧。4. 自托管部署全流程与核心配置鉴于其云服务即将关闭自托管部署成为了长期使用的必然选择。官方提供了Docker Compose方案但其中有不少细节需要注意。下面是我根据实际部署经验整理的详细步骤和避坑指南。4.1 基础环境准备与启动假设你在一台Ubuntu 22.04的服务器上操作。# 1. 克隆仓库 git clone https://github.com/WorkflowAI/WorkflowAI.git cd WorkflowAI # 2. 复制环境变量文件并编辑 cp .env.sample .env # 使用你喜欢的编辑器如vim, nano打开 .env 文件进行关键配置编辑.env文件是最关键的一步。除了基础的数据库密码你必须配置至少一个AI供应商的API密钥否则很多核心功能无法使用。# 以下是一些关键配置示例以OpenAI和Anthropic为例 OPENAI_API_KEYsk-your-openai-api-key-here ANTHROPIC_API_KEYsk-ant-your-anthropic-api-key-here # 数据库和存储配置使用默认的Docker服务时以下通常可以保持默认 MONGO_URLmongodb://mongo:27017/workflowai CLICKHOUSE_URLhttp://clickhouse:8123/workflowai REDIS_URLredis://redis:6379/0 WORKFLOWAI_STORAGE_CONNECTION_STRINGs3://minio:miniosecretminio:9000/workflowai-task-runs?securefalse重要提示WORKFLOWAI_STORAGE_CONNECTION_STRING定义了文件如上传的PDF、AI生成的图片的存储位置。这里用的是MinIOS3兼容。在生产环境中你必须将其替换为真正的云存储服务如AWS S3、阿里云OSS、腾讯云COS的连接字符串并确保存储桶的访问权限设置正确。使用本地MinIO仅适合开发测试。# 3. 构建并启动依赖服务 # 先启动数据库、缓存等基础设施方便后续调试 docker-compose up -d clickhouse minio redis mongo # 4. 构建应用镜像这可能需要一些时间因为它会构建前端和后端 docker-compose build # 5. 启动全部服务 docker-compose up首次启动后访问http://你的服务器IP:3000应该能看到WorkflowAI的登录界面。默认情况下你需要注册第一个账号该账号将成为超级管理员。4.2 核心配置详解供应商密钥与内部Agent启动只是第一步要让平台真正“活”起来必须正确配置AI供应商。配置途径有两种全局环境变量如上一步在.env文件中配置OPENAI_API_KEY。这种方式配置的供应商对所有租户组织可用。租户级UI配置登录Web界面后进入组织设置-供应商在这里可以为当前组织单独添加或覆盖供应商配置。这对于多团队共享一套WorkflowAI实例但使用不同API预算的场景非常有用。一个极易忽略的坑内部Agent的依赖。WorkflowAI平台自身的一些高级功能例如“用自然语言描述来创建Agent”这个功能也是由它内部的AI Agent驱动的。这个内部Agent默认可能调用Claude 3.7模型。如果你没有配置Anthropic或BedrockAWS的托管模型服务的密钥那么这些高级功能就会静默失败。解决方案确保你至少配置了一个功能强大的通用模型供应商如OpenAI GPT-4、Anthropic Claude、Azure OpenAI。相关的内部Agent定义可以在代码库的./api/core/agents/目录下找到你可以查看它们具体依赖哪个模型然后配置相应的密钥。4.3 存储权限配置MinIO特定如果你在开发环境使用自带的MinIO需要设置存储桶的匿名读取权限以便前端能显示上传的文件和生成的图片。# 进入MinIO容器的shell docker-compose exec minio sh # 在容器内部执行以下命令 mc alias set myminio http://minio:9000 minio miniosecret mc anonymous set download myminio/workflowai-task-runs # 退出容器 exit生产环境警告在生产中绝对不要开启存储桶的匿名读取你应该通过WorkflowAI的API来获取经过身份验证的临时访问链接预签名URL。当前开源版本可能尚未完全实现此功能这是自托管时需要关注的一个安全点可能需要你自行修改前端或后端代码来实现安全的文件访问。4.4 生产环境部署考量Docker Compose适合快速启动但对于生产环境你需要考虑高可用MongoDB、ClickHouse、Redis都需要集群化部署。反向代理与SSL使用Nginx或Traefik作为反向代理配置HTTPS证书。镜像仓库将构建好的workflowai-api和workflowai-client镜像推送到私有仓库如Harbor。编排工具使用Kubernetes或Docker Swarm进行容器编排实现滚动更新和弹性伸缩。数据备份为MongoDB和ClickHouse建立定期备份策略。监控告警虽然WorkflowAI有内建观测性但你还需要监控服务器资源、容器健康状态等。5. 集成开发从Playground到生产代码WorkflowAI的价值最终体现在与你的应用集成上。它提供了多种无缝集成方式。5.1 使用Python SDK这是最灵活的方式。首先安装SDKpip install workflowai然后你可以直接引用在Web界面上定义好的Agent。假设你在WorkflowAI上创建了一个名为“Email Analyzer”的Agent。import asyncio from workflowai import WorkflowAIClient from pydantic import BaseModel # 1. 初始化客户端使用你的自托管实例地址和API密钥 client WorkflowAIClient( base_urlhttp://your-workflowai-server:8000, # API地址通常是后端服务的端口 api_keywf_sk_your_api_key_here # 从Web界面的API密钥页面获取 ) # 2. 定义与Agent匹配的输入Schema必须与Web端定义一致 class EmailInput(BaseModel): email_text: str sender: str | None None # 3. 异步调用Agent async def analyze_email(): input_data EmailInput(email_text你好我的订单#12345一直没有发货已经超过承诺时间3天了请尽快处理) # 调用名为“Email Analyzer”的Agent # 你可以指定特定的版本号如 versionv1.2不指定则使用最新版本 result await client.run_agent( agent_nameEmail Analyzer, input_datainput_data ) # result 已经是符合你定义输出Schema的Pydantic模型对象 print(f分类: {result.category}) print(f紧急程度: {result.urgency}) print(f总结: {result.summary}) for entity in result.key_entities: print(f- {entity}) # 运行 asyncio.run(analyze_email())关键优势类型安全输入输出都是Pydantic模型IDE会有自动补全和类型检查。版本化run_agent方法可以指定version参数实现灰度发布或快速回滚。全功能支持SDK支持流式响应Streaming、文件上传等所有特性。5.2 使用REST API对于非Python技术栈如Go、Java、Node.js可以直接调用REST API。WorkflowAI的API是标准的FastAPI应用提供了自动生成的OpenAPI文档通常位于/docs路径如http://localhost:8000/docs。一个调用Agent的典型POST请求如下curl -X POST http://your-server:8000/api/v1/runs/async \ -H Authorization: Bearer wf_sk_your_api_key \ -H Content-Type: application/json \ -d { agent_name: Email Analyzer, input: { email_text: 产品bug反馈..., sender: userexample.com } }响应会包含一个run_id你可以用这个ID去查询运行结果。这种解耦方式非常适合异步、事件驱动的架构。5.3 集成模式建议在实际项目中我推荐采用以下模式探索与原型阶段产品、算法、工程师共同在WorkflowAI Playground中快速试验Prompt、对比模型、定义Schema。确定最优方案。开发阶段工程师将确定的Agent“固化”到代码中通过SDK或API调用。将Agent的名称和版本号作为配置项管理便于后续更新。运维阶段利用WorkflowAI的内建仪表盘监控所有AI调用的成功率、延迟、成本。当需要优化或调整时回到第1步在Playground中创建新版本测试通过后在代码中更新版本号配置即可完成发布。6. 常见问题与排查技巧实录在自托管和使用过程中你肯定会遇到各种问题。以下是我踩过的一些坑和解决方案。6.1 部署与启动问题问题1docker-compose up后前端页面无法访问或API返回502错误。排查首先检查所有容器是否都正常运行docker-compose ps。查看可能启动失败的容器的日志docker-compose logs [服务名如api, client]。常见原因依赖服务未就绪api服务可能依赖MongoDB和ClickHouse。即使这些服务容器启动了数据库本身可能还在初始化。可以在docker-compose.yml中为api服务添加健康检查等待或者简单粗暴地先启动依赖等待30秒后再启动api和client。端口冲突确保宿主机上的3000前端、8000后端API、9000MinIO等端口未被占用。环境变量错误检查.env文件中的连接字符串格式是否正确特别是密码中是否有特殊字符需要转义。问题2上传文件或处理多模态任务时失败。排查检查MinIO或你配置的S3存储的权限和网络连通性。查看api服务的日志通常会有详细的错误信息。解决确保存储服务可访问并且WorkflowAI应用有正确的读写权限。对于MinIO务必执行前面提到的匿名访问设置仅限开发。6.2 供应商与模型调用问题问题3在Playground中测试Agent一直提示“No provider available”。排查检查.env文件或UI中的供应商配置API密钥是否正确、是否有余额。检查该Agent的配置是否指定了某个特定模型如gpt-4-turbo而你配置的供应商如Azure OpenAI可能不支持这个精确的模型名。解决在WorkflowAI中模型名称是全局唯一的标识符。如果你使用Azure OpenAI你需要配置的是Azure的端点和你部署的模型名称并在UI中选择对应的“Azure OpenAI”供应商下的正确模型。问题4调用SDK或API时超时但直接调用原生AI API是快的。排查这可能是网络问题也可能是WorkflowAI的某个环节如文件预处理、结果后处理成为瓶颈。解决在WorkflowAI的“运行记录”中查看该次调用的详细时间线看时间消耗在哪个阶段。如果是自托管检查服务器到AI供应商API的网络延迟。检查是否启用了需要网络访问的“托管工具”如网页搜索这些工具本身可能有超时。6.3 数据与观测性问题问题5ClickHouse日志报错或者运行记录查询非常慢。排查ClickHouse对磁盘IO和内存要求较高。如果数据量增长很快可能需要进行表优化或调整配置。解决确保给ClickHouse容器分配了足够的内存通过Docker资源限制或修改docker-compose.yml。定期清理旧的运行记录。WorkflowAI可能没有内置的自动清理任务你需要自己编写脚本或使用ClickHouse的TTL生存时间功能来定期删除旧数据。问题6成本追踪的数字感觉不准确。理解WorkflowAI的成本计算依赖于各AI供应商官方公布的定价和每次调用消耗的Token数。它通常是准确的但需要注意它是估算值最终费用以供应商账单为准。对于多模态调用如图像输入Token计算方式复杂可能存在细微偏差。如果你通过Azure OpenAI调用其计费模型可能与OpenAI官方略有不同。建议将WorkflowAI的成本报表作为一个强有力的相对参考和趋势分析工具。用它来比较不同任务、不同模型的成本差异并设置预警阈值。6.4 安全与权限问题7如何管理不同团队或用户的访问权限现状开源版本提供了基础的“组织”和“项目”概念但更细粒度的RBAC角色基于访问控制可能不够完善。建议对于中小团队可以利用“项目”进行隔离。为不同团队创建不同的项目并管理项目成员。如果需要企业级权限控制可能需要二次开发或者将WorkflowAI部署在内网通过外部的统一身份认证如OAuth2网关来保护其访问入口。WorkflowAI作为一个开源项目其强大之处在于它提供了一个极其完整的、以协作为中心的AI应用开发范式。虽然它的云服务即将落幕但这反而让它的开源版本价值倍增。通过自托管你可以获得完全的控制权并根据自身业务需求进行定制化开发。从快速原型验证到稳定生产部署从成本管控到故障容灾它几乎考虑到了AI工程化落地的每一个关键环节。对于任何希望将LLM能力产品化、并追求团队高效协作的团队来说深入研究并采纳WorkflowAI的设计思想甚至直接部署使用都是一笔非常值得的投资。开始动手部署吧在它完全“日落”之前建立起属于你自己的、可控的AI工作流引擎。

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