从零构建本地AI应用:基于DeepSeek-R1的RAG与智能体实战指南

news2026/5/16 2:01:33
1. 项目概述一个本地化AI应用的全栈学习与实践仓库最近在折腾本地大语言模型特别是DeepSeek-R1发现网上资料虽然多但要么太零散要么就是纯理论真正能让你从零开始、一步步把模型跑起来再做成能用的东西的完整指南太少了。于是我把自己过去几个月踩过的坑、试过的方案、最终跑通的代码整理成了这个名为Deepseek_Local_LATA的仓库。LATA四个字母分别代表了学习Learning、文章Articles、测试Testing和应用Application这基本涵盖了我探索本地LLM的完整路径先学明白再看别人怎么做的然后自己动手测试验证最后做出能解决实际问题的程序。这个仓库的核心目标很明确让你能在自己的电脑或服务器上完全本地化地部署和运用DeepSeek等开源大模型并围绕它构建起从知识库增强到智能体集群的一整套实用能力。无论是想搭建一个私密的、基于自己技术文档的问答助手还是想在局域网内共享AI算力给团队甚至是创建能自动操作浏览器的AI智能体你都能在这里找到对应的模块和详尽的实现步骤。我自己用的是一台带RTX 4090的游戏本但里面的很多方案对显存要求并不苛刻有些轻量级应用在消费级显卡上也能跑得起来。2. 核心思路与架构设计为什么是LATA四象限刚开始接触本地LLM时我面临的最大问题不是“怎么做”而是“该做什么”以及“按什么顺序做”。网上信息爆炸容易让人在工具选择和方向尝试上浪费大量时间。因此我设计了LATA这个结构它不仅仅是一个文件夹分类更是一个循序渐进的学习与实践框架。2.1 学习L构建认知地基避免空中楼阁在“学习”部分我放的不是泛泛而谈的AI科普而是经过筛选的、能直接指导动手的“弹药”。这包括精选书籍与文档例如《动手学深度学习》中与Transformer相关的章节、Hugging Face和Ollama的官方文档中关于模型加载与推理的核心部分。我特别标注了哪些章节对理解本地部署最关键避免你陷入庞杂的理论中。针对性编程示例收集了如何使用langchain、llama-index等框架与本地模型交互的最小可行示例MVE。这些代码通常只有几十行但能帮你快速理解API调用、上下文构建等基础概念。关键视频与博客链接主要是一些技术博主分享的实战视频比如“在Windows Subsystem for Linux (WSL2) 下配置CUDA环境”、“使用Ollama一键部署中文大模型”。这些资源解决了大量官方文档语焉不详的环境配置问题。我的经验是不要一开始就啃论文或追求大而全的教程。先从这些能“跑起来”的代码和解决具体环境问题的视频入手建立正反馈。认知地基打好了后面复杂的应用构建才会顺畅。2.2 文章A从理论到实践的路线图“文章”部分是我自己写的详细教程也是这个仓库的骨架。每一篇文章都对应一个完整的项目遵循“背景-原理-步骤-验证”的结构。例如在《本地部署DeepSeek-R1并与自定义RAG知识库集成》一文中我不仅写了怎么用Ollama拉取模型还详细解释了为什么选择Ollama而不是直接使用Transformers库Ollama提供了开箱即用的模型管理与优化对于快速原型开发来说效率极高它内置的量化技术能让大模型在有限显存下运行。RAG检索增强生成的工作流程究竟是如何在本地实现的我拆解了从文档加载、文本分割、向量化存储我用的是ChromaDB到用户提问时进行语义检索、并将检索到的片段作为上下文注入给DeepSeek-R1的完整过程。这里我补充了一个关键细节文本分割的块大小chunk size和重叠度overlap需要根据你的文档类型调整。技术文档可能适合较小的块如256字符而连贯的文章则需要更大的块和一定的重叠来保持语义完整性。如何评估RAG的效果我设计了一个简单的测试集包含“事实性问题”能在知识库中找到明确答案和“开放推理题”需要模型结合知识进行推理通过对比纯模型回答和RAG增强后的回答直观展示知识库的价值。这些文章的核心价值在于它们记录了我从零搭建时遇到的所有“坑”及其解决方案比如ChromaDB在Windows下的持久化路径问题、Ollama服务在局域网内绑定的IP地址配置等这些在通用教程里很少提及。2.3 测试T验证想法与探索边界“测试”目录下是一系列小型实验性程序目的是以最低成本验证某个技术点是否可行。这对于技术选型至关重要。Prompt Engineering测试我编写了多个针对DeepSeek-R1的提示词模板测试其在代码生成、文案润色、逻辑推理等不同任务上的表现。例如我发现对于代码任务在提示词开头明确加入“你是一个资深的Python程序员请遵循PEP8规范…”这样的角色定义能显著提升输出代码的质量和格式。不同RAG检索器对比我尝试了基于余弦相似度的简单检索和使用了bge-reranker重排序的检索在同一个问题上对比了答案的准确性。实测下来对于技术问答重排序能带来约15%的准确率提升但会轻微增加响应延迟。这个测试帮助我在后续的正式应用中做出了权衡。模型响应速度与资源监控一个简单的脚本在循环提问时记录GPU显存占用、响应延迟和Token生成速度。这让我清楚地知道在我的RTX 409024GB显存上DeepSeek-R1 7B量化版在处理长达4096的上下文时显存峰值会达到多少从而为同时运行多个服务提供了数据依据。测试的意义在于降低试错成本。你可以用这里的小程序快速验证你想用的那个库是否和当前版本的DeepSeek兼容你设计的智能体工作流在逻辑上是否通顺确认无误后再投入时间到正式的应用开发中。2.4 应用A产出实际可用的工具这是最终的产出阶段包含了可以直接运行或稍作修改就能用于生产环境的程序。Flask聊天机器人这是一个功能完整的Web应用它不仅仅是一个聊天界面。我为其设计了多模型切换功能可以同时连接后台多个Ollama服务比如分别运行了DeepSeek-R1和Qwen2.5的实例方便进行横向对比。前端采用了简单的EventSource来实现流式输出让你能看到模型一字一字“思考”的过程。局域网模型共享网关这个应用解决了团队协作中的一个痛点。不是每个同事都需要或懂得如何配置本地LLM环境。我写了一个轻量的Flask包装器部署在装有GPU的服务器上。它提供了安全的API接口和友好的Web界面局域网内的其他成员只需通过浏览器或调用API就能使用强大的本地DeepSeek模型而无需关心背后的技术细节。我在这里重点实现了简单的请求频率限制和API密钥验证防止资源被滥用。基于MCP的浏览器智能体这是我最满意的应用之一。它利用browser-use库让DeepSeek-R1能够理解“帮我在知乎搜索本地LLM部署的最佳实践并总结前三条结果”这样的自然语言指令并自动控制Chrome浏览器完成点击、输入、滚动等操作。实现的关键在于如何为模型构建精确的浏览器状态描述DOM元素信息、页面截图等并将其格式化为模型能理解的提示词。我分享了具体的提示词模板和上下文管理策略使得智能体能保持对多步骤任务的记忆和理解。3. 核心环节一本地DeepSeek-R1部署与RAG集成实战这是整个仓库的基石。一个稳定、高效的本地模型服务是所有上层应用的前提。3.1 环境准备与模型部署我强烈推荐使用Ollama作为本地模型的运行和管理工具。它的优势在于极致简单化。安装Ollama直接访问官网下载对应操作系统的安装包。Linux/macOS一行命令Windows则有安装程序。拉取DeepSeek-R1模型在终端执行ollama pull deepseek-r1:7b。这里注意deepseek-r1是模型名7b是70亿参数的版本还有1.5b等更小版本。Ollama会自动下载经过量化的模型文件通常是GGUF格式量化在几乎不损失精度的情况下大幅降低了显存占用和计算需求。运行与验证执行ollama run deepseek-r1:7b即可进入交互式聊天界面。更常用的方式是以服务模式启动ollama serve。这个服务默认在11434端口监听为后续的API调用提供支持。踩坑记录首次运行时Ollama可能会根据你的系统选择不同的底层运行器如llama.cpp或vllm。如果遇到性能问题可以尝试在Ollama的配置文件中指定。另外确保你的显卡驱动和CUDA版本如果是NVIDIA显卡是最新的这是很多奇怪问题的根源。3.2 构建自定义RAG知识库让通用大模型具备领域专业知识RAG是目前最实用、成本最低的方法。文档准备将你的领域文档如Markdown、PDF、Word集中放在一个文件夹。我建议先用工具如pandoc将它们统一转换为纯文本或Markdown格式减少解析复杂度。文档加载与分割使用langchain的文档加载器如UnstructuredFileLoader和文本分割器。这里有个关键技巧from langchain.text_splitter import RecursiveCharacterTextSplitter # 对于技术文档我采用以下参数 text_splitter RecursiveCharacterTextSplitter( chunk_size500, # 每个块约500字符 chunk_overlap50, # 块之间重叠50字符保持上下文连贯 separators[\n\n, \n, 。, , , , ] # 按中文习惯分割 ) docs text_splitter.split_documents(your_documents)分割后的“块”chunk是向量化的基本单位其大小和质量直接决定检索效果。向量化与存储我选择ChromaDB作为向量数据库因为它轻量且无需单独服务。from langchain.vectorstores import Chroma from langchain.embeddings import HuggingFaceEmbeddings # 使用开源的中文嵌入模型如BAAI/bge-small-zh-v1.5 embeddings HuggingFaceEmbeddings(model_nameBAAI/bge-small-zh-v1.5) vectorstore Chroma.from_documents(documentsdocs, embeddingembeddings, persist_directory./my_rag_db) vectorstore.persist() # 持久化到磁盘嵌入模型的选择至关重要它负责将文本转化为数学向量。对于中文场景务必选择针对中文优化的模型如BAAI系列否则检索准确率会大打折扣。检索与生成集成当用户提问时系统的工作流程如下检索将用户问题同样用嵌入模型转化为向量在向量数据库中查找最相似的K个文本块例如K4。构建上下文将这些检索到的文本块连同问题一起构造成一个详细的提示词Prompt发送给DeepSeek-R1。生成模型基于这个富含领域知识的上下文生成最终答案。我常用的提示词模板如下你是一个专业的助手请严格根据以下提供的上下文信息来回答问题。如果上下文信息不足以回答问题请直接说“根据已知信息无法回答该问题”不要编造信息。 上下文信息 {context} 问题{question} 请根据上下文回答这种明确的指令能有效约束模型“胡言乱语”提高答案的准确性和可靠性。4. 核心环节二构建局域网AI服务网关当本地模型部署好后如何安全、便捷地分享给局域网内的其他设备使用一个简单的Web包装器Wrapper是最佳选择。我使用Flask来实现因为它足够轻量且灵活。4.1 Flask网关的核心设计这个网关的核心功能是代理和协议转换。Ollama服务本身提供的是原始的API接口如/api/generate我们的网关将其包装成更友好、更安全的自定义API。基础路由设计from flask import Flask, request, jsonify, render_template import requests app Flask(__name__) OLLAMA_URL http://localhost:11434 # Ollama服务地址 app.route(/api/chat, methods[POST]) def chat(): user_message request.json.get(message) # 构建Ollama API请求体 ollama_payload { model: deepseek-r1:7b, prompt: user_message, stream: False # 网关处理先设为非流式简化逻辑 } response requests.post(f{OLLAMA_URL}/api/generate, jsonollama_payload) return jsonify({reply: response.json()[response]}) app.route(/) def index(): return render_template(chat.html) # 提供一个简单的前端界面关键增强功能多模型支持在请求中增加model参数网关可以动态地将请求转发给不同的Ollama模型甚至不同服务器上的Ollama实例。简单的认证通过API Key实现基础认证。API_KEYS {team_member_1: key123, team_member_2: key456} app.before_request def check_auth(): if request.endpoint ! index: # 主页不需要认证 api_key request.headers.get(X-API-Key) if not api_key or api_key not in API_KEYS.values(): return jsonify({error: Unauthorized}), 401请求限流使用flask-limiter库防止单个用户过度占用资源。日志记录记录所有请求和模型响应时间用于监控和调试。4.2 前端界面与流式响应为了更好的用户体验我为网关制作了一个极简的聊天界面使用纯HTML/JS并实现了流式响应Streaming。这是让对话感觉“实时”的关键。后端支持流式修改/api/chat接口将Ollama的stream参数设为True并逐块返回数据。app.route(/api/chat-stream, methods[POST]) def chat_stream(): def generate(): ollama_payload { ... , stream: True} with requests.post(f{OLLAMA_URL}/api/generate, jsonollama_payload, streamTrue) as r: for line in r.iter_lines(): if line: decoded_line line.decode(utf-8) # Ollama的流式响应是JSON Lines格式 json_data json.loads(decoded_line) yield fdata: {json.dumps({chunk: json_data.get(response, )})}\n\n return Response(generate(), mimetypetext/event-stream)前端通过EventSource接收前端JavaScript通过EventSource API连接流式端点实时将返回的文字块拼接到界面上。通过这个网关任何局域网内的设备无论是手机、平板还是其他电脑都可以通过浏览器访问一个统一的地址如http://192.168.1.100:5000来使用强大的本地DeepSeek模型而完全不需要在本地安装任何AI环境。5. 核心环节三创建能控制浏览器的MCP智能体将LLM与外部工具连接使其能执行具体动作是迈向“智能体”的关键一步。我选择浏览器自动化作为场景因为它直观且实用。5.1 系统架构与工作原理这个智能体基于Model Context Protocol (MCP)的思想构建其核心是一个循环观察 - 思考 - 行动 - 再观察。观察Observation使用browser-use库智能体可以获取当前浏览器页面的丰富信息包括DOM结构页面上所有可交互元素按钮、链接、输入框的ID、类名、文字。屏幕截图以图像形式捕获当前页面状态供多模态模型分析虽然DeepSeek-R1是纯文本模型但截图信息可以转化为文字描述。页面URL和标题。思考Reasoning将观察到的信息以结构化文本形式和用户指令如“在GitHub上搜索langchain”一起构造一个详细的提示词发送给本地的DeepSeek-R1模型。提示词的任务是让模型输出一个具体的、可执行的浏览器操作命令比如click(idsearch-input)或type(idsearch-input, langchain)。行动Action智能体解析模型输出的命令调用browser-use提供的API来实际操控浏览器如点击、输入、滚动。循环执行动作后页面状态发生变化智能体再次“观察”新页面并根据未完成的指令决定下一步操作直到任务完成或无法继续。5.2 提示词工程与动作设计让模型准确输出可解析的动作命令是最大的挑战。我经过多次迭代总结出有效的提示词结构你是一个浏览器自动化助手。你的目标是根据用户的指令和当前的页面状态输出下一个最合适的浏览器操作命令。 当前页面状态 URL: {current_url} 标题: {page_title} 可见的主要交互元素 - 一个搜索框id是‘search-box’placeholder是‘Search GitHub’ - 一个按钮文字是‘Sign in’id是‘login-button’ - 一个链接文字是‘Explore’href是‘/explore’ 用户指令{user_instruction} 你可以输出的命令必须是以下列表中的一种且格式必须严格匹配 1. 点击click(idelement_id) 或 click(text按钮文字) 2. 输入type(idelement_id, 要输入的文字) 3. 滚动scroll(down) 或 scroll(up) 4. 等待wait(2) 等待2秒 5. 结束done() 当任务完成时输出 6. 失败fail(原因) 当无法继续时输出 请只输出一条命令不要有任何其他解释。 思考过程首先我需要... 然后... 命令这个提示词做了几件关键事限定了输出格式、提供了清晰的页面上下文、枚举了所有可能的动作。我还加入了“思考过程”的引导鼓励模型进行链式推理这在多步骤任务中效果显著。5.3 实际应用与效果我测试了多个任务例如“在豆瓣电影Top250页面找到评分高于9.0的电影名列表”。智能体能够导航到豆瓣电影Top250页面。识别出评分元素通常是span classrating_num。通过滚动加载更多电影因为该列表是分页懒加载的。提取所有评分筛选出大于9.0的并记录对应的电影名称。 整个过程完全自动化。虽然速度比不上人工操作且对于极其复杂或动态加载的页面可能出错但它证明了本地LLM驱动智能体完成具体任务的可行性。这对于自动化数据采集、软件测试、重复性网页操作等场景具有很大潜力。6. 常见问题与实战排查记录在搭建和运行这一整套系统的过程中我遇到了无数问题。这里记录下最具代表性的几个及其解决方案希望能帮你节省大量时间。6.1 模型部署与运行问题问题1Ollama拉取模型速度极慢或失败。原因默认的镜像源可能在国外网络不稳定。解决配置Ollama使用国内镜像源。对于Linux/macOS在终端执行export OLLAMA_HOST0.0.0.0 # 可选使服务可被局域网访问 export OLLAMA_MODELS/path/to/your/models # 可选自定义模型存储路径 # 最关键的一步设置镜像 export OLLAMA_ORIGINShttps://mirror.ghproxy.com/https://github.com/ollama/ollama然后重启Ollama服务。也可以在Ollama的系统服务配置文件中永久设置这些环境变量。问题2运行模型时GPU显存不足Out of Memory。原因模型参数过大或上下文长度设置太高。解决选择更小的量化版本ollama pull deepseek-r1:7b-q4_0比deepseek-r1:7b显存占用更小。q4_0、q8_0是常见的量化等级数字越小量化越激进精度损失可能略大但显存占用和速度优势明显。调整上下文长度在运行或API调用时通过num_ctx参数限制上下文窗口例如设为2048。检查是否有其他进程占用显存使用nvidia-smi命令查看。6.2 RAG检索效果不佳问题检索到的文档块似乎不相关导致模型回答质量差。原因分析这通常是嵌入模型不匹配或文本分割策略不当导致的。排查与解决测试嵌入模型用一个简单的问题和你知道答案的文档测试检索到的前3个块是否包含正确答案。如果不包含首先怀疑嵌入模型。更换嵌入模型对于中文强烈推荐BAAI/bge-large-zh-v1.5或BAAI/bge-small-zh-v1.5。虽然large版本效果更好但small版本速度更快资源消耗更少对于百万级以下的文档库通常够用。优化文本分割如果嵌入模型没问题但检索不准可能是分割的“块”没有包含完整的语义单元。尝试调整chunk_size和chunk_overlap。对于段落感强的文档可以尝试按“\n\n”分割对于技术文档可以尝试按章节标题分割。引入重排序Reranker这是一个进阶技巧。先用嵌入模型检索出较多的候选块如20个再用一个专门的重排序模型如BAAI/bge-reranker-large对这20个块进行精排选出最相关的3-4个。这能显著提升精度但会增加延迟。6.3 局域网网关访问问题问题在同一局域网下的另一台电脑无法通过浏览器访问Flask网关。原因Flask默认开发服务器只绑定在127.0.0.1localhost拒绝外部连接。解决在启动Flask应用时指定主机为0.0.0.0。# 在项目目录下 export FLASK_APPyour_gateway_app.py flask run --host0.0.0.0 --port5000然后在其他电脑的浏览器中输入http://[你的主机IP地址]:5000即可访问。请注意这会使服务暴露在局域网内请务必确保你已经设置了API密钥等基础认证不要在生产环境中使用不带认证的--host0.0.0.0。6.4 浏览器智能体动作执行失败问题模型输出的命令格式正确但browser-use执行时找不到元素。原因页面是动态加载的模型基于之前的“观察”输出了命令但在命令执行前页面元素已经发生了变化例如点击后加载了新内容。解决增加等待在关键操作如点击一个预计会触发页面刷新的按钮后强制让智能体执行一个wait(3)命令等待几秒让页面稳定。改进观察机制在每次执行动作前可以设置一个简短的“重新观察”步骤确保当前页面状态是最新的。这可以通过在动作执行循环中更频繁地调用browser-use的观察函数来实现。使用更鲁棒的选择器在提示词中鼓励模型优先使用id选择器因为id通常是唯一且稳定的。如果只能用文本则尽量使用完整的、独特的按钮文字。折腾这一套本地AI应用栈的过程就像在组装一台精密的仪器。每一个环节——模型、向量数据库、Web框架、自动化工具——都可能出问题但每解决一个问题你对整个系统的理解就加深一层。我最深的体会是不要追求一步到位。先从最简单的“把模型跑起来聊天”开始然后加入RAG让它“有知识”再做个Web界面让它“能共享”最后尝试赋予它“动手能力”。每一步都稳扎稳打用测试程序验证想法最终组合起来就是一个强大且完全受你控制的本地AI生产力工具。这个仓库里的所有内容都是我按照这个路径一步步走过来的记录希望能成为你探索路上的一个实用路标。

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