zhangjh / gemini_sdk

Google gemini api's java implement
16 stars 2 forks source link

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) https://github.com/zhangjh/gemini_sdk/issues/3