Skip to main content

Best practices for summary generation (including summaries, titles, and keywords)

This topic describes best practices for generating summaries using Tongyi Xiaomi CCAI-AIO conversation analysis.

Scenarios

You can use the summary generation capabilities of Tongyi Xiaomi CCAI-AIO to automatically extract important information from documents, such as conversation summaries, titles, and keywords. This improves work efficiency and reduces manual processing costs.

Solution overview

You can generate summaries using Tongyi Xiaomi CCAI-AIO conversation analysis in just a few steps:
  1. Activate Alibaba Cloud Model Studio: First, activate the Alibaba Cloud Model Studio service. After the service is activated, you can test models in the Playground, call models, or use application services.
  2. Activate and create a Tongyi Xiaomi CCAI-AIO conversation analysis application: Create a conversation analysis application in Alibaba Cloud Model Studio and obtain the credentials required to call the application's API.
  3. Implement conversation analysis using the API: Install the software development kit (SDK), fill in the application information and conversation content for the API, and then generate a summary.

Solution architecture

image

Activate Alibaba Cloud Model Studio

To activate the Alibaba Cloud Model Studio service, see Product Activation.

Activate and create a Tongyi Xiaomi CCAI-AIO conversation analysis application

To activate Tongyi Xiaomi CCAI-AIO conversation analysis and create an application, see the User Guide.

Obtain an AccessKey ID and AccessKey secret

If you have not created an AccessKey ID and AccessKey secret, see Obtain an AccessKey and AgentKey. If you use a RAM user to call the API, see Use a RAM user for Tongyi Xiaomi CCAI conversation analysis and grant permissions.

Obtain a Workspace ID and App ID

For more information, see Obtain an App ID and Workspace ID.

Install the SDK

  • Java
<dependency><groupId>com.aliyun</groupId><artifactId>contactcenterai20240603</artifactId><version>3.6.4</version></dependency>

Code example

Replace YOUR_WORKSPACEID, YOUR_ACCESS_KEY_ID, YOUR_ACCESS_KEY_SECRET, and YOUR_APPID in the example with your actual workspace ID, AccessKey ID, AccessKey secret, and app ID to ensure that the code runs correctly. To prevent key leakage, you can set the AccessKey ID and AccessKey secret as environment variables.
  • Synchronous non-streaming call
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.contactcenterai20240603.Client;
import com.aliyun.contactcenterai20240603.models.*;
import com.aliyun.teaopenapi.models.Config;
import java.util.*;

public class CcaiPaasTest {

    public static void main(String[] args) throws Exception {
        // Set environment variables to prevent AccessKey pair leaks.
        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();

        com.aliyun.contactcenterai20240603.models.AnalyzeConversationRequest.AnalyzeConversationRequestDialogue dialogue = new com.aliyun.contactcenterai20240603.models.AnalyzeConversationRequest.AnalyzeConversationRequestDialogue();
         // Conversation content
        List<AnalyzeConversationRequest.AnalyzeConversationRequestDialogueSentences> sentenceList = new ArrayList<>();
        AnalyzeConversationRequest.AnalyzeConversationRequestDialogueSentences sentences1 = new AnalyzeConversationRequest.AnalyzeConversationRequestDialogueSentences();
        sentences1.setRole("agent");
        sentences1.setText("Hello, this is XXX Insurance Company. How can I help you?");
        sentenceList.add(sentences1);

        AnalyzeConversationRequest.AnalyzeConversationRequestDialogueSentences sentences2 = new AnalyzeConversationRequest.AnalyzeConversationRequestDialogueSentences();
        sentences2.setRole("user");
        sentences2.setText("Hi, I'd like to apply for health insurance. Can you tell me about the options?");
        sentenceList.add(sentences2);

        dialogue.setSentences(sentenceList);
        dialogue.setSessionId("session-adslsddxxxx");
        request.setDialogue(dialogue);

        // summary indicates a summary task
        // keywords indicates keyword extraction
        // title indicates title extraction
        request.setResultTypes(Arrays.asList("summary"));
        request.setStream(false);

        com.aliyun.contactcenterai20240603.models.AnalyzeConversationResponse response = client.analyzeConversation(workspaceId, appId, request);
        System.out.println(JSONObject.toJSONString(response));
    }

}