LightChat本地AI助手部署指南:架构解析与Ollama集成实战

news2026/5/7 1:55:31
1. 项目概述与核心价值最近在折腾一些本地化的AI应用发现了一个挺有意思的开源项目叫LightChat。简单来说它就是一个让你能在自己的电脑上用类似ChatGPT的对话界面去调用各种开源大语言模型LLM的工具。这玩意儿解决了一个很实际的痛点我们想体验最新的AI对话能力但又不想把所有数据都传到云端或者受限于某些服务的网络和费用。LightChat把这一切都搬到了本地从模型加载、对话交互到历史记录管理提供了一个完整的、图形化的解决方案。它的核心价值在于“一体化”和“低门槛”。你不需要分别去配置模型的服务端、再找一个独立的前端界面或者写一堆脚本去调用API。LightChat把这些都打包好了提供了一个开箱即用的桌面应用。这对于开发者、研究者或者仅仅是AI爱好者来说非常友好。你可以快速测试不同模型的表现进行一些私密的对话或者基于它进行二次开发。项目在GitHub上由Harry-Yu-Shuhang维护采用了流行的技术栈像Electron做桌面端Vue做前端后端则负责与模型推理引擎如Ollama、vLLM等打交道。接下来我就结合自己实际部署和使用的经验把这个项目的里里外外、关键配置以及踩过的坑给大家拆解清楚。2. 核心架构与设计思路拆解2.1 为什么是“客户端-服务端”分离架构LightChat没有采用把所有东西塞进一个进程的“大单体”设计而是清晰地分成了客户端Client和服务端Server。这是一个非常关键且明智的设计决策。客户端就是我们看到的那个桌面应用窗口负责渲染漂亮的聊天界面、管理对话历史、处理用户输入。而服务端则是一个常驻的后台进程它才是真正的“大脑”负责与底层的大模型推理引擎进行通信。这种分离带来的好处是多方面的。首先它提升了稳定性。如果前端的UI因为某些操作卡死了后端的模型推理服务通常不会受到影响对话状态得以保持。其次它便于扩展和维护。服务端可以独立升级、配置甚至部署在另一台性能更强的机器上通过网络调用而客户端可以保持轻量。最后它赋予了技术栈选择的灵活性。客户端用Electron和Vue可以做出体验优秀的跨平台桌面应用服务端则可以用更擅长处理高并发、长时间连接的技术比如Python的异步框架。在实际使用中你会明显感觉到这种架构的优势。比如你可以关闭LightChat的窗口但服务端仍在后台运行模型也保持在加载状态。当你再次打开客户端时可以瞬间恢复之前的对话上下文无需重新加载模型体验非常流畅。2.2 核心组件交互流程理解各个组件如何协同工作是解决后续很多问题的关键。我们可以把一次完整的对话请求流程梳理一下用户输入你在LightChat客户端的输入框里敲入问题点击发送。客户端处理客户端将你的问题、当前对话的历史记录作为上下文、以及你选择的模型参数如温度、最大生成长度打包成一个结构化的请求。请求转发客户端通过HTTP或WebSocket将这个请求发送给LightChat服务端。服务端监听着一个特定的本地端口例如8000。服务端路由服务端接收到请求后根据配置知道你需要调用哪个“模型后端”。LightChat支持多种后端最常见的是Ollama。调用模型后端服务端将格式化后的请求转发给真正的模型推理服务比如Ollama服务它可能运行在11434端口。这一步LightChat服务端扮演了一个“智能代理”或“适配器”的角色。流式响应模型推理开始生成文本。为了体验流畅这里普遍采用“流式传输”Streaming。Ollama会一边生成token一边分块返回给LightChat服务端服务端再实时转发给客户端。客户端渲染客户端收到一个个文本块后将其像打字机一样逐字渲染到对话气泡中你就能看到模型“一个字一个字”地回复了。历史记录更新当本次回复完整接收后客户端会将本轮完整的问答更新到本地对话历史中通常存储在客户端的本地数据库如SQLite里。整个流程中LightChat服务端是中枢它统一了不同模型后端Ollama, vLLM, OpenAI API兼容服务等的调用接口对客户端提供一致的服务。这种设计让你在切换不同模型时几乎无需改变客户端的任何操作。2.3 技术栈选型背后的考量项目选型体现了务实和追求现代开发体验的思路。客户端 (Electron Vue Vite Pinia): Electron让使用Web技术开发跨平台桌面应用成为可能一次编写即可在Windows、macOS、Linux上运行。Vue 3的响应式特性和组合式API让构建复杂的交互界面变得高效且易于维护。Vite作为构建工具提供了极快的冷启动和热更新速度提升了开发体验。Pinia作为状态管理库比Vuex更简洁很好地管理了应用全局状态如当前模型、主题、所有会话历史。服务端 (Python FastAPI): Python是AI生态的“官方语言”几乎所有模型工具和库都对其有最佳支持。FastAPI是一个现代、高性能的Python Web框架它天生支持异步async/await非常适合处理像模型推理这种可能耗时的I/O密集型请求并且能自动生成交互式API文档对开发者非常友好。通信 (WebSocket / HTTP): 对于流式响应WebSocket是更自然的选择因为它提供了全双工、长连接的通路适合服务器主动向客户端推送数据。LightChat很可能同时支持HTTP流和WebSocket以适应不同场景。数据持久化: 对话历史、应用配置等数据需要持久保存。客户端使用类似IndexedDB或SQLite的本地存储方案是合理的保证了数据的私密性和应用的离线可用性。这套技术栈组合保证了项目既有良好的用户体验又能紧密融入AI开发生态同时具备不错的可维护性。3. 从零开始的详细部署与配置指南3.1 基础环境准备在拉取代码之前我们需要确保机器上有正确的运行环境。这分为客户端和服务端两部分。服务端环境 (Python侧):LightChat服务端是Python写的所以首先需要Python环境。推荐使用Python 3.10或3.11这是目前多数AI库兼容性最好的版本。安装Python: 去Python官网下载对应操作系统的安装包。安装时务必勾选“Add Python to PATH”这样才能在命令行中直接使用python和pip命令。验证安装: 打开终端Windows用CMD或PowerShellmacOS/Linux用Terminal输入python --version和pip --version确认版本信息正确显示。可选但推荐创建虚拟环境: 为了避免项目依赖污染系统全局的Python环境强烈建议使用虚拟环境。在项目计划存放的目录下执行# 创建虚拟环境环境文件夹名为 venv python -m venv venv # 激活虚拟环境 # Windows (CMD/PowerShell): venv\Scripts\activate # macOS/Linux: source venv/bin/activate激活后命令行提示符前通常会显示(venv)表示你已进入该独立环境。客户端环境 (Node.js侧):LightChat客户端基于Node.js生态需要安装Node.js和包管理器npm或yarn/pnpm。安装Node.js: 访问Node.js官网下载LTS长期支持版安装包。安装过程同样注意添加至PATH。验证安装: 终端中输入node --version和npm --version显示出版本号即成功。注意如果你的网络环境导致npm安装包缓慢或失败可以配置国内镜像源。例如使用淘宝镜像npm config set registry https://registry.npmmirror.com3.2 获取项目源码与依赖安装环境准备好后开始部署项目本身。克隆仓库: 打开终端切换到你希望存放项目的目录执行克隆命令。git clone https://github.com/Harry-Yu-Shuhang/lightchat.git cd lightchat如果GitHub访问不畅也可以考虑使用Gitee等平台的镜像仓库或者使用ghproxy.com等代理加速GitHub的下载。安装服务端依赖: 确保你已在Python虚拟环境中命令行前有(venv)。LightChat服务端的依赖通常定义在requirements.txt或pyproject.toml文件中。# 通常使用pip安装-r 参数指定依赖文件 pip install -r requirements.txt这个过程会下载FastAPI、Pydantic、httpx等必要的Python库。如果遇到某个包安装失败通常是网络问题或特定版本不兼容可以尝试单独安装或搜索错误信息寻求解决方案。安装客户端依赖: 进入客户端的代码目录通常是项目根目录下的client或web文件夹。cd client # 请根据实际项目结构进入客户端目录 npm installnpm install会读取package.json文件下载所有JavaScript/Node.js依赖包如Vue, Vite, Electron等这可能会花费一些时间。3.3 核心配置详解安装完依赖在启动前最关键的一步是配置。LightChat需要知道如何连接你的模型后端。1. 模型后端配置以Ollama为例:Ollama是目前在本地运行开源大模型最流行的工具之一。你需要先安装并运行Ollama。安装Ollama: 访问Ollama官网下载对应操作系统的安装包一键安装。拉取模型: 安装后在终端拉取一个模型例如小巧的qwen2.5:0.5b仅作测试或功能更强的llama3.2:1b。ollama pull qwen2.5:0.5b运行Ollama服务: Ollama安装后通常会作为系统服务自动启动。你可以通过ollama serve命令在前台启动或者检查服务状态。默认情况下Ollama的API服务运行在http://127.0.0.1:11434。2. LightChat服务端配置:LightChat服务端需要一个配置文件来指定后端。这个文件可能是config.yaml、.env或直接在代码中配置。你需要查看项目server目录下的文档或示例。常见的配置方式是修改一个配置文件例如config.yaml:model_backend: type: ollama # 指定后端类型 base_url: http://localhost:11434 # Ollama服务地址 default_model: qwen2.5:0.5b # 默认使用的模型或者服务端可能通过启动参数来配置python app.py --backend ollama --base-url http://localhost:11434务必根据项目README的指引进行正确配置这是连接成功与否的关键。3. 客户端配置:客户端需要知道服务端的地址。这通常在客户端的配置文件中设置或者会在首次启动时让你输入。常见的配置是让客户端连接http://localhost:8000假设LightChat服务端运行在8000端口。3.4 启动与运行配置妥当后按照正确的顺序启动服务。启动模型后端: 确保Ollama服务正在运行。在终端输入ollama list如果能列出已拉取的模型说明服务正常。启动LightChat服务端: 在项目根目录或server目录下运行启动命令。根据项目设计可能是python main.py # 或 uvicorn server.main:app --host 0.0.0.0 --port 8000 --reload看到类似“Application startup complete.”、“Uvicorn running on http://0.0.0.0:8000”的日志说明服务端启动成功。启动LightChat客户端:开发模式: 在client目录下运行npm run dev。这通常会启动一个本地开发服务器并可能自动打开浏览器窗口。生产模式/桌面应用: 运行npm run electron:dev或npm run build后启动构建出的可执行文件。这才是完整的桌面应用体验。如果一切顺利你将看到LightChat的图形界面。在模型选择处应该能看到你配置的Ollama模型如qwen2.5:0.5b。选择它开始对话吧实操心得启动顺序很重要。务必先启动Ollama模型后端再启动LightChat服务端最后启动客户端。如果客户端连接失败首先检查服务端日志再看服务端是否能连通Ollama。一个简单的测试方法是用浏览器或curl访问http://localhost:11434/api/tags如果Ollama正常它会返回一个JSON格式的模型列表。4. 深度功能解析与使用技巧4.1 模型管理不止于Ollama虽然Ollama是默认和最简单的选择但LightChat的设计通常支持多种后端这大大扩展了其能力边界。本地推理引擎 (vLLM / Text Generation Inference): 如果你有性能更强的GPU并且需要更高的吞吐量、支持更细粒度的参数调整可以配置LightChat使用vLLM作为后端。vLLM以其高效的PagedAttention推理内核著称。你需要单独部署vLLM服务例如python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-chat-hf然后将LightChat服务端的base_url指向vLLM的API地址通常是http://localhost:8000/v1。这样你就能在LightChat的友好界面里享受工业级推理引擎的速度了。远程API兼容服务: LightChat的API设计很可能兼容OpenAI API格式。这意味着你可以将它连接到任何提供了OpenAI兼容接口的服务上。例如其他自建的开源模型服务如FastChat, LocalAI。一些云服务商提供的兼容OpenAI API的模型端点。甚至是官方OpenAI API如果你不介意数据出本地。只需将base_url和api_key配置成对应服务的即可。多模型切换与对比: 在LightChat界面中你可以轻松地在不同的模型间切换。这个功能对于模型评测特别有用。你可以用同一个问题提问Llama 3、Qwen和Gemma直观地比较它们的回答风格、知识准确性和逻辑能力。所有对话历史可以按模型或会话分类保存方便回溯。4.2 对话参数调优从“鹦鹉学舌”到“创造性写作”模型生成文本的质量和风格很大程度上受你设置的参数影响。LightChat界面通常会提供以下几个关键参数的调节滑块温度 (Temperature): 这是控制随机性的最重要参数。值越低如0.1模型的输出越确定、保守倾向于选择概率最高的下一个词回答可能非常一致甚至重复。值越高如0.8、1.0模型的选择更多样化回答更具创造性和随机性但也可能产生不合逻辑或偏离主题的内容。使用场景写代码、回答事实性问题时建议用低温0.1-0.3。写故事、诗歌、需要头脑风暴时可以尝试中高温0.7-1.0。最大生成长度 (Max Tokens): 限制模型单次回复的最大长度以token计约等于0.75个英文单词或0.5个中文字。设置过小回答可能被截断设置过大可能生成冗长无关的内容且消耗更多时间和资源。使用技巧对于多轮对话可以设置一个中等值如512或1024。如果需要生成长文档可以设置得大一些2048或4096但要留意你的模型本身是否有上下文长度限制。Top-p (核采样): 另一种控制随机性的方法。模型会从累积概率超过p的最小词集合中采样。通常与温度参数配合使用。设置较低如0.9会使输出更集中较高如0.95则更发散。重复惩罚 (Repetition Penalty): 这个参数用于惩罚已经出现过的token降低模型“车轱辘话来回说”的概率。值大于1.0如1.1或1.2表示施加惩罚可以有效减少重复。注意事项这些参数没有“绝对最佳”值完全取决于你的任务和模型本身。同一个问题用temperature0.2和temperature0.8问两遍你会得到截然不同的答案。最好的方式是针对你常用的任务类型进行几次测试找到一组你觉得舒服的参数并保存为预设。4.3 会话与历史记录管理LightChat作为一个聊天客户端会话管理功能是其用户体验的核心。创建与管理会话: 你可以为不同的主题创建独立的会话比如“学习Python问题”、“周末旅行计划”、“科幻小说构思”。这能让对话历史保持条理清晰避免上下文混淆。上下文长度与截断: 大模型都有固定的上下文窗口如4K、8K、32K tokens。当对话轮数增多历史记录的总长度会超过这个限制。LightChat服务端或后端需要处理上下文截断。常见的策略是“滑动窗口”即只保留最近N条对话或不超过窗口大小的历史。你需要了解你所用模型的上下文限制并在进行超长对话时意识到模型可能“忘记”了很早之前的内容。历史记录的导入/导出: 这个功能非常实用。你可以将一次有价值的对话导出为JSON、Markdown或文本文件用于存档、分享或后续分析。也可以导入之前导出的历史恢复当时的对话场景。这对于知识积累和协作非常有帮助。搜索功能: 当你的会话越来越多时在一个会话的历史记录中快速定位某次对话就变得必要。好的搜索功能可以让你通过关键词找到相关的问答对。4.4 高级特性探索根据项目的活跃度LightChat可能还集成了一些更高级的特性函数调用 (Function Calling) / 工具使用: 一些较新的模型支持在回复中声明需要调用某个“函数”工具例如“查询天气”、“计算数学”。LightChat如果集成了此功能可以在收到模型的工具调用请求后在客户端或服务端执行相应的代码如调用一个真实的天气API并将结果返回给模型让模型生成最终回答。这极大地扩展了模型的能力边界使其能完成需要实时信息的任务。多模态支持 (图片/文件上传): 如果后端模型支持多模态如LLaVALightChat的界面可能会提供图片上传按钮。你可以上传一张图片然后让模型描述图片内容、回答关于图片的问题甚至基于图片进行创作。系统提示词 (System Prompt) 管理: 系统提示词是引导模型行为角色的关键指令。例如“你是一个乐于助人且无害的AI助手”。LightChat可能允许你为每个会话或全局设置不同的系统提示词从而让模型扮演专家、诗人、面试官等不同角色。插件系统或扩展API: 对于开发者LightChat可能提供了插件系统或清晰的API允许你扩展其功能例如添加自定义的后端支持、集成新的工具、修改UI主题等。5. 常见问题排查与性能优化实战即使按照步骤操作在实际部署和使用中也可能遇到各种问题。这里记录一些典型问题及其排查思路。5.1 连接类问题问题客户端无法连接服务端提示“连接失败”或“服务器未响应”。排查步骤:检查服务端进程首先确认LightChat服务端是否真的在运行。在终端查看是否有对应的Python进程并检查其日志是否有报错。检查端口占用服务端默认使用的端口如8000可能被其他程序占用。使用命令检查# Linux/macOS lsof -i :8000 # Windows netstat -ano | findstr :8000如果被占用可以在服务端配置中修改端口号并同步修改客户端的连接配置。检查防火墙/安全软件有时本地回环地址localhost的通信也会被防火墙拦截。尝试暂时禁用防火墙或安全软件看是否能连接。检查客户端配置确认客户端配置文件中或设置里填写的服务端地址和端口是否正确。通常是http://127.0.0.1:8000或http://localhost:8000。问题服务端能启动但无法连接到Ollama或其他模型后端日志显示“Connection refused”或“Model not found”。排查步骤:确认模型后端服务状态运行ollama list或访问http://localhost:11434/api/tags确保Ollama服务正常且模型已拉取。检查服务端配置仔细核对LightChat服务端配置文件中关于后端base_url和default_model的拼写。base_url必须是Ollama API的完整地址default_model必须是你通过ollama pull下载的确切模型名。网络连通性测试在运行LightChat服务端的机器上用curl或python脚本测试是否能访问Ollama。curl http://localhost:11434/api/tags模型名称大小写和版本有些模型名称对大小写敏感或者需要指定标签如llama3.2:1bvsllama3.2。确保完全一致。5.2 模型推理与响应问题问题模型回复速度极慢或生成到一半中断。可能原因与优化:硬件资源不足本地运行大模型尤其是参数规模较大的模型7B对CPU、内存特别是GPU显存要求很高。使用nvidia-smiN卡或任务管理器监控资源占用。优化换用更小的模型如1B、3B参数。如果使用Ollama可以尝试在拉取或运行时指定量化版本如qwen2.5:0.5b中的0.5b就是量化版量化能显著降低显存和内存消耗。上下文过长如果对话历史非常长每次生成都需要处理巨大的上下文会拖慢速度。优化在LightChat设置中减少保留的上下文长度或者手动清理旧的对话轮次。参数设置不当过高的max_tokens会导致生成时间变长。temperature过低可能导致模型“犹豫不决”。后端引擎问题如果是vLLM后端检查其配置是否正确是否充分利用了GPU。问题模型回答胡言乱语、重复或完全偏离主题。排查与调整:调整温度参数这是最常见的原因。如果回答随机、荒谬尝试大幅降低temperature如设为0.1。如果回答死板、重复尝试稍微提高temperature如0.3-0.5。检查系统提示词一个清晰、明确的系统提示词能极大规范模型行为。例如加上“请用简洁、准确的语言回答。如果你不知道答案请直接说不知道不要编造信息。”模型本身能力某些小参数模型或未经充分对齐的模型其逻辑和事实准确性本就有限。尝试换一个口碑更好的模型。重复惩罚如果出现大量重复短语尝试启用并增加repetition_penalty的值。5.3 客户端使用问题问题对话历史丢失或者应用重启后会话不见了。原因与解决:存储路径权限LightChat客户端将历史数据存储在本地文件如SQLite数据库中。如果应用没有对该文件所在目录的写入权限数据就无法保存。数据损坏极端情况下数据库文件可能损坏。可以尝试在设置中寻找“清除缓存”或“重置数据”的选项注意这会删除所有本地历史。版本升级不兼容如果升级了LightChat版本旧版本的数据格式可能与新版本不兼容。开发者通常会在发布说明中提及可能需要手动备份或迁移数据。问题界面卡顿、无响应。排查:客户端资源占用Electron应用本身会占用一定的内存和CPU。打开任务管理器检查LightChat客户端的资源使用情况。如果单个会话历史极长渲染大量DOM元素也可能导致卡顿。关闭不必要的会话关闭那些不再使用的对话会话标签页。检查开发者工具在LightChat客户端中通常可以通过快捷键如CtrlShiftI打开开发者工具在Console或Network面板查看是否有JavaScript错误或网络请求阻塞。5.4 安全与隐私考量由于LightChat完全在本地运行你的对话数据、模型权重都留在自己的机器上这本身提供了很高的隐私安全性。但仍需注意模型权重来源从Ollama拉取的模型其来源是可信的官方或社区验证。如果从其他渠道下载模型文件需注意安全风险。服务端暴露LightChat服务端默认绑定在127.0.0.1本地回环外部无法访问。切勿在配置中将其绑定到0.0.0.0且无任何认证措施除非你明确知道自己在做什么并且处于安全的内部网络环境否则这可能将你的模型服务暴露给局域网甚至公网。系统提示词注入虽然模型在本地但如果你允许LightChat加载来自不可信来源的“角色预设”或“系统提示词”这些提示词理论上可能包含试图诱导模型输出有害内容的指令。对于高度敏感的应用需审慎处理外部输入。6. 二次开发与定制化方向对于开发者来说LightChat的开源属性意味着你可以按需定制。修改前端界面如果你对Vue熟悉可以轻松地修改client目录下的组件改变UI布局、颜色主题、交互逻辑或者添加新的功能按钮。集成新的模型后端如果项目结构清晰添加一个新的后端支持比如兼容另一个本地推理框架的API主要工作是在服务端增加一个新的适配器类实现统一的模型调用接口。开发插件如果项目支持插件系统你可以开发插件来增加诸如语音输入输出、与笔记软件联动、自动整理对话摘要等功能。打包与分发你可以使用Electron Builder等工具将修改后的LightChat打包成适用于Windows、macOS、Linux的安装包分发给你的团队或社区。进行二次开发前务必仔细阅读项目的CONTRIBUTING.md文档、代码结构说明并理解其架构设计。从修复一个小的UI bug或添加一个简单的设置选项开始是很好的入门方式。LightChat这类项目代表了AI民主化浪潮中的一个重要方向将强大的AI能力从云端巨头的黑盒中解放出来赋予每个个体在本地私有、可控、低成本地使用和探索的可能。通过今天的拆解希望你不止于“能用”更能“懂其原理”、“解其问题”、“扩其边界”。在实际操作中耐心阅读日志信息善用社区和搜索引擎大部分问题都能找到解决方案。本地AI的世界很大LightChat是一个绝佳的起点和趁手的工具剩下的就交给你的想象力了。

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