Spring AI Alibaba:Java开发者快速集成大模型的开箱即用框架

📅 2026/7/21 14:30:12
Spring AI Alibaba:Java开发者快速集成大模型的开箱即用框架
这次我们来看一个面向 Java 开发者的 AI 应用开发框架Spring AI Alibaba。对于习惯了 Spring 生态的开发者来说直接上手大模型应用开发最头疼的往往是环境配置、模型接入和复杂的 API 调用。这个项目就是为了解决这些问题它不是一个独立的 AI 模型而是一个基于 Spring Boot 的框架让你能像集成数据库、消息队列一样快速、标准化地将 AI 能力如大语言模型、文生图、向量数据库等集成到你的 Java 应用中。它的核心价值在于“开箱即用”和“统一抽象”。你不用再为每个 AI 服务商如 OpenAI、通义千问、智谱 AI写不同的 HTTP 客户端代码也不用自己处理复杂的提示词工程和上下文管理。Spring AI Alibaba 提供了统一的编程模型通过简单的配置和依赖注入就能在几分钟内让 AI 能力跑起来。本文将带你从零开始完成环境搭建、基础功能测试、API 调用并分析其资源消耗和最佳实践让你快速判断它是否适合你的项目。1. 核心能力速览能力项说明项目类型Java AI 应用开发框架基于 Spring Boot核心功能统一接入多种大模型Chat、Embedding、Image、提示词模板、函数调用、向量数据库集成、流式响应硬件门槛无特殊要求。作为应用框架运行在 JVM 上依赖的是后端服务的计算资源调用远程 API或本地部署的模型服务。启动方式标准的 Spring Boot 应用启动方式mvn spring-boot:run或运行Application类是否支持 API是。框架本身用于构建 API 服务也提供了调用第三方 AI 服务 API 的客户端。是否支持批量任务是。可通过编程方式或结合 Spring Batch 等实现批量调用 AI 服务。适合场景快速构建企业级 AI 应用、为现有 Java 系统添加智能对话/内容生成能力、需要统一管理多模型调用的场景简单来说如果你在用 Java 和 Spring Boot又想快速引入 AI 能力这个框架可以大幅降低集成复杂度。它不负责模型本身的推理计算而是充当一个高效的“接线员”和“标准化接口”。2. 适用场景与使用边界适合谁用Java/Spring Boot 开发者希望用最熟悉的技术栈接入 AI不想学习 Python 生态的复杂工具链。企业应用集成需要将对话、摘要、分类等 AI 能力嵌入到现有的 CRM、OA、知识库等系统中。快速原型验证在项目初期需要快速验证某个 AI 功能如智能客服、内容生成的可行性。需要多模型切换/降级业务需要同时接入多个厂商的模型如国内国外并根据成本、性能或策略灵活切换。能解决什么问题消除胶水代码不用为每个 AI 服务写重复的 HTTP 请求、认证、错误处理和结果解析代码。统一编程模型无论底层是 OpenAI GPT-4 还是通义千问上层的 Java 代码写法基本一致。简化复杂功能内置了对提示词模板、对话历史管理、函数调用Function Calling、流式输出Streaming等高级特性的支持。便捷的向量集成可以方便地集成 Redis、PgVector 等作为向量数据库构建 RAG检索增强生成应用。不适合什么场景AI 模型研究与训练这是深度学习框架如 PyTorch, TensorFlow的领域。需要极致性能调优的单一模型调用对于超高 QPS、超低延迟的单一模型场景手写高度优化的客户端可能更直接。完全离线的本地模型推理虽然框架理论上可以接入本地部署的模型服务通过 HTTP 或 gRPC但其主要设计目标是调用云端 API。本地模型的深度优化和资源管理并非其强项。合规与安全边界API 密钥管理所有第三方 AI 服务的 API Key 必须通过安全的配置管理方式如 Spring Cloud Config, Vault注入切勿硬编码在代码或提交到版本库。内容安全审核生成式 AI 可能产生不可控内容。在将用户输入提交给模型或向用户展示生成结果前应增加必要的审核过滤层。数据隐私确保传输给第三方 AI 服务的数据不包含用户敏感信息如身份证号、手机号或已进行脱敏处理。对于高敏感业务优先考虑私有化部署的模型服务。版权与授权确保使用 AI 生成的内容如文本、图片符合相关版权规定特别是在商用场景下。3. 环境准备与前置条件Spring AI Alibaba 作为 Spring Boot 框架的一部分对环境的要求就是运行一个标准 Java 应用的要求。基础环境清单Java 开发套件 (JDK)版本17 或更高。这是 Spring Boot 3.x 的硬性要求。推荐使用 OpenJDK 17/21 或 Oracle JDK 17/21。# 检查 Java 版本 java -version项目管理与构建工具Apache Maven 3.6或Gradle 7.x。本文以 Maven 为例。# 检查 Maven 版本 mvn -v集成开发环境 (IDE)IntelliJ IDEA(推荐)、Spring Tools 4 for Eclipse 或 VS Code with Java Extensions。网络连接由于需要调用阿里云百炼/通义千问等云端 API确保开发环境能够访问公网。如果需要代理需在 IDE 或系统环境中进行相应配置。API 密钥准备你想要接入的 AI 平台的 API Key。例如阿里云百炼/通义千问需要阿里云账号在 百炼控制台 创建应用并获取 API Key。其他模型如 OpenAI、智谱 AI、月之暗面等也需要在对应平台申请。可选环境Docker如果你想通过容器化方式运行应用或依赖服务如 Redis 向量库。PostgreSQL pgvector如果你计划使用向量数据库功能。4. 安装部署与启动方式Spring AI Alibaba 的“安装”其实就是创建一个新的 Spring Boot 项目并引入相关依赖。我们通过 Spring Initializr 来快速搭建。4.1 创建项目访问 start.spring.io 按以下配置生成项目Project: MavenLanguage: JavaSpring Boot: 选择最新的稳定版如 3.2.xProject Metadata:Group:com.exampleArtifact:spring-ai-demoName:spring-ai-demoPackage name:com.example.springaidemoDependencies: 添加Spring Web和Lombok。点击“GENERATE”下载项目压缩包并解压到本地。4.2 添加 Spring AI Alibaba 依赖打开项目中的pom.xml文件在dependencies部分添加 Spring AI Alibaba 的 BOM (Bill of Materials) 和具体的 Starter 依赖。首先在dependencyManagement部分如果没有则创建引入 BOM用于统一管理版本dependencyManagement dependencies dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-bom/artifactId version2024.0.0.0/version !-- 请检查并使用最新版本 -- typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement然后在dependencies中添加你需要的具体 Starter。例如要接入阿里云百炼的对话模型dependencies !-- Spring Boot 基础依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency !-- Spring AI Alibaba 核心依赖 -- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-bailian-spring-boot-starter/artifactId /dependency !-- 测试依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies注意版本号2024.0.0.0是示例请务必在 Alibaba Cloud Spring AI 官方仓库 查看最新版本。4.3 配置 API 密钥在src/main/resources/application.yml(或application.properties) 中配置你的阿里云百炼密钥和其他参数# 应用基础配置 server: port: 8080 # 阿里云百炼配置 spring: ai: alibaba: bailian: access-key-id: your-access-key-id # 替换为你的 AccessKey ID access-key-secret: your-access-key-secret # 替换为你的 AccessKey Secret chat: options: model: qwen-max # 指定使用的模型如 qwen-max, qwen-plus, qwen-turbo 等 temperature: 0.7 # 创造性0-1越高越随机 max-tokens: 2000 # 最大生成token数重要access-key-id和access-key-secret必须替换为你从阿里云控制台获取的真实密钥。切勿提交到公开代码仓库。4.4 编写一个简单的对话接口创建一个 Controller 来测试 AI 对话功能。package com.example.springaidemo.controller; import com.alibaba.cloud.ai.bailian.ChatClient; import com.alibaba.cloud.ai.bailian.ChatPrompt; import com.alibaba.cloud.ai.bailian.ChatResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RestController RequiredArgsConstructor public class ChatController { // 框架会自动注入配置好的 ChatClient Bean private final ChatClient chatClient; GetMapping(/chat) public String chat(RequestParam String message) { // 1. 构建提示词 ChatPrompt prompt new ChatPrompt(message); // 2. 调用客户端获取响应 ChatResponse response chatClient.call(prompt); // 3. 返回生成的文本内容 return response.getOutput().getText(); } }4.5 启动应用在 IDE 中直接运行SpringAiDemoApplication类的main方法或使用 Maven 命令启动# 在项目根目录下执行 mvn clean spring-boot:run看到控制台输出类似Started SpringAiDemoApplication in X.XXX seconds的日志说明应用启动成功。4.6 测试接口打开浏览器或使用curl命令测试curl http://localhost:8080/chat?message用Java写一个Hello World程序如果配置正确你将收到 AI 模型返回的 JavaHello World代码。至此一个最基本的 Spring AI Alibaba 应用就部署完成了。5. 功能测试与效果验证框架的核心是提供统一的客户端ChatClient,ImageClient,EmbeddingClient等。我们来逐一测试关键功能。5.1 基础对话测试上面的/chat接口是最简单的同步调用。我们更常用的是流式Streaming响应它能实现类似 ChatGPT 的打字机效果提升用户体验。测试目的验证流式对话功能是否正常工作。操作步骤修改ChatController增加流式接口。GetMapping(value /chat/stream, produces MediaType.TEXT_EVENT_STREAM_VALUE) public FluxString chatStream(RequestParam String message) { ChatPrompt prompt new ChatPrompt(message); // 调用流式方法返回一个 Flux响应式流 return chatClient.stream(prompt) .map(ChatResponse::getOutput) .map(ChatOutput::getText) .onErrorReturn(流式请求发生错误); }重启应用。使用支持 Server-Sent Events (SSE) 的工具测试如curl或 Postman。curl -N http://localhost:8080/chat/stream?message讲一个关于Spring框架的简短笑话预期结果你会看到文本以流的形式逐词或逐句地返回而不是等待全部生成完一次性返回。5.2 使用提示词模板手动拼接复杂的提示词容易出错。Spring AI 提供了提示词模板功能。测试目的验证提示词模板的渲染和使用。操作步骤在resources目录下创建prompt-templates文件夹并新建customer-service.st文件。!-- customer-service.st -- 你是一个专业的客服助手。请根据以下用户问题和已知产品信息给出友好、专业的回答。 产品信息 {{productInfo}} 用户问题 {{userQuestion}} 请用中文回答创建一个 Service 类来使用这个模板。Service public class CustomerServiceAi { private final ChatClient chatClient; private final PromptTemplate promptTemplate; // 构造函数注入Spring会自动加载模板文件 public CustomerServiceAi(ChatClient chatClient, Value(classpath:/prompt-templates/customer-service.st) Resource templateResource) { this.chatClient chatClient; this.promptTemplate new PromptTemplate(templateResource); } public String answerQuestion(String productInfo, String userQuestion) { // 渲染模板生成最终的提示词 String finalPrompt promptTemplate.render( Map.of(productInfo, productInfo, userQuestion, userQuestion) ); ChatResponse response chatClient.call(new ChatPrompt(finalPrompt)); return response.getOutput().getText(); } }在 Controller 中调用这个 Service。GetMapping(/customer-service) public String customerService(RequestParam String question) { String productInfo 我们的产品A是一款智能办公软件支持在线文档编辑、团队协作和项目管理。定价为每月99元。; return customerServiceAi.answerQuestion(productInfo, question); }测试接口http://localhost:8080/customer-service?question产品A怎么收费预期结果AI 的回答会基于你提供的productInfo上下文生成符合客服身份的、专业的回复例如“产品A的定价是每月99元...”。5.3 图像生成测试除了对话Spring AI Alibaba 也支持图像生成需要对应的模型支持如阿里云的通义万相。测试目的验证图像生成客户端ImageClient的集成。操作步骤在pom.xml中添加图像生成的 Starter如果与对话不是同一个。dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-wanxiang-spring-boot-starter/artifactId /dependency在application.yml中配置万相相关的密钥和参数通常与百炼的密钥体系一致但需确认。创建ImageController。RestController RequiredArgsConstructor public class ImageController { private final ImageClient imageClient; PostMapping(/generate-image) public String generateImage(RequestParam String prompt) { ImageOptions options ImageOptions.builder() .n(1) // 生成1张图 .size(1024x1024) // 图片尺寸 .responseFormat(url) // 返回图片URL .build(); ImageResponse response imageClient.call( new ImagePrompt(prompt, options) ); // 返回生成的图片URL return response.getResult().getOutput().getUrl(); } }调用POST /generate-image接口传入提示词如“一只戴着眼镜编程的卡通猫”。预期结果接口返回一个图片的临时 URL访问该 URL 可以看到生成的图像。注意图像生成通常消耗更多的 Token费用更高且响应时间可能更长。5.4 多模型切换测试Spring AI 的核心优势之一是抽象使得切换底层模型变得非常容易。测试目的验证通过配置切换不同模型提供商如从阿里云切换到智谱AI。操作步骤添加智谱 AI 的 Starter 依赖。dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-zhipuai-spring-boot-starter/artifactId /dependency注意这里引入了 Spring AI 官方的 Starter展示了框架的兼容性。在application.yml中配置智谱 AI 的密钥。spring: ai: zhipu: api-key: your-zhipu-api-key chat: options: model: glm-4通过Qualifier注解在需要的地方注入特定的ChatClientBean。Spring AI 会根据配置自动创建多个 Client。Service public class MultiModelService { private final ChatClient bailianChatClient; private final ChatClient zhipuChatClient; public MultiModelService( Qualifier(bailianChatClient) ChatClient bailianChatClient, Qualifier(zhipuChatClient) ChatClient zhipuChatClient) { this.bailianChatClient bailianChatClient; this.zhipuChatClient zhipuChatClient; } public String compareAnswer(String question) { String answer1 bailianChatClient.call(new ChatPrompt(question)).getOutput().getText(); String answer2 zhipuChatClient.call(new ChatPrompt(question)).getOutput().getText(); return String.format(阿里云回答%s\n\n智谱AI回答%s, answer1, answer2); } }预期结果compareAnswer方法能成功调用两个不同的 AI 服务并返回各自的答案验证了模型切换的能力。6. 接口 API 与批量任务Spring AI Alibaba 构建的应用本身就是一个 Web 服务其 API 设计完全由开发者决定。同时利用 Spring 强大的生态实现批量任务也非常简单。6.1 设计健壮的 AI 服务 API一个生产级的 AI 接口通常需要更完善的输入输出定义、错误处理和异步处理。示例一个标准的聊天接口RestController RequestMapping(/api/v1/ai) RequiredArgsConstructor public class AiApiController { private final ChatClient chatClient; PostMapping(/chat/completions) public ResponseEntityApiResponseChatResult chatCompletion(RequestBody Valid ChatRequest request) { try { // 1. 构建提示词可结合模板、历史记录等 ChatPrompt prompt buildPromptFromRequest(request); // 2. 调用AI服务可选择同步或流式 ChatResponse response request.isStream() ? chatClient.stream(prompt).blockLast() : // 流式处理简化示例 chatClient.call(prompt); // 3. 封装标准化响应 ChatResult result new ChatResult(response.getOutput().getText()); return ResponseEntity.ok(ApiResponse.success(result)); } catch (Exception e) { log.error(AI聊天请求失败, e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(ApiResponse.error(AI服务暂时不可用)); } } // 统一的API响应体 Data AllArgsConstructor public static class ApiResponseT { private int code; private String message; private T data; public static T ApiResponseT success(T data) { return new ApiResponse(200, success, data); } public static T ApiResponseT error(String message) { return new ApiResponse(500, message, null); } } }6.2 实现批量处理任务对于需要处理大量数据如批量生成商品描述、批量审核评论的场景可以结合Spring Batch或简单的Async异步任务。使用Async实现简单批量任务在应用主类上启用异步支持EnableAsync创建一个任务服务。Service Slf4j public class BatchProcessService { Async // 方法将异步执行 public CompletableFutureString processItem(String item) { try { // 模拟调用AI处理单个条目 String prompt 为以下商品生成一段吸引人的描述 item; ChatResponse response chatClient.call(new ChatPrompt(prompt)); return CompletableFuture.completedFuture(response.getOutput().getText()); } catch (Exception e) { log.error(处理商品失败: {}, item, e); return CompletableFuture.completedFuture(生成失败); } } }在 Controller 或另一个 Service 中并发调用。GetMapping(/batch-process) public ListString batchProcess(RequestParam ListString items) { ListCompletableFutureString futures items.stream() .map(batchProcessService::processItem) .collect(Collectors.toList()); // 等待所有异步任务完成 return futures.stream() .map(CompletableFuture::join) .collect(Collectors.toList()); }关键点异步能提高吞吐量但需注意第三方 AI 服务的速率限制Rate Limit。生产环境中需要增加重试、熔断、降级机制可通过 Spring Cloud CircuitBreaker 实现。7. 资源占用与性能观察Spring AI Alibaba 框架本身是轻量级的资源消耗主要来自JVM 内存用于运行 Spring Boot 应用。网络 I/O与远程 AI 服务 API 通信。可能的本地计算如果集成了本地向量数据库进行 Embedding 计算或检索。7.1 如何观察资源占用JVM 内存/CPU使用jconsole、jvisualvm或Arthas等 JVM 监控工具。应用级监控集成 Spring Boot Actuator 和 Micrometer将指标导出到 Prometheus Grafana。dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependency dependency groupIdio.micrometer/groupId artifactIdmicrometer-registry-prometheus/artifactId /dependency配置application.ymlmanagement: endpoints: web: exposure: include: health,info,metrics,prometheus metrics: tags: application: ${spring.application.name}访问http://localhost:8080/actuator/prometheus可获取详细的指标数据。7.2 性能关键因素网络延迟这是调用云端 API 最主要的性能瓶颈。确保应用服务器与 AI 服务提供商之间的网络质量良好。AI 模型响应时间不同模型、不同参数如max_tokens、不同请求复杂度响应时间差异巨大。通义千问的qwen-turbo会比qwen-max快。客户端连接池Spring AI 底层使用 HTTP 客户端如 RestTemplate 或 WebClient。合理配置连接池大小和超时时间对高并发场景至关重要。spring: ai: alibaba: bailian: client: connect-timeout: 10s # 连接超时 read-timeout: 60s # 读取超时长文本生成需要更长时间流式 vs 非流式流式响应SSE的首次令牌时间Time to First Token通常更短用户体验更好但总完成时间可能略长。7.3 优化建议缓存对频繁且结果固定的 AI 查询如固定的提示词模板输出进行缓存。异步与批处理如 6.2 节所示利用异步处理提高整体吞吐。降级与熔断当 AI 服务不稳定时应有备选方案如返回缓存内容、简化功能或快速失败避免拖垮整个应用。8. 常见问题与排查方法问题现象可能原因排查方式解决方案应用启动失败报BeanCreationException1. 依赖版本冲突。2. 配置项缺失或错误。3. JDK 版本不兼容。1. 查看完整堆栈日志找到具体的错误信息。2. 运行mvn dependency:tree检查依赖冲突。3. 确认application.yml中spring.ai.alibaba相关配置项拼写正确。1. 统一管理依赖版本使用 BOM。2. 检查并补全必要的配置如access-key-id。3. 确保使用 JDK 17。调用接口返回 401 或认证错误API Key 配置错误、过期或权限不足。1. 检查application.yml中的密钥是否正确注意access-key-id和access-key-secret的区别。2. 登录阿里云控制台确认该密钥有对应模型的调用权限且未过期。1. 重新生成并配置正确的密钥。2. 在控制台为对应服务开通权限。接口调用超时1. 网络问题。2. AI 服务端响应慢。3. 客户端超时设置太短。1. 使用curl或ping测试到 AI 服务域名的网络连通性。2. 查看 AI 服务商的状态页面是否有故障公告。3. 检查配置的read-timeout值。1. 优化网络或使用国内节点。2. 增加客户端超时时间特别是生成长文本时。3. 实现异步调用和超时重试逻辑。返回内容为空或乱码1. 提示词被安全策略过滤。2. 模型不理解或无法生成。3. 响应解析错误。1. 尝试一个非常简单的中文提示词如“你好”。2. 查看 AI 服务返回的原始响应日志需开启 DEBUG 日志级别。1. 调整提示词避免敏感或模糊的表述。2. 检查代码中解析响应 JSON 的逻辑。流式接口不工作1. 客户端不支持 SSE。2. 返回的 MediaType 不正确。3. 网关或代理拦截了 SSE 流。1. 使用curl -N或专门的 SSE 测试工具。2. 确认 Controller 方法 produces 属性为MediaType.TEXT_EVENT_STREAM_VALUE。3. 检查 Nginx 等代理配置确保支持text/event-stream。1. 使用正确的测试工具。2. 检查并修正代码。3. 在代理配置中添加对 SSE 的支持。集成向量数据库失败1. 向量数据库服务未启动。2. 连接配置错误。3. 相关依赖未引入。1. 检查 Redis 或 PostgreSQL 服务状态。2. 检查spring.data.redis或spring.datasource配置。3. 确认引入了spring-ai-redis或spring-ai-pgvector等对应 Starter。1. 启动对应的数据库服务。2. 修正连接字符串、用户名密码。3. 添加正确的依赖。通用排查步骤开启详细日志在application.yml中设置logging.level.com.alibaba.cloud.ai: DEBUG来查看 Spring AI Alibaba 的详细请求和响应日志。隔离测试写一个最简单的单元测试或SpringBootTest来直接调用ChatClient排除 Web 层干扰。查阅官方文档与 Issues遇到框架特定问题优先查看 Spring AI Alibaba GitHub 的文档和 Issues。9. 最佳实践与使用建议配置外部化与安全永远不要将 API Key 硬编码在代码中。使用application-{profile}.yml区分环境并通过环境变量或配置中心如 Nacos注入敏感信息。# 启动时通过环境变量传入 SPRING_AI_ALIBABA_BAILIAN_ACCESS-KEY-IDyour_id SPRING_AI_ALIBABA_BAILIAN_ACCESS-KEY-SECRETyour_secret java -jar app.jar使用连接池与超时配置在生产环境中务必配置 HTTP 客户端的连接池和合理的超时时间以防止连接泄漏和线程阻塞。spring: ai: alibaba: bailian: client: max-connections: 100 connect-timeout: 5s read-timeout: 30s实现重试与熔断机制网络和远程服务不稳定是常态。集成 Resilience4j 或 Spring Cloud CircuitBreaker 来实现自动重试和熔断提升系统韧性。dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-circuitbreaker-resilience4j/artifactId /dependency设计可维护的提示词将复杂的提示词抽取到模板文件.st中便于管理和迭代。可以为不同场景客服、代码生成、内容创作创建不同的模板目录。监控与告警对 AI 接口的调用延迟、成功率和 Token 消耗进行监控。设置告警当延迟过高或失败率上升时及时通知。成本控制AI API 调用是计费的。在代码中记录每次调用的模型和 Token 使用量定期审计。对于非实时性要求高的任务可以考虑使用更经济的模型或进行批量处理以优化成本。版本管理Spring AI 和 Spring AI Alibaba 迭代较快。在pom.xml中通过 BOM 严格管理版本升级前在测试环境充分验证。Spring AI Alibaba 为 Java 开发者打开了一扇快速接入 AI 能力的大门。它最大的优势在于将复杂的 AI 调用标准化、简单化让你能专注于业务逻辑而非底层集成细节。对于大多数希望将 AI 能力嵌入现有 Java 系统的团队来说这是一个能显著提升开发效率、降低维护成本的选择。建议从一个小而具体的场景如一个智能客服问答接口开始尝试验证整个流程再逐步扩展到更复杂的应用如 RAG 知识库、AI 辅助编程工具。在探索过程中密切关注官方仓库的更新社区和文档会是你最好的帮手。