AI模型本地部署实战:从Hugging Face下载到成功运行推理的完整指南
在实际 AI 模型本地化部署和微调实践中从 Hugging Face 下载一个模型仓库然后尝试运行推理或微调脚本是许多开发者和研究者的起点。然而这个过程远不止git clone和python run.py这么简单。模型文件缺失、配置文件不匹配、依赖版本冲突、硬件资源不足等问题常常让初次尝试者陷入困境。本文将围绕一个典型的开源大语言模型例如 Qwen 系列的本地部署与微调流程深入拆解从环境准备到成功运行的每一个关键环节并重点剖析那些导致“模型跑不起来”的常见陷阱及其排查路径。无论你是想体验最新的 Qwen 模型还是计划基于类似架构的模型进行二次开发掌握这套从零到一的工程化实践方法都至关重要。本文假设你具备基本的 Python 编程和命令行操作能力目标是带你完成一个可在本地运行的模型推理示例并理解其背后的配置逻辑为后续的微调如 LoRA打下坚实基础。我们将重点关注环境隔离、依赖管理、模型文件验证、配置适配以及基础推理验证这几个核心阶段。1. 理解模型仓库的结构与核心文件在开始下载和运行任何模型之前必须清楚你要获取的到底是什么。一个标准的、可用于推理的模型仓库通常包含以下几类关键文件缺少任何一类都可能导致后续步骤失败。1.1 模型权重文件The Model Weights这是模型的核心文件体积最大。常见格式有PyTorch 格式.bin 或 .pth如pytorch_model-00001-of-00002.bin,pytorch_model.bin。这是最通用的格式由torch.save()生成。Safetensors 格式.safetensors如model-00001-of-00002.safetensors。一种更安全、加载更快的格式正逐渐成为社区标准。GGUF 格式.gguf如qwen2-7b-instruct-q4_k_m.gguf。为llama.cpp及其衍生工具如 Ollama, LM Studio优化的量化格式便于在消费级硬件上运行。为什么重要推理脚本需要加载这些文件来恢复模型的参数。如果仓库只提供了原始 PyTorch 格式而你想用 Ollama 运行就需要自己进行格式转换。1.2 配置文件Configuration Files这些文件定义了模型的“骨架”或“蓝图”告诉加载代码模型的架构和超参数。config.json最主要的配置文件包含vocab_size词表大小、hidden_size隐藏层维度、num_hidden_layers层数、num_attention_heads注意力头数等关键架构参数。版本不匹配是致命错误。generation_config.json控制文本生成行为的配置如max_length最大生成长度、do_sample是否采样、temperature温度等。tokenizer.json或tokenizer_config.json分词器的配置和词表文件。没有正确的分词器模型无法理解你的输入。常见坑点从不同来源例如官方仓库、第三方合并版、自己微调的保存点获取的config.json可能包含不一致的字段直接混用会导致加载失败。1.3 模型加载代码Loading Scripts对于 Hugging Facetransformers库通常需要以下文件来正确识别和加载模型modeling_xxx.py定义模型具体架构的 Python 类文件如modeling_qwen.py。transformers库通过动态导入这个文件来创建模型实例。configuration_xxx.py对应配置类的 Python 文件。tokenization_xxx.py对应分词器类的 Python 文件。__init__.py使得该目录成为一个 Python 包。为什么重要如果你下载的是一个“纯权重”仓库例如只有.safetensors和config.json但没有对应的建模代码from_pretrained方法将无法自动识别模型类型。此时你需要手动指定trust_remote_codeTrue或确保本地有兼容的建模代码。1.4 仓库完整性检查清单在开始下载前建议先通过 Hugging Face Hub 页面或命令行工具检查目标仓库是否包含以下最小文件集文件类型必需性作用缺失后果config.json必需定义模型架构transformers无法自动创建模型实例模型权重文件 (如.safetensors)必需存储模型参数无模型可加载tokenizer.json或tokenizer_config.json必需分词器配置与词表无法将文本转换为模型可理解的 token IDmodeling_xxx.py/configuration_xxx.py条件必需模型架构定义代码若库中无内置支持需此文件或trust_remote_codeTrueREADME.md推荐使用说明、版本要求可能错过关键的运行环境或步骤信息你可以使用huggingface-cli来查看文件列表huggingface-cli repo-files 仓库作者/模型名称例如huggingface-cli repo-files Qwen/Qwen2.5-7B-Instruct2. 搭建隔离且可复现的 Python 环境模型运行强烈依赖特定版本的 PyTorch、CUDA 和transformers库。环境冲突是导致“别人能跑我跑不了”的首要原因。2.1 使用 Conda 或 Venv 创建虚拟环境Conda推荐便于管理 CUDA 版本# 创建名为 qwen_env 的 Python 3.10 环境 conda create -n qwen_env python3.10 -y conda activate qwen_envVenvpython3.10 -m venv qwen_venv # Linux/Mac source qwen_venv/bin/activate # Windows qwen_venv\Scripts\activate2.2 安装 PyTorch 与 CUDA前往 PyTorch 官网 获取适合你系统的安装命令。核心是匹配你的 NVIDIA 显卡驱动支持的 CUDA 版本。# 示例安装支持 CUDA 11.8 的 PyTorch 2.1 conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia # 或者使用 pip pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118安装后验证python -c import torch; print(fPyTorch版本: {torch.__version__}); print(fCUDA是否可用: {torch.cuda.is_available()}); print(fCUDA版本: {torch.version.cuda})2.3 安装 Transformers 及其他依赖安装transformers库并建议安装accelerate用于优化加载、sentencepiece或tiktoken分词器后端等。pip install transformers accelerate sentencepiece tiktoken注意模型仓库的README或requirements.txt中可能会指定特定的transformers版本。如果遇到加载错误尝试安装指定版本例如pip install transformers4.37.0。3. 下载模型与权重验证3.1 使用官方工具下载推荐使用snapshot_download可以完整下载仓库包括大文件。from huggingface_hub import snapshot_download model_id Qwen/Qwen2.5-7B-Instruct # 以 Qwen2.5 为例 local_dir ./models/Qwen2.5-7B-Instruct snapshot_download( repo_idmodel_id, local_dirlocal_dir, local_dir_use_symlinksFalse, # 不使用符号链接直接复制文件 resume_downloadTrue, # 支持断点续传 ignore_patterns[*.msgpack, *.h5, *.ot], # 可选忽略不需要的文件类型 )或者使用命令行工具huggingface-cli download Qwen/Qwen2.5-7B-Instruct --local-dir ./models/Qwen2.5-7B-Instruct --local-dir-use-symlinks False3.2 手动下载与完整性检查如果网络不稳定可能需要手动从镜像站或通过其他方式下载权重文件如.safetensors。下载后必须进行完整性校验。检查文件大小与 Hugging Face 页面上显示的文件大小对比。使用 SHA256 校验许多仓库会提供model.safetensors.sha256之类的校验文件。# Linux/Mac 示例 shasum -a 256 model-00001-of-00002.safetensors # 将输出与 .sha256 文件中的对应值比较检查文件数量确保下载的切片文件数量与仓库中一致例如model-00001-of-00002.safetensors到model-00002-of-00002.safetensors。3.3 处理“模型文件看起来不完整”的问题现象运行代码时提示Unable to load weights from pytorch checkpoint file或Error missing key(s) in state_dict。排查步骤确认文件是否真的缺失进入下载的local_dir列出文件确认所有.safetensors或.bin切片文件都存在。检查model.safetensors.index.json如果存在这个索引文件加载器会依赖它来定位权重切片。确保该文件内容中的weight_map指向的文件名与实际文件名一致。尝试重新下载删除可能损坏的文件重新下载。使用--resume-download参数。检查磁盘空间下载过程中磁盘空间不足可能导致文件截断。4. 编写并运行基础推理脚本环境就绪、模型下载完整后可以编写一个最小化的推理脚本进行验证。4.1 基础加载与推理代码创建一个run_inference.py文件import torch from transformers import AutoModelForCausalLM, AutoTokenizer # 1. 指定模型本地路径 model_path ./models/Qwen2.5-7B-Instruct # 替换为你的实际路径 # 2. 加载分词器与模型 print(Loading tokenizer...) # 如果分词器加载失败可以尝试指定 trust_remote_codeTrue tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) print(Loading model...) # 关键参数解释 # - trust_remote_codeTrue: 如果模型架构不在 transformers 内置库中则需要此参数从仓库下载建模代码。 # - torch_dtypetorch.float16: 使用半精度FP16加载显著减少显存占用。如果显卡不支持 FP16可改为 torch.float32。 # - device_mapauto: 使用 accelerate 库自动将模型层分布到可用的 GPU 和 CPU 上。 # - low_cpu_mem_usageTrue: 优化加载时的 CPU 内存占用。 model AutoModelForCausalLM.from_pretrained( model_path, trust_remote_codeTrue, torch_dtypetorch.float16, device_mapauto, low_cpu_mem_usageTrue ) print(fModel loaded on device: {model.device}) # 3. 准备输入并生成 prompt 请用中文介绍一下你自己。 messages [ {role: system, content: 你是一个乐于助人的AI助手。}, {role: user, content: prompt} ] text tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue) print(fInput text: {text}) input_ids tokenizer.encode(text, return_tensorspt).to(model.device) # 4. 生成配置 # 参数说明 # - max_new_tokens: 控制生成的最大token数量。 # - do_sample: True 启用采样更创造性False 为贪婪解码更确定。 # - temperature: 采样温度越高越随机越低越确定。 # - top_p: 核采样参数与 temperature 配合使用。 generation_config { max_new_tokens: 512, do_sample: True, temperature: 0.7, top_p: 0.9, repetition_penalty: 1.1, } print(Generating...) with torch.no_grad(): outputs model.generate(input_ids, **generation_config) generated_ids outputs[0][input_ids.shape[-1]:] # 去掉输入部分 response tokenizer.decode(generated_ids, skip_special_tokensTrue) print(fModel response: {response})4.2 首次运行可能遇到的错误及解决错误信息可能原因解决方案OSError: Unable to load weights from pytorch checkpoint file1. 模型权重文件路径错误或缺失。2. 文件损坏。3.config.json中的架构与权重不匹配。1. 检查model_path是否正确列出目录下文件。2. 重新下载权重文件校验 SHA256。3. 确保使用的是原仓库的config.json而非其他模型配置。ValueError: Tokenizer class does not exist or is not currently imported.分词器类型未被transformers自动识别。在AutoTokenizer.from_pretrained中添加trust_remote_codeTrue参数。RuntimeError: CUDA out of memory.模型所需显存超过显卡可用显存。1. 使用更小的模型如 7B 换成 1.8B。2. 使用量化模型如加载-GPTQ-Int4版本。3. 使用device_mapcpu或balanced将部分层卸载到 CPU 或磁盘需accelerate配置。4. 启用torch.nn.functional.scaled_dot_product_attention的 Flash Attention 支持如果模型和 PyTorch 版本支持。AttributeError: ‘function’ object has no attribute ‘from_pretrained’通常是因为transformers版本太旧与模型代码不兼容。升级transformers到模型仓库要求或更新的版本。TypeError: ... got an unexpected keyword argument ‘trust_remote_code’transformers版本太旧不支持trust_remote_code参数。同上升级transformers。4.3 使用量化模型降低资源需求如果显存不足可以寻找并使用量化版本的模型。例如在 Hugging Face 上搜索模型时可以关注带有-GPTQ-Int4、-AWQ、-GGUF等后缀的版本。对于transformers库加载 GPTQ 量化模型需要额外安装auto-gptq库。pip install auto-gptq加载代码略有不同from transformers import AutoModelForCausalLM, AutoTokenizer model_id TheBloke/Qwen2.5-7B-Instruct-GPTQ model AutoModelForCausalLM.from_pretrained( model_id, device_mapauto, trust_remote_codeTrue, revisionmain )5. 进阶模型配置的修改与适配有时你可能需要修改模型配置以适应特定需求例如调整生成参数、修改模型名称等。关键在于理解config.json和generation_config.json的作用。5.1 修改生成参数Generation Config最常修改的是generation_config.json。你可以直接编辑该文件或在代码中覆盖。from transformers import GenerationConfig # 方法1加载后修改 generation_config model.generation_config generation_config.max_new_tokens 1024 generation_config.temperature 0.8 # 方法2创建新的配置对象 new_generation_config GenerationConfig.from_pretrained(model_path) new_generation_config.max_new_tokens 1024 # 然后在 generate 时传入 outputs model.generate(input_ids, generation_confignew_generation_config)5.2 理解并修改模型配置Model Configconfig.json定义了模型结构通常不建议随意修改除非你明确知道自己在做什么例如调整max_position_embeddings以支持更长的上下文。修改后需要重新保存。from transformers import AutoConfig config AutoConfig.from_pretrained(model_path) print(config) # 查看所有配置项 # 例如修改模型名称影响保存时的文件夹名 config.name_or_path My-Finetuned-Qwen # 保存修改后的配置 config.save_pretrained(./my_modified_model) # 然后需要将原始权重文件复制到 ./my_modified_model 目录下再从这个新路径加载模型。警告直接修改config.json中的架构参数如hidden_size,num_layers而不重新训练或拥有对应结构的权重会导致模型加载失败。6. 生产环境部署的额外考量在本地跑通只是第一步。若计划用于生产或长期服务还需考虑以下方面服务化使用FastAPI、Flask或专门的推理服务器如TGI- Text Generation Inference将模型封装成 API 服务。性能优化量化使用 GPTQ、AWQ、GGUFllama.cpp进行 INT4/INT8 量化大幅降低显存和提升推理速度。编译使用torch.compilePyTorch 2.0对模型进行图编译提升推理速度。批处理服务端同时处理多个请求提高 GPU 利用率。监控与日志记录请求量、响应延迟、Token 消耗、显存使用情况并设置告警。安全与权限为 API 添加认证、限流、输入输出过滤防止 Prompt 注入。版本管理建立清晰的模型版本管理流程支持回滚。一个简单的 FastAPI 服务示例from fastapi import FastAPI, HTTPException from pydantic import BaseModel import torch from transformers import AutoModelForCausalLM, AutoTokenizer import logging app FastAPI() logging.basicConfig(levellogging.INFO) # 全局加载模型实际生产需考虑懒加载、多进程等 model None tokenizer None class GenerationRequest(BaseModel): prompt: str max_new_tokens: int 512 temperature: float 0.7 app.on_event(startup) async def load_model(): global model, tokenizer model_path ./models/Qwen2.5-7B-Instruct tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_path, trust_remote_codeTrue, torch_dtypetorch.float16, device_mapauto, low_cpu_mem_usageTrue ) logging.info(Model loaded successfully.) app.post(/generate) async def generate_text(request: GenerationRequest): try: inputs tokenizer(request.prompt, return_tensorspt).to(model.device) with torch.no_grad(): outputs model.generate( **inputs, max_new_tokensrequest.max_new_tokens, temperaturerequest.temperature, do_sampleTrue ) response tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokensTrue) return {generated_text: response} except Exception as e: logging.error(fGeneration error: {e}) raise HTTPException(status_code500, detailstr(e))通过以上步骤你不仅能够成功在本地加载并运行一个开源大语言模型更能系统地理解其中每个环节的原理和潜在问题。当遇到“模型跑不起来”的情况时可以按照从环境、依赖、文件完整性到配置加载的顺序进行排查。这为后续进行更复杂的操作如 LoRA 微调、模型合并或定制化开发奠定了坚实的工程基础。

相关新闻

Python程序打包实战:6种主流工具深度解析与选型指南

Python程序打包实战:6种主流工具深度解析与选型指南

1. 项目概述:为什么Python程序需要打包?如果你用Python写过一些实用的小工具,比如一个自动整理文件的脚本、一个批量处理图片的程序,或者一个数据分析的桌面应用,你大概率会遇到一个尴尬的局面:你想分享给朋…

2026/8/18 14:06:54 阅读更多 →
安卓模拟器运行手机游戏全攻略:从原理到实战避坑

安卓模拟器运行手机游戏全攻略:从原理到实战避坑

1. 从“胆小菇”到桌面:一个非典型游戏的跨平台之旅最近在社区里看到不少朋友在问,怎么才能在电脑上玩到那个叫“胆小菇之梦”的游戏。这名字听起来就挺有意思,带着点独立游戏的奇思妙想和像素风的复古情怀。我最初也以为这可能是某个新出的S…

2026/8/18 12:12:00 阅读更多 →
BMPFont位图字体制作全攻略:从原理到游戏引擎集成

BMPFont位图字体制作全攻略:从原理到游戏引擎集成

1. 从像素到文字:为什么我们需要位图字体? 在游戏开发、嵌入式UI或者复古风格的视觉设计中,你可能会经常听到“位图字体”这个词。与我们在Word文档里使用的矢量字体(如宋体、微软雅黑)不同,位图字体更像是…

2026/8/18 14:03:49 阅读更多 →

最新新闻

budgetzero完全指南:开源零基预算工具新手上路第一课

budgetzero完全指南:开源零基预算工具新手上路第一课

budgetzero完全指南:开源零基预算工具新手上路第一课 【免费下载链接】budgetzero Open-source, self-hosted, zero-based budgeting. 项目地址: https://gitcode.com/gh_mirrors/bu/budgetzero 预算总是"月初宽松、月底吃土"?不妨试试…

2026/8/19 19:07:33 阅读更多 →
5分钟快速上手 lidR:R语言激光雷达包安装与环境配置保姆级教程

5分钟快速上手 lidR:R语言激光雷达包安装与环境配置保姆级教程

5分钟快速上手 lidR:R语言激光雷达包安装与环境配置保姆级教程 【免费下载链接】lidR Airborne LiDAR data manipulation and visualisation for forestry application 项目地址: https://gitcode.com/gh_mirrors/li/lidR lidR 是 R 语言生态中最流行的机载激…

2026/8/19 19:07:33 阅读更多 →
马尔可夫链与状态转移矩阵:扫地机器人如何预测动作结果?(Robotics and Perception 时序建模)

马尔可夫链与状态转移矩阵:扫地机器人如何预测动作结果?(Robotics and Perception 时序建模)

马尔可夫链与状态转移矩阵:扫地机器人如何预测动作结果?(Robotics and Perception 时序建模) 【免费下载链接】robotics Notebook-based book "Introduction to Robotics and Perception" by Frank Dellaert and Seth H…

2026/8/19 19:07:33 阅读更多 →
如何用ESP32 Wi-Fi CSI实现无接触人体检测?从原理到上手的完整指南

如何用ESP32 Wi-Fi CSI实现无接触人体检测?从原理到上手的完整指南

如何用ESP32 Wi-Fi CSI实现无接触人体检测?从原理到上手的完整指南 【免费下载链接】esp-csi Applications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection 项目地址: https://gitcode.com/GitHub_Trending/es/es…

2026/8/19 19:07:33 阅读更多 →
Mac Mouse Fix进化史:3个关键时刻,把10美元鼠标变成苹果触控板

Mac Mouse Fix进化史:3个关键时刻,把10美元鼠标变成苹果触控板

Mac Mouse Fix进化史:3个关键时刻,把10美元鼠标变成苹果触控板 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 很少有人…

2026/8/19 19:07:33 阅读更多 →
5分钟快速上手 vscode-textmate:从零构建你的第一个语法分词器

5分钟快速上手 vscode-textmate:从零构建你的第一个语法分词器

5分钟快速上手 vscode-textmate:从零构建你的第一个语法分词器 【免费下载链接】vscode-textmate A library that helps tokenize text using Text Mate grammars. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-textmate vscode-textmate 是微软开源…

2026/8/19 19:06:32 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 9:46:27 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/19 5:04:55 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/19 7:42:22 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/19 11:55:13 阅读更多 →