Java已经这么没有排面了吗。。Gemini的API竟然没有Java的,我来封装一个吧。
注意: 访问gemini国内需要科学上网工具,需美国IP
使用方式: (支持JDK8以上环境)
# replace it as yours
API_KEY=xxxxx
# keep it as below
URL_BASE=https://generativelanguage.googleapis.com
<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