Java实战:基于腾讯元器轻松搭建历史人物介绍API案例

204 阅读3分钟

一、腾讯元器介绍

image.png

“腾讯元器”是基于腾讯混元大模型的一站式智能体制作平台,大家可以基于腾讯元器平台快速搭建满足自己使用需求的智能体。并且还可以通过接口的方式集成到个人的其他服务,比如微信小程序、个人专属聊天机器人、微信客服、QQ!智能体等等。

官网:yuanqi.tencent.com/

二、完整的对接流程

注册登录自己的腾讯元器

创建自己的专属智能体

使用Java编写API接口

2.1 注册登录腾讯元器

image.png

首先需要登录腾讯元器官网,然后注册账户,当然如果你之前已经注册过腾讯元器的账户直接登录即可。

2.2 创建自己的专属智能体

因为个人对历史比较感兴趣,所以创建了一个【历史人物知多少】的智能体,主要是实现输入历史人物姓名,可以快速获取生平、历史事迹、评价等,让你轻轻松松掌握历史那些知名人物的一生。具体创建后的效果如下图:

image.png

关于元器的使用说明大家可以参考官方文档:

docs.qq.com/aio/p/scxms…

2.3 使用Java编写API接口

智能体创建成功后需要获取到智能体的ID和Token信息作为API接口请求使用,目前有一亿token额度,开发阶段完全够用。具体如下图:

image.png

image.png

创建一个SpringBoot API项目,引入Http请求依赖库,这里使用Hutool工具类,在pom.xml文件添加依赖库

<dependency>
          <groupId>cn.hutool</groupId>
          <artifactId>hutool-all</artifactId>
          <version>5.8.16</version>
 </dependency>

新建一个请求工具类,主要代码如下:

public static String GetYuanQiContent(String chat){
        String url="https://open.hunyuan.tencent.com/openapi/v1/agent/chat/completions";     
        String para="{\n" +
                "    "assistant_id": "你的智能体Id",\n" +
                "\t"user_id": "xiaoming",\n" +
                "    "stream": false,\n" +
                "    "messages": [\n" +
                "        {\n" +
                "            "role": "user",\n" +
                "            "content": [\n" +
                "                {\n" +
                "                    "type": "text",\n" +
                "                    "text": ""+chat+""\n" +
                "                }\n" +
                "            ]\n" +
                "        }\n" +
                "    ]\n" +
                "}\n";
        HashMap<String, String> headers = new HashMap<>();//存放请求头,可以存放多个请求头
        headers.put("Authorization", "Bearer 你的智能体Token");
        headers.put("X-Source", "openapi");
        headers.put("Content-Type", "application/json");
        String result=HttpUtil.createPost(url).addHeaders(headers).body(para).execute().body();
        System.out.println(result);
       return result;
    }

请求参数如下图:

image.png

返回参数示例:

{
"id": "xxxxxxx",
"created": 1735004908,
"choices": [{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "好的,那我给你介绍一位有趣的历史人物——唐代诗人李白。他被誉为“诗仙”,性格豪放不羁,喜欢饮酒作诗。传说他醉酒后曾让高力士为其脱靴,杨贵妃为其磨墨。他的诗作飘逸洒脱,如《将进酒》更是展现了他对自由生活的向往。",
"steps": [{
"role": "assistant",
"content": "好的,那我给你介绍一位有趣的历史人物——唐代诗人李白。他被誉为“诗仙”,性格豪放不羁,喜欢饮酒作诗。传说他醉酒后曾让高力士为其脱靴,杨贵妃为其磨墨。他的诗作飘逸洒脱,如《将进酒》更是展现了他对自由生活的向往。",
"usage": {
"prompt_tokens": 299,
"completion_tokens": 74,
"total_tokens": 373
},
"time_cost": 11817
}]
}
}],
"assistant_id": "xxxxxx",
"usage": {
"prompt_tokens": 299,
"completion_tokens": 74,
"total_tokens": 373
}
}

注意:建议智能体Id和Token信息放在配置文件里面防止泄露,或者被别人调用造成损失。

新建接口控制器主要代码如下:

/**
     * 获取历史人物介绍
     * @param chat
     * @return
     * @throws IOException
     */
    @PostMapping("getHistoryContent")
    public String getHistoryContent(@RequestParam String chat) throws IOException {

        String result= HttpfUtils.get(chat);
        // 返回响应实体
        return result;
    }