Java后端半小时接入国产AI大模型——离职程序员的AI自救第一弹

0 阅读2分钟

背景:本人也是在经历30岁这个门槛了,面对现在Ai时代浪潮,大环境不好,依旧决绝的选择离职,不想CRUD到优化了,现在很迷茫,我想很多人可能都有都有这一阶段,也是最难熬的阶段。现在也是决定学AI丰富自己的能力,休息一段时间开始找工作。

既然决定要自学Ai,那么最快的方式就是边学边练,今天动手开始写第一个调用API程序。

也是最简单的一个,参照国内各大模型的文档即可分分钟上手。

我这里选的是智谱:送额度、兼容OpenAI、国内快。 (为什么不选ds?因为不是新号了,没免费额度~)

文字步骤:

注册智谱AI,拿到API Key。

附智谱模型开发文档:docs.bigmodel.cn/cn/guide/st…

登录在这里插入图片描述在这里插入图片描述

自建简单的Spring Boot项目,加依赖(智谱AI zai-sdk)。

	   <dependency>
            <groupId>ai.z.openapi</groupId>
            <artifactId>zai-sdk</artifactId>
            <version>0.3.3</version>
        </dependency>

写一个ChatService,调用智谱的/v1/chat/completions。 (此处的代码就是智谱官方文档上的api)

public String chatZp(String userMessage) {
        try {
            // 初始化客户端
            ZhipuAiClient client = ZhipuAiClient.builder().ofZHIPU()
                    .apiKey("18246a7cd356435fa5fb5259e69d0714.bXoeD3yTV2f0dYmi")
                    .build();
            // 创建聊天完成请求
            ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
                    .model("glm-5.1")
                    .messages(Arrays.asList(
                            ChatMessage.builder()
                                    .role(ChatMessageRole.USER.value())
                                    .content("你是一个友好的AI助手,用中文回答。").content(userMessage)
                                    .build()
                    ))
                    .stream(false)
                    .temperature(0.6f)
                    .maxTokens(1024)
                    .build();
            // 发送请求
            ChatCompletionResponse response = client.chat().createChatCompletion(request);
            // 获取回复
            System.out.println(response.getData().getChoices().get(0).getMessage());
            ChatMessage message = response.getData().getChoices().get(0).getMessage();
            return (String) message.getContent();
        } catch (Exception e) {
            log.error("调用DeepSeek API失败", e);
            return "系统异常:" + e.getMessage();
        }
    }

写ChatController,暴露/chat接口。 ChatResponse是自己写的实体。

@PostMapping("/sendZp")
    public ChatResponse sendMessageZp(@RequestBody ChatRequest request) {
        ChatResponse response = new ChatResponse();

        if (request.getMessage() == null || request.getMessage().trim().isEmpty()) {
            response.setSuccess(false);
            response.setErrorMsg("消息不能为空");
            return response;
        }

        String reply = deepSeekService.chatZp(request.getMessage());
        response.setSuccess(true);
        response.setReply(reply);
        return response;
    }

Postman测试成功截图。

在这里插入图片描述

遇到的坑:API地址是open.bigmodel.cn/api/paas/v4…

下一步计划:基于这个API,做一个“对自己有用”的功能:简历优化助手,正好方便自己找工作。

共勉~