Ini adalah perpustakaan klien OpenAI Reaktif.
Itu ditulis menggunakan WebFlux dan Spring Boot. Perpustakaan juga berisi starter Spring Boot yang telah dikonfigurasi sebelumnya untuk penggunaan yang lebih mudah.
Perpustakaan ini tidak resmi dan dikelola komunitas. Jangan ragu untuk bergabung dengan pengembangan.
Impor ketergantungan melalui Maven :
< dependency >
< groupId >io.github.reactiveclown</ groupId >
< artifactId >openai-webflux-client-spring-boot-starter</ artifactId >
< version >0.9.1</ version >
</ dependency >
Impor ketergantungan melalui Gradle :
implementation 'io.github.reactiveclown:openai-webflux-client-spring-boot-starter:0.9.1'
Setelah menambahkan ketergantungan, ingatlah untuk menambahkan kunci api OpenAI Anda ke properti aplikasi.
com.github.reactiveclown.openai.apiKey =OPENAI_API_KEY
Anda juga dapat menambahkan id Organisasi dan mengubah baseUrl dengan menyediakan variabel konfigurasi berikutnya. Namun langkah ini tidak wajib.
com.github.reactiveclown.openai.organizationId =OPENAI_ORGANIZATION_ID
com.github.reactiveclown.openai.baseUrl =OPENAI_CUSTOM_BASE_URL
Di sini Anda dapat menemukan beberapa contoh penggunaan. Selain itu, silakan gunakan dokumentasi resmi untuk mendapatkan informasi lebih lanjut tentang parameter.
Dokumen Model OpenAI
Layanan model digunakan untuk mengambil daftar model atau informasi tentang model tertentu.
@ Service
public class ExampleService {
private final ModelsService service ;
public ExampleService ( ModelsService service ) {
this . service = service ;
}
public Mono < ListModelsResponse > listModels () {
return service . listModels ();
}
public Mono < RetrieveModelResponse > retrieveModel ( String modelName ) {
return service . retrieveModel ( modelName );
}
}
Dokumen Penyelesaian OpenAI
Layanan penyelesaian digunakan untuk melengkapi teks. Jangan ragu untuk bermain-main dengan parameter pembuat.
@ Service
public class ExampleService {
private final CompletionsService service ;
public ExampleService ( CompletionsService service ) {
this . service = service ;
}
public Mono < CreateCompletionResponse > createCompletion () {
return service . createCompletion (
CreateCompletionRequest
. builder ( "babbage" )
. n ( 2 )
. bestOf ( 1 )
. build ());
}
}
Dokumen Obrolan OpenAI
Layanan chat digunakan untuk mengobrol dengan model chat. Jangan ragu untuk bermain-main dengan parameter pembuat.
@ Service
public class ExampleService {
private final ChatService service ;
public ExampleService ( ChatService service ) {
this . service = service ;
}
public Mono < CreateChatCompletionResponse > createChatCompletion () {
return service . createChatCompletion (
CreateChatCompletionRequest
. builder ( "gpt-3.5-turbo" , List . of ( new MessageData ( "user" , "do something" )))
. n ( 3 )
. build ());
}
}
OpenAI Mengedit Dokumen
Layanan edit digunakan untuk mengedit input yang diberikan. Jangan ragu untuk bermain-main dengan parameter pembuat.
@ Service
public class ExampleService {
private final EditsService service ;
public ExampleService ( EditsService service ) {
this . service = service ;
}
public Mono < CreateEditResponse > createEdit () {
return service . createEdit (
CreateEditRequest
. builder ( "babbage" , "Add one digit after every word" )
. input ( "One Two Three" )
. build ());
}
}
Dokumen Gambar OpenAI
Layanan gambar digunakan untuk menghasilkan gambar yang berbeda dan transformasinya.
️ Untuk saat ini, metode yang memerlukan gambar sedang diblokir. Dalam waktu dekat direncanakan untuk menambahkan implementasi FilePart async.
@ Service
public class ExampleService {
private final ImagesService service ;
public ExampleService ( ImagesService service ) {
this . service = service ;
}
//Non-blocking
public Mono < CreateImageResponse > createImage () {
return service . createImage (
CreateImageRequest
. builder ( "Generate a digital art of Ukraine" )
. build ());
}
//Blocking
public Mono < CreateImageVariationResponse > createImageVariation () {
return service . createImageVariation (
CreateImageVariationRequest
. builder ( "src/main/resources/exampleImage.png" )
. size ( "512x512" )
. build ());
}
//Blocking
public Mono < CreateImageEditResponse > createImageEdit () {
return service . createImageEdit (
CreateImageEditRequest
. builder ( "src/main/resources/exampleImage.png" , "Generate a green fields" )
. mask ( "src/main/resources/exampleMask.png" )
. build ());
}
}
Dokumen Penyematan OpenAI
Layanan penyematan digunakan untuk membuat penyematan. Jangan ragu untuk bermain-main dengan parameter pembuat.
@ Service
public class ExampleService {
private final EmbeddingsService service ;
public ExampleService ( EmbeddingsService service ) {
this . service = service ;
}
public Mono < CreateEmbeddingsResponse > createEmbeddings (){
return service . createEmbeddings (
CreateEmbeddingsRequest
. builder ( "babbage" , "example input" )
. build ());
}
}
Dokumen Audio OpenAI
Layanan audio digunakan untuk mengubah audio menjadi teks, juga untuk membuat terjemahan ke dalam bahasa Inggris. Jangan ragu untuk bermain-main dengan parameter pembuat.
️ Untuk saat ini, metode yang memerlukan file audio sedang diblokir. Dalam waktu dekat direncanakan untuk menambahkan implementasi FilePart async.
@ Service
public class ExampleService {
private final AudioService service ;
public ExampleService ( AudioService service ) {
this . service = service ;
}
//Blocking
public Mono < CreateTranscriptionResponse > createTranscription () {
return service . createTranscription (
CreateTranscriptionRequest
. builder ( "src/main/resources/exampleAudio.mp3" , "whisper-1" )
. build ());
}
//Blocking
public Mono < CreateTranslationResponse > createTranslation (){
return service . createTranslation ( CreateTranslationRequest
. builder ( "src/main/resources/exampleAudio.mp3" , "whisper-1" )
. build ());
}
}
Dokumen File OpenAI
Layanan file digunakan untuk mengunggah dan bekerja dengan file. Jangan ragu untuk bermain-main dengan parameter pembuat.
️ Untuk saat ini, metode yang memerlukan file sedang diblokir. Dalam waktu dekat direncanakan untuk menambahkan implementasi FilePart async.
@ Service
public class ExampleService {
private final FilesService service ;
public ExampleService ( FilesService service ) {
this . service = service ;
}
public Mono < ListFilesResponse > listFilesResponse () {
return service . listFiles ();
}
//Blocking
public Mono < UploadFileResponse > uploadFile () {
return service . uploadFile (
UploadFileRequest
. builder ( "src/main/resources/exampleFile.jsonl" , "finetune" )
. build ());
}
public Mono < DeleteFileResponse > deleteFile () {
return service . deleteFile ( "fileId" );
}
public Mono < RetrieveFileResponse > retrieveFile () {
return service . retrieveFile ( "fileId" );
}
public Mono < String > retrieveFileContent () {
return service . retrieveFileContent ( "fileId" );
}
}
OpenAI Menyempurnakan Dokumen
Layanan penyempurnaan digunakan untuk bekerja dengan menyempurnakan file dan model. Jangan ragu untuk bermain-main dengan parameter pembuat.
@ Service
public class ExampleService {
private final FineTunesService service ;
public ExampleService ( FineTunesService service ) {
this . service = service ;
}
public Mono < CreateFineTuneResponse > createFineTune (){
return service . createFineTune (
CreateFineTuneRequest
. builder ( "trainingFileId" )
. build ());
}
public Mono < ListFineTunesResponse > listFineTunes (){
return service . listFineTunes ();
}
public Mono < RetrieveFineTuneResponse > retrieveFineTune (){
return service . retrieveFineTunes ( "fineTuneId" );
}
public Mono < CancelFineTuneResponse > cancelFineTune (){
return service . cancelFineTune ( "fineTuneId" );
}
public Mono < ListFineTuneEventsResponse > listFineTuneEvents (){
return service . listFineTuneEvents ( "fineTuneId" );
}
public Mono < DeleteFineTuneModelResponse > deleteFineTuneModel (){
return service . deleteFineTuneModel ( "modelId" );
}
}
Dokumen Moderasi OpenAI
Layanan moderasi digunakan untuk memeriksa pelanggaran moderasi. Jangan ragu untuk bermain-main dengan parameter pembuat.
@ Service
public class ExampleService {
private final ModerationsService service ;
public ExampleService ( ModerationsService service ) {
this . service = service ;
}
public Mono < CreateModerationResponse > createModeration () {
return service . createModeration (
CreateModerationRequest . builder ( "violating input" ). build ());
}
}
Ini adalah perpustakaan sumber terbuka, bantuan apa pun akan sangat dihargai. Jika Anda dapat melihat bahwa ada cara untuk meningkatkan kode atau fungsionalitas, silakan isi masalahnya atau buat permintaan penarikan dengan perubahan Anda. Juga jangan ragu untuk melihat masalah yang terbuka dan kirimkan permintaan penarikan jika Anda memiliki solusinya.
MIT License
Copyright (c) 2023 Maksym Volkov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.