AI - 阿里云百炼

阿里云百炼是阿里云 2023 年 10 月上线的一站式 MaaS 大模型开发 & 应用全链路平台 ,集合模型调用、微调、RAG 知识库、Agent 智能体、低代码应用搭建、API 服务,个人 / 企业开发者通用。

官网地址大模型服务平台百炼控制台

一、核心定位

一句话:不用自建算力、不用部署模型,直接调用海量大模型,低代码搭建自有 AI 应用,兼顾程序员 API 开发 + 业务人员零代码拖拽开发。

二、平台可用模型(百炼模型广场)

  1. 阿里自研:Qwen(通义千问)全系列Qwen3.7 Max/Plus、Qwen3.5、通义文生图、实时同传多模态等(当前主推 Qwen3.7 系列,限时折扣)阿里云;
  2. 第三方主流模型: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】使用步骤

  1. 去阿里云百炼控制台获取 api-key,替换 yml 配置

  2. 启动 SpringBoot 项目

  3. 浏览器访问:

    复制代码
    http://127.0.0.1:8080/ai/chat?prompt=写一个SpringBoot启动类
  4. 直接返回大模型回答

(二)流式输出

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、启动 & 测试

  1. api-key 换成你自己的

  2. 启动 SpringBoot

  3. 浏览器访问:

    http://127.0.0.1:8080/ai/stream?prompt=写一个SpringBoot项目介绍

效果: 文字会逐字逐句像打字机一样输出,不是等全部生成完一次性返回。

相关推荐
章老师说18 分钟前
BFE v1.8.6 正式发布:AI 网关计费精细化、Claude 协议与会话亲和性升级
运维·人工智能·ai·负载均衡·ai-native
ai小陈39 分钟前
FramePack图生视频云端部署实战:从单图输入到视频输出的完整流程
服务器·人工智能·安全·ai·音视频·gpu算力
长沙京卓1 小时前
Copilot Coding Agent 变了:AI 编程正在从插件变成项目成员
人工智能·ai
is me monday1 小时前
Codex-CLI 下载安装与 Token 配置教程(附codex安装包)
ai
ai小陈2 小时前
Hunyuan3D-2云端部署实战:图生3D、文生3D怎么跑更稳
人工智能·科技·3d·ai·音视频·gpu算力
村口徐大爷3 小时前
电商新媒体通用!Lingko AI全套视觉素材自动化量产落地实操教程
人工智能·ai·ai工具·电商运营·lingnko ai
VIP_CQCRE3 小时前
用 Ace Data Cloud 自动发布 WordPress 文章:把 AI 写作变成可积累的 SEO 内容资产
ai·api·seo·wordpress·acedatacloud
tachibana24 小时前
微调和 RAG 各自的优劣势是什么?
人工智能·ai·大模型·llm·agent
人工智能研究所8 小时前
手机随手拍一段视频,AI 能还原出一个可以 360° 旋转视角的“数字人“
人工智能·科技·ai·数字人