首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【开箱即用】一分钟使用java对接海外大模型gpt等对话模型,实现打字机效果

【开箱即用】一分钟使用java对接海外大模型gpt等对话模型,实现打字机效果

原创
作者头像
用户8911933
修改2025-09-18 10:17:12
修改2025-09-18 10:17:12
410
举报

java如何快速对接海外大模型实现打字机效果-chat模式

前言

随着海外模型的热度胜起,海外各种模型开始兴起,但是由于初学者对环境的部署和海外支付阻扰,对海外模型学习难度增加,接下来会介绍如何各种方式快速调用海外模型,并且给出案例和效果。


一、如何使用原生http调用?

1. 引入http框架okhttpclient及其相应的包

代码语言:java
复制
<dependency>

   <groupId>org.projectlombok</groupId>

    <artifactId>lombok</artifactId>

    <version>1.18.36</version>

</dependency>



<dependency>

    <groupId>com.squareup.okhttp3</groupId>

    <artifactId>okhttp</artifactId>

    <version>4.12.0</version>

</dependency>



<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>1.2.83</version>

</dependency>

2.非流

代码语言:java
复制
public class GptChatDemo {



    @Data

    @NoArgsConstructor

    @AllArgsConstructor

    public static class GptChatRequest {

        private String model;

        private List<Message> messages;

        private boolean stream;

    }





    @Data

    @NoArgsConstructor

    @AllArgsConstructor

    public static class Message {

        private String role;

        private String content;

    }



    private static String url = "https://www.apiplus.online/v1/chat/completions";

    private static String token = "sk-aZ8OTonNtI7jo5bDQtwcbTsg0z4giYiH9Ax6wleLpRGlX4NP"; // 替换为实际的API令牌





    public static void main(String[] args) throws IOException {

        Message message = new Message();

        message.setRole("user");

        message.setContent("你好");

        GptChatRequest gptChatRequest = new GptChatRequest();

        gptChatRequest.setModel("gpt-4o-mini");

        gptChatRequest.setStream(false);

        gptChatRequest.setMessages(Collections.singletonList(message));



        String response = sendNoStreamRequest(url, token, gptChatRequest);

        System.out.println(response);



        gptChatRequest.setStream(true);

        sendStreamRequest(url, token, gptChatRequest);

    }





    private static void sendStreamRequest(String url, String apiKey, GptChatRequest gptChatRequest) throws IOException {

        // 实现发送请求的逻辑

        String jsonString = JSONObject.toJSONString(gptChatRequest);

        RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonString);

        Request.Builder builder = new Request.Builder().url(url).method("POST", body)

                .addHeader("Authorization", "Bearer " + apiKey);

        Request request = builder.build();

        OkHttpClient client = new OkHttpClient.Builder()

                .protocols(Collections.singletonList(Protocol.HTTP\_1\_1))

                .connectionPool(new ConnectionPool(8000, 300, TimeUnit.SECONDS))

                .readTimeout(600, TimeUnit.SECONDS)

                .writeTimeout(600, TimeUnit.SECONDS)

                .build();

        Response execute = client.newCall(request).execute();

        ResponseBody responseBody = execute.body();

        Reader reader = Objects.requireNonNull(responseBody).charStream();

        BufferedReader bufferedReader = new BufferedReader(reader);



        String line = null;

        while ((line = bufferedReader.readLine()) != null) {

            System.out.println(line);

        }

    }





    private static String sendNoStreamRequest(String url, String apiKey, GptChatRequest gptChatRequest) throws IOException {

        // 实现发送请求的逻辑

        String jsonString = JSONObject.toJSONString(gptChatRequest);

        RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonString);

        Request.Builder builder = new Request.Builder().url(url).method("POST", body)

                .addHeader("Authorization", "Bearer " + apiKey);

        Request request = builder.build();

        OkHttpClient client = new OkHttpClient.Builder()

                .protocols(Collections.singletonList(Protocol.HTTP\_1\_1))

                .connectionPool(new ConnectionPool(8000, 300, TimeUnit.SECONDS))

                .readTimeout(600, TimeUnit.SECONDS)

                .writeTimeout(600, TimeUnit.SECONDS)

                .build();

        try (Response response = client.newCall(request).execute()) {

            return response.body().string();

        }

    }

}

总结

以上可以无缝的使用java调用非流的,并且给出了相应的使用key去使用

github代码仓库

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • java如何快速对接海外大模型实现打字机效果-chat模式
  • 前言
  • 一、如何使用原生http调用?
    • 1. 引入http框架okhttpclient及其相应的包
    • 2.非流
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档