当前位置: 首页 > article >正文

Laravel 12原生AI扩展实战:从Composer安装到OpenAI/Local LLM双模接入,7步完成企业级部署

更多请点击 https://intelliparadigm.com第一章Laravel 12原生AI扩展实战从Composer安装到OpenAI/Local LLM双模接入7步完成企业级部署Laravel 12 原生强化了对 AI 驱动应用的支持通过 laravel/ai 官方扩展包与底层 Illuminate\Ai 组件开发者可无缝集成云端 API 或本地大模型服务。本章聚焦零配置迁移路径实现 OpenAI 与 Ollama 托管的 Llama 3 双模智能路由。安装与初始化运行以下命令安装官方 AI 扩展及适配器composer require laravel/ai composer require laravel/ai-openai composer require laravel/ai-ollama执行后自动注册服务提供者并生成 config/ai.php 配置文件。配置双模驱动策略在 .env 中启用动态驱动切换AI_DRIVERhybrid AI_OPENAI_API_KEYsk-... AI_OLLAMA_BASE_URLhttp://localhost:11434hybrid 驱动将根据任务类型如 chat, embed, generate自动选择最优后端。定义智能路由规则在 config/ai.php 中配置策略表任务类型首选驱动备选驱动超时秒chatopenaiollama30embedollamaopenai15调用示例使用统一接口发起请求框架自动路由// 自动选择 openai因 chat 类型优先 $result Ai::chat(Explain Laravel service containers)-stream(); // 强制指定 ollama 模型 $result Ai::driver(ollama)-chat(Summarize this text)-model(llama3);本地模型准备启动 Ollama 并拉取模型运行ollama serve启动服务执行ollama pull llama3下载轻量模型验证连接curl http://localhost:11434/api/tags第二章Laravel AI扩展生态全景与选型策略2.1 Laravel 12 AI集成架构演进与核心设计原则Laravel 12 引入服务契约抽象层将 AI 能力解耦为可插拔的「AI Provider」接口支持 OpenAI、Ollama、本地 Llama.cpp 等多后端统一调度。核心设计原则契约先行所有 AI 调用必须实现AiContract接口上下文感知请求自动注入用户会话、历史对话与业务元数据异步优先默认启用队列驱动流式响应避免 HTTP 超时Provider 注册示例// config/ai.php providers [ openai [ driver openai, api_key env(OPENAI_API_KEY), model gpt-4o-mini, stream true, // 启用 SSE 流式传输 ], ]该配置声明了 OpenAI 作为默认流式提供者streamtrue触发 Laravel 12 新增的StreamableAiResponse协议底层通过response()-stream()实现零缓冲响应。能力矩阵对比特性OpenAIOllamaLlama.cpp流式支持✅✅⚠️需自定义回调Token 缓存❌✅内置✅via GGUF2.2 官方支持包 vs 社区主流扩展Laravel AI、Laravel LangChain、AI Tools对比评测核心定位差异Laravel官方AI包聚焦轻量集成仅提供基础HTTP客户端封装与OpenAI兼容接口Laravel LangChain深度绑定LangChain生态支持链式调用、记忆管理与工具编排AI Tools面向业务场景内置Prompt模板、缓存策略与审计日志。配置简易性对比方案安装命令最小配置行数官方包composer require laravel/ai1OPENAI_API_KEYLaravel LangChaincomposer require langchain-php/laravel3密钥模型向量库典型调用示例// Laravel官方包简洁同步调用 use Laravel\AI\Facades\AI; $result AI::chat(gpt-4)-prompt(Explain Laravel events in one sentence.); // 参数说明gpt-4指定模型名prompt()为唯一入口无中间状态控制2.3 Composer依赖解析机制深度剖析如何规避PHP版本与LLM SDK的兼容性陷阱依赖解析的核心冲突点Composer 在安装时依据composer.json中的require和 PHP 版本约束如php: ^8.1进行 SAT 求解。当 LLM SDK如openai-php/client声明php: 8.2而项目运行于 PHP 8.1 环境时解析器将拒绝安装或降级至不兼容版本。{ require: { openai-php/client: ^0.8.0, php: ^8.1 } }该配置触发 Composer 的版本回溯算法可能拉取已废弃的0.5.x分支——其底层使用ext-json的新特性在 PHP 8.1 下不可用。推荐实践方案始终在composer.json中显式锁定 PHP 版本并与 CI/CD 环境严格对齐使用composer show --tree openai-php/client验证传递依赖的 PHP 兼容性SDK 版本最低 PHP风险提示0.8.08.2协程支持需ext-uvPHP 8.1 缺失0.5.67.4已移除 OpenAI v1 API 支持2.4 生产环境约束下的扩展选型决策树合规性、可观测性、可审计性三维度在严苛的生产环境中扩展方案必须同步满足三大刚性约束数据主权合规、全链路可观测、操作行为可审计。合规性优先级校验GDPR/等保三级要求数据不出域金融行业强制双写日志留存≥180天可观测性集成点# OpenTelemetry 采集配置示例 exporters: otlp: endpoint: collector.prod:4317 tls: insecure: false # 强制启用mTLS双向认证该配置确保所有扩展组件指标、日志、追踪数据统一接入中央可观测平台且通信链路符合等保加密传输要求。可审计性落地表组件审计事件类型留存周期Kafka Connector配置变更、offset重置365天Sidecar Proxy策略更新、证书轮换180天2.5 实战基于composer.json锁定v1.0.0-beta.3并验证autoload映射完整性锁定指定预发布版本{ require: { vendor/package: 1.0.0-beta.3 as 1.0.0 }, autoload: { psr-4: { Vendor\\Package\\: src/ } } }该配置强制 Composer 解析为稳定版别名避免因 beta 版本号语义导致的升级冲突as语法确保依赖解析器将预发布版本视为1.0.0进行版本约束匹配。验证 autoload 映射有效性执行composer dump-autoload --optimize重建自动加载映射运行composer show vendor/package确认安装版本精确为v1.0.0-beta.3检查vendor/composer/autoload_psr4.php中是否包含Vendor\\Package\\ array($vendorDir . /vendor/package/src)关键路径映射对照表命名空间前缀物理路径预期文件存在性Vendor\\Package\\vendor/vendor/package/src/✅Client.php,Exception/第三章Composer驱动式AI扩展安装与基础配置3.1 全链路安装流程从laravel new到vendor:publish的原子化执行验证初始化与依赖解析执行laravel new myapp --git创建项目骨架Composer 自动触发post-root-package-install脚本校验 PHP 版本与扩展依赖核心命令原子化验证# 验证 vendor:publish 是否可无副作用执行 php artisan vendor:publish --tagconfig --dry-run --force该命令模拟发布配置文件不写入磁盘--dry-run确保幂等性--force跳过交互确认契合 CI/CD 原子化要求。关键路径状态表阶段验证点预期状态new.env 文件生成存在且含 APP_KEYvendor:publishconfig/app.php 可读权限 644UTF-8 编码3.2 配置注入原理探秘ServiceProvider注册时机与Config Caching生命周期影响分析ServiceProvider注册的三个关键阶段应用启动前通过register()方法完成服务绑定但此时配置尚未加载配置加载后boot()执行时依赖已解析的config/文件可安全调用config(app.debug)缓存激活后若启用php artisan config:cachebootstrap/cache/config.php将覆盖运行时读取逻辑。Config 缓存对注入行为的影响场景ServiceProvider中config()调用结果原因未缓存实时读取config/app.php每次请求解析PHP数组已缓存返回bootstrap/cache/config.php中的静态数组绕过文件I/O与环境判断逻辑典型陷阱示例// 在 register() 中直接使用 config() —— 危险 public function register() { $this-app-singleton(logger, function ($app) { return new Logger(config(logging.default)); // ❌ config 可能未加载 }); }该代码在register()阶段执行时config/目录尚未被框架加载config()返回空值或默认值导致服务构造失败。应移至boot()或使用延迟绑定$app-afterResolving()。3.3 环境隔离实践.env.ai专属配置区与多模型实例命名空间隔离方案.env.ai 配置区设计规范区别于通用.env.env.ai专用于 AI 模块的敏感参数与模型级配置# .env.ai AI_MODEL_NAMESPACEprod-llm-v3 EMBEDDING_DIM1024 LLM_TIMEOUT_MS120000 API_KEY_MASKEDtrue该文件被ai-config-loader自动识别并注入独立环境上下文避免与 Web/DB 配置混淆。命名空间隔离机制实例类型命名空间前缀资源约束GPT-4 Turbons-gpt4t-prodCPU: 8, GPU: A10, Mem: 32GBQwen2-7Bns-qwen2-devCPU: 6, GPU: L4, Mem: 24GB运行时加载逻辑启动时通过os.Getenv(AI_MODEL_NAMESPACE)动态绑定模型实例每个命名空间独占/var/run/ai/ /IPC 套接字路径配置热重载仅作用于当前命名空间不触发跨实例广播第四章双模LLM接入的初始化与运行时适配4.1 OpenAI官方SDK v1.0与Laravel 12异步HTTP Client无缝桥接实现核心桥接原理Laravel 12 的Http::pool()与 OpenAI PHP SDK v1.0 的OpenAI::client()均基于 Guzzle 7.5共享同一 HTTP handler 实例天然支持协程复用。桥接配置示例// config/openai.php return [ base_uri env(OPENAI_BASE_URI, https://api.openai.com/v1/), http_client \Illuminate\Support\Facades\Http::createClient([ handler \GuzzleHttp\HandlerStack::create( new \GuzzleHttp\Handler\CurlMultiHandler() ), ]), ];该配置将 Laravel 异步 HTTP Client 注入 SDK使chat()-create()调用自动继承连接池、超时、重试策略等全局配置。性能对比100并发请求方案平均延迟(ms)连接复用率原生 SDK 默认 Guzzle42863%桥接 Laravel Async Client29197%4.2 Local LLM接入规范Ollama API / LM Studio / Text Generation WebUI协议对齐策略统一接口抽象层设计为弥合三者在请求路径、参数命名与响应结构上的差异需构建标准化适配器。核心在于将异构请求归一化为通用 Prompt Schema{ prompt: 解释量子纠缠, temperature: 0.7, max_tokens: 512, stop: [\n\n, |eot_id|] }该 Schema 映射逻辑如下Ollama 使用/api/generate路径且接受stream: falseLM Studio 依赖/v1/completions并要求model字段Text Generation WebUI 则通过/api/v1/generate接收stopping_strings替代stop。协议对齐关键字段对照表语义字段OllamaLM StudioText Generation WebUI最大生成长度num_predictmax_tokensmax_new_tokens温度控制temperaturetemperaturetemperature4.3 双模路由分发器设计基于模型能力声明streaming、function calling、tool use的动态适配器注册能力声明驱动的适配器注册模型能力不再硬编码而是通过结构化声明动态注册适配器。每个 LLM 实例在初始化时上报其支持的能力集如 streaming: true、function_calling: v2、tool_use: json_schema。路由决策矩阵能力组合匹配适配器分发策略streamingtrue, function_callingv2StreamingFnAdapter双阶段响应先流式 token后解析函数调用tool_usejson_schemaToolSchemaAdapter预校验工具参数并注入 schema 元数据动态注册示例func (r *Router) RegisterAdapter(modelID string, caps CapabilitySet) { r.adapters[modelID] NewAdapter(caps) // 自动绑定能力标签到调度队列 if caps.Streaming { r.streamingQueue.Add(modelID) } if caps.FunctionCalling ! { r.fnQueue.Add(modelID) } }该函数将模型能力映射为可调度单元caps.Streaming控制是否启用增量响应通道caps.FunctionCalling决定函数解析器版本与回调协议。4.4 运行时健康检查模型连通性探测、token限额预检、响应延迟熔断机制植入三重健康检查协同策略运行时健康检查采用分层探测机制先验证模型服务可达性再预估请求 token 消耗是否超配额最后依据实时 P95 延迟动态触发熔断。Token 预检逻辑示例// 估算输入输出 token 上限预留 10% 缓冲 func estimateTokens(input string, maxOutput int) int { inputTokens : tokenizer.Count(input) // GPT-4-turbo 典型输出 token 效率约为 0.8 chars/token estimatedOutput : int(float64(maxOutput) * 0.8) return inputTokens estimatedOutput int(float64(inputTokensestimatedOutput)*0.1) }该函数融合输入长度、目标输出规模与编码冗余系数避免因 token 超限导致 400 错误。熔断阈值配置表模型类型P95 延迟阈值ms连续失败次数冷却时间sGPT-4-turbo3500360Claude-3-haiku1200530第五章总结与展望在实际微服务架构落地中可观测性能力的持续演进正从“被动排查”转向“主动防御”。某电商中台团队将 OpenTelemetry SDK 与自研指标网关集成后平均故障定位时间MTTD从 18 分钟压缩至 92 秒。关键实践路径统一 traceID 注入在 Istio EnvoyFilter 中注入 x-request-id并透传至 Go HTTP middleware结构化日志标准化强制使用 JSON 格式字段包含 service_name、span_id、error_code、http_status采样策略动态化对 error_code ! 0 的请求 100% 采样其余按 QPS 自适应降采样典型代码增强示例// 在 Gin 中间件注入上下文追踪 func TraceMiddleware() gin.HandlerFunc { return func(c *gin.Context) { ctx : c.Request.Context() spanCtx, span : otel.Tracer(api-gateway).Start( ctx, http-server, trace.WithSpanKind(trace.SpanKindServer), trace.WithAttributes(attribute.String(http.method, c.Request.Method)), ) defer span.End() // 将 spanCtx 注入 context供下游调用链使用 c.Request c.Request.WithContext(spanCtx) c.Next() } }观测组件能力对比组件低延迟写入50ms分布式日志关联支持Prometheus 指标原生兼容Jaeger Loki Prometheus✓需调整 ES 索引刷新周期✓通过 traceID 字段映射✓Grafana Tempo Grafana Loki✓基于 TSDB 存储优化✓内置 trace-to-logs 关联△需 metrics-to-traces bridge未来演进方向AI 辅助根因分析RCA已在某金融支付平台上线基于 300 维度的 span 特征向量实时聚类异常链路簇准确率达 87.3%误报率低于 4.1%。

相关文章:

Laravel 12原生AI扩展实战:从Composer安装到OpenAI/Local LLM双模接入,7步完成企业级部署

更多请点击: https://intelliparadigm.com 第一章:Laravel 12原生AI扩展实战:从Composer安装到OpenAI/Local LLM双模接入,7步完成企业级部署 Laravel 12 原生强化了对 AI 驱动应用的支持,通过 laravel/ai 官方扩展包与…...

R语言污染溯源从入门到落地:零基础掌握3种主流方法(UNMIX、PMF、CMB)+ 自动化报告生成系统

更多请点击: https://intelliparadigm.com 第一章:R语言污染溯源建模概述 污染溯源建模是环境统计与空间分析的核心任务之一,旨在通过多源监测数据反推污染物的潜在排放源位置、强度及贡献率。R语言凭借其丰富的生态学、地统计(如…...

【独家首发】某汽车制造厂R语言RUL预测系统内部部署手册(含23个生产环境避坑checklist)

更多请点击: https://intelliparadigm.com 第一章:工业R语言设备剩余寿命预测系统概述 工业R语言设备剩余寿命预测系统是一套面向制造业、能源与轨道交通等关键基础设施场景的轻量级预测性维护解决方案。它以R语言为核心建模引擎,结合时间序…...

Next.js特性开关实践:用HappyKit Flags实现动态功能控制与安全发布

1. 项目概述与核心价值 如果你正在用 Next.js 开发应用,并且经历过“新功能上线后半夜被叫起来回滚”的噩梦,或者为了一次灰度发布需要重新构建和部署整个应用,那么今天聊的这个工具,可能就是你的“后悔药”。HappyKit Flags 是一…...

如何3步完成语雀文档迁移:快速备份知识库的终极指南

如何3步完成语雀文档迁移:快速备份知识库的终极指南 【免费下载链接】yuque-exporter export yuque to local markdown 项目地址: https://gitcode.com/gh_mirrors/yuq/yuque-exporter 你是否曾经担心过,自己辛辛苦苦在语雀上积累的技术笔记、项目…...

智慧农业之卷心采摘点图像分割图像数据集 卷心菜分割数据集 农作物图像识别数据集 自动化采摘点图像分割数据集 yolo图像分割数据集第10170期

卷心菜分割相关数据集简介 #类别 Classes (9) 类别(9) OkinaSP-Kaizu OkinaSP-Sunomata OkinaSP-墨俣 OkinaSP-Yoro RedCabbage-Yoro Suiryoku-Yoro 水力养老 TCA422-Kaizu TCA422-Sunomata TCA422-墨俣 Yumebutai-Yoro 汤布院万叶亭-养老 Yumegoromo项目…...

Godot引擎RPG数据管理:Pandora插件实战指南

1. 项目概述:Pandora,一个为Godot引擎量身打造的RPG数据管理神器 如果你正在用Godot引擎开发一款RPG游戏,无论是经典的回合制还是快节奏的动作冒险,我相信你肯定遇到过数据管理的“阵痛期”。物品、技能、角色属性、怪物数值、掉落…...

数据偏态问题分析与校正技术实战指南

1. 数据偏态问题的本质与影响 偏态分布是数据科学家每天都要面对的"老朋友"。当数据分布不对称时,平均值和中位数不再重合,就像一座歪斜的山峰——有的数据点像长尾一样远远拖在右侧(正偏态),有的则堆积在左…...

如何解决LenovoLegionToolkit启动异常:WMI接口故障终极指南

如何解决LenovoLegionToolkit启动异常:WMI接口故障终极指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit Leno…...

AI推理优化工程2026:从模型压缩到推理加速的完整实战指南

引言:推理成本的现实困境 大模型的训练成本是一次性的,但推理成本是持续的。一家中型企业每天调用 GPT-4 级别模型处理 100 万次请求,月均 API 费用可能高达数十万元。更糟糕的是,许多企业在私有化部署时,GPU 的利用率…...

告别输入法词库迁移烦恼:深蓝词库转换工具完全指南

告别输入法词库迁移烦恼:深蓝词库转换工具完全指南 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾经因为更换电脑或操作系统而不得不放弃多年积…...

长期使用Taotoken聚合API对于项目开发节奏的积极影响

长期使用Taotoken聚合API对于项目开发节奏的积极影响 1. 统一接入带来的效率提升 在长期项目开发中,技术选型往往需要评估多个大模型的能力差异。传统方式需要为每个模型单独研究API文档、注册账号并配置计费方式,这一过程可能消耗数天时间。通过Taoto…...

QMCDecode技术解析:3种方法实现QQ音乐加密文件跨平台播放

QMCDecode技术解析:3种方法实现QQ音乐加密文件跨平台播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默…...

高效智能下载:Iwara视频批量下载工具一键解决方案

高效智能下载:Iwara视频批量下载工具一键解决方案 【免费下载链接】IwaraDownloadTool Iwara 下载工具 | Iwara Downloader 项目地址: https://gitcode.com/gh_mirrors/iw/IwaraDownloadTool IwaraDownloadTool是一款专为Iwara平台设计的强大浏览器脚本工具&…...

RigMo框架:骨骼绑定与运动生成的统一解决方案

1. RigMo框架解析:骨骼绑定与运动生成的统一范式 在3D动画制作流程中,骨骼绑定(Rigging)和运动生成(Motion Generation)长期以来被视为两个独立的环节。传统动画制作通常需要艺术家先手动创建骨骼结构并分配…...

Excel插件:随机抽奖(抽签)

给个界面,你们能看懂吗?如果你想学习,顺之下面的内容学习,你也行抽奖器进化过程系列(一)抽奖器进化过程系列(一)抽奖器进化过程(二)抽奖器进化过程系列&#…...

大语言模型微调实战:从LoRA原理到ChatGPT定制化应用

1. 项目概述:从原理到代码,深入理解ChatGPT的微调最近在GitHub上看到一个名为“ChatGPT_principle_fine-tuning_code_paper”的项目,它吸引我的地方在于,它试图将大语言模型(LLM)的核心原理、微调&#xff…...

ShellGPT:命令行AI助手原理、安装与实战应用指南

1. 项目概述:当Shell遇见GPT,一个命令行AI助手的诞生如果你和我一样,每天有超过一半的时间是在终端(Terminal)里度过的,那你肯定也经历过这样的时刻:面对一个复杂的命令,记不清确切的…...

基于MCP协议的SEO内容创作助手:实现风格一致性的零成本解决方案

1. 项目概述:一个能“模仿你说话”的SEO内容创作助手如果你和我一样,长期运营着一个技术博客或者内容网站,肯定遇到过这样的困境:想写一篇新的SEO文章,但总感觉新写出来的东西,和网站原有的文章风格对不上。…...

AI智能体技能开发:标准化、模块化与开源实践指南

1. 项目概述:一个为智能体技能而生的开源仓库最近在折腾AI智能体(Agent)开发的朋友,估计都绕不开一个核心问题:如何让智能体真正“学会”并“掌握”一项技能?无论是让它帮你写一份周报、分析一份数据&#…...

96V200Ah–400Ah重载巡检/作业机器人锂电池完整设计方案要求(工业级高负载平台标准)【浩博电池】

96V200Ah–400Ah重载巡检/作业机器人锂电池完整设计方案要求(工业级高负载平台标准)96V200Ah–400Ah锂电池系统广泛应用于重载巡检机器人、轨道检修机器人、矿区巡检平台、隧道作业机器人、石化防爆巡检机器人、港口设备维护机器人及大型无人作业平台。该…...

QMCDecode:三步解锁QQ音乐加密格式,macOS用户的终极音频自由方案

QMCDecode:三步解锁QQ音乐加密格式,macOS用户的终极音频自由方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载…...

会炒股的程序员9,预期差,波动率,因子

“预期差”就是:未来真实发生的情况,或市场后来相信会发生的情况,和当前股价里已经包含的预期之间的差。 股票价格不是在给“过去的好公司”打分,而是在给“未来现金流 未来风险折现率 市场愿意给的估值倍数”定价。一个简化公式…...

会炒股的程序员10,个人投资体系

你这段话的核心可以压缩成一句: 股市不是单纯交易公司,而是在交易“公司现实、群体预期、个人心理和时间约束”的叠加结果。 所以投资最难的地方,不是知道一句正确的话,而是同时承受几种互相矛盾的真相。 一、市场为什么难 好公司…...

网易云音乐NCM格式终极解密指南:3步解锁你的音乐收藏

网易云音乐NCM格式终极解密指南:3步解锁你的音乐收藏 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾在网易云音乐下载了心爱的歌曲,却发现在其他播放器无法打开?那些被加密的NCM格式文件…...

3分钟快速解密网易云音乐NCM文件:ncmdump完整使用指南

3分钟快速解密网易云音乐NCM文件:ncmdump完整使用指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否在网易云音乐下载了喜欢的歌曲,却无法在其他设备或播放器上欣赏?NCM加密格式限制了你的…...

房价预测:从线性回想到决策树

在房地产市场分析中,预测房价是一个常见但充满挑战的任务。本文将探讨如何通过机器学习技术,特别是从线性回归到决策树模型的转变,来提高房价预测的准确性。 问题描述 假设我们有一份包含房屋特征数据的CSV文件,其中包括房屋面积、地址、是否有停车位、仓库和电梯等信息。…...

GitHub 热门项目 `modded-nanogpt` 实测:把“90 秒训练 124M”搬到 RTX 3090 后,先炸的不是显存,而是 Hopper 专用内核

GitHub 热门项目 modded-nanogpt 实测:把“90 秒训练 124M”搬到 RTX 3090 后,先炸的不是显存,而是 Hopper 专用内核 很多人看到 modded-nanogpt README 里的“124M 模型 90 秒训练”会本能地想:先 clone 下来,看看自…...

Bili2text:3步将B站视频转为文字稿,开启高效学习新篇章

Bili2text:3步将B站视频转为文字稿,开启高效学习新篇章 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经因为需要整理视频内…...

终极指南:如何用ViGEmBus在Windows上创建虚拟游戏手柄

终极指南:如何用ViGEmBus在Windows上创建虚拟游戏手柄 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想要在Windows电脑上畅玩手柄游戏&#xf…...