AI智能体集成命令行交易:Rust CLI工具与Alpaca API实战指南

news2026/5/10 3:36:36
1. 项目概述当AI智能体遇上命令行交易如果你是一名开发者同时又对股票交易感兴趣那么你很可能面临一个两难境地一方面你享受在终端里敲击命令、用脚本自动化一切的效率与掌控感另一方面主流的交易平台大多是图形化界面操作繁琐难以与你的自动化工作流无缝集成。lacymorrow/openclaw-alpaca-trading-skill这个项目正是为了解决这个痛点而生。它本质上是一个桥梁将一个名为apcacli的、基于 Rust 的命令行交易工具封装成了一个可以被 AI 智能体特别是 OpenClaw 框架下的 Agent调用的“技能”。简单来说这个技能让你的 AI 助手或者你自己的脚本能够像在终端里直接输入命令一样去查询市场数据、管理投资组合、甚至自动执行买卖订单。想象一下你正在编写一个监控市场情绪的脚本当条件触发时你不再需要手动打开浏览器登录交易平台而是让脚本直接调用几个 API 命令完成操作——这就是这个技能带来的核心价值将程序化交易的能力以最开发者友好的方式注入到你的自动化工作流中。它的底层是apcacli一个设计精良的 Rust CLI 工具通过它来与 Alpaca 券商 API 进行通信。Alpaca 本身就以对开发者友好著称提供了完善的 REST 和 WebSocket API。而apcacli则将这些 API 封装成了更符合命令行使用习惯的指令。这个技能项目则是在此基础上做了进一步的封装和适配使其能够被集成到更上层的 AI 智能体系统中比如作为 OpenClaw 的一个可调用模块。那么谁最适合使用它呢首先是量化交易爱好者或独立开发者你们可以基于此快速构建自己的交易策略原型并进行自动化回测与执行。其次是运维工程师或 DevOps你们擅长用脚本管理一切自然也希望用同样的方式管理部分投资组合。最后是对 AI 智能体应用感兴趣的探索者你们可以将其作为一个典型案例研究如何将专业的金融操作能力赋予 AI Agent。注意金融交易伴随显著风险。本项目及所有相关工具仅为技术实现方案绝不构成任何投资建议。在涉及真实资金前请务必充分理解相关风险并始终从模拟交易开始。2. 核心设计思路与技术栈解析2.1 为什么选择“技能”模式与 CLI 工具这个项目的设计哲学非常清晰专注与解耦。它没有尝试重新发明轮子去直接对接 Alpaca API而是选择了一个优秀的现有 CLI 工具 (apcacli) 进行集成。这种“技能”模式在 AI 智能体架构中非常常见。技能Skill可以理解为智能体所具备的、可复用的特定能力模块。就像给机器人安装了一个“拧螺丝”的技能包它就能执行拧螺丝的任务。在这里“Alpaca 交易”被封装成了一个技能。这样做的好处是多方面的可维护性apcacli的维护和更新由原开发者负责本技能项目只需确保集成接口的稳定性降低了维护成本。可靠性apcacli作为一个经过社区检验的工具其稳定性和正确性相对更有保障避免了从零实现 API 客户端可能引入的 Bug。生态兼容对于 OpenClaw 或其他类似智能体框架以技能形式封装能更好地融入其插件化、模块化的生态方便被其他智能体调用和组合。而选择CLI命令行界面工具作为集成对象则是另一个精妙之处。CLI 是 Unix 哲学的典范一个程序只做好一件事并通过标准输入输出stdin/stdout与其他程序协作。这意味着易于自动化任何能执行 shell 命令的脚本或程序Python, Bash, Node.js都可以轻松调用它。输出结构化apcacli支持 JSON 格式输出这为程序化解析结果提供了极大便利。AI 智能体可以像调用一个普通函数一样获取结构化的账户信息或订单状态。环境隔离CLI 工具运行在独立的进程中与智能体主体环境隔离。即使交易逻辑出现异常也不容易导致智能体主进程崩溃。2.2 技术栈深度剖析Rust、Alpaca 与 OpenClawRust (apcacli)apcacli采用 Rust 编写这并非偶然。Rust 以其卓越的性能、内存安全性和零成本抽象著称。在交易这个对延迟和可靠性要求极高的场景下这些特性至关重要性能Rust 编译出的原生代码执行效率极高能够快速处理 API 请求和响应减少从命令发出到订单送达的延迟。安全性所有权系统保证了内存安全几乎杜绝了段错误、数据竞争等低级错误这对于处理真金白银的交易逻辑是基础保障。打包与分发cargo install使得安装过程极其简单跨平台支持macOS, Linux, Windows也做得很好降低了用户的使用门槛。Alpaca APIAlpaca 是一个主打 API 优先的券商其设计完全面向开发者清晰的接口设计RESTful API 设计规范资源模型如 Orders, Positions, Account直观易懂。完善的文档提供了详尽的 API 参考和指南降低了集成难度。强大的模拟交易提供功能完整的 Paper Trading模拟交易环境初始虚拟资金为 10 万美金允许开发者在零风险环境下测试所有交易功能。这是学习程序化交易不可或缺的一环。丰富的资产类别支持股票、ETF、期权和加密货币通过 Alpaca Crypto为策略提供了广阔的空间。OpenClaw 技能框架虽然项目 README 中提到了 ClawHub/OpenClaw但该技能的核心价值并不完全依赖于特定的 AI 框架。它展示的是一种模式如何将一个 CLI 工具包装成 AI 可调用的服务。其核心逻辑无非是接收参数 - 构造 CLI 命令 - 执行子进程 - 捕获并解析输出 - 返回结构化结果。任何智能体系统如 LangChain Tools, AutoGPT 插件等都可以借鉴此模式进行适配。2.3 安全与配置架构解析项目的安全设计遵循了最佳实践主要体现在密钥管理和环境隔离上环境变量配置强制要求通过APCA_API_KEY_ID和APCA_API_SECRET_KEY环境变量传递密钥。这避免了将敏感信息硬编码在脚本或配置文件中后者一旦上传至 Git 仓库就会造成严重的安全泄露。模拟与生产环境分离通过APCA_API_BASE_URL环境变量来区分模拟交易和实盘交易环境。默认或不设置指向模拟交易 API实盘则需要显式修改为生产环境地址。这是一个关键的安全阀防止测试脚本误操作真实账户。进程隔离如前所述通过 CLI 调用交易操作在独立进程中运行与智能体的逻辑解耦。一个健壮的配置通常如下所示建议写入 shell 的配置文件如~/.zshrc或~/.bashrc# 模拟交易环境 (默认) export APCA_API_KEY_IDPK...以PK开头的模拟交易Key export APCA_API_SECRET_KEY... # 注意模拟交易通常无需设置 BASE_URL或设置为 https://paper-api.alpaca.markets # 实盘交易环境 (使用时需显式切换并极其谨慎) # export APCA_API_BASE_URLhttps://api.alpaca.markets # export APCA_API_KEY_IDLK...以LK开头的实盘Key # export APCA_API_SECRET_KEY...实操心得我强烈建议创建两个独立的 shell 脚本例如env_paper.sh和env_live.sh分别 source 不同的环境变量。在执行任何交易命令前先确认当前生效的环境可以通过echo $APCA_API_KEY_ID查看 Key 前缀来快速判断。3. 从安装到第一笔订单全流程实操指南3.1 环境准备与工具安装安装过程看似简单但细节决定成败。我们以 macOS/Linux 环境为例拆解每一步。第一步安装 Rust 工具链虽然项目提到 Rust 1.71但直接安装最新稳定版即可。使用rustup是官方推荐的方式。curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh执行后按照提示操作通常选择默认选项1即可。安装完成后必须重启终端或执行source $HOME/.cargo/env来让 CargoRust 的包管理器和 Rust 命令生效。验证安装rustc --version cargo --version确保都能正确输出版本号。第二步安装 apcaclicargo install apcacli这个过程会从 crates.io 下载apcacli及其依赖主要是apcaAPI 库并进行编译。由于是原生编译首次安装可能需要几分钟取决于你的网络和机器性能。一个常见的坑编译失败。这通常是由于缺少系统级的链接库。例如在 Ubuntu 上你可能需要先安装build-essential、pkg-config和libssl-dev。# Ubuntu/Debian 系统可能的依赖 sudo apt update sudo apt install -y build-essential pkg-config libssl-dev在 macOS 上如果使用 Homebrew通常 Xcode Command Line Tools 已经包含所需内容。安装成功后apcacli可执行文件会位于$HOME/.cargo/bin/目录下。请确保该目录已在你的PATH环境变量中。可以执行echo $PATH查看如果没有需要在 shell 配置文件中添加export PATH$HOME/.cargo/bin:$PATH。验证 CLI 安装apcacli --help你应该能看到一长串详细的命令帮助信息。3.2 获取并配置 Alpaca API 密钥注册与登录访问 Alpaca Markets 官网注册账户。这个过程相对简单需要邮箱、设置密码等。对于美国居民可能需要提供 SSN 等信息进行身份验证以开通实盘对于国际用户非美国通常可以注册并立即使用模拟交易实盘功能可能受限请以官网最新政策为准。导航至 API 管理登录后在 Dashboard 页面找到类似 “Your API Keys” 或 “API Management” 的链接。Alpaca 的界面可能会更新但核心功能位置通常比较明显。生成密钥模拟交易密钥Paper Keys在 Paper Trading 板块下点击 “Generate API Keys”。你会得到一对以PK开头的API Key ID和Secret Key。请立即复制保存因为 Secret Key 只显示一次。实盘交易密钥Live Keys在 Live Trading 板块下生成密钥以LK开头。在完全熟悉模拟交易并充分测试前切勿生成或使用实盘密钥。环境变量配置 打开你的终端将密钥设置为环境变量。注意以下命令会将密钥明文保存在历史记录中仅用于临时测试。正式使用请采用更安全的方式。export APCA_API_KEY_ID你的_PK_开头的_KEY_ID export APCA_API_SECRET_KEY你的_SECRET_KEY为了持久化将这两行命令添加到你的 shell 配置文件~/.zshrc或~/.bashrc末尾。然后执行source ~/.zshrc使其生效。3.3 执行你的第一个命令验证与探索配置好密钥后让我们进行“冒烟测试”确保一切连通正常。测试账户连接apcacli account get如果一切正常你会看到一个 JSON 格式的输出包含了你的模拟账户详情如账户 ID、状态、现金余额、购买力、当日盈亏等。这是一个非常重要的命令是你所有交易的起点。检查市场状态apcacli market clock这会返回当前市场的状态开市、闭市、即将开市等以及下一个开市/闭市时间。非常重要美股市场并非 24 小时交易常规交易时间为美东时间 9:30 - 16:00不含盘前盘后。在非交易时间提交的市价单可能会被延迟处理或拒绝。搜索资产 假设你想交易苹果公司的股票但不确定其在 Alpaca 上的准确代码通常是 AAPL。apcacli asset search apple这会列出所有与 “apple” 相关的可交易资产包括股票和 ETF。确认 AAPL 在列表中且tradable字段为true。3.4 下达第一笔模拟订单现在让我们用模拟资金进行第一次交易。我们从一个最简单的市价单开始。第一步确认购买力apcacli account get | grep -E “(buying_power|cash)”查看buying_power购买力或cash现金字段确认你有足够的虚拟资金模拟账户初始为 10 万美金。第二步下达市价买入订单我们决定买入价值 100 美元的苹果股票AAPL。使用--value参数可以指定金额系统会自动计算能买入的股数小数股。apcacli order submit buy AAPL --value 100命令执行后会返回一个 JSON包含订单的详细信息id订单唯一标识、status状态如new,filled、filled_qty已成交数量等。第三步监控订单与持仓查看特定订单用返回的订单 ID 查询详情。apcacli order get 你的订单ID查看所有未完成订单apcacli order list --status open查看持仓几秒后市价单通常很快成交查看你的持仓。apcacli position list你应该能看到 AAPL 的持仓显示成本价、市价、盈亏金额和比例。第四步平仓卖出你刚刚买入的 AAPL。# 卖出全部持仓 apcacli position close AAPL # 或者使用订单命令卖出特定数量 # apcacli order submit sell AAPL --qty 你持有的数量执行apcacli position list再次确认 AAPL 持仓已消失。至此你已经完成了从环境搭建到完成一次完整交易循环的所有步骤。整个过程完全在命令行中完成没有点击任何图形界面。4. 核心交易功能详解与高级用法4.1 订单类型全解析何时使用何种订单apcacli支持 Alpaca API 提供的主要订单类型。理解它们的区别是进行有效交易的关键。1. 市价单 (Market Order)命令示例apcacli order submit buy AAPL --qty 10或apcacli order submit buy AAPL --value 1000特点以当前市场上最优的可成交价格立即买入或卖出。执行速度快但成交价格不确定在波动剧烈的市场中可能产生滑点。适用场景流动性极高的大盘股如 SPY、AAPL且你对精确成交价格不敏感追求快速成交时使用。2. 限价单 (Limit Order)命令示例apcacli order submit buy AAPL --qty 10 --limit-price 175.50特点指定一个价格订单只会以该价格或更优的价格成交。买入限价单成交价格不高于设定限价卖出限价单成交价格不低于设定限价。可能无法立即全部成交未成交部分会留在订单簿中等待。适用场景你希望控制成本或利润愿意为更好的价格等待。例如你认为 AAPL 会跌到 175.5就在此价格挂买单。3. 止损单 (Stop Order) 止损限价单 (Stop-Limit Order)止损单示例apcacli order submit sell AAPL --qty 10 --stop-price 170.00止损限价单示例apcacli order submit sell AAPL --qty 10 --stop-price 170.00 --limit-price 169.50特点止损单当市场价格达到或穿过你设定的stop-price时订单变为市价单并尝试成交。用于限制亏损或保护利润。止损限价单触发止损后变为一个限价单以limit-price为限进行成交。比纯止损单更能控制成交价但在快速下跌的市场中可能无法成交。适用场景风险管理核心工具。例如你在 180 买入 AAPL设置 170 的止损单意味着你最多愿意承受 10 元的亏损。4. 跟踪止损单 (Trailing Stop Order)命令示例apcacli order submit sell AAPL --qty 10 --trail-percent 5或--trail-amount 8.50特点止损价格不是固定的而是随着股价向有利方向变动而同步移动。--trail-percent 5意味着止损价始终保持在最高价对于卖单下方 5% 的位置。股价上涨止损价也跟着上移锁定利润股价下跌止损价不动触及则卖出。适用场景趋势跟踪策略让你在享受上涨收益的同时自动保护既得利润。是“让利润奔跑截断亏损”理念的自动化工具。实操心得订单类型选择策略在我的模拟交易测试中对于日内短线或波动大的品种限价单是首选它能避免滑点侵蚀利润。而对于长线持仓跟踪止损单是必选项它能自动化执行退出策略克服人性中的贪婪和犹豫。永远不要在没有止损保护的情况下持有隔夜仓即使是在模拟交易中培养这个习惯也至关重要。4.2 投资组合管理与监控自动化命令行交易的优势在于极易自动化。以下是一些实用的组合命令和脚本思路。一键式账户健康检查脚本 创建一个脚本portfolio_snapshot.sh#!/bin/bash # portfolio_snapshot.sh echo “ 账户概览 $(date ‘%Y-%m-%d %H:%M:%S’) ” apcacli account get | jq ‘{账号: .id, 状态: .status, 现金: .cash, 购买力: .buying_power, 账户价值: .portfolio_value, 当日盈亏: .equity}’ echo “” echo “ 当前持仓 ” apcacli position list | jq ‘.[] | {代码: .symbol, 数量: .qty, 成本价: .avg_entry_price, 市价: .current_price, 盈亏额: .unrealized_pl, 盈亏率: .unrealized_plpc}’ echo “” echo “ 市场状态 ” apcacli market clock | jq ‘{当前时间: .timestamp, 市场状态: .is_open, 下次开市: .next_open, 下次闭市: .next_close}’这个脚本使用了jq工具来美化 JSON 输出。你需要先安装jq(brew install jq或apt install jq)。然后赋予执行权限chmod x portfolio_snapshot.sh即可运行./portfolio_snapshot.sh。基于条件的自动化平仓 假设你想在某个持仓的亏损超过 10% 时自动平仓。可以写一个 Python 脚本定期检查#!/usr/bin/env python3 import subprocess import json def get_positions(): result subprocess.run([‘apcacli’, ‘position’, ‘list’], capture_outputTrue, textTrue) return json.loads(result.stdout) if result.stdout else [] def close_position(symbol): subprocess.run([‘apcacli’, ‘position’, ‘close’, symbol]) print(f“已平仓: {symbol}”) positions get_positions() for pos in positions: unrealized_plpc float(pos[‘unrealized_plpc’]) # 盈亏比例负数表示亏损 if unrealized_plpc -0.10: # 亏损超过10% print(f“警报: {pos[‘symbol’]} 亏损达 {unrealized_plpc:.2%}触发自动平仓”) close_position(pos[‘symbol’])可以将此脚本加入 crontab实现定时风控检查。4.3 与 AI 智能体集成示例作为 OpenClaw 的一个 Skill其核心是被 AI Agent 调用。下面模拟一个极简的 Agent 思考与行动循环场景Agent 的任务是“如果苹果公司AAPL股价低于 175 美元则用 10% 的现金买入”。Agent 的伪代码逻辑观察调用apcacli asset get AAPL获取当前股价。调用apcacli account get获取现金余额。决策如果股价 175计算 10% 现金对应的金额。行动调用apcacli order submit buy AAPL --value 计算出的金额。报告调用apcacli order get 新订单ID确认订单状态并生成执行报告。在 OpenClaw 或类似框架中这个apcacli技能会被封装成一个Tool或ActionAgent 通过自然语言或内部逻辑决定调用哪个命令并解析返回的 JSON 结果。项目的价值就在于提供了这个封装好的、可即插即用的交易能力模块。5. 常见问题、故障排查与进阶技巧5.1 安装与连接问题问题cargo install apcacli编译失败提示链接错误。排查错误信息通常指向缺失的系统库如openssl。解决macOS (Homebrew):brew install openssl然后可能需要设置环境变量export LIBRARY_PATH“$(brew --prefix)/opt/openssl/lib:$LIBRARY_PATH”。Ubuntu/Debian:sudo apt install -y pkg-config libssl-dev。CentOS/RHEL:sudo yum install openssl-devel。如果问题依旧尝试更新 Rust 工具链rustup update。问题执行apcacli account get返回错误如401 Unauthorized。排查密钥错误最常见原因。执行echo $APCA_API_KEY_ID和echo $APCA_API_SECRET_KEY检查是否已设置且值正确。确保没有多余的空格或换行符。环境混淆确认你使用的是模拟交易密钥PK开头还是实盘密钥LK开头。如果你在模拟环境使用了实盘Key或者反之都会报错。Base URL 冲突如果你曾设置过APCA_API_BASE_URL请确认它与你使用的密钥类型匹配。模拟交易通常是https://paper-api.alpaca.markets但apcacli默认已处理实盘是https://api.alpaca.markets。一个干净的测试方法是开启一个新终端只设置两个 Key 变量不设置 Base URL。解决重新正确设置环境变量并使用source命令或新终端生效。5.2 交易执行问题问题订单提交成功但一直处于new或partially_filled状态未完全成交。排查市场时间首先用apcacli market clock确认市场是否开盘。在盘前、盘后或非交易日流动性差限价单可能无法成交。订单类型与价格如果是限价单检查你设定的limit-price是否偏离当前市价太远。使用apcacli asset get SYMBOL查看最新报价。流动性对于小盘股或 ETF买卖盘口可能很薄导致订单无法立即全部成交。解决对于测试可以尝试提交一个更激进的限价单买单价格稍高卖单价格稍低或者直接使用市价单。了解不同订单类型的特性是关键。问题想交易某个股票如 TSLA但apcacli asset get TSLA返回tradable: false。排查Alpaca 模拟交易和实盘交易支持的资产范围可能不同且某些资产如部分OTC股票、杠杆ETF可能被限制交易。解决使用apcacli asset search tesla搜索确认 Alpaca 上该资产的正确代码和可交易状态。查阅 Alpaca 官方文档了解其支持的资产列表和交易规则。对于模拟交易某些限制可能更少这是一个很好的测试途径。5.3 进阶技巧与最佳实践1. 使用 JSON 输出进行程序化处理apcacli默认输出是经过格式化的文本但通过--output-format json参数可以获取原始的 JSON 输出这对于脚本处理至关重要。apcacli account get --output-format json在你的 Python 脚本中可以这样调用并解析import subprocess, json result subprocess.run([‘apcacli’, ‘account’, ‘get’, ‘—output-format’, ‘json’], capture_outputTrue, textTrue) account_info json.loads(result.stdout) print(f“当前购买力: {account_info[‘buying_power’]}”)2. 实现简单的策略回测框架虽然apcacli本身不提供回测功能但你可以结合历史数据可以从 Alpaca API 或其他数据源获取和apcacli的命令逻辑构建一个简单的本地回测系统。思路是用 Python 的pandas读取历史价格数据。模拟apcacli order submit的逻辑在历史时间点上根据你的策略规则“虚拟”下单。记录每次“交易”的价格、数量、佣金Alpaca 模拟交易无佣金但实盘有回测时应考虑计算 equity curve资金曲线。最后用matplotlib画出资金曲线和回测指标夏普比率、最大回撤等。这能让你在投入真金白银前对策略逻辑有一个量化的评估。3. 日志与审计自动化交易必须留有清晰的日志以便复盘和排查问题。建议将所有apcacli命令的执行、参数及返回结果记录到日志文件中。你可以封装一个简单的 shell 函数或 Python 函数来代替直接调用apcacli在这个封装层里添加日志记录。#!/bin/bash log_trade() { local cmd“$” local timestamp$(date ‘%Y-%m-%d %H:%M:%S’) local output output$(eval “$cmd”) echo “[$timestamp] CMD: $cmd” trade.log echo “[$timestamp] OUTPUT: $output” trade.log echo “$output” # 输出到终端 } # 使用封装函数下单 log_trade apcacli order submit buy SPY —value 5004. 从模拟到实盘的 checklist当你经过充分模拟测试准备过渡到实盘时请务必逐项核对[ ]策略稳定性模拟交易至少跑完一个完整的市场周期包含上涨、下跌、震荡策略表现稳定。[ ]代码健壮性你的自动化脚本处理了各种边缘情况网络超时、API 限流、无效数据等。[ ]风控措施脚本内置了单笔最大亏损、每日最大亏损、总仓位限制等风控逻辑。[ ]密钥安全实盘 API Key 存储在安全的密码管理器或服务器环境变量中绝不入 Git。[ ]环境切换有一套可靠的机制如不同的配置文件、环境变量开关确保脚本在正确的环境模拟/实盘下运行。首次实盘运行时可以先下一笔极小金额的订单验证整个流程。[ ]心理准备实盘是真钱市场波动带来的心理压力与模拟盘完全不同。确保你的策略逻辑和风控能让你安心睡觉。命令行交易工具赋予了开发者极大的灵活性和自动化能力但能力越大责任也越大。始终将风险控制放在首位从模拟交易中积累经验谨慎地构建和部署你的自动化交易系统。这个openclaw-alpaca-trading-skill项目提供了一个强大而安全的起点剩下的就交给你的策略和代码了。

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