百度智能云—千帆 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,更加详细完善的功能可以自己去实现

相关推荐
一嘴一个橘子21 小时前
spring-aop 的 基础使用 - 4 - 环绕通知 @Around
java
图生生21 小时前
基于AI的商品场景图批量生成方案,助力电商大促效率翻倍
人工智能·ai
小毅&Nora21 小时前
【Java线程安全实战】⑨ CompletableFuture的高级用法:从基础到高阶,结合虚拟线程
java·线程安全·虚拟线程
冰冰菜的扣jio21 小时前
Redis缓存中三大问题——穿透、击穿、雪崩
java·redis·缓存
小璐猪头1 天前
专为 Spring Boot 设计的 Elasticsearch 日志收集 Starter
java
ps酷教程1 天前
HttpPostRequestDecoder源码浅析
java·http·netty
闲人编程1 天前
消息通知系统实现:构建高可用、可扩展的企业级通知服务
java·服务器·网络·python·消息队列·异步处理·分发器
栈与堆1 天前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust
OC溥哥9991 天前
Paper MinecraftV3.0重大更新(下界更新)我的世界C++2D版本隆重推出,拷贝即玩!
java·c++·算法
星火开发设计1 天前
C++ map 全面解析与实战指南
java·数据结构·c++·学习·算法·map·知识