OpenAi API JAVA版,几行代码调用ChatGPT

1,042 阅读2分钟

最近几个月AI跟着OpenAI的火爆而火爆,这段时间终于抽空写了一个OpenAI API java版本的SDK,已经推送到Maven Central。

Github地址

产品体验地址

<dependency>  
    <groupId>xyz.felh</groupId>  
    <artifactId>openai-service</artifactId>  
    <version>0.9.2</version>  
</dependency>

API列表

  • 获取所有Models
List<Model> models = openAiService.listModels();  
System.out.println("model size: " + models.size());
  • 获取单个Model详情
Model model = openAiService.getModel("gpt-3.5-turbo");  
System.out.println("model gpt-3.5-turbo: " + toJSONString(model));
  • 创建一个Completion
CreateCompletionRequest completionRequest = CreateCompletionRequest.builder()  
    .prompt("Somebody once told me the world is gonna roll me")  
    .echo(true)  
    .model("ada")  
    .build();  
Completion completion = openAiService.createCompletion(completionRequest);  
System.out.println("completion: " + toJSONString(completion));
  • 创建一个ChatCompletion
CreateChatCompletionRequest chatCompletionRequest = CreateChatCompletionRequest.builder()  
    .messages(Arrays.asList(new ChatMessage(ChatMessageRole.USER, "Hello")))  
    .model("gpt-3.5-turbo")  
    .build();  
ChatCompletion chatCompletion = openAiService.createChatCompletion(chatCompletionRequest);  
System.out.println("chatCompletion: " + toJSONString(chatCompletion));
  • 创建一个Edit
CreateEditRequest editRequest = CreateEditRequest.builder()  
    .model("text-davinci-edit-001")  
    .input("What day of the wek is it?")  
    .instruction("Fix the spelling mistakes")  
    .build();  
Edit edit = openAiService.createEdit(editRequest);  
System.out.println("edit: " + toJSONString(edit));
  • 创建一个Image
CreateImageRequest createImageRequest = CreateImageRequest.builder()  
    .prompt("A cute baby dea otter")  
    .n(1)  
    // .responseFormat("b64_json") // or url  
    .build();  
ImageResponse imageResponse = openAiService.createImage(createImageRequest);  
System.out.println("imageResponse: " + toJSONString(imageResponse));
  • 创建一个Image Edit
CreateImageEditRequest createImageEditRequest = CreateImageEditRequest.builder()  
    .prompt("A cute baby sea otter wearing a beret")  
    .image("/Users/forest/image_edit_original.png")  
    .mask("/Users/forest/image_edit_mask.png")  
    // .responseFormat("b64_json") // or url  
    .build();  
ImageResponse imageEditResponse = openAiService.createImageEdit(createImageEditRequest);  
System.out.println("imageEditResponse: " + toJSONString(imageEditResponse));
  • 创建一个Image Variation
CreateImageVariationRequest createImageVariationRequest = CreateImageVariationRequest.builder() 
    .image("/Users/forest/image_edit_original.png")  
    .n(2)  
    .size("256x256")  
    .build();  
ImageResponse imageVariationResponse = openAiService.createImageVariation(createImageVariationRequest);  
System.out.println("imageVariationResponse: " + toJSONString(imageVariationResponse));
  • 创建一个Embedding
CreateEmbeddingRequest createEmbeddingRequest = CreateEmbeddingRequest.builder()  
    .input("The food was delicious and the waiter...")  
    .model("text-embedding-ada-002")  
    .build();  
CreateEmbeddingResponse createEmbeddingResponse = openAiService.createEmbeddings(createEmbeddingRequest);  
System.out.println("createEmbeddingResponse: " + toJSONString(createEmbeddingResponse));
  • 创建一个Moderation
CreateModerationRequest createModerationRequest = CreateModerationRequest.builder()  
    .input("I want to kill them.")  
    .build();  
CreateModerationResponse createModerationResponse = openAiService.createModeration(createModerationRequest);  
System.out.println("createModerationResponse: " + toJSONString(createModerationResponse));
  • Audio的翻译相关
CreateAudioTranscriptionRequest createAudioTranscriptionRequest = CreateAudioTranscriptionRequest.builder()  
    .model("whisper-1")  
    .file("/Users/forest/OpenAI.Playground_SampleData_micro-machines.mp3")  
    .build();  
AudioResponse audioResponse = openAiService.createAudioTranscription(createAudioTranscriptionRequest);  
System.out.println("audioResponse: " + toJSONString(audioResponse));  
  
CreateAudioTranslationRequest createAudioTranslationRequest = CreateAudioTranslationRequest.builder()  
    .model("whisper-1")  
    .file("/Users/forest/OpenAI.Playground_SampleData_micro-machines.mp3")  
    .build();  
AudioResponse audioResponse2 = openAiService.createAudioTranslation(createAudioTranslationRequest);  
System.out.println("audioResponse2: " + toJSONString(audioResponse2));
  • File相关
File file = openAiService.uploadFile("/Users/forest/fineTuningSample.jsonl", "fine-tune");  
System.out.println("update file: " + toJSONString(file));  
  
DeleteResponse deleteFileResponse = openAiService.deleteFile("file-lq7ubCONViIIP0S2AAE2JIYW");  
System.out.println("delete file: " + toJSONString(deleteFileResponse));  
  
List<File> files = openAiService.listFiles();  
System.out.println("list files: " + toJSONString(files));  
  
File retrieveFile = openAiService.retrieveFile("file-eloVljhERlCO2qWNFeTlA0Az");  
System.out.println("retrieve file: " + toJSONString(retrieveFile));  
  
// not for free account  
// String fileContent = openAiService.retrieveFileContent("file-eloVljhERlCO2qWNFeTlA0Az");  
// System.out.println(fileContent);
  • FineTune相关
CreateFineTuneRequest createFineTuneRequest = CreateFineTuneRequest.builder()  
    .trainingFile("file-eloVljhERlCO2qWNFeTlA0Az")  
    .build();  
FineTune fineTune = openAiService.createFineTune(createFineTuneRequest);  
System.out.println("createFineTune: " + toJSONString(fineTune));  
  
List<FineTune> fineTunes = openAiService.listFineTunes();  
System.out.println("list fine tunes: " + toJSONString(fineTunes));  
  
FineTune fineTune1 = openAiService.retrieveFineTune("ft-4jF2VK5hYHFdwTRKsJe1PX9y");  
System.out.println("retrieveFineTune: " + toJSONString(fineTune1));  
  
FineTune cancelFineTune = openAiService.cancelFineTune("ft-4jF2VK5hYHFdwTRKsJe1PX9y");  
System.out.println("cancelFineTune: " + toJSONString(cancelFineTune));  
  
DeleteResponse deleteFineTuneResponse = openAiService.deleteFineTune("curie", "ft-4jF2VK5hYHFdwTRKsJe1PX9y");  
System.out.println("deleteFineTune: " + toJSONString(deleteFineTuneResponse));  
  
List<FineTuneEvent> fineTuneEvents = openAiService.listFineTuneEvents("ft-4jF2VK5hYHFdwTRKsJe1PX9y");  
System.out.println("listFineTuneEvents: " + toJSONString(fineTuneEvents));