ChatGPT-VSCode扩展:AI编程助手集成与实战指南

news2026/5/4 5:54:45
1. 项目概述当ChatGPT遇见VSCode一场开发效率的革命如果你是一名开发者并且最近几个月没有完全与世隔绝那你一定听说过ChatGPT。这个由OpenAI推出的强大语言模型已经从一个新奇玩具迅速演变为程序员手中不可或缺的“瑞士军刀”。从生成代码片段、解释复杂算法到重构代码、调试错误ChatGPT展现出的能力令人惊叹。然而一个核心痛点也随之浮现我们总是在浏览器、IDE和聊天窗口之间反复横跳复制、粘贴、切换上下文这个过程本身就在消耗着ChatGPT为我们节省下来的宝贵时间。这正是timkmecl/chatgpt-vscode这个开源项目诞生的背景。它不是一个简单的集成而是一个旨在将ChatGPT的能力无缝、深度地编织进Visual Studio Code——这个全球最流行的代码编辑器——工作流中的扩展。想象一下你不再需要离开编码环境只需选中一段代码右键点击就能获得解释、重构建议甚至直接生成单元测试。或者你可以在编辑器侧边栏直接与AI对话让它帮你构思一个函数而生成的代码能直接插入到光标位置。这不仅仅是便利更是对开发范式的一次重塑。这个项目解决的核心问题是“工具流中断”。在传统的AI辅助编程模式下思考、编码、求助AI是三个割裂的环节。chatgpt-vscode的目标是消除这些割裂让AI成为编码环境中的一个原生、流畅的组成部分。它适合所有层级的开发者新手可以用它来学习语法和理解代码逻辑中级开发者可以借助它快速实现通用功能模块、优化代码结构资深开发者则能利用它进行头脑风暴、探索不同实现方案或者快速生成文档和测试用例。简单来说timkmecl/chatgpt-vscode试图回答这样一个问题如果ChatGPT是程序员的最佳副驾驶那么如何为这位副驾驶在VSCode这架“飞机”里打造一个最舒适、最高效的操控台接下来我将带你深入拆解这个项目的设计思路、核心功能、实操细节并分享我在深度使用过程中积累的经验、踩过的坑以及一些高阶技巧。2. 核心功能与设计哲学拆解2.1 功能全景不止于聊天窗口的集成初看chatgpt-vscode你可能会认为它只是一个在VSCode里打开ChatGPT网页版的工具。但实际体验后你会发现它的设计远不止于此。它的功能模块是围绕具体的开发场景精心构建的主要可以分为以下几大核心板块上下文菜单集成右键菜单这是最常用、最直接的功能入口。在编辑器中选择代码后右键菜单中会新增一系列ChatGPT选项如“解释选中的代码”、“重构选中的代码”、“为选中代码生成测试”、“查找选中代码中的错误”等。这种设计将AI能力直接附着在开发者的自然操作选中-右键上学习成本几乎为零。侧边栏聊天面板一个常驻在VSCode活动栏Activity Bar的聊天界面。你可以在这里进行自由对话就像在网页版中一样。但它的强大之处在于“上下文感知”。它通常可以自动携带当前打开的文件、选中的代码块甚至错误信息作为对话的上下文使得提问更加精准。生成的代码可以直接插入或替换当前编辑器中的内容。代码片段直接生成与插入通过特定的命令Command或直接在聊天面板中描述需求可以让AI生成完整的函数、类或配置文件代码并一键插入到指定位置。这极大地加速了项目脚手架搭建和通用模块的开发。解释与文档生成对于复杂的、遗留的或者他人编写的代码选中后使用“解释”功能AI会以清晰的语言逐行或分段说明其作用。更进一步它可以为整个函数或类生成高质量的注释文档如JSDoc、Python docstring这对于维护代码库和团队协作至关重要。代码重构与优化建议AI不仅可以告诉你代码是“什么”还能建议它“可以是什么样”。重构功能能够提供代码简化、性能优化、符合特定编码规范如PEP 8, Airbnb JavaScript Style的修改建议。调试助手将错误信息或异常堆栈跟踪提供给AI它可以快速分析可能的原因并提供排查思路甚至直接给出修复代码。这相当于在编辑器内配备了一位24小时在线的资深调试专家。这些功能共同构成了一个立体化的AI辅助矩阵覆盖了从代码理解、创作、优化到维护的全生命周期。其设计哲学非常明确场景化、无侵入、高粘合。每一个功能都对应一个具体的开发痛点并且都以尽可能不打断开发者心流Flow的方式集成到现有IDE操作中。2.2 架构与通信模式解析理解这个扩展如何工作有助于我们更有效地使用它并在出现问题时进行排查。其核心架构可以简化为三个部分VSCode扩展本体、配置管理、与OpenAI API的通信。扩展本体作为一个标准的VSCode扩展它由TypeScript/JavaScript编写运行在Node.js环境中。它负责渲染UI如侧边栏面板、注册命令如右键菜单项、监听编辑器事件如文本选择变化、以及管理整个扩展的生命周期。配置管理这是用户交互的关键。扩展的所有行为都通过VSCode的设置settings.json进行配置。最重要的配置项就是你的OpenAI API密钥。此外还可以配置默认的AI模型如gpt-3.5-turbo,gpt-4、每次对话的上下文长度Token限制、以及各类功能的详细参数如生成代码时的温度temperature参数控制创造性。注意API密钥的安全性至关重要。该扩展通常会将密钥加密后存储在本地。你绝对不应该将包含API密钥的settings.json文件提交到Git等版本控制系统。最佳实践是使用VSCode的“用户设置”而非“工作区设置”来配置密钥或者使用环境变量等更安全的方式如果扩展支持。通信模式这是核心。当你触发一个动作比如请求解释代码扩展会做以下事情构建请求载荷Prompt Engineering扩展并非简单地将你的问题或选中的代码发给API。它会根据不同的功能精心构造一个“系统提示词System Prompt”和“用户提示词User Prompt”。例如对于“解释代码”功能系统提示词可能是“你是一位资深的软件开发工程师请用简洁清晰的语言解释以下代码的功能和逻辑。”然后将用户选中的代码作为用户提示词附上。这种提示词工程是决定AI输出质量的关键也是该扩展价值的重要体现。调用OpenAI API扩展使用你配置的API密钥向OpenAI的聊天补全接口/v1/chat/completions发起HTTPS请求发送构建好的提示词和相关参数模型、温度等。处理与展示响应收到AI返回的文本流Streaming或完整响应后扩展将其格式化并展示在相应的位置——可能是弹出一个小窗口显示解释也可能在侧边栏聊天面板中显示对话记录或者直接将生成的代码插入编辑器。这种架构的优势在于轻量化和专注。扩展本身不包含复杂的AI模型只负责交互和流程编排将计算密集型的推理任务交给云端强大的OpenAI API。这使得扩展保持小巧、快速更新以跟上API的变化。3. 从安装到上手指南3.1 环境准备与安装步骤使用chatgpt-vscode的前提条件非常简单但有几个关键点必须确保。必要条件Visual Studio Code确保你安装的是较新版本的VSCode通常一年内的版本均可。可以在VSCode的“帮助”-“关于”中查看版本。有效的OpenAI API密钥这是整个扩展运行的“燃料”。你需要访问OpenAI的官网平台注册账号并开通API访问权限。在平台后台你可以生成一个API密钥API Key。请注意OpenAI的API是付费服务会根据你的使用量主要依据消耗的Token数量进行计费。新注册用户通常有一定额的免费试用金。安装扩展在VSCode中安装扩展有多种方式最常用的是通过扩展市场直接搜索安装。打开VSCode点击左侧活动栏的扩展图标或按CtrlShiftX。在搜索框中输入“ChatGPT VSCode”或直接输入“timkmecl/chatgpt-vscode”的作者名。在搜索结果中找到该扩展点击“安装”按钮。通常由“Tim Kmecl”发布的那个即是。安装完成后可能需要重新加载VSCode窗口Reload Window。安装成功后你会在VSCode左侧的活动栏看到一个全新的图标通常是一个大脑或对话气泡的Logo这就是ChatGPT扩展的入口。3.2 核心配置详解让你的AI助手更懂你安装只是第一步正确的配置才能让扩展发挥最大效力。按下Ctrl,或Cmd,on Mac打开VSCode设置在搜索框中输入“ChatGPT”可以过滤出该扩展的所有配置项。以下是最关键的几个配置1. API密钥配置 (chatgpt.apiKey)这是最重要的配置。你有两种方式设置在设置UI中直接填写在设置页面找到此项直接粘贴你的OpenAI API密钥。VSCode会以星号隐藏它。这种方式简单但如果你需要跨多台机器同步设置且担心安全需谨慎。在settings.json中配置点击设置页右上角的“打开设置(JSON)”图标在JSON文件中添加{ chatgpt.apiKey: 你的-api-key-在这里 }重要安全提醒永远不要将此settings.json文件提交到公开的代码仓库。你可以将其添加到.gitignore文件中。更安全的做法是使用环境变量如果扩展支持请查阅扩展文档例如配置为chatgpt.apiKey: ${env:OPENAI_API_KEY}然后在系统环境变量中设置OPENAI_API_KEY。2. 默认模型选择 (chatgpt.model)OpenAI提供了多个模型各有特点和成本。gpt-3.5-turbo性价比之王。响应速度快成本低约为GPT-4的1/10至1/20对于大多数代码生成、解释、重构任务已经足够出色。如果你是初学者或日常轻度使用这是默认的最佳选择。gpt-4,gpt-4-turbo-preview能力更强但更贵更慢。在逻辑推理、复杂问题分解、遵循复杂指令方面表现更优。当你处理非常复杂的算法问题、需要深度推理的调试或者gpt-3.5-turbo多次给出不满意答案时可以切换到GPT-4尝试。gpt-4o如果可用它是速度和能力的较好平衡。建议日常开发将模型设置为gpt-3.5-turbo。在侧边栏聊天面板中很多扩展允许你临时切换模型进行单次对话这样可以在需要时调用更强模型而不影响其他右键菜单等快捷功能的默认行为这些功能通常用gpt-3.5-turbo即可。3. 上下文与记忆配置chatgpt.maxTokens这限制了一次请求和响应的总Token数可以粗略理解为字数。设置太低AI可能无法完成长代码的生成或解释就被截断设置太高则可能造成不必要的API消耗费用和等待时间。对于代码场景通常设置在2048到4096之间是一个平衡点。对于特别长的对话或文档生成可以酌情调高。chatgpt.systemMessage这是可选的系统级提示词会预置在每次对话前用于设定AI的角色和行为。例如你可以设置为“你是一个专注于编写简洁、高效、可维护代码的Python专家。”这样AI在后续所有交互中都会更偏向于这个角色。这是一个高级定制功能。4. 功能特定配置一些扩展版本还提供了更细粒度的控制例如代码插入风格是直接替换选中文本还是在选中文本前/后插入解释的详细程度是简要概述还是逐行注释温度 (temperature)控制输出的随机性。值越低如0.2输出越确定、保守值越高如0.8输出越有创造性、多样化。对于代码生成通常建议使用较低的温度0.1-0.3以保证代码的准确性和稳定性对于头脑风暴或寻找多种解决方案可以调高。配置完成后你的AI编程助手就已经准备就绪了。建议先从一个简单的动作开始尝试比如选中一段Hello World代码右键选择“Explain”来感受一下。4. 实战场景深度应用与技巧4.1 场景一代码理解与文档生成——破解遗留代码库接手一个陌生的、文档缺失的遗留项目是开发者的常态。面对一堆晦涩难懂的代码chatgpt-vscode可以成为你的“实时翻译官”。操作流程打开一个令人困惑的函数或文件。逐块选中不要一次性选中整个几百行的文件。AI的上下文窗口有限且过于庞大的输入会影响其分析质量。最佳实践是按逻辑块选中比如一个完整的函数、一个复杂的条件判断块、一个循环结构。右键调用选中后右键选择“Explain Selection”或类似选项。分析输出AI会生成一段自然语言描述。仔细阅读它通常会指出代码的输入、输出、关键算法步骤、边界条件处理等。进阶技巧生成文档理解了代码之后下一步就是为其添加文档方便未来维护和团队协作。选中整个函数包括函数签名和函数体。在聊天面板中输入指令“为以下函数生成完整的Python docstring/Swift注释/JavaDoc要求说明参数、返回值、可能抛出的异常和功能描述。” 然后将选中的代码发送。AI会生成格式规范的注释模板。你只需稍作检查和微调即可将其复制到代码中。实操心得对于非常复杂的代码AI的解释也可能出现偏差或遗漏关键细节。我的做法是“交互式理解”先让AI给出整体解释然后针对解释中我不明白的局部再次选中那个局部代码让AI进行“二次解释”。这种层层递进的方式结合开发者自身的逻辑判断能最高效地攻克复杂代码。4.2 场景二代码生成与片段补全——从想法到实现的高速通道当你明确知道要做什么但不想手动敲击所有样板代码时这个功能堪称“神器”。操作流程在聊天面板中描述需求用自然语言清晰描述你想要的代码。例如“写一个Python函数接收一个整数列表返回一个新列表其中只包含原列表中的偶数并且按升序排列。”利用上下文如果你已经在编辑器中打开了一个Python文件扩展有时会自动将文件语言类型作为上下文使AI生成更符合当前项目风格的代码。审查与插入AI生成代码后切勿盲目信任直接使用。务必仔细阅读生成的代码检查其逻辑是否正确、边界情况是否处理、是否符合项目的编码规范。确认无误后使用扩展提供的“插入代码”按钮或手动复制到编辑器中。右键菜单快速生成对于一些常见操作甚至不需要打开聊天面板。例如你想为一个已有的函数生成单元测试。在编辑器中选中该函数。右键选择“Generate Tests for Selection”。AI会基于函数逻辑尝试生成使用pytest或unittest框架的测试用例。你需要检查这些测试用例是否覆盖了主要路径和边界条件。注意事项AI生成的代码是“通用解”不一定是“最优解”或“项目特定解”。它可能不知道你项目内部的一些工具函数、特定的配置常量或架构约束。因此生成的代码应被视为一个高质量的初稿或灵感来源必须经过开发者的审查、调整和集成。直接使用未经审查的生成代码是引入Bug和安全漏洞的高风险行为。4.3 场景三代码重构与优化——让代码变得更优雅代码写完了但看起来有点“丑”或者感觉效率不高让AI给你一些优化建议。操作流程选中你觉得需要改进的代码段。右键选择“Refactor Selection”或“Optimize Selection”。AI会提供重构后的代码版本并通常附上简短的说明解释它做了什么改变比如“将嵌套的if语句改为guard clause以提高可读性”、“使用列表推导式替代循环以更简洁”、“提取重复逻辑到一个独立函数中”。深度优化场景性能分析你可以提出更具体的要求。例如在聊天面板中输入“以下代码的时间复杂度是多少有没有可能优化到O(n)请给出优化后的代码。” 然后附上你的代码。AI会尝试分析算法复杂度并提供优化方案。技巧风格一致性如果你所在团队有严格的编码规范如Airbnb JavaScript Style Guide, Google Java Style你可以在系统提示词或聊天指令中明确指出“请按照Airbnb JavaScript代码风格重构以下代码。” AI会尽力使生成的代码符合该规范这在统一大型项目代码风格时非常有用。4.4 场景四调试与错误排查——你的24小时在线调试伙伴遇到一个令人抓狂的报错日志信息晦涩难懂AI可以成为第一响应者。操作流程复制完整的错误信息Error Message和堆栈跟踪Stack Trace。在聊天面板中粘贴并附上相关的代码片段尤其是错误指向的那几行代码。你可以这样提问“我在运行以下Python代码时遇到了这个错误[粘贴错误]。相关的代码是[粘贴代码]。请帮我分析可能的原因和解决方案。”AI会分析错误类型、常见成因并给出具体的排查步骤和修复建议。它可能会指出是变量未定义、类型不匹配、索引越界、API调用方式错误等常见问题。优势与局限优势对于语法错误、常见的运行时错误、第三方库的典型用法错误AI的诊断通常非常准确和快速能极大缩短“搜索错误信息 - 浏览论坛 - 尝试解决方案”的链条。局限对于高度依赖项目特定业务逻辑、环境配置如数据库连接字符串、密钥文件路径或深层并发问题导致的BugAI可能因缺乏完整上下文而给出片面或错误的建议。它无法替代开发者对系统架构和业务逻辑的深入理解。核心原则将AI视为一个强大的、知识渊博的“初级调试员”。它可以提供极佳的线索和方向但最终的判断和决策必须由你——掌握系统全貌的资深开发者——来做出。永远不要不假思索地应用AI提供的解决方案。5. 高级配置、成本控制与安全实践5.1 提示词工程从“能用”到“好用”的关键默认的提示词已经不错但通过自定义你可以让AI的输出更贴合你的个人习惯和项目需求。这就是提示词工程Prompt Engineering在本地化应用中的价值。自定义系统提示词 (chatgpt.systemMessage)在设置中你可以全局设定AI的角色。例如你是一位严谨的C系统开发专家擅长编写高性能、内存安全的代码。你的回答应简洁、准确优先考虑标准库和现代C特性。你是一位前端开发专家精通React和TypeScript。请确保提供的代码示例使用函数组件和Hooks并包含完整的类型定义。这样的设定会让AI在后续的所有交互中都带着这个“人设”来回答问题输出风格会更一致、更专业。在聊天中运用高级提示技巧在侧边栏进行自由对话时你可以使用更结构化的提示词来获取更高质量的输出。一个经典的框架是“角色-任务-上下文-输出格式”角色Act as a senior DevOps engineer.任务Write a Dockerfile for a Node.js 18 application that uses PostgreSQL.上下文The application source code is in /app, the main file is server.js, it needs to install dependencies from package.json and run on port 3000.输出格式Provide the complete Dockerfile code first, followed by a brief explanation of each key instruction.将这样的结构化指令发送给AI得到的输出通常会比简单一句“写个Dockerfile”要精准和完整得多。5.2 成本控制与用量监控使用OpenAI API是会产生费用的。虽然gpt-3.5-turbo成本很低但积少成多特别是高频使用时进行成本控制很有必要。1. 理解计费单元TokenAPI费用按消耗的Token数计算。Token可以粗略理解为单词或词根。一个简单的估算方法是1个Token约等于0.75个英文单词或0.5个汉字。输入的提示词和AI生成的回复都计入Token消耗。2. 控制上下文长度 (maxTokens)如前所述合理设置maxTokens。对于大多数代码问答2048-4096的上下文足够容纳数轮对话和中等长度的代码。不要盲目设置为最大值如16384除非你确实在进行需要超长上下文的文档分析。3. 善用“停止”功能在侧边栏聊天中如果AI开始生成一个非常长且可能偏离主题的回复你可以及时点击“停止”按钮来中断生成避免为不需要的内容付费。4. 定期查看OpenAI使用仪表盘养成定期登录OpenAI平台查看使用情况和费用统计的习惯。平台会清晰地展示每日、每月的Token消耗和对应费用帮助你了解使用模式。5. 为API密钥设置用量限制在OpenAI平台你可以为API密钥设置软性预算限制soft limit或硬性上限hard limit。例如设置每月不超过10美元。这是一个非常重要的安全阀可以防止因意外如循环调用、配置错误导致的高额账单。5.3 安全与隐私考量将代码发送给第三方AI服务安全与隐私是无法回避的问题。1. 代码敏感性评估绝对不要发送包含密码、API密钥、加密私钥、个人身份信息PII、未公开的商业核心算法或逻辑的代码。谨慎发送涉及公司内部架构、未公开的数据库Schema、敏感业务规则的代码。即使剥离了具体数据结构本身也可能是敏感信息。可以发送公开的算法、通用的工具函数、解决常见技术问题的代码片段、开源库的使用示例等。2. 使用本地或私有化模型如果扩展支持一些高级版本的扩展或替代品可能支持配置后端API端点。这意味着你可以将请求发送到自己部署的私有化大模型服务如使用开源模型在本地部署从而完全保证代码和数据不离开内部环境。当然这对硬件和运维有一定要求。3. 意识并接受风险使用任何云端AI服务都意味着你的输入数据会被服务提供商处理。尽管像OpenAI这样的公司有严格的数据使用政策例如承诺不将API数据用于训练模型但从绝对安全角度这仍然存在理论风险。因此务必建立清晰的内部准则明确团队中什么类型的代码可以问AI什么类型的绝对不行。6. 常见问题、故障排查与性能调优6.1 安装与配置问题问题1安装扩展后侧边栏图标不显示或点击无反应。排查首先尝试重启VSCode。如果无效打开VSCode的开发者工具帮助-切换开发者工具查看控制台Console是否有红色错误日志。常见错误可能是网络问题导致扩展依赖下载失败或者与其它扩展冲突。解决根据错误日志搜索解决方案。尝试禁用其他可能冲突的扩展特别是其他AI类扩展后重试。也可以尝试卸载后重新安装。问题2API密钥配置正确但一直提示“无效的API密钥”或“认证失败”。排查核对密钥确保密钥复制完整没有多余的空格。最稳妥的方式是去OpenAI平台重新生成一个并粘贴。检查账户状态登录OpenAI平台确认API账户是否被禁用、是否有未支付的账单导致服务中断。检查网络某些网络环境可能无法直接访问OpenAI API。需要检查代理设置。注意这里讨论的是企业内网或地区性网络策略导致的通用网络连通性问题与任何特定工具或方法无关。你需要在系统或VSCode中配置正确的网络代理如果公司网络要求的话扩展本身通常继承系统的网络设置。解决重新生成密钥、支付账单、或配置正确的网络出口。6.2 使用过程中的典型问题问题3AI的回复速度很慢或者经常超时。原因分析模型选择使用了gpt-4等较大模型其本身响应就比gpt-3.5-turbo慢。上下文过长maxTokens设置过高或当前对话历史积累太多导致每次请求负载很大。网络延迟到OpenAI服务器的网络连接不稳定。OpenAI服务端负载高峰时段API响应可能变慢。优化建议对于实时性要求高的操作如解释选中代码在设置中将默认模型改为gpt-3.5-turbo。定期清理侧边栏聊天面板中的历史对话或者使用“新对话”功能重新开始以缩短上下文。适当降低maxTokens值例如从4096降到2048。对于代码生成等任务耐心等待几秒是正常的。问题4AI生成的代码有错误或者不符合我的项目规范。原因这是生成式AI的固有特点——它不保证100%正确。它基于训练数据中的模式进行概率生成。解决策略提供更精确的上下文在提问时说明你的项目框架、使用的库版本、编码规范等。例如“请用Python的pathlib库而非os.path重写以下文件路径操作代码。”迭代优化不要期望一次成功。将AI的输出作为起点如果发现错误可以把错误信息连同原始代码和AI生成的代码一起发给AI问它“为什么这段生成的代码会报[某某]错误请修正。” 通过多轮交互逼近正确解。拆分任务对于复杂功能不要要求AI一次性生成整个模块。先让它生成核心函数再生成调用它的代码最后组装和调试。问题5右键菜单中的某些功能如“生成测试”不可用或灰色。排查这通常是因为当前编辑器中的文件语言模式不被该功能支持或者没有选中任何文本。扩展的不同功能可能针对特定编程语言优化。解决确保你的文件语言模式正确VSCode右下角可以看到如Python、JavaScript并且已经选中了有效的代码块。查看扩展的官方文档了解各功能支持的语言列表。6.3 扩展与其它工具的协同与Git集成你可以用AI来编写更清晰的提交信息Commit Message。在提交更改时选中 staged changes 的差异内容让AI帮你总结本次提交的改动要点生成符合约定式提交Conventional Commits规范的信息。与终端集成虽然chatgpt-vscode本身不直接集成终端但你可以在聊天面板中询问Shell命令。例如“我想递归查找当前目录下所有.log文件并删除它们用什么Linux命令” AI会给出find . -name *.log -delete这样的命令你可以复制到VSCode的集成终端中运行。与代码片段Snippets管理结合将AI生成的、经过你验证的通用代码片段如常用的工具函数、配置模板保存到VSCode的用户代码片段User Snippets中。这样未来你就可以通过快捷前缀直接插入而无需再次生成既提高了效率又保证了代码质量的一致性。经过数月的深度使用我个人最大的体会是timkmecl/chatgpt-vscode这类工具的价值不在于替代开发者而在于极大地放大开发者的能力。它处理了那些繁琐、重复、需要查阅记忆的“体力活”和“搜索活”让我们能更专注于真正的架构设计、复杂逻辑实现和创造性解决问题。它就像一个反应极快、知识渊博的结对编程伙伴虽然这个伙伴偶尔会“胡说八道”但只要你保持主导地位具备审查和批判性思维的能力它就能成为你提升开发效率和代码质量的强大杠杆。关键在于找到人与AI协作的最佳节奏你设定方向、提出精准问题、审查输出结果AI负责快速生成选项、提供信息、激发灵感。这个扩展正是为这种协作节奏量身打造的一个优秀工作台。

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