上次阿里云通义千问Qwen2开源,第一时间本地部署测试了下,整体体验非常丝滑。
今天我们将他引入到自己的项目中,操作其实很简单。阿里云提供了一套完整的Ai大模型开发平台-百炼平台,下面我们通过他来快速完成应用的创建、开发和部署,让大家也了解下这款Ai大模型平台的魅力。
可以看到,在百炼上我们能训练自己的模型,创建应用,搭建知识库,上传自定义插件等等,可以更高效灵活地开发一套基于大模型的定制化的应用,快速嵌入到我们业务中。
下面带着大家体验一下。
智能体应用
智能体应用是百炼的核心功能之一,他集成了百炼里的一些主要功能,我们可以快速通过百炼创建自己的智能体应用。在首页直接点击「立即创建」,或者通过控制台,选择「应用中心」-「我的应用」-「新增应用」。
创建完进入,可以对智能体应用进行统一管理和设置。
主要有以下几个功能,下面我们会一一介绍。
-
模型选择
-
Prompt
-
知识检索增强
-
插件
-
流程
一、模型选择
模型是智能体的“大脑”,这个必须选择。首次使用,我们需要开通模型调用,部分模型是有限时免费额度的,可以根据自己的情况选择合适的模型,具体收费可以参考官方文档。
点击确认开通,可以看到模型在加载。我们选择通义千问-Plus预置模型,然后参数配置我们可以默认设置,也可以根据需要手动设置。
到这里其实我们已经创建了一个简单的智能体应用,一个基于通义千问-Plus模型的智能体。我们可以选择发布,然后就可以通过API调用刚发布的应用,并嵌入到我们业务中使用了,下面我们先测试下。这里介绍下Prompt:
二、Prompt
在首页,「应用中心」-「应用组件」-「Prompt工程」,平台已经按分类给我们提供了许多Prompt模版,我们可以通过Prompt使大模型能够更准确、可靠地执行我们的任务。
回到智能体,我们输入「你是一个美食家」,直接调用Prompt优化。
说明:百炼对于新用户非常友好,如果你不善于写Prompt,点击Prompt优化,他可以自动生成,让回答更专业。这个功能非常的实用,如果优化的Prompt不满意,我们还可以进行继续完善或者重新优化。最后点击使用优化后的Prompt。
现在我们对刚创建的应用进行测试,让他给一个「红烧茄子的制作方法」,如下:
测试没有问题,给了一份详细的制作步骤。到这里一个简单的智能体就已经创建完成了,我们可以发布,然后在我们的程序中进行调用,下面在代码中测试下。
三、发布并调用
这里需要使用到应用ID和APIkey,同时添加官方SDK。
我们返回到首页,选择「我的应用」,可以看到刚才创建的智能体,点击「调用」,这里用Java调用测试,首先,创建APIkey,同时需要我们配置环境,并导入SDK。
1、APIKey创建
首次使用需要创建APIKey,我们也可以根据自己的业务不同创建不同的APIKey,便于区分。
2、添加SDK
这里使用Java测试,项目使用的maven管理,添加maven配置(version我们可以通过maven仓库自己查看,这里使用最新版本):
<!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>2.15.2</version>
</dependency>
Java代码:
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import java.util.List;
/**
* @Author:IT码徒
* @CreateTime:2024年07月25
*/
public class BaiLian {
public static void callAgentApp()
throws ApiException, NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
.apiKey("你的APIKey")
.appId("你的应用ID")
.prompt("如何做酱大骨?")
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
System.out.printf("requestId: %s, text: %s, finishReason: %s\n",
result.getRequestId(), result.getOutput().getText(), result.getOutput().getFinishReason());
}
public static void main(String[] args) {
try {
callAgentApp();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
}
System.exit(0);
}
}
APIkey和APPid换成我们自己的就可以了,提问:如何做酱大骨?。我们运行程序看下结果:
看输出是没有问题的。如果你认为智能体就是一个简单的API调用,这就完了,那你就错了,刚刚介绍的智能体应用创建,只是最基础、最简单。百炼提供了其他强大的定制化功能,我们可以根据自己的业务创建不同的智能体,定制自己的智能体应用,对其进行扩展。比如可以在智能体中添加夸克搜索插件,实现提问时实时搜索最新数据,也可以通过知识检索增强,快速搭建公司内部的知识库,让办公更高效。下面我们对刚创建的智能体进行进一步的改造。
四、知识检索增强
相信不少小伙伴公司已经用上自己的知识库了。我们可以将公司内部的资料和开发文档等上传用来创建企业内部知识库,通过知识增强检索功能,创建自己的应用,最后引入到公司内部平台,提高大家工作效率。
具体该如何操作呢?
我们点击「数据中心」-「数据应用」-「知识索引」-「添加知识库」,将文档资料拖拽上传即可。下面我将自己博客的内容导出,然后上传到百炼平台。
提示:因为是结构化的数据,我们需要设置对应的字段信息,字段对应不上的话,上传会失败,这个需要注意下。另外,你可以通过平台对数据先清洗,然后创建知识库然后导入清洗后的数据。
上传成功,我们可以预览看下
上传完,我们返回到刚刚创建的智能体,并选择「知识检索增强」,选择我们刚上传的知识库,其他配置不变。
注意:我们添加完知识库之后,需要在Prompt里面引入,便于模型在运行时引入我们的知识库内容,系统会默认添加这部分信息。
再次提问:「Linux常用去除重复数据口令?」
说明:我这里导入的是自己博客的文章内容,我们可以直接用博客里面的内容提问
可以看到执行时,会去检索我们刚上传的表信息,从里面获取我们需要的信息,并加以改进和优化,最后返回给我们想要的答案。
操作十分方便,最后我们再次发布应用就可以了,和上面一样,我们可以通过Java程序进行调用,部署到我们的项目中,这样一个简单的知识库就完成了,这里不在单独测试。
五、插件
在日常开发中,我们可能会有一些需求,比如对数据实时性的要求比较高,或者有一些数学计算类的业务场景等。这个时候我们就可以通过引入插件,进行扩展,增加大模型的交互性,这里百炼给我们准备的有几款预置插件「Python代码解释器」「夸克搜索」、「计算器」、「文生图」,在创建智能体应用的时候,我们可以将其加入。
说明:目前官方给我们预置了几款插件,有完全免费的,也有收费的,收费的需要申请并且授权账号,免费的可以直接导入使用。另外,我们也可以开发一些自己的插件,通过API引入到我们的智能体中。
我们演示下「Python代码解释器」插件的使用,因为是免费的,我们不需要申请,可以直接在应用中插入该插件
我们写一段python代码,计算代码运行时间,提交运行。
import time
start_time = time.time()
total = 0
for i in range(10):
total += i
print("Sum:", total)
end_time = time.time()
time_taken = end_time - start_time
print("Time: ", time_taken)
我们看到智能体因为引入了「Python 代码解释器」插件,可以直接运行Python代码,并将运行结果结合大模型分析一起返回给我们,具体如下:
官方仅仅提供了几个常用的插件,如果我们有其他更多的需求,可以添加自定义插件,比如你可以添加天气插件,数据过滤插件,时间插件等等。
六、流程编排
流程编排是一个非常好用的功能,通过他我们可以做一些小工具,增加生活趣味性,也可以编排一些重复类的工作,来提供工作的效率,因为篇幅问题,这里不在演示具体操作。
比如我们可以通过使用流程编排的功能,在平台提供的流程画布中配置一个让天猫精灵(或其他终端产品)根据所在地的天气情况随机播放一首歌曲。我们会用API调用节点调用天气接口,然后将天气结果传入大模型节点的Prompt中,最终大模型推荐了一首歌曲,我们再利用脚本节点将大模型推荐的歌曲进行最终结果的拼接。
流程编排提供低代码拖拉拽的交互方式,操作非常方便,可以快速搭建符合业务场景的workflow,最终通过API调用到自己的系统或产品中。
——EOF——
福利:
扫码回复【酒店】可免费领取酒店管理系统源码