OpenAI-Java 项目介绍
OpenAI-Java 是一个为 Java 开发者设计的库,旨在通过支持 GPT-3、ChatGPT 和 GPT-4 来简化与 OpenAI API 的交互。该项目通过提供简单易用的工具,为开发者利用 OpenAI 的强大语言模型提供了便捷的解决方案。本文将详细介绍该项目的主要功能和使用方法。
项目状态
需要注意的是,OpenAI-Java 项目已经停止维护并于 2024 年 6 月 6 号被归档。虽然库的当前版本仍可使用,但将不再有更新或支持。用户可以根据需要对代码进行修改和扩展。此外,由于 OpenAI 已停止对基于引擎的 API 提供支持,用户需采用基于模型的 API。
功能模块
OpenAI-Java 项目提供以下主要功能模块:
api
:为 GPT API 提供请求和响应的 POJO(Plain Old Java Object)。client
:基于 Retrofit 的基本客户端,用于调用 GPT 端点,并包含api
模块。service
:提供简单的服务类,以便于快速上手。是最简单的使用方式。- 示例项目:包含一个使用服务模块的示例项目。
支持的 API
该项目支持多种 API,包括:
- 模型(Models)
- 完成(Completions)
- 聊天完成(Chat Completions)
- 编辑(Edits)
- 嵌入(Embeddings)
- 音频(Audio)
- 文件(Files)
- 微调(Fine-tuning)
- 图像(Images)
- 审核(Moderations)
- 助手(Assistants)
如何导入
项目可以通过 Gradle 和 Maven 导入:
Gradle
implementation 'com.theokanning.openai-gpt3-java:<api|client|service>:<version>'
Maven
<dependency>
<groupId>com.theokanning.openai-gpt3-java</groupId>
<artifactId>{api|client|service}</artifactId>
<version>version</version>
</dependency>
使用方法
-
数据类:用户可以通过
api
模块导入 POJO 类来创建自定义客户端。确保使用蛇形命名法来与 OpenAI API 兼容。 -
Retrofit 客户端:使用
client
模块时,需添加鉴权令牌,同时设置转换器工厂只包含非空字段。
OpenAiService service = new OpenAiService("your_token");
CompletionRequest completionRequest = CompletionRequest.builder()
.prompt("Somebody once told me the world is gonna roll me")
.model("babbage-002"")
.echo(true)
.build();
service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
- 自定义服务:用户可以通过创建自己的 Retrofit 客户端来自定义服务,包括添加请求日志、使用代理等功能。
函数与执行器
开发者可以使用 ChatFunction
类定义自定义函数,以及使用 FunctionExecutor
类执行这些函数。例如:
ChatFunction.builder()
.name("get_weather")
.description("Get the current weather of a location")
.executor(Weather.class, w -> new WeatherResponse(w.location, w.unit, new Random().nextInt(50), "sunny"))
.build();
运行示例项目
用户可运行示例项目来测试库的功能。只需设置 OpenAI API 令牌并使用 Gradle 工具进行运行:
export OPENAI_TOKEN="sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
./gradlew runExampleOne
常见问题解答
- 是否支持 GPT-4?是的,库已经支持 GPT-4。
- 如何处理连接超时?请确保所在国家可以访问 OpenAI 服务。
- 为什么 OpenAiService 不支持某些配置选项?用户可以使用 OpenAiApi 实例自定义配置。
结束语
尽管 OpenAI-Java 项目已不再维护,但其现有功能仍然为使用 OpenAI 技术提供了良好的起点。用户可以根据需要对其进行修改,以适应特定的项目需求。