官方代码可以去查看https://github.com/MetaGLM/zhipuai-sdk-java-v4/blob/main/src/test/java/com/zhipu/oapi/AllToolsTest.java
效果展示
提问效果:
回答效果:
1、Maven配置
<dependency><groupId>cn.bigmodel.openapi</groupId><artifactId>oapi-java-sdk</artifactId><version>release-V4-2.3.0</version></dependency>
2、yml配置
zm:zhipu:api-key: "申请一个key"
3、工具实体
package com.zm.naviTech.config;import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;/** @Author 落梨* @Date 2024-09-14 13:42* @Description:**/
@Configuration
@Data
public class ZhiPuKey {@Value("${zm.zhipu.api-key}")private String ApiKey;
}
4、controller层
注意这里的callWithMessage里的方法可以自己设置自定义参数。
流式方法这里我做了内容的组合,方便插入数据库,后面插入的mapper可以不用看了,按照你自己的业务逻辑去处理,主要看异步流式方式。
package com.zm.naviTech.AIController;import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.zhipu.oapi.ClientV4;
import com.zhipu.oapi.Constants;
import com.zhipu.oapi.service.v4.model.*;
import com.zm.naviTech.config.ZhiPuKey;
import com.zm.naviTech.constants.MessageDirectionConstant;
import com