阿里云百炼是阿里云 2023 年 10 月上线的一站式 MaaS 大模型开发 & 应用全链路平台 ,集合模型调用、微调、RAG 知识库、Agent 智能体、低代码应用搭建、API 服务,个人 / 企业开发者通用。
官网地址 :大模型服务平台百炼控制台
一、核心定位
一句话:不用自建算力、不用部署模型,直接调用海量大模型,低代码搭建自有 AI 应用,兼顾程序员 API 开发 + 业务人员零代码拖拽开发。
二、平台可用模型(百炼模型广场)
- 阿里自研:Qwen(通义千问)全系列Qwen3.7 Max/Plus、Qwen3.5、通义文生图、实时同传多模态等(当前主推 Qwen3.7 系列,限时折扣)阿里云;
- 第三方主流模型:DeepSeek、GLM、MiniMax、零一万物 Yi、Llama、Kimi 等上百款开源 / 闭源大模型,文本、图像、语音、多模态全覆盖。
三、五大核心功能
1. 快捷 API 调用(开发首选)
- 完全兼容 OpenAI 接口格式 ,仅替换
base_url+api_key即可无缝迁移原有 OpenAI 代码,Python/Java/Node.js/Curl 全支持; - 按 Token 计费,新用户送 7000 万免费 Tokens,90 天有效期,免费测试接入。
2. 模型微调(定制专属模型)
可视化页面上传自有行业数据,支持 SFT/CPT/DPO 轻量化微调,不用搭训练环境,平台托管算力,适配企业私有知识库优化模型效果阿里云。
3. RAG 知识库(企业问答标配)
上传 PDF/Word/TXT/ 网页文档,一键构建私有知识库,搭配大模型做企业知识库问答、智能客服、文档助手,解决大模型知识过时问题。
4. Agent 智能体 + 可视化工作流(零代码)
拖拽式编排流程、绑定工具插件(联网、函数调用、数据库查询),零代码做自动化 Agent:办公助手、数据分析机器人、行业巡检机器人阿里云。
5. 应用广场 & 快速落地
内置百余种行业模板:公文写作、电商客服、简历筛选、代码助手,一键生成 SaaS AI 应用,可对接自有业务系统(ERP、CRM)。
四、计费方式
- 按量付费(主流):推理按输入 + 输出 Token 扣费,Qwen 系列常有折扣(如 Qwen3.7 Max 推理 5 折、Plus8 折)阿里云;
- 微调:按训练时长 / 算力包计费;
- 也支持资源包包月、企业定制包年。
五、适用场景
✅ 程序员:产品接入 AI 能力(APP / 小程序 / 后端集成大模型)✅ 企业:私有知识库、智能客服、内部办公 AI、行业定制大模型✅ 业务:零代码搭建文案生成、数据解析、自动化 Agent
六、Java接入阿里云百炼(通义大模型)SpringBoot
(一)普通对话
1、pom.xml 唯一依赖(只需这一个)
XML
<dependencies>
<!-- SpringBoot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 阿里云百炼 官方SDK(核心!) -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>2.11.1</version>
</dependency>
</dependencies>
2、application.yml 配置
spring:
application:
name: bailian-demo
# 百炼配置
bailian:
api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxx # 你的API-KEY
model: qwen-turbo # 模型名称
3、核心代码(3 个类搞定)
【1】配置类(自动注入 SDK 客户端)
java
import com.alibaba.dashscope.aigc.generation.Generation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class BailianConfig {
@Value("${bailian.api-key}")
private String apiKey;
/**
* 百炼官方SDK核心客户端,全局单例
*/
@Bean
public Generation generation() {
Generation generation = new Generation();
// 密钥自动交给SDK管理
System.setProperty("DASH_SCOPE_API_KEY", apiKey);
return generation;
}
}
【2】Service(真正调用 AI)
java
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
@Service
public class BailianService {
@Resource
private Generation generation;
@Value("${bailian.model}")
private String model;
/**
* 极简对话接口
*/
public String simpleChat(String prompt) throws Exception {
// 1. 构造用户消息
Message message = Message.builder()
.role(Role.USER.getValue())
.content(prompt)
.build();
// 2. SDK请求参数
GenerationParam param = GenerationParam.builder()
.model(model)
.messages(Collections.singletonList(message))
.build();
// 3. 官方SDK调用(一行代码发请求)
GenerationResult result = generation.call(param);
// 4. 直接返回AI回答
return result.getOutput().getText();
}
}
【3】Controller(对外接口)
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
public class AIController {
@Resource
private BailianService bailianService;
/**
* 测试地址:http://127.0.0.1:8080/ai/chat?prompt=你好
*/
@GetMapping("/ai/chat")
public String chat(@RequestParam String prompt) {
try {
return bailianService.simpleChat(prompt);
} catch (Exception e) {
return "AI调用失败:" + e.getMessage();
}
}
}
【4】使用步骤
-
去阿里云百炼控制台获取
api-key,替换 yml 配置 -
启动 SpringBoot 项目
-
浏览器访问:
http://127.0.0.1:8080/ai/chat?prompt=写一个SpringBoot启动类 -
直接返回大模型回答
(二)流式输出
1. pom.xml 依赖(不变)
XML
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 阿里云百炼官方SDK -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>2.11.1</version>
</dependency>
</dependencies>
2. application.yml
XML
spring:
application:
name: bailian-sse-demo
server:
port: 8080
bailian:
api-key: sk-你自己的百炼API-KEY
model: qwen-turbo
3. 配置类
java
import com.alibaba.dashscope.aigc.generation.Generation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class BailianConfig {
@Value("${bailian.api-key}")
private String apiKey;
@Bean
public Generation generation() {
System.setProperty("DASH_SCOPE_API_KEY", apiKey);
return new Generation();
}
}
4. Service 核心(流式返回)
java
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import javax.annotation.Resource;
import java.util.Collections;
@Service
public class BailianStreamService {
@Resource
private Generation generation;
@Value("${bailian.model}")
private String model;
/**
* 流式对话:返回 Flux<GenerationResult>
*/
public Flux<GenerationResult> streamChat(String prompt) throws ApiException, NoApiKey {
// 构造消息
Message msg = Message.builder()
.role(Role.USER.getValue())
.content(prompt)
.build();
// 流式参数
GenerationParam param = GenerationParam.builder()
.model(model)
.messages(Collections.singletonList(msg))
.incrementalOutput(true) // 关键:增量输出(流式)
.build();
// 返回流式 Flux
return Flux.from(generation.streamCall(param));
}
}
5. Controller(SSE 接口)
java
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import org.springframework.http.MediaType;
import org.springframework.http.codec.ServerSentEvent;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import javax.annotation.Resource;
@RestController
@RequestMapping("/ai")
public class AIController {
@Resource
private BailianStreamService bailianStreamService;
/**
* 流式SSE接口
* 前端直接请求即可看到打字机效果
*/
@GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ServerSentEvent<String>> streamChat(@RequestParam String prompt) {
try {
return bailianStreamService.streamChat(prompt)
.map(GenerationResult::getOutput)
.map(output -> {
String content = output.getText() == null ? "" : output.getText();
return ServerSentEvent.builder(content).build();
});
} catch (Exception e) {
return Flux.just(ServerSentEvent.builder("错误:" + e.getMessage()).build());
}
}
}
6、启动 & 测试
-
把
api-key换成你自己的 -
启动 SpringBoot
-
浏览器访问:
效果: 文字会逐字逐句像打字机一样输出,不是等全部生成完一次性返回。