千问大模型本地部署与Spring AI接入实战:从Ollama到Java后端完整教程

千问大模型本地部署与Spring AI接入实战:从Ollama到Java后端完整教程 最近关于苹果 App Store 对部分 AI 应用进行调整的消息让“千问 Qwen”再次成为开发者圈子的高频词。标题“苹果删了千问但阿里赢了”看似是一句商业评价但从技术角度看它揭示了一个更实际的问题AI 客户端的入口可以被应用商店随时收回开源模型的能力却始终掌握在自己手里。换句话说真正有价值的不是那个聊天 App而是千问开源模型本身。模型权重可以下载推理服务可以私有化部署API 可以接入自己的业务系统。即使手机上的客户端被下架你依然可以通过本地部署、API 调用、云端 API 等方式继续使用 Qwen。本文不讨论商业竞争的输赢而是围绕一个更贴近开发者的主题展开千问大模型本地部署与业务接入完整教程。我们会从模型选型讲起分别介绍 Ollama、LM Studio 两种本地部署方式再演示如何通过 Spring AI 把本地千问接入 Spring Boot 后端最后补充 VSCode / Claude Code 编程场景的接入思路、常见问题排查和工程化建议。如果你正想在公司内网部署一套可控的大模型服务或者想把千问接入自己的 Java 项目这篇文章可以作为一份比较完整的起步手册。1. 事件背后为什么“删了千问”反而显出阿里的赢面1.1 App Store 下架风波到底是什么情况关于苹果 App Store 对部分 AI 应用的调整网上有各种说法。有报道提到千问 App 也被纳入调整范围普通用户可能因此无法直接在 App Store 下载到官方客户端。这里不去深究平台审核的具体细节因为对开发者来说事件本身带来的思考远比“谁对谁错”更重要。一个很直观的事实是如果你把全部业务能力绑定在一个 App 上这个 App 的分发渠道被切断业务就会立刻受影响。对于依赖应用商店获取用户的 AI 产品来说这种风险尤其明显。但千问的特殊之处在于它不只是 App Store 里的一个应用更是阿里开源出来的大模型系列。通义千问的模型权重已经在多个开源平台发布开发者可以自行下载、部署、二次开发。只要开源生态还在千问的“可用性”就不会因为一个应用商店的调整而被终结。1.2 “阿里赢了”到底赢在哪里从技术生态角度来看这个标题其实指向了“开源”这件事的长期价值。当大模型只能通过官方 App 或云 API 访问时你使用的是平台方完全掌控的“黑盒”服务。平台方可以修改接口策略、调整价格、限制并发甚至可以因为各种原因收回你的访问入口。但千问开源模型不一样权重公开模型文件可以下载到本地服务器。部署自主你可以选择消费级显卡、企业级 GPU 服务器甚至纯 CPU 环境运行。数据可控推理过程完全在本地完成业务数据不需要离开自己的网络。所以App Store 的影响范围其实很小。模型本身依然在 ModelScope、Hugging Face、Ollama 等平台正常分发云厂商也继续提供标准 API。所谓“阿里赢了”赢在开源生态的不可替代性。1.3 开发者真正该关注的把模型能力掌握在自己手里站在开发者的角度这件事最大的启示是如果你的业务要长期依赖大模型能力一定要保留一条可控的部署路径。我比较推荐的最小可行方案是用 Ollama 在本地拉起一个小规模千问模型。验证模型效果确认能满足业务需求。通过 OpenAI 兼容接口或 Spring AI 把模型能力接入后端服务。后续根据性能要求再决定是否上 GPU 服务器、是否做模型量化、是否私有化部署。这样即使外部 API 或应用商店出现问题你的核心业务依然可以独立运行。下面我们正式开始技术部分。2. 千问模型选择与环境准备2.1 千问模型家族概览千问Qwen是阿里开源的大语言模型系列经过多个版本迭代已经形成了较完整的产品矩阵。目前社区里使用最广的版本包括 Qwen2.5 和 Qwen3 系列前者在稳定性、指令跟随能力上打磨得比较成熟后者则在推理能力、多步骤任务上做了增强。在模型家族中你可能会见到以下几种典型型号模型类型典型型号适用场景通用对话模型Qwen2.5、Qwen3聊天、文本生成、信息抽取代码增强模型Qwen2.5-Coder 系列代码生成、代码补全、仓库分析数学增强模型Qwen2.5-Math数学推理、计算类任务多模态模型Qwen2-VL图像理解、视觉问答需要注意的是千问的版本迭代非常快。本文写作时提到的某些型号在你阅读时可能已经有更新版本。最稳妥的做法是部署前先去 ModelScope 或 Hugging Face 官方页面确认最新模型列表。2.2 参数规模与量化级别怎么选千问开源了多个参数规模的模型常见的有 0.5B、1.5B、3B、7B/8B、14B、27B、32B、72B 等。数字越大模型能力通常越强但需要的硬件资源也越高。实际选型时可以按以下思路判断部署环境推荐规模说明普通办公 CPU 电脑1.5B ~ 8B 量化版速度能接受适合文档摘要、简单问答消费级显卡如 RTX 3060/4060 12G7B/8B ~ 14B 量化版兼顾质量与速度RTX 3090 / 4090 24G14B ~ 27B 量化版适合对生成质量要求较高的场景多卡服务器 / A100 等32B / 72B 量化版接近完整模型能力成本也高这里特别说明一下不要只看参数名还要看量化格式。同样一个 7B 模型FP16 原始权重和 Q4 量化权重占用的显存差别很大。量化是一种通过降低数值精度来减小模型体积的技术代价是损失少量生成质量。在本地部署场景中Q4_K_M 或 Q5_K_M 是近几年社区里用得比较多的量化档位平衡性较好。2.3 模型文件格式GGUF、AWQ、GPTQ 怎么区分在下载模型文件时你经常会看到 GGUF、AWQ、GPTQ 这些名词。它们的核心区别在于面向的推理框架不同GGUFllama.cpp 系列框架的量化格式Ollama、LM Studio 都支持跨平台能力最强既能跑 GPU 也能跑 CPU。GPTQ面向 GPU 的量化格式适合用 vLLM、ExLlama 等框架部署。AWQ也是一种 GPU 量化格式主打低精度损失和高效推理。如果只是做本地开发、测试或给团队内部做个智能助手直接选 GGUF 格式最省事。如果是大规模生产环境服务再考虑用 vLLM AWQ/GPTQ 做高性能部署。2.4 本文环境说明由于不同读者的操作系统和硬件差异很大这里先统一说明本文示例的运行环境操作系统Windows / macOS / Linux 均可命令以 Linux 和 macOS 为主。推理引擎Ollama 作为本地模型服务。开发语言Java 17 Spring Boot 3.x。示例项目构建工具Maven。推荐硬件16G 内存以上有 NVIDIA 显卡更好没有显卡也能运行小参数模型。如果你使用 WindowsOllama 提供桌面安装包LM Studio 也提供完整 GUI操作路径与命令行略有差异但原理一致。3. 本地部署方案一Ollama 安装与运行千问Ollama 是目前本地部署大模型最简单的方式之一。它把模型下载、运行、API 暴露都封装成了便捷命令非常适合开发者和中小企业快速验证。3.1 安装 Ollama在 Linux 或 macOS 终端执行curl -fsSL https://ollama.com/install.sh | shWindows 用户可以直接到 Ollama 官网下载安装包安装完成后在命令行执行ollama --version验证。安全提示任何curl | sh形式的安装命令在生产环境使用前都应先下载脚本、人工审核内容后再执行。这里仅作为快速上手的常规方式请根据你的安全策略调整。验证安装ollama --version3.2 拉取 Qwen 模型Ollama 支持从内置模型仓库直接拉取模型。拉取千问模型的命令如下# 拉取 Qwen2.5 7B 版本指令微调 ollama pull qwen2.5:7b # 拉取 Qwen3 8B 版本 ollama pull qwen3:8b如果你是纯 CPU 环境可以拉取更小的模型ollama pull qwen2.5:1.5b拉取完成后查看本地已安装的模型ollama list输出类似NAME ID SIZE MODIFIED qwen2.5:7b 6b0c982a1e2a 4.7 GB 2 minutes ago这里显示的 4.7 GB 是量化后的大小不是原始权重的大小。3.3 启动模型服务与交互对话Ollama 安装后默认有一个后台服务监听11434端口。如果服务没有启动可以手动执行ollama serve然后另开一个终端直接进入交互式对话ollama run qwen2.5:7b此时你可以输入问题模型会实时生成回复。退出对话使用/bye或按Ctrl D。3.4 用 HTTP API 验证服务Ollama 自带 HTTP API这样本地模型就能给其他系统使用了。原生生成接口curl http://localhost:11434/api/generate -d { model: qwen2.5:7b, prompt: 用一句话介绍你自己, stream: false }Ollama 也提供了 OpenAI 兼容接口路径是/v1curl http://localhost:11434/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen2.5:7b, messages: [ {role: user, content: 你好请用三句话说明什么是大语言模型} ] }如果你能看到返回的 JSON 中包含choices字段说明模型服务已经可以正常对外提供服务了。这个/v1接口是后面对接 Spring AI 和其他开发工具的关键。4. 本地部署方案二LM Studio 与模型管理工具Ollama 适合命令行用户但部分同学更习惯图形界面操作。LM Studio 是另一款非常流行的本地大模型运行工具支持加载 GGUF 格式模型并且自带图形聊天窗口和本地 API 服务。4.1 LM Studio 基本使用流程使用 LM Studio 的大致步骤如下下载并安装 LM Studio。在模型下载页面搜索 Qwen选择 GGUF 格式的模型文件下载。在 My Models 中加载模型。在聊天窗口中验证效果。启动 Local Server获取本地 API 地址。LM Studio 默认会把模型存放在专门的模型目录中目录结构大致如下models/ qwen2.5-7b-instruct/ qwen2.5-7b-instruct-q4_k_m.gguf不过模型文件的命名方式并非固定标准实际下载时以你选择的文件名为准。4.2 用 LM Studio 的本地 API 替代 OllamaLM Studio 启动 Local Server 后默认也会暴露一个 OpenAI 兼容接口默认地址通常是http://localhost:1234/v1这样我们在第 5 节中做的 Spring AI 对接示例只需要把 base-url 从http://localhost:11434改成http://localhost:1234其余代码基本不用动。这说明主流本地推理工具已经形成了事实上的接口标准也降低了后续切换底层推理引擎的成本。4.3 桌面端管理工具CC Switch / ChatBox / Cherry Studio在相关搜索热词中很多开发者提到“CC Switch 找不到千问大模型”的问题。这类工具本质上是模型会话管理客户端它本身不运行模型而是连接 Ollama、LM Studio 或 cloud API 等后端服务。配置的核心参数有三个API 地址指向 Ollama 或 LM Studio 的 base URL。模型名称填写你在 Ollama 中拉取的模型标签例如qwen2.5:7b。密钥本地服务一般不需要真实密钥填任意占位符即可。如果出现“找不到千问大模型”优先检查两件事后端服务是否已经启动。模型名是否与ollama list中显示的名称完全一致。5. Spring AI Spring Boot 接入本地千问很多后端开发者的真实需求是把本地千问的能力集成到自己的 Java 服务里。这时候就可以用 Spring AI 框架。Spring AI 是 Spring 生态中用于 AI 应用开发的集成框架统一了 ChatModel、ChatClient 等抽象可以让开发者用相对少的代码接入不同的大模型服务。5.1 为什么用 Spring AI如果不使用框架你需要自己写 HTTP 调用代码还要处理请求参数、响应解析、流式输出、超时重试等问题。Spring AI 帮我们把这些封装好了并且对 Ollama、OpenAI、通义千问等模型服务提供了统一接入方式。更关键的是Spring AI 的抽象层让我们可以在不修改业务代码的前提下切换不同的模型服务。开发时用本地千问生产环境换成云端 API只需要调整配置项而不需要大范围改动代码。5.2 创建 Spring Boot 项目建议环境JDK 17 及以上。Spring Boot 3.2 及以上。Maven 3.6 及以上。你可以通过 Spring Initializr 创建项目也可以在 IDEA 中直接新建 Spring Boot 项目。项目创建完成后核心依赖如下。5.3 Maven 依赖配置Spring AI 的版本更新比较快建议使用官方 BOM 统一管理版本。示例配置如下parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.3.5/version relativePath/ /parent properties java.version17/java.version spring-ai.version1.0.0/spring-ai.version /properties dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-ollama-spring-boot-starter/artifactId /dependency /dependencies版本提示Spring AI 的部分早期版本使用spring-ai-ollama-spring-boot-starter作为 Ollama 集成依赖。不同大版本间 API 有过调整如果你使用更新的 Spring AI 版本请以官方文档为准。这里的版本号只是示例不保证在你的环境下一定可用。5.4 application.yml 配置本地千问在src/main/resources/application.yml中配置 Ollama 地址和模型参数spring: application: name: qwen-local-demo ai: ollama: base-url: http://localhost:11434 chat: model: qwen2.5:7b options: temperature: 0.7参数说明spring.ai.ollama.base-urlOllama 服务地址。spring.ai.ollama.chat.model默认使用的模型名称必须与ollama list一致。temperature生成随机性参数取值 0 到 1 之间。值越低输出越确定值越高更有创造性。如果你使用的是 LM Studio将 base-url 改为spring: ai: ollama: base-url: http://localhost:1234不过 LM Studio 的本地服务虽然是 OpenAI 兼容接口其与 Spring AI 的ollama配置项并非完全等价。更稳妥的方式是通过spring-ai-openai-spring-boot-starter并指定 base-url 指向本地 OpenAI 兼容接口。这一点在配置时要注意区分实际使用的推理服务类型。5.5 编写 Chat Service创建一个QwenChatService封装对话逻辑// 文件路径src/main/java/com/example/qwenlocal/service/QwenChatService.java package com.example.qwenlocal.service; import org.springframework.ai.chat.client.ChatClient; import org.springframework.stereotype.Service; Service public class QwenChatService { private final ChatClient chatClient; public QwenChatService(ChatClient.Builder chatClientBuilder) { this.chatClient chatClientBuilder.build(); } public String chat(String message) { return chatClient.prompt(message) .call() .content(); } }这里使用了 Spring AI 1.0 引入的ChatClientAPI。如果你的项目用的是老版本 Spring AI代码会不太一样常见写法是直接注入ChatModelAutowired private ChatModel chatModel; public String chatOld(String message) { Prompt prompt new Prompt(message); return chatModel.call(prompt).getResult().getOutput().getContent(); }两种写法分别对应不同的 Spring AI 版本实际使用时先确认你的依赖版本。5.6 编写 Web Controller再添加一个 Controller 对外暴露接口// 文件路径src/main/java/com/example/qwenlocal/controller/QwenChatController.java package com.example.qwenlocal.controller; import com.example.qwenlocal.service.QwenChatService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RestController RequestMapping(/api/chat) public class QwenChatController { private final QwenChatService qwenChatService; public QwenChatController(QwenChatService qwenChatService) { this.qwenChatService qwenChatService; } GetMapping public String chat(RequestParam(defaultValue 你好请简单介绍一下你自己) String message) { return qwenChatService.chat(message); } }5.7 运行验证启动 Spring Boot 应用mvn spring-boot:run启动成功后在浏览器或命令行访问curl http://localhost:8080/api/chat?message请写一首关于春天的五言绝句正常返回结果是千问模型生成的文本。到这里一个最简单的 Spring Boot 本地千问服务就串通了。5.8 流式输出扩展在实际业务中聊天类应用往往需要流式输出避免用户等待太久。Spring AI 的ChatClient也支持流式响应public FluxString chatStream(String message) { return chatClient.prompt(message) .stream() .content(); }Controller 中配合 Spring WebFlux 返回FluxString前端可以通过 SSE 接收增量文本。GetMapping(value /stream, produces text/event-stream) public FluxString chatStream(RequestParam String message) { return qwenChatService.chatStream(message); }这里提醒一下流式输出需要引入spring-boot-starter-webflux或者使用 MVC 的异步返回方式。方案取舍取决于你的项目技术栈。6. 编程场景VSCode / Claude Code 接入千问相关搜索词中高频出现“VSCode Claude Code 接入千问模型”和“千问编程”。这说明不少开发者希望把本地千问当作代码辅助模型来用。6.1 两种主流接入选择在编辑器中接入千问目前有两种主流路径Continue 插件原生支持 Ollama 和 OpenAI 兼容接口适合 VSCode 和 JetBrains 系 IDE配置简单。Claude CodeAnthropic 官方 CLI 工具对 Claude 模型适配最好。接入千问需要经过协议转换属于“曲线救国”方案但社区里确实有不少人在用。6.2 Continue 插件配置如果你只是想在 VSCode 里使用千问做代码补全和聊天推荐直接用 Continue。安装插件后在配置文件~/.continue/config.json里添加{ models: [ { title: Qwen Local, provider: ollama, model: qwen2.5:7b } ] }如果你用的模型标签是qwen2.5-coder:7b就把模型名改成实际值。配置完成后VSCode 侧边栏重启 Continue就能和本地千问对话了。6.3 Claude Code 接入千问的通用思路Claude Code 本质上是一个命令行编程助手它默认通过 Anthropic API 协议与模型服务交互。如果你想让它使用千问关键点是让某个本地服务能够接收 Anthropic 协议的请求并转发给千问的 OpenAI 兼容接口。社区里常用 LiteLLM 等网关来实现协议转换。一个简化的配置思路如下model_list: - model_name: claude-qwen litellm_params: model: openai/qwen2.5:7b api_base: http://localhost:11434/v1 api_key: dummy然后启动 LiteLLM 网关litellm --config config.yaml最后在 Claude Code 所在终端设置环境变量export ANTHROPIC_BASE_URLhttp://localhost:4000 export ANTHROPIC_AUTH_TOKENyour-token export ANTHROPIC_MODELclaude-qwen这样 Claude Code 的请求会先发到本地网关再由网关转发给 Ollama 中的千问模型。6.4 注意事项Claude Code 对模型能力有一定要求如果接入的模型在函数调用、长上下文理解上表现一般实际体验可能不如官方 Claude。使用这种兼容接入方案时要合理管理预期。7. 常见问题与排查思路本地部署千问的流程虽然不算复杂但在实际使用中会遇到各种问题。下面整理一份高频问题排查表。问题现象常见原因解决思路模型下载速度慢网络环境导致访问国外模型仓库不稳定优先使用 ModelScope 下载 GGUF或用镜像站Ollama 启动失败端口 11434 被占用检查端口占用修改 OLLAMA_HOST 环境变量GPU 显存不足 OOM模型参数量太大或量化级别不够换更小参数模型选择 Q4 量化版本CPU 运行速度极慢模型过大无 GPU 加速降低模型规模增加 num_ctx 到合适值Spring AI Bean 创建失败Spring AI 版本与配置项不匹配核对依赖版本参考官方示例调整配置API 返回中文乱码请求或响应编码问题确保 HTTP 请求头带application/json服务端正确读取对话输出不稳定temperature 过高调低 temperature例如 0.2 ~ 0.5生成长文时中断服务端 max_tokens 限制调大 max_tokens或改为分段生成CC Switch 找不到千问后端服务未启动或模型名不匹配先确认 Ollama 已启动再核对模型名Claude Code 连接失败网关未启动或环境变量错误检查 LiteLLM 日志确认 ANTHROPIC_BASE_URL 可访问下面重点展开几个高频问题的排查步骤。7.1 Ollama 端口被占用现象执行ollama serve报错提示端口绑定失败。排查命令lsof -i :11434如果端口被其他进程占用可以修改 Ollama 监听端口export OLLAMA_HOST0.0.0.0:11435 ollama serve同时需要同步修改 Spring Boot 配置中的 base-url。7.2 模型下载慢可以优先从 ModelScope 搜索并下载 GGUF 格式的千问模型文件然后通过ollama create命令从本地文件创建模型。这样能绕开直接访问国外模型仓库的网络问题。具体步骤如下在 ModelScope 下载 Qwen 的 GGUF 模型文件。编写一个ModelfileFROM /path/to/qwen2.5-7b-instruct-q4_k_m.gguf创建模型ollama create qwen2.5-local -f Modelfile7.3 Spring AI 版本不兼容Spring AI 在 2024 年到 2025 年间迭代很快不同版本的 API 差异明显。如果你遇到编译错误或 Bean 加载失败首先检查你使用的是哪个 Spring AI 版本。官方示例对应该版本的配置写法。是否在pom.xml中引入了正确的 BOM。不要盲目复制网上代码一定要匹配自己的依赖版本。8. 最佳实践与工程建议本地部署千问只是第一步真正把它跑在业务链路里还需要考虑稳定性、安全性和可维护性。下面结合项目实践给几条工程建议。8.1 模型与服务分层建议把模型推理服务和业务服务拆开部署。也就是推理层Ollama / LM Studio / vLLM只负责模型加载和推理。业务层Spring Boot / Python FastAPI负责业务逻辑、用户鉴权、上下文管理。客户端层Web / 小程序 / 桌面工具只负责展示。分层的好处是推理层的扩缩容和业务层互相独立。当并发量上来时可以单独扩展推理节点而不需要动业务代码。8.2 配置与密钥管理本地部署时很多人习惯把模型地址直接写在配置文件中。这在小项目里没问题但在公司内网环境建议把以下内容接入配置中心Ollama 服务地址。模型名称。并发参数。API Token如果使用远程模型服务。不要把云 API 的密钥硬编码在代码里也不要把包含密钥的配置文件推到公共仓库。8.3 并发与性能优化Ollama 默认的并发能力有限如果同时有多个用户调用请求会被排队处理。优化思路包括在业务层做请求限流防止突发流量打满推理服务。提高 Ollama 的并发数设置注意这会增加显存占用。对高频问题做结果缓存避免重复计算。对大模型推理使用异步调用避免阻塞业务线程。对于高并发生产环境建议考虑 vLLM 等专门的高性能推理框架它们对显存管理和连续批处理做了更多优化。8.4 安全与合规边界如果要把本地千问开放给公司内部用户有几个安全点必须注意加一层独立的用户认证和授权不能直接暴露推理 API。对模型输入做敏感信息检测防止用户通过提示词诱导模型输出敏感内容。记录服务日志方便事后审计。如果服务涉及消费者数据评估数据合规要求后再实施私有化部署。尤其要注意大模型本身是“概率生成器”输出内容不一定准确。在医疗、金融、法律等高风险场景需要有人在链路中做结果审核。8.5 上下文与长文本处理本地部署的千问模型上下文长度是有限制的比如 32K、128K 等。当用户对话很长或者输入文档超出限制时会出现截断或报错。工程上常见的做法是对长文档做切片按块检索相关片段后再交给模型回答。对多轮对话做摘要压缩控制输入 token 数量。在业务层设计会话管理而不是把全部历史消息无脑拼进提示词。8.6 从开发到生产的建议路径如果你准备把本地千问从开发环境推到生产环境建议按下面的顺序走一遍用 Ollama 在开发机验证模型效果。用 Spring AI 写一个最小可运行的服务跑通接口。压测推理性能确认单节点能支撑多少并发。根据压测结果决定是否换 GPU 服务器或高性能推理框架。将推理服务容器化纳入现有部署体系。配置监控、日志、告警。小范围灰度发布再逐步开放给更多用户。9. 下一步从本地部署到产品化回到开头的标题苹果删了千问对普通用户可能意味着少一个 App但对开发者来说千问的能力并没有消失反而提醒了我们另一个问题——真正可靠的 AI 能力应该掌握在自己可控的基础设施里。这篇文章从本地部署的角度完整走了一遍千问的接入流程通过 Ollama 快速拉起模型并提供 OpenAI 兼容接口。通过 LM Studio 满足日常体验和轻量调试。通过 Spring AI 把本地千问接入 Spring Boot 后端。通过 Continue 或 Claude Code 在编辑器里使用千问做编程辅助。整理了高频问题和工程化建议。下一步你可以先在自己的电脑上跑通一个最小的 Qwen 服务再尝试用 Spring AI 写一个带流式输出的聊天接口。等这一套链路成熟以后再考虑多卡部署、模型微调、私有化知识库等进阶方向。工具可以迭代模型可以升级但“自主可控”这四个字始终是落地大模型应用时最值得投入的方向。希望这篇教程能帮你把千问真正跑起来。