ModelScope中,用java调用接口有相关示例吗?
在ModelScope中,使用Java调用接口的相关示例可以通过阿里云提供的SDK和API文档来实现。以下是基于知识库资料整理的详细步骤和代码示例,帮助您快速上手。
在调用接口之前,请确保完成以下准备工作: - 创建AccessKey ID和AccessKey Secret:这是调用阿里云服务的必要凭证。如果尚未创建,请参考官方文档获取。 - 获取Workspace ID和App ID: - Workspace ID:登录管理控制台,进入业务空间管理页面,找到对应的Workspace ID。 - App ID:在“应用广场”中查看通义晓蜜CCAI-对话分析AIO应用的详情,并在“我的应用”中获取应用ID。
根据您的需求选择同步或异步调用方式,并在项目中添加相应的Maven依赖。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>contactcenterai20240603</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-contactcenterai20240603</artifactId>
<version>3.0.0</version>
</dependency>
以下代码展示了如何通过异步流式调用接口进行对话分析:
public class CcaiPaasTest {
private static String accessKeyId = "YOUR_ACCESS_KEY_ID";
private static String accessKeySecret = "YOUR_ACCESS_KEY_SECRET";
private static String workspaceId = "YOUR_WORKSPACEID";
private static String appId = "YOUR_APPID";
private static StaticCredentialProvider provider = StaticCredentialProvider.create(
Credential.builder()
.accessKeyId(accessKeyId)
.accessKeySecret(accessKeySecret)
.build()
);
private static AsyncClient client = AsyncClient.builder()
.region("cn-shanghai")
.credentialsProvider(provider)
.serviceConfiguration(Configuration.create()
.setSignatureVersion(SignatureVersion.V3)
.setSignatureAlgorithmV3(SignatureAlgorithm.ACS3_HMAC_SHA256)
).overrideConfiguration(
ClientOverrideConfiguration.create()
.setProtocol("HTTPS")
.setEndpointOverride("contactcenterai.cn-shanghai.aliyuncs.com")
).build();
public static void main(String[] args) throws Exception {
List<AnalyzeConversationRequest.Sentences> messageList = new ArrayList<>();
messageList.add(AnalyzeConversationRequest.Sentences.builder().role("agent").text("请问您想咨询五险一金哪方面的问题呢").build());
messageList.add(AnalyzeConversationRequest.Sentences.builder().role("user").text("怎么领取五险一金呢").build());
List<String> resultTypes = new ArrayList<>();
resultTypes.add("summary");
AnalyzeConversationRequest.Dialogue dialogue = AnalyzeConversationRequest.Dialogue.builder()
.sessionId("session-01")
.sentences(messageList).build();
AnalyzeConversationRequest completionParam = AnalyzeConversationRequest.builder()
.modelCode("tyxmPlus")
.resultTypes(resultTypes)
.workspaceId(workspaceId)
.appId(appId)
.dialogue(dialogue)
.requestConfiguration(RequestConfiguration.create()
.setHttpMethod(HttpMethod.POST))
.stream(true).build();
ResponseIterable<AnalyzeConversationResponseBody> x = client.analyzeConversationWithResponseIterable(completionParam);
ResponseIterator<AnalyzeConversationResponseBody> iterator = x.iterator();
String lastTxt = "";
while (iterator.hasNext()) {
AnalyzeConversationResponseBody event = iterator.next();
lastTxt = event.getText();
}
System.out.println("ALL***********************");
System.out.println(lastTxt);
System.out.println("请求成功的请求头值:");
System.out.println(x.getStatusCode());
System.out.println(x.getHeaders());
}
}
以下代码展示了如何通过同步非流式调用接口进行对话分析:
public class CcaiPaasTest {
public static void main(String[] args) throws Exception {
String accessKeyId = "YOUR_ACCESS_KEY_ID";
String accessKeySecret = "YOUR_ACCESS_KEY_SECRET";
String workspaceId = "YOUR_WORKSPACEID";
String appId = "YOUR_APPID";
Config config = new Config();
config.setAccessKeyId(accessKeyId)
.setAccessKeySecret(accessKeySecret)
.setEndpoint("contactcenterai.cn-shanghai.aliyuncs.com")
.setRegionId("cn-shanghai")
.setProtocol("HTTPS");
Client client = new Client(config);
com.aliyun.contactcenterai20240603.models.AnalyzeConversationRequest request =
new com.aliyun.contactcenterai20240603.models.AnalyzeConversationRequest();
// 设置请求参数
request.setWorkspaceId(workspaceId);
request.setAppId(appId);
request.setModelCode("tyxmPlus");
// 构建对话内容
List<AnalyzeConversationRequest.Sentences> messageList = new ArrayList<>();
messageList.add(AnalyzeConversationRequest.Sentences.builder().role("agent").text("请问您想咨询五险一金哪方面的问题呢").build());
messageList.add(AnalyzeConversationRequest.Sentences.builder().role("user").text("怎么领取五险一金呢").build());
AnalyzeConversationRequest.Dialogue dialogue = AnalyzeConversationRequest.Dialogue.builder()
.sessionId("session-01")
.sentences(messageList).build();
request.setDialogue(dialogue);
// 发起请求并处理响应
com.aliyun.contactcenterai20240603.models.AnalyzeConversationResponse response = client.analyzeConversation(request);
System.out.println(response.getBody().getText());
}
}
task_id
,则需要通过异步任务查询接口获取最终结果。cn-shanghai
),并确保Endpoint与区域匹配。通过以上步骤和代码示例,您可以轻松使用Java调用ModelScope中的相关接口。如果有进一步的需求或问题,请参考官方文档或联系技术支持。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352