6

GitHub - Barqawiz/IntelliJava: IntelliJava allows java developers to easily inte...

 1 year ago
source link: https://github.com/Barqawiz/IntelliJava
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

IntelliJava-OpenaiAPI

IntelliJava V0.6.0

IntelliJava is the ultimate tool for Java developers looking to integrate with the latest language models and deep learning frameworks. The library provides a simple and intuitive API with convenient methods for sending text input to models like GPT-3 and DALL·E, and receiving generated text or images in return. With just a few lines of code, you can easily access the power of cutting-edge AI models to enhance your projects.

The supported models in this version:

  • OpenAI: Access GPT-3 to generate text and DALL·E to generate images. OpenAI is preferred when you want quality results without tuning.
  • Cohere.ai: generate text; Cohere allows you to generate your language model to suit your specific needs.

How to use

  1. Import the core jar file to your project or add the maven package (check Integration section).
  2. Add gson dependency using maven or the jar file (check dependencies section).
  3. Call the RemoteLanguageModel for the language models and RemoateImageModel for image generation.

Integration

The package released to Maven Central Repository.

Maven:

<dependency>
    <groupId>io.github.barqawiz</groupId>
    <artifactId>intellijava.core</artifactId>
    <version>0.6.0</version>
</dependency>

Gradle:

implementation group: 'io.github.barqawiz', name: 'intellijava.core', version: '0.6.0'

Gradle(Kotlin):

implementation("io.github.barqawiz:intellijava.core:0.6.0")

Jar download: intellijava.jar.

For ready integration: try the sample_code.

Code Example

Language model code (2 steps):

// 1- initiate the remote language model 
String apiKey = "<add-openai-api-key>";
RemoteLanguageModel langModel = new RemoteLanguageModel(apiKey, "openai");

// 2- call generateText with any command !
LanguageModelInput langInput = new LanguageModelInput.Builder("return a java code that says hello world")
                .setModel("text-davinci-002").setTemperature(0.7f).setMaxTokens(50).build();
String resValue = langModel.generateText(langInput);

Output: System.out.println("Hello, World!");

Image generation code (2 steps):

// 1- initiate the remote image model 
RemoateImageModel imageModel = new RemoateImageModel(apiKey, "openai");

// 2- call generateImages with any command !
ImageModelInput imageInput = new ImageModelInput.Builder("teddy writing a blog in times square")
                .setNumberOfImages(2).setImageSize("1024x1024").build();
List<String> images = imageModel.generateImages(imageInput);

Output:
response_image.png

For full example check the code inside sample_code project.

Third-party dependencies

The only dependencies is GSON.

For Maven:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>

For Gradle:

dependencies {
  implementation 'com.google.code.gson:gson:2.8.9'
}

For jar download: gson download repo

Roadmap

Call for contributors:

  • Add support to OpenAI Completion API.
  • Add support to OpenAI DALL·E 2.
  • Add support to other OpenAI functions.
  • Add support to cohere generate API.
  • Add support to Google language models.
  • Add support to Amazon language models.
  • Add support to Midjourney image generation.

License

Apache License

Copyright 2023 Github.com/Barqawiz/IntelliJava

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

IntelliJava_logo.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK