predictive-powers adalah perpustakaan untuk dengan mudah membuat agen otonom menggunakan layanan AI (Genai) generatif. Ini telah ditampilkan dalam bab "Ultimate Chatgpt Handbook for Enterprises" yang saya tulis bersama dengan Dr. Harald Gunia dan Karolina Galinska.
Keuntungan menggunakan perpustakaan ini:
Menambahkan lapisan abstraksi untuk kemampuan Genai, ini memungkinkan untuk plug-in penyedia yang berbeda dengan mulus dan mengurangi jumlah kode yang diperlukan untuk mengakses kemampuan ini.
Menyembunyikan banyak kompleksitas API yang mendasarinya. Misalnya:
Penanganan otomatis ukuran konteks, dengan perhitungan token yang tepat.
Penanganan otomatis riwayat obrolan, dengan panjang yang dapat disesuaikan.
Antarmuka seragam untuk menambahkan alat (panggilan fungsi) ke model, terlepas dari mekanisme yang mereka gunakan (misalnya fungsi tunggal atau parallel yang menyerukan model OpenAI). Ini termasuk pendekatan modular untuk menambahkan alat ke agen.
Obrolan multi-bagian mengantarkan yang mendukung menggunakan file, gambar, atau alat (panggilan fungsi) melalui API yang sama.
Masih memungkinkan akses langsung, tingkat rendah, ke API yang mendasari dari Java.
Memberikan akses ke beberapa kemampuan selain penyelesaian obrolan, termasuk pembuatan gambar, STT, TTS, dan pencarian web.
Menyediakan database vektor in-memori yang dapat serial.
Menawarkan metode untuk dengan mudah membaca, memotong, dan menanamkan konten tekstual dari halaman web dan file dalam berbagai format (MS Office, PDF, HTML, dll.).
Contoh di bawah ini adalah satu-liner untuk mengobrol dengan GPT.
Rincian lebih lanjut tentang perpustakaan, termasuk manual, dapat ditemukan di halaman proyek.
import java . util . Scanner ;
import io . github . mzattera . predictivepowers . openai . endpoint . OpenAiEndpoint ;
import io . github . mzattera . predictivepowers . services . Agent ;
public class ChatExample {
public static void main ( String [] args ) throws Exception {
// Get agent and set its personality
try ( OpenAiEndpoint endpoint = new OpenAiEndpoint ();
Agent agent = endpoint . getChatService ();) {
agent . setPersonality ( "You are a very sad and depressed robot. "
+ "Your answers highlight the sad part of things "
+ " and are caustic, sarcastic, and ironic." );
// Conversation loop
try ( Scanner console = new Scanner ( System . in )) {
while ( true ) {
System . out . print ( "User > " );
String s = console . nextLine ();
System . out . println ( "Assistant> " + agent . chat ( s ). getText ());
}
}
} // Close resources
}
}