码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JAVA SDK 整合 AI 大语言模型


    目前主流模型厂商的 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 接口 

    1. curl https://api.moonshot.cn/v1/chat/completions \
    2. -H "Content-Type: application/json" \
    3. -H "Authorization: Bearer $MOONSHOT_API_KEY" \
    4. -d '{
    5. "model": "moonshot-v1-8k",
    6. "messages": [
    7. {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"},
    8. {"role": "user", "content": "你好,我叫李雷,1+1等于多少?"}
    9. ],
    10. "temperature": 0.3
    11. }'

    所以在使用时只需要设置 baseUrl 为 "https://api.moonshot.cn" 即可

    1. OpenAiAccount account = OpenAiAccount.builder().apiKey(apiKey).baseUrl("https://api.moonshot.cn").build();
    2. OpenAiGenerationConfig generationConfig = OpenAiGenerationConfig.builder().temperature(0.3).build();
    3. OpenAiClient client = new OpenAiClient(account);
    4. OpenAiTextResponse textResponse = client.chat("你是谁", generationConfig);
    5. System.out.println(textResponse);

    项目仓库

    目前项目已发布到 Maven 中央仓库,只需要在项目 pom 文件中引入即可,目前最新版本为 0.1.0

    1. <dependency>
    2. <groupId>org.liurb.ai.sdkgroupId>
    3. <artifactId>java-ai-sdkartifactId>
    4. <version>${version}version>
    5. dependency>

    GitHub - lrbmike/java-ai-sdk: AI APIs SDK for JAVA. Provide an easy way to improve development. Support Google Gemini, OpenAi

     

  • 相关阅读:
    车辆工程的入门学习
    TikTok Shop美国本土店VS跨境店,如何选择?有何区别?
    2022年小美赛思路/2022年第十一届“认证杯”数学中国数学建模国际赛思路/2022年认证杯思路
    整形数据和浮点型数据在内存中的存储差别
    “农场”技术栈是什么?浅聊FARM Stack
    springboot+清远旅游推荐网站 毕业设计-附源码211551
    以bert为例,了解Lora是如何添加到模型中的
    Docker安装Redis集群失败经历汇总
    Spark【Spark SQL(四)UDF函数和UDAF函数】
    漫谈测试成长之探索——缺陷分析
  • 原文地址:https://blog.csdn.net/lrb0677/article/details/139921038
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号