All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hn.robot.tuling.TuLingMsg Maven / Gradle / Ivy

There is a newer version: 1.0.18
Show newest version
package com.hn.robot.tuling;

import lombok.Data;
import java.util.HashMap;
import java.util.Map;

/**
 * 图灵机器人 请求消息实体
 */
@Data
public class TuLingMsg {

    /**
     * 输入类型:0-文本(默认)、1-图片、2-音频
     */
    private Integer reqType;

    /**
     * 输入信息
     */
    private Map perception;

    /**
     * 用户参数
     */
    private TuLingUserInfo userInfo;

    public TuLingMsg() {
        this.userInfo = new TuLingUserInfo();
        this.perception = new HashMap<>(4);
    }

    public void setReqType(ReqType reqType) {
        this.reqType = reqType.type;
    }

    /**
     * 文本信息
     * @param text 文本信息
     */
    public void setText(String text) {
        Map textMap = new HashMap<>();
        textMap.put("text",text);
        perception.put("inputText",textMap);
    }

    /**
     * 图片信息
     * @param url 图片信息
     */
    public void setImage(String url) {
        Map imageMap = new HashMap<>();
        imageMap.put("url",url);
        perception.put("inputImage",imageMap);
    }

    /**
     * 音频信息
     * @param url 音频信息
     */
    public void setMedia(String url) {
        Map mediaMap = new HashMap<>();
        mediaMap.put("url",url);
        perception.put("inputMedia",mediaMap);
    }

    /**
     * 客户端属性
     * @param location 地理位置信息
     */
    public void setLocation(Location location) {
        Map selfInfo = new HashMap<>();
        selfInfo.put("location",location);
        perception.put("selfInfo",selfInfo);
    }

    /**
     * 机器人标识
     * @param apiKey 机器人标识
     */
    public void setApiKey(String apiKey) {
        userInfo.apiKey = apiKey;
    }

    /**
     * 长度小于等于32位 用户唯一标识
     * @param userId 用户唯一标识
     */
    public void setUserId(String userId) {
        userInfo.userId = userId;
    }

    /**
     * 长度小于等于64位 群聊唯一标识
     * @param groupId 群聊唯一标识
     */
    public void setGroupId(String groupId) {
        userInfo.groupId = groupId;
    }

    /**
     * 长度小于等于64位 群内用户昵称
     * @param userIdName 群内用户昵称
     */
    public void setUserIdName(String userIdName) {
        userInfo.userIdName = userIdName;
    }

    @Data
    class TuLingUserInfo{
        /**
         * 32位 机器人标识
         */
        private String apiKey;
        /**
         * 长度小于等于32位 用户唯一标识
         */
        private String userId;
        /**
         * 长度小于等于64位 群聊唯一标识
         */
        private String groupId;
        /**
         * 长度小于等于64位 群内用户昵称
         */
        private String userIdName;
    }

    @Data
    public static class Location{
        /**
         * 所在城市
         */
        private String city;
        /**
         * 省份
         */
        private String province;
        /**
         * 街道
         */
        private String street;

    }

    /**
     * 输入类型
     */
    public enum ReqType{
        /**
         * 文本(默认)
         */
        TEXT(0),
        /**
         * 图片
         */
        IMAGE(1),
        /**
         * 音频
         */
        MEDIA(2);

        private int type;

        ReqType(int type) {
            this.type = type;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy