命令行AI工具gemini-cli:无缝集成Gemini大模型提升终端效率

news2026/5/18 16:08:08
1. 项目概述一个与AI对话的命令行工具如果你和我一样大部分工作时间都泡在终端里那么eliben/gemini-cli这个项目可能会让你眼前一亮。简单来说它是一个让你能在命令行里直接与 Google 的 Gemini 大模型对话的工具。你不用再打开浏览器登录某个网页应用或者调用复杂的 API 客户端库只需要在终端里敲一行命令就能获得 AI 的回复无论是代码调试、文本润色、问题解答还是简单的头脑风暴。这个工具解决的核心痛点是“工作流中断”。想象一下你正在终端里排查一个复杂的编译错误堆栈信息密密麻麻。这时候你本能地想“让 AI 帮我看看” 传统的做法是复制错误日志 - 最小化终端 - 打开浏览器 - 找到 AI 聊天页面 - 粘贴 - 等待回复 - 再切回终端。这个过程不仅繁琐还打断了你沉浸式的调试状态。而gemini-cli的目标就是消除这种摩擦让 AI 能力像grep、awk一样成为你命令行工具链中无缝衔接的一环。它适合所有习惯使用命令行的开发者、运维工程师、技术写作者或者任何希望提升终端工作效率的人。你不需要是 Python 专家基本的命令行操作知识就足够了。接下来我会带你从设计思路到实战应用彻底拆解这个工具并分享我在集成它到日常流水线时积累的一些实用技巧和踩过的坑。2. 核心设计思路与架构拆解2.1 为什么是命令行接口CLI选择 CLI 作为交互形式背后有一系列深刻的考量远不止“看起来酷”那么简单。首要原因是场景契合度。开发者和系统管理员的核心工作环境就是终端。在这里文本是首要的输入输出媒介而 AI 大模型本质上也是处理文本的超强引擎。将两者结合是天然的“文本进文本出”管道契合 Unix 哲学中“一个工具只做好一件事并通过文本流协作”的理念。其次是自动化与脚本化潜力。CLI 工具可以轻松嵌入 Shell 脚本、Makefile 或是 CI/CD 流水线中。你可以写一个脚本自动将日志文件的关键部分发送给 Gemini 分析或者让它在每次代码提交前自动生成变更摘要。这种可编程性是图形界面工具难以比拟的。再者是极致的效率与专注。键盘驱动的 CLI 避免了鼠标在窗口间切换的损耗。结合终端复用器如 tmux 或 screen你可以在一个屏幕内保持上下文不变快速发起查询并获得结果思维流不会被强行打断。最后是轻量与可控。一个设计良好的 CLI 工具通常依赖较少启动迅速资源占用低。你可以精确控制输入通过管道、重定向或参数和输出可以重定向到文件或另一个命令整个过程透明且可预测。gemini-cli的设计显然深谙此道。它没有试图做一个功能庞杂的 AI 套件而是聚焦于核心功能发送提示词Prompt并接收回复。这种克制使得它易于理解、维护和集成。2.2 技术栈选型与依赖分析这个项目是用 Python 编写的这是一个非常合理的选择。Python 在 CLI 工具开发、HTTP 客户端以及 AI 生态集成方面有强大的库支持。其核心依赖主要包括Google Generative AI Python SDK (google-generativeai): 这是与 Gemini API 交互的官方库。gemini-cli本质上是一个基于此 SDK 的、更友好的命令行封装器。SDK 处理了认证、请求格式、模型调用和流式响应等底层细节。typer: 一个用于构建命令行程序的现代库。它利用 Python 的类型提示Type Hints来自动生成 CLI 参数解析和帮助信息大大简化了开发过程让代码既清晰又能生产出用户友好的界面。rich: 一个终端富文本渲染库。这是提升用户体验的关键。它用于美化输出比如对 AI 回复的 Markdown 格式进行着色、渲染代码块语法高亮、显示美观的进度指示器等让纯文本终端也能有赏心悦目的阅读体验。python-dotenv: 用于从.env文件加载环境变量。这是管理敏感信息如 API 密钥的最佳实践避免将密钥硬编码在脚本或命令行历史中。这个技术栈组合体现了现代 Python CLI 工具开发的典范用typer处理交互逻辑用rich提升表现层用官方 SDK 完成核心业务再用dotenv保证安全性。各司其职依赖清晰。注意项目可能还会依赖httpx或aiohttp作为异步 HTTP 客户端如果 SDK 底层使用的话以及prompt-toolkit来增强交互式提示功能。具体需要查看项目的pyproject.toml或requirements.txt文件。2.3 安全与配置管理策略任何涉及第三方 API 的工具安全都是重中之重。gemini-cli采用了通行的安全实践API 密钥管理它强制要求通过环境变量GEMINI_API_KEY来提供 Google AI Studio 的 API 密钥。这比在命令中通过--api-key参数传递要安全得多因为命令行参数可能会被系统日志、进程列表记录存在泄露风险。推荐的做法是在你的 Shell 配置文件如~/.bashrc,~/.zshrc中导出这个变量或者使用.env文件配合python-dotenv在项目局部加载。模型与参数隔离除了 API 密钥它通常还允许通过环境变量或配置文件来设置默认模型例如GEMINI_DEFAULT_MODELgemini-1.5-pro和默认参数如温度temperature、最大输出令牌数max_output_tokens。这实现了配置与代码的分离方便在不同场景如创意写作 vs. 代码生成间切换预设。上下文不落地作为一个 CLI 工具默认情况下你的对话历史仅存在于当前终端会话的内存中。关闭终端即消失。这虽然不利于长上下文对话但从隐私角度看减少了数据持久化带来的风险。如果需要历史记录需要显式地使用--conversation之类的参数或配合外部工具如tee命令将输入输出保存到文件。3. 从零开始安装与基础配置实战3.1 环境准备与安装指南假设你已经有 Python 3.8 的环境和 pip 包管理器。安装gemini-cli最直接的方式是通过 PyPI。pip install gemini-cli安装完成后在终端输入gemini --help或gemini -h你应该能看到完整的帮助信息确认安装成功。然而在实际操作中我强烈建议你使用虚拟环境Virtual Environment进行安装。这能避免污染系统的 Python 包环境尤其是在你同时维护多个 Python 项目时。# 1. 创建并进入一个项目目录 mkdir ~/my-ai-tools cd ~/my-ai-tools # 2. 创建虚拟环境以 Python 3 为例 python3 -m venv venv # 3. 激活虚拟环境 # 在 Linux/macOS 上 source venv/bin/activate # 在 Windows 上PowerShell .\venv\Scripts\Activate.ps1 # 4. 在激活的虚拟环境中安装 gemini-cli pip install gemini-cli现在你的gemini命令只在这个虚拟环境中有效。退出终端或执行deactivate命令后该环境即失效。3.2 获取并配置 API 密钥安装只是第一步没有 API 密钥工具无法工作。你需要前往 Google AI Studio 获取密钥。用你的 Google 账号登录 Google AI Studio。在界面中找到并点击“Get API key”或类似按钮。创建一个新的 API 密钥。系统可能会提示你创建一个新项目按指引操作即可。复制生成的 API 密钥。这个密钥只显示一次请妥善保存。接下来是配置密钥。如前所述最佳实践是使用环境变量。方法一临时设置适用于单次会话测试在终端中直接设置export GEMINI_API_KEY你的_API_密钥_字符串然后就可以运行gemini命令了。但关闭终端后这个变量就没了。方法二持久化到 Shell 配置文件将配置写入你的~/.bashrc或~/.zshrc文件末尾echo export GEMINI_API_KEY你的_API_密钥_字符串 ~/.zshrc source ~/.zshrc这样每次打开新终端都会自动载入密钥。方法三使用.env文件项目级隔离在你的工作目录例如~/my-ai-tools下创建一个名为.env的文件echo GEMINI_API_KEY你的_API_密钥_字符串 .env然后确保你在运行gemini命令时当前目录下有这个.env文件并且python-dotenv已正确加载它通常gemini-cli会内置支持。这种方式可以为不同的项目配置不同的密钥或模型。实操心得我通常采用方法二全局备用 方法三项目主用的组合。在~/.zshrc里设置一个日常用的通用密钥。当进行特定项目时在项目目录下创建.env文件并设置可能不同的密钥或模型参数。这样既保证了日常使用的便利性又实现了项目间的配置隔离。3.3 验证安装与初步试运行配置好密钥后进行一个简单的测试确认一切正常。gemini 你好请用中文回复。简单介绍一下你自己。如果一切顺利你应该能看到一个格式美观的回答从 Gemini 模型返回。rich库会渲染这个回答。如果遇到错误最常见的是Error: No API key provided.说明环境变量GEMINI_API_KEY没有正确设置。请检查你是否设置了变量是否在正确的终端会话中以及变量名是否拼写正确。Error: API key not valid.或认证失败请检查你的 API 密钥是否复制完整是否在 Google AI Studio 中已启用。网络连接问题确保你的网络环境可以正常访问 Google 的 API 服务。4. 核心功能详解与高阶用法4.1 基础交互模式单次查询与持续对话gemini-cli提供了两种主要的交互模式。单次查询模式这是最常用的模式。你直接在命令后跟上你的问题或指令。gemini 解释一下Python中的装饰器decorator原理并给一个简单的例子。工具会将这个提示词发送给 Gemini获取并显示回复然后退出。这种模式适合独立的、上下文无关的任务。交互式对话模式Chat Mode有时你需要进行多轮对话让 AI 记住之前的上下文。可以使用-i或--interactive参数启动一个对话会话。gemini -i进入交互模式后你会看到一个提示符比如你可以连续输入消息。对话会保持在一个会话上下文中直到你输入exit、quit或按下CtrlD。在交互模式中有一些内置命令可以提升效率/multi或/m进入多行输入模式。当你需要输入大段文本如代码、错误日志时输入此命令然后在接下来的行中输入内容以一个单独的行包含.或/end来结束输入。这比在单行里处理转义字符要方便得多。/model model_name在会话中切换模型例如从gemini-1.5-pro切换到gemini-1.5-flash。/temp temperature动态调整本次会话的温度参数控制输出的随机性。/clear清除当前会话的上下文历史重新开始但保持会话不退出。4.2 强大的输入输出控制管道、文件和编辑器这才是 CLI 工具发挥威力的地方。gemini-cli完美融入了 Unix 管道生态系统。1. 使用管道Pipe输入你可以将任何命令的输出直接作为gemini的输入。# 分析当前目录的 git 状态 git status | gemini 请用简洁的语言总结一下当前的 git 状态。 # 让 AI 解释一段复杂的日志错误 tail -n 50 /var/log/app/error.log | gemini 这段错误日志可能是什么原因导致的请给出排查思路。 # 翻译剪贴板内容macOS pbpaste | gemini 将以下内容翻译成英文这种方式极其强大它让你可以用任何文本生成工具来构造提示词。2. 从文件读取输入使用-f或--file参数可以直接指定一个文件作为输入内容。gemini -f draft_blog_post.txt 请润色这篇博客文章使其更流畅、更具吸引力。你也可以结合管道和文件参数实现更复杂的操作。例如先过滤文件内容再发送给 AIgrep -A 10 -B 5 ERROR app.log | gemini 分析这些错误日志的共性。3. 使用外部编辑器编辑提示词当你需要构造一个非常长或复杂的提示词时在命令行里编辑很不方便。可以使用-e或--editor参数。这会让工具打开你默认的文本编辑器由$EDITOR环境变量定义如vim,nano,code -w。gemini -e 为我生成一个关于‘如何设计一个高可用的分布式缓存系统’的技术演讲提纲。执行后它会打开编辑器你可以在里面精心编写和修改提示词保存并关闭编辑器后内容会自动发送给 Gemini。4. 控制输出默认输出到终端stdout。你可以用标准的 Shell 重定向将其保存到文件。gemini 生成一个Python FastAPI项目的Dockerfile fastapi_dockerfile.txt或者如果你想同时看到输出并保存可以使用tee命令gemini 写一个关于机器学习模型部署的检查清单 | tee ml_deploy_checklist.md4.3 模型与参数调优不同的任务需要不同的模型和参数。gemini-cli允许你进行精细控制。选择模型通过-m或--model参数指定。你需要知道可用的模型名称例如gemini-1.5-pro能力最强的模型适合复杂推理、代码生成、创意写作。gemini-1.5-flash速度更快的模型适合实时对话、摘要、简单问答。gemini-1.5-pro-experimental可能包含最新特性但不太稳定的版本。gemini -m gemini-1.5-flash 快速总结这篇新闻的核心内容。 -f news_article.txt调整生成参数--temperature或-t控制随机性。范围 0.0 ~ 1.0。值越低如 0.1输出越确定、保守值越高如 0.9输出越有创意、不可预测。代码生成通常用低温度0.1-0.3创意写作可以用高温度0.7-0.9。--max-output-tokens限制回复的最大长度令牌数。防止生成过于冗长的内容。需要根据模型上下文窗口来合理设置。gemini -t 0.2 --max-output-tokens 500 写一个Python函数计算斐波那契数列的第n项。要求代码高效、有注释。设置系统指令System Instruction一些高级用法允许你设置系统级别的指令这相当于在对话开始前给 AI 一个固定的角色或行为准则。虽然gemini-cli的基础命令可能不直接暴露此参数但你可以通过构造提示词来模拟或者在交互模式下首先发送一条消息来设定角色。# 在单次查询中将角色设定融入提示词 gemini 请你扮演一位资深的Linux系统管理员。我的服务器磁盘空间告警请给出一步步的排查和清理建议。 # 在交互模式下首先设定角色 gemini -i 从现在开始你是一位严厉的代码审查员。请严格检查我后续提交的代码指出任何风格、性能或潜在的错误。 接下来粘贴你的代码5. 集成到开发工作流实战场景与脚本5.1 场景一智能化的日志分析与错误排查这是我最常用的场景之一。当应用抛出令人费解的错误时将日志片段直接丢给 AI往往能获得意想不到的排查方向。基础用法# 查看最后50行错误日志并分析 tail -n 50 /path/to/your/app.log | gemini 我是一个开发者。以下是我的应用日志中的错误信息。请分析可能的原因并提供最可能的3个排查步骤。进阶脚本你可以创建一个 Shell 函数或脚本封装更复杂的逻辑。 在你的~/.zshrc或~/.bashrc中添加# 分析最近包含‘ERROR’或‘Exception’的日志 analyze_error() { local log_file$1 local lines${2:-30} # 默认查看30行 echo 分析文件: $log_file (最近 $lines 行错误上下文)... grep -A 5 -B 5 -i error\|exception $log_file | tail -n $lines | gemini 请分析以下应用程序错误日志推断根本原因并给出具体的修复建议。如果日志中有Java/Python/Go的堆栈跟踪请重点分析。 }然后在终端里就可以直接使用analyze_error /var/log/nginx/error.log 505.2 场景二代码生成、审查与重构助手在终端里随时生成代码片段或审查代码无需切换上下文。生成代码# 生成一个读取JSON配置文件并处理异常的Python函数 gemini -t 0.1 写一个Python函数 load_config(config_path)安全地读取一个JSON配置文件。如果文件不存在、格式错误则记录错误日志并返回空字典。使用标准库json和logging。代码审查将你的代码文件通过管道传递给 AI 进行审查。# 审查一个Python脚本 cat my_script.py | gemini 请从PEP 8风格、潜在bug如边界条件、异常处理、性能问题和可读性四个方面审查这段Python代码。以列表形式给出具体问题和改进建议。代码解释遇到看不懂的遗留代码或复杂库函数时# 解释一段复杂的Bash命令 echo find . -name *.py -type f -exec grep -l import pandas {} \; | gemini 请用通俗易懂的语言解释这条find命令具体做了什么并拆解每个参数的含义。5.3 场景三文档撰写与内容处理无论是写 commit message、生成项目文档草稿还是处理文本都非常高效。生成 Git Commit Message# 结合git diff git diff --staged | gemini 根据上面的代码变更生成一条清晰、简洁、符合约定式提交Conventional Commits规范的commit message。格式为type(scope): subject。并附上简要的body说明主要改动。批量处理文本文件假设你有一个目录下的多个.txt文件需要摘要for file in *.txt; do echo 处理文件: $file gemini -f $file 为以下文本生成一个不超过100字的核心内容摘要。 ${file%.txt}_summary.txt done与剪贴板工具协作macOS为例# 翻译当前选中的文本 pbpaste | gemini 将以下英文翻译成地道的中文 | pbcopy # 执行后翻译结果已经在你剪贴板里了直接粘贴即可。5.4 场景四构建自动化工作流将gemini-cli嵌入到 Makefile 或 CI/CD 脚本中实现自动化。示例在 Makefile 中自动生成变更日志.PHONY: changelog changelog: echo 基于最近的git提交生成变更日志... git log --oneline -n 20 | gemini -t 0.1 将以下git提交记录每行一个整理成一份格式良好的Markdown变更日志按功能或模块分组并忽略merge commit。直接输出结果。 CHANGELOG_DRAFT.md echo 草案已生成至 CHANGELOG_DRAFT.md请人工复核。示例在代码预提交钩子pre-commit中进行简单审查你可以编写一个 pre-commit 脚本对暂存区的特定类型文件如.py进行基础的AI审查并将建议输出到报告但不阻塞提交。#!/bin/bash # .git/hooks/pre-commit STAGED_PY_FILES$(git diff --cached --name-only --diff-filterACM | grep \.py$) if [ -n $STAGED_PY_FILES ]; then echo 运行AI辅助代码检查... for FILE in $STAGED_PY_FILES; do git show :${FILE} | gemini -t 0.1 快速检查这段Python代码是否有明显的语法错误、未使用的导入或简单的逻辑问题。只输出发现的问题如果没有问题就说‘未发现问题’。 done fi exit 0 # 始终返回0让审查只是建议不阻止提交6. 性能调优、问题排查与安全须知6.1 网络超时与重试策略由于需要调用云端 API网络稳定性是关键。默认的 SDK 或 CLI 可能有一个较短的超时时间。如果你身处网络波动较大的环境或者查询复杂导致响应时间长可能会遇到超时错误。观察与诊断首先通过一个简单的命令测试网络连通性和基本延迟time gemini 你好关注real时间它反映了从发起请求到收到完整回复的总耗时。调整超时时间如果gemini-cli本身支持超时参数如--timeout可以直接使用。如果不支持你可能需要查看其底层是否使用了google-generativeai库的配置项或者考虑在 Shell 层面使用timeout命令进行控制但这只是控制进程并非 HTTP 超时。实现简单重试对于非交互式脚本可以包装一个简单的重试逻辑。#!/bin/bash # ask_gemini_with_retry.sh MAX_RETRIES3 RETRY_DELAY2 PROMPT$1 for i in $(seq 1 $MAX_RETRIES); do response$(gemini $PROMPT 2/dev/null) if [ $? -eq 0 ] [ -n $response ]; then echo $response exit 0 fi echo 请求失败第${i}次重试... 2 sleep $RETRY_DELAY done echo 错误在${MAX_RETRIES}次重试后仍失败。 2 exit 1然后调用./ask_gemini_with_retry.sh “你的问题”6.2 控制成本与用量监控使用 Gemini API 是会产生费用的尽管可能有免费额度。在频繁使用或处理大量文本时需要关注成本。理解计费单元Gemini API 通常按输入和输出的总令牌数Tokens计费。令牌可以粗略理解为单词或词元。一个复杂的请求长上下文长回复可能消耗数千令牌。估算令牌用量虽然 CLI 工具本身可能不直接显示但你可以通过一些经验法则估算。例如一段 1000 字的英文文本大约对应 1300-1500 个令牌。对于代码行数可以作为一个粗略参考。更准确的方式是在发送重要或大型请求前可以先用一个极短的测试请求看看效果。设置使用预算在 Google AI Studio 或 Google Cloud Console 中你可以为 API 密钥设置每日预算上限防止意外超额使用。在脚本中增加延迟对于自动化脚本尤其是循环调用 API 时务必在请求之间添加延迟例如sleep 2避免短时间内触发速率限制Rate Limiting同时也能控制成本。for item in $(cat list_of_questions.txt); do gemini 处理${item} sleep 1 # 每秒最多一次请求既友好又省钱 done6.3 常见错误与解决方案以下是一些你可能会遇到的错误及排查思路错误现象可能原因解决方案Error: No API key provided.GEMINI_API_KEY环境变量未设置或为空。检查环境变量echo $GEMINI_API_KEY。确保在正确的 Shell 会话中设置并导出export。Error: API key not valid.或Permission denied.API 密钥无效、过期或被禁用。1. 检查密钥是否复制完整前后有无多余空格。2. 登录 Google AI Studio 确认密钥状态是否在目标项目中启用。3. 尝试重新生成一个新密钥。Error: Quota exceeded.达到免费额度上限或项目配额限制。1. 检查 Google Cloud Console 中的配额使用情况。2. 如果是免费额度用完需要升级到付费账户或等待下个周期重置。3. 优化提示词减少不必要的令牌消耗。Error: Model ‘XXX‘ not found.指定的模型名称错误或在你所在区域不可用。1. 使用gemini --help查看支持的模型列表。2. 检查 Google AI Studio 文档确认模型名称拼写正确且已发布。Timeout error或长时间无响应网络连接问题、API 服务暂时不可用或请求过于复杂导致处理超时。1. 检查网络连接。2. 稍后重试。3. 简化你的提示词或使用更快的模型如gemini-1.5-flash。4. 尝试使用--max-output-tokens限制回复长度。输出被截断或不完整可能达到了回复的最大令牌限制或者流式输出被中断。1. 增加--max-output-tokens参数值注意模型上限。2. 确保网络稳定。对于极长回复考虑让 AI 分点或分段输出。回复质量不佳或答非所问提示词不够清晰、温度参数过高导致随机性大、或模型能力局限。1.优化你的提示词最重要更清晰、具体地描述任务提供上下文和示例。2. 降低--temperature值如设为 0.1-0.3。3. 尝试更换更强的模型如从flash切换到pro。6.4 隐私与安全最佳实践在使用任何云端 AI 服务时数据隐私都必须认真对待。绝不发送敏感信息这是铁律。不要通过gemini-cli发送密码、API 密钥、个人身份信息PII、商业秘密、未脱敏的客户数据或任何受监管的敏感数据。AI 服务提供商可能会将对话内容用于模型改进存在潜在的泄露风险。审查输出内容AI 生成的内容可能包含错误、偏见或不准确的信息。特别是用于生成代码、法律或医疗建议时必须由具备资质的专业人士进行严格审查和验证。不要盲目信任和直接部署 AI 生成的代码。使用项目级配置如前所述使用.env文件管理 API 密钥并将.env添加到你的.gitignore文件中避免意外提交到版本库。了解服务条款仔细阅读 Google AI Studio 和 Gemini API 的服务条款了解数据使用政策、合规性要求以及你的权利和责任。eliben/gemini-cli作为一个桥梁工具将强大的 Gemini 模型无缝地带入了命令行环境。它的价值不在于其代码本身有多复杂而在于它精准地抓住了“降低使用摩擦、融入现有工作流”这个需求。通过管道、文件、编辑器集成以及灵活的参数配置它把 AI 能力变成了一种可编程、可脚本化的实用资源。掌握它并不意味着你要用它解决所有问题而是多了一个强大的、触手可及的辅助思考工具。在实际使用中不断迭代你的提示词技巧并时刻牢记成本与隐私的边界才能让它真正安全、高效地为你的生产力服务。

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