长春启做网站多少,站点查询,php做网站好学吗,现在网站如何做优化目前主流模型厂商的 SDK 并没有很好的支持 JAVA 环境#xff0c;主流还是使用的 Python #xff0c;如果希望将 AI 功能集成到业务中来#xff0c;则需要找找有没有一些现成的开源项目#xff0c;但是这种项目一般需要谨慎使用#xff0c;以防有偷取 app_key 等风险问题 前… 目前主流模型厂商的 SDK 并没有很好的支持 JAVA 环境主流还是使用的 Python 如果希望将 AI 功能集成到业务中来则需要找找有没有一些现成的开源项目但是这种项目一般需要谨慎使用以防有偷取 app_key 等风险问题 前言
虽然之前有写过 SpringBoot3.x 整合 Spring AI 但是笔者后来发现如果要添加免费的谷歌 Gemini 模型那简直就是灾难。
首先我们需要安装 Google 的 sdk就是我们需要使用到 gcloud 这个 shell 来配置我们的账号信息。 其次我们还需要配置很多认证相关的内容有些可能也不知道从哪里找到的配置项。 最最重要的是如果我们希望使用多账号的时候真不知道要怎么处理这明显不是我们想要的 SDK 应用。
于是笔者通过官方提供的 REST API 自己实现了一套 SDK主要使用 okhttp3 对 API 进行了封装支持多轮对话(历史记录)、多模态(图片识别)和流式对话等。
Gemini
使用客户端 client 方式满足多用户的使用场景每个客户端需要提供账号信息。 核心代码为 REST API 构建所需链接和参数并对返回信息进行保存处理实现多轮对话。 流式对话中通过监听数据流的返回使用自定义 Listener 接口将所需内容带回到调用者。 OpenAi
对于 OpenAi 的 sdk 也进行了一层 REST API 的封装因为像国内很多的大模型厂商的 API 接口基本兼容基本上只需要更换接口域名即可直接使用。
以下为 Kimi 的 REST API 接口
curl https://api.moonshot.cn/v1/chat/completions \-H Content-Type: application/json \-H Authorization: Bearer $MOONSHOT_API_KEY \-d {model: moonshot-v1-8k,messages: [{role: system, content: 你是 Kimi由 Moonshot AI 提供的人工智能助手你更擅长中文和英文的对话。你会为用户提供安全有帮助准确的回答。同时你会拒绝一切涉及恐怖主义种族歧视黄色暴力等问题的回答。Moonshot AI 为专有名词不可翻译成其他语言。},{role: user, content: 你好我叫李雷11等于多少}],temperature: 0.3}
所以在使用时只需要设置 baseUrl 为 https://api.moonshot.cn 即可
OpenAiAccount account OpenAiAccount.builder().apiKey(apiKey).baseUrl(https://api.moonshot.cn).build();OpenAiGenerationConfig generationConfig OpenAiGenerationConfig.builder().temperature(0.3).build();OpenAiClient client new OpenAiClient(account);
OpenAiTextResponse textResponse client.chat(你是谁, generationConfig);
System.out.println(textResponse);
项目仓库
目前项目已发布到 Maven 中央仓库只需要在项目 pom 文件中引入即可目前最新版本为 0.1.0
dependencygroupIdorg.liurb.ai.sdk/groupIdartifactIdjava-ai-sdk/artifactIdversion${version}/version
/dependency
GitHub - lrbmike/java-ai-sdk: AI APIs SDK for JAVA. Provide an easy way to improve development. Support Google Gemini, OpenAi