阿里通义千问是阿里巴巴推出的大规模语言模型,由达摩院研发。它是基于先进的自然语言处理技术构建的,旨在提供高质量的文本生成和理解能力。通义千问的特点包括:
- 多语言支持:通义千问能够理解和生成多种语言的文本,包括但不限于中文、英文、日文、法文、西班牙文和德文等,这使得它具有全球化的交流能力。
- 训练数据丰富:它的训练数据来自阿里巴巴内部的大量语言和文本资源,涵盖了文学、历史、科学、艺术等各种主题,旨在提供广泛的知识基础。
- 应用场景广泛:通义千问不仅可以用于日常对话和信息查询,还可以为企业和个人用户提供定制化服务,如行业咨询、文档撰写、智能助手等,帮助用户生成内容或解答问题。
- 与阿里巴巴产品整合:2023年4月,阿里巴巴宣布其所有产品将接入通义千问,这意味着用户可以在钉钉、天猫精灵等平台上直接体验到该模型的服务,企业也可以利用阿里云的能力来定制自己的行业专属大模型。
- 合规性:2023年9月13日,通义千问通过了相关备案并正式对公众开放,表明其在遵守法律法规的前提下提供服务。
- 商业价值:张勇(阿里巴巴集团董事会主席兼CEO)强调了通义千问对于提升阿里巴巴产品和服务的智能化水平,以及帮助企业利用人工智能进行创新。
如果你是基于Python或Java开发,那么通义千问支持的SDK还是比较完善的,本文已Spring Boot接入阿里通义千问为例进行说明。
壹、申请Key
进入阿里云官网,定位到【API-KEY管理】,如果已经有Key的话,可以直接使用,如果没有可以创建一个新的。
贰、创建Spring Boot工程
具体怎么创建工程就不过多介绍了,现在主要说说创建完之后的配置及开发工作。
2.1、添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>2.14.0</version>
</dependency>
2.2、修改配置文件
在配置文件application.yml
中添加我们申请到的Key
注意替换成你实际的key
qwen:
ai-api-key: sk-XXXX
2.3、创建配置文件,读取配置信息
@Component
@ConfigurationProperties(prefix = "qwen")
@Data
public class QWenConfig {
private String aiApiKey;
}
2.4、创建通义千问的配置文件
@Configuration
public class AliQWenConfig {
@Bean
public Generation generation() {
return new Generation();
}
}
2.5、创建请求
@RestController
@RequestMapping("ai")
public class QWenController {
@Resource
private Generation generation;
@Resource
private QWenConfig qWenConfig;
/**
* 测试demo
*
* @param content 用书输入文本内容
*/
@PostMapping(value = "qwen")
public String send(@RequestBody String content) throws NoApiKeyException, InputRequiredException {
//用户与模型的对话历史。list中的每个元素形式为{“role”:角色, “content”: 内容}。
Message userMessage = Message.builder()
.role(Role.USER.getValue())
.content(content)
.build();
GenerationParam param = GenerationParam.builder()
//指定用于对话的通义千问模型名
.model("qwen-turbo")
.messages(Collections.singletonList(userMessage))
//
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
//生成过程中核采样方法概率阈值,例如,取值为0.8时,仅保留概率加起来大于等于0.8的最可能token的最小集合作为候选集。
// 取值范围为(0,1.0),取值越大,生成的随机性越高;取值越低,生成的确定性越高。
.topP(0.8)
//阿里云控制台DASHSCOPE获取的api-key
.apiKey(qWenConfig.getAiApiKey())
//启用互联网搜索,模型会将搜索结果作为文本生成过程中的参考信息,但模型会基于其内部逻辑“自行判断”是否使用互联网搜索结果。
.enableSearch(true)
.build();
GenerationResult generationResult = generation.call(param);
return generationResult.getOutput().getChoices().get(0).getMessage().getContent();
}
}
叁、测试
使用ApiFox测试一下
评论 (0)