程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!
1.阿里云百炼
阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。
不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。
可以通过简单的界面操作,在5分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。
2.阿里云百炼的作用
2.1 构建智能客服
界面化的应用构建,让您可以快速构建一个AI助手来应对客户咨询。
2.2 编排流程
界面化的流程编排,让无代码基础的业务人员也能进行流程设计。
2.3 微调模型
界面化的微调功能,即使不熟悉微调的工程代码,也能完成模型定制。
3.支持的大模型
Token是指模型处理和生成文本时的基本单元,中文的Token通常是一个字或词,英文的Token通常是一个单词、子词或词组。
除了上述文生文的通义大模型,百炼还支持图像、音视频、数学、法律等方面的通义大模型。
同时,百炼也支持众多第三方大模型,例如DeepSeek、Llama、ChatGLM、零一万物、Stable Diffusion等。
4.DeepSeek-R1
DeepSeek系列模型是由深度求索(DeepSeek)公司推出的大语言模型。
DeepSeek-R1 模型包含 671B 参数,激活 37B,在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力,尤其在数学、代码、自然语言推理等任务上。
DeepSeek-V3 为MoE 模型,671B 参数,激活 37B,在 14.8T Token 上进行了预训练,在长文本、代码、数学、百科、中文能力上表现优秀。
DeepSeek-R1-Distill 系列模型是基于知识蒸馏技术,通过使用 DeepSeek-R1 生成的训练样本对 Qwen、Llama 等开源大模型进行微调训练后,所得到的增强型模型。
本文选择DeepSeek-R1进行AI问答的演示。
DeepSeek-R1在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力,尤其在数学、代码、自然语言推理等任务上。
DeepSeek-V3 为 MoE 模型,671B 参数,激活 37B,在 14.8T token 上进行了预训练,在长文本、代码、数学、百科、中文能力上表现优秀。
5.基于阿里云百炼实现DeepSeek调用
第一步:开通阿里云百炼
第二步:创建API-KEY
第三步:配置环境变量
把API Key配置到环境变量,从而避免在代码里显式地配置API Key,降低泄漏风险。
以Windows为例:
在Windows系统桌面中按Win+Q键,在搜索框中搜索编辑系统环境变量,单击打开系统属性界面。
在系统属性窗口,单击环境变量,然后在系统变量区域下单击新建,变量名填入DASHSCOPE_API_KEY,变量值填入您的DashScope API Key。
依次单击三个窗口的确定,关闭系统属性配置页面,完成环境变量配置。
打开CMD(命令提示符)窗口或Windows PowerShell窗口,执行如下命令检查环境变量是否生效。
第四步:安装DashScope Java SDK
打开Maven项目的pom.xml文件,添加如下的依赖:
<!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>2.18.3</version>
</dependency>
保存pom.xml文件。
使用Maven命令(如mvn compile或mvn clean install)来更新项目依赖,这样Maven会自动下载并添加DashScope Java SDK到您的项目中。
第五步:调用DeepSeek-R1大模型
通过 DashScope SDK 或 HTTP 方式快速体验 DeepSeek 模型,有多种调用方式,我直接进行的非流式调用,实际开发推荐使用流式调用。
由于 DeepSeek-R1 类模型的思考过程可能较长,可能导致响应慢或超时,建议优先使用流式输出方式调用。
我这里采用DashScope SDK的形式调用大模型接口,具体代码如下所示:
package com.feri.mna;
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.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import java.util.Arrays;
/**
* @project: Ai,
* @description:
* @author: 程序员Feri
* @date: 2025/3/4 14:32
*/
public class MainTest {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
Generation gen = new Generation();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("你认识程序员Feri吗?")
.build();
GenerationParam param = GenerationParam.builder()
// 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("deepseek-r1")
.messages(Arrays.asList(userMsg))
// 不可以设置为"text"
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
System.out.println("开始调用");
GenerationResult result = callWithMessage();
System.out.println("思考过程:"+result.getOutput().getChoices().get(0).getMessage().getReasoningContent());
System.out.println("回复内容:"+result.getOutput().getChoices().get(0).getMessage().getContent());
System.out.println("已完成");
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
// 使用日志框架记录异常信息
System.err.println("亲,我累了: " + e.getMessage());
}
System.exit(0);
}
}
好啦,本篇就到这里啦,拥抱AI!
解决方案链接:https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_content=g_1000401616