/gemini_sdk

Google gemini api's java implement

Primary LanguageJava

gemini_java

官方API文档地址

img

Java已经这么没有排面了吗。。Gemini的API竟然没有Java的,我来封装一个吧。

注意: 访问gemini国内需要科学上网工具,需美国IP

使用方式: (支持JDK8以上环境)

  1. 需要将配置文件application.properties中API_KEY配置成你自己的,你需要在你的工程下覆盖配置如下:

     # replace it as yours
     API_KEY=xxxxx
     # keep it as below
     URL_BASE=https://generativelanguage.googleapis.com
    
  2. 懒得上传maven**仓库了,非常费劲 为了便于使用,还是将SDK上传至maven仓库了,依赖配置如下:

     <dependency>
         <groupId>me.zhangjh</groupId>
         <artifactId>gemini.sdk</artifactId>
         <version>1.0</version>
     </dependency>
    

    最新版本号可以去**仓库查找。

  3. 在你的项目启动类或其他扫包路径配置处,加上项目包路径,如图所示: image

    @ComponentScan(basePackages = {"me.zhangjh.gemini"})
    
  4. 使用方式

    • 问答类的服务
     @Autowired
     private GeminiService geminiService;
    • 向量嵌入服务
     @Autowired
     private EmbeddingService embeddingService;
    • 简单文本生成接口
    TextResponse generateByText(String text);
    • 简单多模态接口
    VisionResponse generateByMix(String text, String image, String mimeType);
    • 多轮对话接口(gemini仅支持文本)
     TextResponse multiTurnChat(MultiTurnRequest request);
    • 简单多轮对话接口
    String multiTurnChat(String question, List<ChatContent> context);
    • 流式接口
     void steamChat(StreamRequest request, Function<String, Void> cb);
    • 简单流式接口
    void streamChat(String question, List<ChatContent> context, Function<String, Void> cb);

    流式接口需要传入一个回调函数,回调函数接收一个字符串参数,表示gemini返回的文本。

  5. 其他接口不多说了,有需要的可以自行查看源码。

  6. 更具体的使用方式,可以查看单测代码: src/test/java/me/zhangjh/gemini/GeminiTest.java

代理相关问题可见issue:(How to add a proxy) #3