以Java SDK为例,基于智谱Ai(ChatGLM)开发通用SDK组件

新知榜官方账号

2023-10-17 10:28:16

以Java SDK为例,基于智谱Ai(ChatGLM)开发通用SDK组件

本文介绍了以Java SDK为例,基于智谱Ai(ChatGLM)开发通用SDK组件的方法,包括对接鉴权文档、接口处理文档、组件开发、组件使用和应用接入等方面。同时,也探讨了如何在项目中运用SDK开发一个自己的OpenAi服务。

一、对接鉴权文档

详见https://open.bigmodel.cn/dev/api

二、接口处理文档

详见https://open.bigmodel.cn/dev/api#chatglm_lite

三、组件开发

在考虑到抽象和设计原则下,采用了会话模型结构进行工程框架设计。把程序的调用抽象为一次会话,而会话的创建则交给工厂。通过工厂屏蔽使用细节,在使用上简化调用,尽可能让外部最少知道原则。

1.工程结构

工程非常注重会话的设计和使用,因为框架的根基搭建好以后,扩展各项功能就会有迹可循。大部分代码就是因为早期没有考虑好框架,最后功能来了被填充的很乱。

2.会话流程

会话流程以工厂创建Session为入口点进行使用,其他的操作都在组件内自己处理好。

3.代码举例

@Override
public OpenAiSession openSession() {
    //1.日志配置
    HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
    httpLoggingInterceptor.setLevel(configuration.getLevel());
    //2.开启Http客户端
    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .addInterceptor(httpLoggingInterceptor)
            .addInterceptor(new OpenAiHTTPInterceptor(configuration))
            .connectTimeout(configuration.getConnectTimeout(), TimeUnit.SECONDS)
            .writeTimeout(configuration.getWriteTimeout(), TimeUnit.SECONDS)
            .readTimeout(configuration.getReadTimeout(), TimeUnit.SECONDS)
            .build();
    configuration.setOkHttpClient(okHttpClient);
    //3.创建API服务
    IOpenAiApi openAiApi = new Retrofit.Builder()
            .baseUrl(configuration.getApiHost())
            .client(okHttpClient)
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .addConverterFactory(JacksonConverterFactory.create())
            .build()
            .create(IOpenAiApi.class);
    configuration.setOpenAiApi(openAiApi);
    return new DefaultOpenAiSession(configuration);
}

四、组件使用

详见源代码中的ApiTest类。

五、应用接入

详见源代码中的ChatGLMSDKConfig类。

本页网址:https://www.xinzhibang.net/article_detail-17021.html

寻求报道,请 点击这里 微信扫码咨询

关键词

Java SDK 智谱Ai ChatGLM SDK组件 AI能力 开发者文档

分享至微信: 微信扫码阅读

相关工具

相关文章