gemini_sdk
gemini_sdk copied to clipboard
Google gemini api's java implement
gemini_java
Java已经这么没有排面了吗。。Gemini的API竟然没有Java的,我来封装一个吧。
注意: 访问gemini国内需要科学上网工具,需美国IP
使用方式: (支持JDK8以上环境)
-
需要将配置文件application.properties中API_KEY配置成你自己的,你需要在你的工程下覆盖配置如下:
# replace it as yours API_KEY=xxxxx # keep it as below URL_BASE=https://generativelanguage.googleapis.com -
~~懒得上传maven中央仓库了,非常费劲~~ 为了便于使用,还是将SDK上传至maven仓库了,依赖配置如下:
<dependency> <groupId>me.zhangjh</groupId> <artifactId>gemini.sdk</artifactId> <version>1.0</version> </dependency>最新版本号可以去中央仓库查找。
-
在你的项目启动类或其他扫包路径配置处,加上项目包路径,如图所示:
@ComponentScan(basePackages = {"me.zhangjh.gemini"}) -
使用方式
- 问答类的服务
@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返回的文本。
-
其他接口不多说了,有需要的可以自行查看源码。
-
更具体的使用方式,可以查看单测代码:
src/test/java/me/zhangjh/gemini/GeminiTest.java
代理相关问题可见issue:(How to add a proxy) https://github.com/zhangjh/gemini_sdk/issues/3