java调用百度千帆demo

可以使用SpringAI进行调用也可以使用官方提供的方法,之前有SpringAI调用AI的案例改一改内容就可以用,这里就采用官方的方式进行调用
首先去百度千帆应用处创建一个应用
百度千帆应用:https://console.bce.baidu.com/ai_apaas/personalSpace/app
在这里插入图片描述
复制此处的应用ID 就是 APPID 留着调用时使用
根据自己的业务配置应用的角色
在这里插入图片描述
点击右上角更新发布 或者 发布 ,发布成功后再API处可以查看官方的Demo
在这里插入图片描述

鉴权:https://console.bce.baidu.com/iam/#/iam/apikey/list
在此处创建一个鉴权的API-KEY ,代码调用使用

在这里插入图片描述
然后开始Demo

pom文件添加依赖

            <!--百度千帆调用API-->
            <dependency>
                <groupId>com.baidubce</groupId>
                <artifactId>appbuilder</artifactId>
                <version>1.0.0</version>
            </dependency>

替换自己的 APPID 和 API-KEY

public static void main(String[] args)throws Exception  {
     final String appId = "APPID";
     final String authorization = "Bearer API-KEY";
    System.setProperty("APPBUILDER_TOKEN", authorization);
    AppBuilderClient builder = new AppBuilderClient(appId);
    String conversationId = builder.createConversation();
    // 填写上传文件路径
    String fileId = builder.uploadLocalFile(conversationId, "文件位置");
    // 输入query
    // 注意file_ids不是必填项,如果不需要引用特定文档,则将new String[]{fileId}更换为new String[]{}即可
    AppBuilderClientIterator itor = builder.run("提问内容", conversationId, new String[]{fileId}, false);
    StringBuilder answer = new StringBuilder();
    // itor.hasNext()返回false时,表示流式调用结束
    while(itor.hasNext())
    {
        AppBuilderClientResult response = itor.next();
        answer.append(response.getAnswer());
    }
    System.out.println("-----------------试题-----------------JSON格式------------");
    System.out.println(answer);

}

在这里插入图片描述

### 如何使用 Java 调用模型 API 为了通过 Java 实现对百度模型调用,可以按照以下方式完成环境配置和代码实现。以下是详细的说明: #### 环境准备 在开始之前,需要确保已经完成了必要的准备工作,包括注册并登录到模型平台账户,并获取 `AppID`、`APIKey` 和 `SecretKey` 的访问凭证[^5]。 #### 示例代码 下面是一个完整的 Java 示例代码,用于演示如何调用模型 API 并发送请求: ```java import okhttp3.*; public class QianFanAPIClient { private static final String ACCESS_TOKEN_URL = "https://aip.baidubce.com/oauth/2.0/token"; private static final String MODEL_API_URL = "https://aip.baidu.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat"; public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); // 获取 Access Token RequestBody requestBodyForToken = new FormBody.Builder() .add("grant_type", "client_credentials") .add("client_id", "your_api_key") // 替换为实际的 API Key .add("client_secret", "your_secret_key") // 替换为实际的 Secret Key .build(); Request requestForToken = new Request.Builder() .url(ACCESS_TOKEN_URL) .post(requestBodyForToken) .build(); Response responseForToken = client.newCall(requestForToken).execute(); if (!responseForToken.isSuccessful()) throw new IOException("Unexpected code " + responseForToken); String responseBodyForToken = responseForToken.body().string(); String accessToken = extractAccessToken(responseBodyForToken); // 提取 access_token 字段 // 使用 Access Token 发送模型请求 MediaType mediaType = MediaType.parse("application/json"); String jsonRequestBody = "{ \"message\": [{\"role\":\"user\",\"content\":\"你好\"},{\"role\":\"assistant\",\"content\":\"你好!有什么可以帮助您的吗?\"}] }"; RequestBody requestBodyForModel = RequestBody.create(jsonRequestBody, mediaType); Request requestForModel = new Request.Builder() .url(MODEL_API_URL + "?access_token=" + accessToken) .post(requestBodyForModel) .build(); Response responseForModel = client.newCall(requestForModel).execute(); if (!responseForModel.isSuccessful()) throw new IOException("Unexpected code " + responseForModel); System.out.println(responseForModel.body().string()); } private static String extractAccessToken(String tokenResponse) { try { int startIdx = tokenResponse.indexOf("\"access_token\":\"") + "\"access_token\":\"".length(); int endIdx = tokenResponse.indexOf('\"', startIdx); return tokenResponse.substring(startIdx, endIdx); } catch (Exception e) { throw new RuntimeException("Failed to parse access token from response: " + tokenResponse, e); } } } ``` 上述代码实现了两个主要功能: 1. **获取 Access Token**:通过提供 `APIKey` 和 `SecretKey` 来换取有效的 `Access Token`。 2. **调用模型 API**:利用获取到的 `Access Token` 向指定 URL 发送 POST 请求,传递 JSON 数据作为输入参数[^2]。 #### 注意事项 - 需要替换代码中的占位符 `"your_api_key"` 和 `"your_secret_key"` 为你自己的密钥值。 - 如果遇到网络问题或权限不足的情况,请确认是否已开通相应的服务配额。 - 推荐引入第三方 HTTP 客户端库(如 OkHttp 或 Apache HttpClient),以便简化开发流程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值