基于LangGraph的多智能体AI内容生成系统XunLong实战指南

news2026/5/18 21:14:14
1. 项目概述一个基于多智能体协作的AI内容生成系统最近在折腾一个挺有意思的开源项目叫XunLong。简单来说这是一个利用大语言模型LLM驱动的多模态内容生成系统。你可以把它理解为一个“AI内容工厂”你只需要给它一个主题或一个简单的指令它就能自动帮你生成一份结构完整、质量不错的报告或者构思并撰写一部小说甚至制作出一套演示文稿PPT。这听起来可能和市面上很多AI写作工具类似但XunLong的核心差异在于它的“大脑”结构。它没有采用单一的、线性的生成流程而是构建了一个基于LangGraph的多智能体协作架构。这意味着当你下达一个“生成一份关于2025年AI趋势的报告”的命令时系统内部会像一支分工明确的专业团队一样运作起来一个“项目经理”智能体负责拆解任务一个“研究员”智能体去网上搜集资料一个“撰稿人”智能体负责撰写内容还有一个“质检员”智能体负责审核和优化。这套机制的目标是让生成的内容不再是简单的文本堆砌而是具备逻辑性、结构性和信息深度的“作品”。我自己尝试用它生成了几份技术报告和产品介绍PPT最直观的感受是省心。过去要写一份像样的报告我得自己查资料、搭框架、填充内容、调整格式现在大部分机械性、结构性的工作可以交给它。当然它并非万能最终的成品质量高度依赖于你给它的指令清晰度、以及背后调用的LLM模型能力。但作为一个开源项目它提供了一个非常棒的框架让你可以基于此进行定制和优化无论是想生成特定领域的行业报告还是想打造一个内部的内容生产流水线都有很大的发挥空间。2. 核心架构与设计思路拆解要理解XunLong怎么工作得先抛开“黑盒”思维看看它的内部设计。它的核心思想是“分而治之”和“协同作业”这主要通过LangGraph来实现。2.1 为什么选择LangGraph与多智能体架构传统的AI内容生成工具往往是一个“端到端”的模型调用用户输入Prompt模型一次性输出长文本。这种方式有几个痛点一是生成长文本时容易“跑偏”或前后矛盾二是难以融入复杂的逻辑比如先搜索、再分析、后撰写三是中间过程不可控、不可观测。XunLong采用多智能体架构正是为了解决这些问题。LangGraph在这里扮演了“总调度中心”的角色。它不是一个简单的函数调用链而是一个有状态的图State Graph。每个智能体Agent是图中的一个节点节点之间通过有向边连接定义了工作流的方向。系统会维护一个共享的“状态”State记录了当前任务进度、已收集的信息、生成的内容草稿等。这个状态对象随着工作流的推进在不同的智能体间传递和更新。举个例子当你命令生成报告时工作流可能是这样的协调器Coordinator节点接收用户指令分析出需要生成的是“报告”主题是“AI趋势”。它将这个初始状态包含任务类型、主题传递给下一个节点。搜索智能体Search Agent节点从状态中拿到“AI趋势”这个关键词启动并行网络搜索抓取最新的行业文章、数据报告。然后将搜索到的摘要和链接整合更新到状态对象里。报告生成智能体Report Agent节点它看到状态里已经有了主题和参考资料开始工作。它可能先生成一份报告大纲更新状态然后根据大纲逐章撰写内容再次更新状态。在这个过程中它可能会反复查阅状态中的搜索资料。评审智能体Review Agent节点报告草稿完成后它负责检查逻辑连贯性、事实准确性基于搜索资料、语法和格式。提出修改意见并更新状态。格式转换智能体HTML Converter节点将最终的Markdown内容转换为美观的HTML。整个流程中状态是唯一的信息载体每个智能体只关心如何读取和修改状态中自己负责的部分。这种设计带来了几个好处模块化每个智能体可以独立开发和替换、可观测性整个状态变化历程可以被记录和调试、灵活性可以轻松调整工作流比如在生成小说时加入“角色一致性检查”节点。2.2 系统分层架构解析从代码目录结构也能清晰看出它的分层设计思想用户接口层目前主要是xunlong.py这个CLI命令行工具。这是用户与系统交互的入口负责解析命令和参数。智能体编排层这是核心大脑主要是src/agents/coordinator.py。它定义了基于LangGraph的工作流图负责任务的初始化解构和整个流程的推进。核心智能体层位于src/agents/下的各个子目录。这是干活的“员工团队”report/,fiction/,ppt/分别对应报告、小说、PPT的内容生成专家每个里面可能还细分了负责大纲、章节、幻灯片的不同子智能体。iteration_agent.py负责处理用户的修改指令实现内容的迭代优化。html/负责将Markdown内容渲染成带样式的HTML这是导出为PDF、DOCX等格式的前置步骤。支持服务层src/export/导出管理器将HTML转换成最终的PDF、DOCX或PPTX文件。这里会用到像WeasyPrint、python-docx、python-pptx这样的库。src/storage/存储管理器。每个生成任务都会在storage/目录下创建一个独立文件夹保存所有中间状态、最终结果和版本历史。这不仅是持久化也为迭代功能提供了基础。LLM服务层src/llm/。这是系统的“燃料库”。它抽象了不同LLM提供商OpenAI、Anthropic、DeepSeek等的API调用为上层的智能体提供统一的模型调用接口。这层设计使得切换或增加模型供应商变得非常容易。搜索层src/search/。提供信息检索能力。根据配置可以优先使用Perplexity这类AI搜索API获取更精准的信息也可以降级使用Playwright控制的浏览器进行常规网页抓取。实操心得理解状态流是关键刚开始接触这类多智能体系统时容易把每个智能体想成独立的服务。实际上在XunLong中最重要的是理解“状态对象”的流动。调试时查看storage/项目文件夹下的intermediate/子目录里的JSON文件你能清晰地看到任务是如何一步步被分解数据是如何一步步被丰富起来的。这是排查“为什么智能体A没拿到智能体B的数据”这类问题的最有效方法。3. 从零开始的部署与配置实战光说不练假把式我们一步步把它跑起来。这里我会以macOS/Linux环境为例Windows用户只需注意虚拟环境激活命令的差异。3.1 基础环境搭建首先确保你的机器上有Python 3.10或更高版本。然后我们获取代码并准备隔离的Python环境。# 1. 克隆仓库 git clone https://github.com/jaguarliuu/xunlong.git cd xunlong # 2. 创建并激活虚拟环境强烈推荐避免包冲突 python -m venv venv # macOS/Linux: source venv/bin/activate # Windows: # venv\Scripts\activate # 3. 安装Python依赖 pip install -r requirements.txtrequirements.txt里会包含LangChain、LangGraph、Playwright等核心库。安装过程可能会花点时间。3.2 处理系统依赖特别是PDF导出这是第一个容易踩坑的地方。XunLong使用WeasyPrint将HTML转换为PDF而WeasyPrint依赖一些系统级的图形库。# macOS (使用Homebrew) brew install pango gdk-pixbuf libffi # Ubuntu/Debian sudo apt-get update sudo apt-get install libpango-1.0-0 libpangoft2-1.0-0 libgdk-pixbuf2.0-0 libffi-dev如果跳过这一步在运行导出PDF命令时你很可能会遇到关于libpango或gdk-pixbuf的错误提示找不到某些库。Windows用户通常可以通过安装GTK运行时库来解决具体可参考WeasyPrint官方文档。3.3 配置浏览器与API密钥系统需要浏览器来进行备用的网页搜索当Perplexity API不可用时。# 安装Playwright的Chromium浏览器 playwright install chromium接下来是最关键的一步配置API密钥。项目根目录下有一个.env.example文件复制它并重命名为.env。cp .env.example .env然后用文本编辑器打开.env文件。你需要至少配置一个LLM提供商的API密钥。# 主LLM提供商三选一即可推荐OpenAI或DeepSeek OPENAI_API_KEYsk-your-openai-api-key-here OPENAI_BASE_URLhttps://api.openai.com/v1 # 如果你用官方API这个不用改 OPENAI_MODELgpt-4o # 或 gpt-4-turbo, gpt-3.5-turbo # 或者使用Anthropic (Claude) # ANTHROPIC_API_KEYyour_anthropic_api_key # ANTHROPIC_MODELclaude-3-5-sonnet-20251022 # 或者使用DeepSeek (性价比高) # DEEPSEEK_API_KEYyour_deepseek_api_key # DEEPSEEK_BASE_URLhttps://api.deepseek.com/v1 # DEEPSEEK_MODELdeepseek-chat # 搜索增强可选但推荐Perplexity API能提供更精准、实时的网络信息 PERPLEXITY_API_KEYyour_perplexity_api_key # 可观测性可选LangFuse用于追踪每次调用的花费、延迟和详细过程对调试和优化非常有用 LANGFUSE_PUBLIC_KEYyour_langfuse_public_key LANGFUSE_SECRET_KEYyour_langfuse_secret_key LANGFUSE_HOSThttps://cloud.langfuse.com注意事项模型选择与成本控制对于报告生成建议使用能力最强的模型如gpt-4o或claude-3-5-sonnet因为这对逻辑性和信息整合要求高。对于小说生成如果追求创意和文笔同样推荐上述大模型。如果只是测试流程gpt-3.5-turbo或deepseek-chat也可以。关于Perplexity API它不是必须的但没有它系统只能进行普通的网页爬取信息质量和时效性会打折扣。对于需要最新数据的报告建议配置上。关于LangFuse如果你是开发者想深入了解每个智能体调用了多少次API、消耗了多少Token、流程卡在了哪里强烈建议配置。它提供了一个可视化的跟踪界面。4. 核心功能使用详解与实操案例环境配好了我们来实际生成点东西。XunLong的所有操作都通过命令行完成结构清晰。4.1 生成你的第一份研究报告假设我们要为一家科技媒体写一份关于“2025年量子计算商业化前景”的简报。python xunlong.py report 2025年量子计算商业化前景分析 --style business --depth standard --verbose分解一下这个命令report: 指定生成类型为研究报告。2025年量子计算商业化前景分析: 核心主题指令。尽量描述得具体一些。--style business: 指定报告风格为“商业报告”。这会影响行文语气、结构和侧重点如更多市场分析、竞争格局。--depth standard: 生成深度为“标准”。overview概览更快更浅comprehensive全面更慢更深。--verbose: 开启详细日志让你能在终端看到智能体们正在做什么“正在分解任务...”、“正在搜索量子计算最新融资...”对于了解流程和调试非常有用。执行后系统会开始工作。你会看到终端滚动日志大概5-10分钟后生成完成。输出会告诉你项目ID例如20251004_220823和结果保存路径。查看结果所有生成内容都保存在storage/目录下以项目ID命名的文件夹里。storage/20251004_220823/reports/FINAL_REPORT.md: 最终的Markdown报告。storage/20251004_220823/reports/FINAL_REPORT.html: 渲染好的HTML版本用浏览器打开可以直接预览。storage/20251004_220823/intermediate/: 这里面的JSON文件记录了任务分解、搜索结果的原始数据、生成的大纲等是学习系统如何思考的绝佳材料。4.2 进阶技巧利用现有文档作为上下文这是XunLong一个非常强大的功能。你手头可能已经有了一份产品说明书、会议纪要或调研笔记你可以让它基于这些现有材料来生成内容保证产出与你的知识背景高度相关。python xunlong.py report 基于现有产品的市场拓展策略 --input-file ./docs/product_spec.docx--input-file参数支持.txt,.pdf,.docx格式。系统会读取文件内容进行智能摘要并将其作为高优先级的背景信息注入到生成过程中。比如你的产品文档里提到了核心功能A、B、C那么生成的报告在讨论策略时就会自然地围绕如何推广A、B、C来展开。4.3 生成一部短篇小说创作一个关于“人工智能获得情感后与人类画家的故事”。python xunlong.py fiction 当AI学会感受一位机器与画家的巴黎往事 --genre scifi --chapters 5 --verbosefiction: 指定生成小说。--genre scifi: 指定科幻风格。其他选项如romance言情、mystery悬疑会显著影响故事基调、情节套路和人物设定。--chapters 5: 指定生成5个章节。系统会自动构思一个包含起承转合的完整故事结构。生成的小说同样会保存在项目目录下。你可以打开HTML文件阅读会发现它甚至可能生成了章节标题、段落分隔基本像模像样。4.4 制作一份演示文稿为公司季度复盘制作一个PPT。python xunlong.py ppt 2024年Q3产品团队工作复盘与Q4规划 --style business --slides 12 --speech-notes 面向全体产品团队的内部汇报 --verboseppt: 指定生成演示文稿。--slides 12: 目标页数。--speech-notes 面向全体产品团队的内部汇报: 这个参数非常实用它会根据你提供的听众背景为每一页PPT生成对应的“演讲者备注”。你导出PPTX后这些备注会显示在PowerPoint的备注栏里相当于自动生成了你的演讲提纲。PPT的生成结果除了Markdown和HTML还会有一个PPT_DATA.json文件里面以结构化的方式存储了每一页的标题、内容、布局和备注信息。4.5 内容的迭代与修改很少有内容能一稿过。XunLong的迭代功能让你可以基于已有成果进行修改。首先用ls storage/或查看上次生成的输出来找到你的项目ID。# 假设项目ID是 20251004_220823 # 我想在报告的第三章增加一个关于“技术挑战”的章节 python xunlong.py iterate 20251004_220823 在第三章中增加一个小节详细分析当前量子计算面临的主要技术挑战如量子比特稳定性、错误率等。 # 我觉得小说开头不够吸引人想重写第一章 python xunlong.py iterate 20251005_101501 重写第一章要求开篇更具画面感直接从一个雨夜的实验室场景开始。 # 修改PPT第五页把文字描述改成图表形式 python xunlong.py iterate 20251005_101523 将第五页幻灯片的内容从文字列表改为一个展示季度营收增长趋势的柱状图。迭代命令会找到对应的项目在versions/子目录下创建新版本然后根据你的指令调用迭代智能体进行修改。这个智能体会分析你的指令是“局部修改”还是“全局调整”然后有针对性地进行重写或重组。4.6 导出为最终格式生成的内容默认是Markdown和HTML但我们可以导出为更通用的格式。# 导出为PDF python xunlong.py export 20251004_220823 pdf # 导出为Word文档 python xunlong.py export 20251004_220823 docx # 如果是PPT项目还可以导出为PPTX python xunlong.py export 20251005_101523 pptx # 指定输出路径 python xunlong.py export 20251004_220823 pdf --output ./my_awesome_report.pdf导出的文件会保存在项目文件夹的exports/子目录下也会复制到你指定的路径。5. 高级配置与定制化开发如果你不满足于基本使用想让它更贴合你的需求XunLong提供了不少配置入口。5.1 配置LLM模型与参数在config/llm_config.yaml中你可以进行更精细的LLM控制。providers: default: # 默认使用的配置 provider: openai model: gpt-4o temperature: 0.7 # 创造性越高越随机 max_tokens: 4000 # 单次回复的最大长度 creative: # 可以为小说生成单独配置一个更有“创意”的模型 provider: anthropic model: claude-3-5-sonnet-20251022 temperature: 0.9 search: # 为搜索总结配置一个快速便宜的模型 provider: openai model: gpt-3.5-turbo temperature: 0.3 # 你可以在不同智能体中指定使用哪个配置 agent_configs: report_outline_agent: llm_config: default fiction_dialogue_agent: llm_config: creative search_summary_agent: llm_config: search通过这样的配置你可以让负责写报告大纲的智能体用精准的GPT-4让负责写小说对话的智能体用更有文采的Claude而让处理搜索摘要的智能体用快速的GPT-3.5在效果和成本间取得平衡。5.2 定制输出模板如果你对默认的HTML样式不满意可以修改templates/目录下的模板文件。templates/report_template.html: 控制报告最终的HTML样式。templates/fiction_template.html: 控制小说的HTML样式。templates/ppt_slide_template.html: 控制PPT每页幻灯片的HTML结构。你可以在这里修改CSS样式改变字体、颜色、间距甚至调整HTML结构来适应你的品牌风格。修改后重新生成或导出的内容就会应用新模板。5.3 理解与扩展智能体这是最深入的定制层面。每个智能体本质上是一个LangChain的“工具调用代理”Tool-calling Agent或“函数调用代理”。它们在src/agents/目录下定义。如果你想让它支持生成“周报”你可以参考report/目录的结构创建一个weekly_report/目录在里面定义你自己的“周报协调器”、“周报内容生成器”等智能体。然后你需要在主协调器coordinator.py中注册这个新的工作流并在CLI工具中添加对应的命令。这个过程需要对LangGraph有基本了解但框架已经搭好你主要是在填充领域特定的逻辑和Prompt。例如一个周报生成智能体的Prompt可能会强调“总结本周工作”、“列出下周计划”、“提出风险和问题”。6. 常见问题排查与实战心得在实际使用和开发中你肯定会遇到各种问题。这里记录一些典型情况和解决思路。6.1 生成内容空洞或跑题症状生成的报告泛泛而谈没有深度小说情节老套或逻辑不通。排查与解决检查指令你的初始指令是否足够具体“AI发展趋势”就不如“2025-2027年生成式AI在医疗影像诊断领域的技术演进、主要玩家与市场机遇分析”来得明确。给AI更清晰的边界。检查搜索质量查看intermediate/02_search_results.json。如果搜索返回的结果很少或质量差内容自然空洞。考虑配置并启用Perplexity API或者尝试在指令中加入更具体的关键词引导搜索。升级模型如果用的是gpt-3.5-turbo尝试换成gpt-4o或claude-3-5-sonnet能力差距在复杂任务上非常明显。使用迭代功能第一稿不满意很正常。用iterate命令具体指出哪里不好希望如何改进。比如“第一章缺乏冲突请为主角增加一个道德困境”。6.2 PDF导出失败或格式错乱症状执行export pdf命令时报错或生成的PDF排版混乱、图片不显示。排查与解决系统依赖这是最常见的原因。确保已按照前文所述安装了pango、gdk-pixbuf等系统库。在Linux上可能需要安装更多字体包如sudo apt-get install fonts-liberation。HTML/CSS兼容性WeasyPrint对现代CSS的支持有限。如果你自定义了模板使用了太新的CSS特性如Flexbox、Grid的某些用法可能导致渲染错误。简化模板样式或参考WeasyPrint官方支持的CSS属性列表。中文字体默认可能不包含中文字体导致中文显示为方块。解决方案是在模板的CSS中通过font-face指定一个系统中存在的中文字体路径或者将字体文件打包进项目。6.3 运行速度慢或Token消耗高症状生成一个简单报告也要十几分钟或者查看LangFuse发现API调用花费巨大。排查与解决分析LangFuse跟踪如果配置了LangFuse打开其控制台查看整个工作流的“Trace”。你会发现时间花在了哪个智能体上哪个步骤的Token消耗最大。可能是搜索步骤抓取了过多网页也可能是某个智能体的Prompt过于冗长导致每次回复都很长。调整depth参数生成报告时将--depth comprehensive改为--depth standard或--depth overview。优化搜索配置在config/search_config.yaml中减少max_results例如从10改为5限制搜索的广度。模型降级对于不那么重要的步骤如初步信息筛选在llm_config.yaml中配置使用更小、更快的模型如gpt-3.5-turbo。6.4 迭代功能对PPT支持不完善症状项目README中提到“PPT迭代目前会重新生成整个演示文稿”这意味着你无法只修改某一页。当前局限与应对这确实是当前版本的一个短板。PPT的结构幻灯片顺序、布局比线性文本更复杂局部修改的难度更大。变通方案1先导出PPTX然后在PowerPoint或Google Slides中手动修改。毕竟AI已经完成了从0到1的创作从1到1.5的微调手动做可能更快。变通方案2如果必须用迭代指令要非常精确。例如“保持其他幻灯片不变仅将第三张幻灯片的内容替换为以下要点1... 2... 3...”。虽然系统可能还是会触发全量生成但更精确的指令有助于新生成的内容更贴近你的要求。6.5 Playwright浏览器相关问题症状首次运行或在新环境运行时提示浏览器无法启动或找不到。解决确保运行过playwright install chromium。如果问题依旧可以尝试指定浏览器路径或在代码中为Playwright设置headlessTrue无头模式并传递--no-sandbox等启动参数通常在Docker环境中需要。一个重要的安全提醒整个系统严重依赖外部APILLM和搜索。你的所有提示词、生成的中间内容、上传的文档都会被发送到这些第三方服务。因此切勿使用任何敏感、保密或个人信息进行测试或生成。对于企业级应用需要考虑部署私有化模型或与能提供数据保密协议的API服务商合作。从我个人的使用体验来看XunLong的价值不在于替代专业作者或设计师而在于成为一个强大的“初级助理”和“灵感加速器”。它能快速搭起一个内容骨架处理好繁琐的资料搜集和初步撰写让你能把宝贵的时间集中在最需要人类判断力的部分战略思考、创意构思和最终的质量把关。把它集成到你的内容工作流中而不是期待它完全独立工作你会获得最佳体验。

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