百度智能云—千帆 ModelBuilder API的简单调用(Java)

百度简介

百度(Baidu)是拥有强大互联网基础的领先AI公司。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。

"百度"二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于2000年1月1日在中关村创建了百度公司。

百度拥有数万名研发工程师,这是中国乃至全球都顶尖的技术团队。这支队伍掌握着世界上领先的搜索引擎技术,使百度成为掌握世界尖端科学核心技术的中国高科技企业,也使中国成为美国、俄罗斯和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

该简介引自百度百科:百度(百度公司)_百度百科

简单实现千帆 ModelBuilder API的调用

1、注册百度云

进入百度智能云-云智一体深入产业官网完成注册

注意注册完成后一定要完成个人认证,不然无法使用

2、获取API接口

  • 完成注册后点击立即体验即可进入千帆大模型平台
  • 进入应用接入页面后点击创建应用
  • 输入该应用名称和描述后,点击确定即可完成创建
  • 可以看到这里就会有我刚创建完毕的应用,我们就可以在我们的程序中通过API key和Secret Key来调用该应用
  • 具体使用方式可见推理服务API介绍 - ModelBuilder官方API使用文档

3、简单的案例实现

  • 在pom.xml文件中导入下列依赖
java 复制代码
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.1</version> <!-- 请检查最新版本 -->
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.8</version> <!-- 请检查最新版本 -->
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20231013</version>
        </dependency>
  • 创建一个简单的案例
java 复制代码
import okhttp3.*;
import java.io.IOException;
import java.util.Scanner;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonArray;

public class BaiduAIChat {

    private static final OkHttpClient client = new OkHttpClient();

    public static String getAccessToken() throws IOException {
        //格式为https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API Key&client_secret=Secret Key
        //注意这里更换为自己的API Key和Secret Key
        String url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=DJufZMEjworMMvTcCgukat4z&client_secret=LlEz19TXicOg5xxuwnjHS46IShdHtZ2W";

        Request request = new Request.Builder()
                .url(url)
                .post(RequestBody.create(null, new byte[0]))
                .build();

        try (Response response = client.newCall(request).execute()) {
            String responseBody = response.body().string();
            JsonObject jsonObject = new Gson().fromJson(responseBody, JsonObject.class);
            return jsonObject.get("access_token").getAsString();
        }
    }

    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入您的问题:");
        String userInput = scanner.nextLine();
        scanner.close();

        String accessToken = getAccessToken();
        //百度云api https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/自己需要使用的服务
        //服务名称可在应用详情页面查看
        String url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + accessToken;

        JsonObject payload = new JsonObject();
        JsonArray messages = new JsonArray();
        JsonObject message = new JsonObject();
        message.addProperty("role", "user");
        message.addProperty("content", userInput);
        messages.add(message);
        payload.add("messages", messages);
        payload.addProperty("stream", false);
        payload.addProperty("temperature", 0.9);
        payload.addProperty("top_p", 0.7);
        payload.addProperty("penalty_score", 1);
        payload.addProperty("system", "高等数学老师");
        payload.addProperty("max_output_tokens", 4096);
        payload.addProperty("frequency_penalty", 0.1);
        payload.addProperty("presence_penalty", 0.0);

        RequestBody body = RequestBody.create(payload.toString(), MediaType.get("application/json; charset=utf-8"));

        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();

        try (Response response = client.newCall(request).execute()) {
            String responseBody = response.body().string();
            JsonObject responseJson = new Gson().fromJson(responseBody, JsonObject.class);
            if (responseJson.has("result")) {
                System.out.println(responseJson.get("result").getAsString());
            } else {
                System.out.println("没有返回结果或结果格式不正确。");
            }
        }
    }
}

具体如何选择API url中的服务可见API列表 - ModelBuilder官方介绍文档,根据其中功能介绍选择适合自己程序的api

4、使用结果示例

这里只是一个简单的demo,更加详细完善的功能可以自己去实现

相关推荐
极客先躯9 分钟前
高级java每日一道面试题-2025年4月13日-微服务篇[Nacos篇]-Nacos如何处理网络分区情况下的服务可用性问题?
java·服务器·网络·微服务·nacos·高级面试
pwzs18 分钟前
Spring MVC 执行流程全解析:从请求到响应的七步走
java·后端·spring·spring mvc
我该如何取个名字1 小时前
Mac配置Java的环境变量
java·开发语言·macos
kkkkatoq1 小时前
Java中的锁
java·开发语言
界面开发小八哥1 小时前
「Java EE开发指南」用MyEclipse开发EJB 3无状态会话Bean(二)
java·ide·java-ee·eclipse·myeclipse
LCY1331 小时前
spring security +kotlin 实现oauth2.0 认证
java·spring·kotlin
soulermax2 小时前
数字ic后端设计从入门到精通2(含fusion compiler, tcl教学)
java·linux·服务器
我的代码永没有bug2 小时前
day1-小白学习JAVA---JDK安装和环境变量配置(mac版)
java·学习·macos
王有品2 小时前
Spring MVC 一个简单的多文件上传
java·spring·mvc
MCP星球2 小时前
我们离Agent终极形态又近了一步:全球首个支持谷歌A2A(Agent-to-Agent)协议的智能体注册网站上线Product Hunt,未来智能体协作网络
ai·agent·智能体·智能体协作·a2a·a2a协议·agent network·智能体网络·谷歌a2a·agent2agent