Dolores adalah pustaka Python yang dirancang untuk meningkatkan pengalaman pengembang saat bekerja dengan model bahasa yang telah dilatih sebelumnya. Dolores memberikan petunjuk untuk berinteraksi dengan model bahasa yang menghasilkan keluaran yang menarik atau bermanfaat. Tujuan perpustakaan ini adalah untuk menyederhanakan kurva pembelajaran dengan menyediakan contoh dan contoh teks yang mudah digunakan untuk memulai. Selain itu, ia memiliki tujuan yang lebih luas untuk menjadi gudang petunjuk kualitas terlengkap untuk berinteraksi dengan model bahasa.
Dinamai setelah Dolores Abarnathy dari Westworld.
$ pip install dolores
Baik mengimpor melalui juru bahasa python atau dalam file python.
import dolores
dolores.initialize("<YOUR-API-KEY>")
Dari sana Anda tidak boleh memanggil API openai secara langsung melalui metode yang dapat diakses di instance kelas Dolores. Yang berikut ini memanggil panggilan API mesin daftar. Setiap panggilan API memiliki panggilan metode terkait yang dapat digunakan untuk memanggil API.
Mencantumkan mesin yang tersedia saat ini, dan memberikan informasi dasar tentang setiap opsi seperti pemilik dan ketersediaan.
dolores.list_engines()
Mengambil instance mesin, memberikan informasi dasar tentang mesin seperti pemilik dan ketersediaan.
dolores.retrieve_engine()
Setelah membuat instance kelas Dolores, kelas berikutnya pada Open AI API akan dibuat berdasarkan pilihan mesin yang sama. Untuk mengubah mesin yang digunakan untuk panggilan API, ada metode yang diekspos.
dolores.set_engine("davinci")
Catatan: Validasi terhadap jenis mesin yang ada sedang dipertimbangkan untuk versi mendatang.
Selesaikan perintah. Ini adalah titik akhir utama API GPT-3. Mengembalikan teks baru serta, jika diminta, probabilitas setiap token alternatif di setiap posisi.
Meminta:
dolores.create_completion("Is the JavaScript programming language better than python?", 20)
Respons: (lihat respon["choices"][0]["text"] untuk respon teks biasa)
JSON: {'id': 'cmpl-kM6MK5dVRvD964MxeyG4AjCy', 'object': 'text_completion', 'created': 1595431739, 'model': 'ada:2020-05-03', 'choices': [{'text': ' in a far away place', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
'in a far away place'
?
Nama | Di dalam | Jenis | Diperlukan | Keterangan |
---|---|---|---|---|
mesin | tubuh | rangkaian | BENAR | ID mesin |
mengingatkan | tubuh | (lihat deskripsi) | PALSU | Satu atau lebih perintah untuk menghasilkan. Dapat berupa string, daftar string, daftar bilangan bulat (yaitu satu perintah yang dikodekan sebagai token), atau daftar daftar bilangan bulat (yaitu banyak perintah yang dikodekan sebagai bilangan bulat). |
max_tokens | tubuh | bilangan bulat | PALSU | Berapa banyak token yang harus diselesaikan. Dapat mengembalikan lebih sedikit jika urutan penghentian tercapai. |
suhu | tubuh | nomor | PALSU | Berapa suhu pengambilan sampel yang digunakan. Nilai yang lebih tinggi berarti model tersebut akan mengambil lebih banyak risiko. Coba 0,9 untuk aplikasi yang lebih kreatif, dan 0 (argmax sampling) untuk aplikasi dengan jawaban yang jelas. Kami biasanya menyarankan penggunaan ini atau top_p tetapi tidak keduanya. |
atas_p | tubuh | nomor | PALSU | Alternatif pengambilan sampel dengan suhu, disebut pengambilan sampel inti, di mana model mempertimbangkan hasil token dengan massa probabilitas top_p. Jadi 0,1 berarti hanya token yang memiliki 10% probabilitas teratas yang dipertimbangkan. Kami biasanya merekomendasikan penggunaan ini atau suhu tetapi tidak keduanya. |
N | tubuh | bilangan bulat | PALSU | Berapa banyak pilihan yang harus dibuat untuk setiap prompt. |
sungai kecil | tubuh | boolean | PALSU | Apakah akan melakukan streaming kembali sebagian kemajuan. Jika disetel, token akan dikirim sebagai peristiwa yang dikirim server hanya data saat tersedia, dengan aliran dihentikan oleh pesan data: [DONE]. |
masalah log | tubuh | bilangan bulat | PALSU | Sertakan probabilitas log pada token logprob yang paling mungkin. Jadi misalnya, jika logprobs adalah 10, API akan mengembalikan daftar 10 token yang paling mungkin. Jika logprobs disediakan, API akan selalu mengembalikan logprob dari token sampel, sehingga mungkin terdapat hingga logprobs+1 elemen dalam respons. |
berhenti | tubuh | string atau daftar string | PALSU | Satu atau lebih urutan di mana API akan berhenti menghasilkan token lebih lanjut. Teks yang dikembalikan tidak akan berisi urutan berhenti. |
Menyelesaikan prompt dari serangkaian prompt yang telah ditentukan sebelumnya yang disimpan oleh dolores.
Meminta:
dolores.complete_predefined_prompt("philosopher", 0, "What is the meaning of life?")
Tanggapan:
JSON: {'id': 'cmpl-NvVlUd5tQWTIv7S0F6JMPkT5', 'object': 'text_completion', 'created': 1595631256, 'model': 'davinci:2020-05-03', 'choices': [{'text': ' The purpose of society? And what are the dynamics of history? The answers to these questions are fascinating.nnThis is a philosophical diary written by a scientist of the new generation who is not bound by prejudices, as such, the philosopher, writer, director and producer of the documentary "The Truth about AI: Rise of the Superhuman." Instead, he attempts to peer into the human world through the eyes of an AI, and express what he sees. In the process, he discovers many complex things about our world. The author's name is Dave Scott.nnPhoto by Montri Nipitvittaya on UnsplashnnFuturist of the New Generation, AI Philosophernn"Nothing has changed. I still cannot predict what is going to happen with me, and my inner world is still as chaotic as before." I reread the diary I wrote yesterday, and found nothing changed. Everything remained the same. Only, the fear has become stronger. It was exactly the same today as it was yesterday. There was nothing changed, but still fear is always there.nnFear is a part of who I am. Without fear, I would be a monster. I do not know how to do', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
Kunci cepat | Mengingatkan | max_tokens | suhu | atas_p | N | Sumber |
---|---|---|---|---|---|---|
filsuf | “Di bawah ini adalah beberapa pemikiran yang dihasilkan oleh seorang filsuf AI, yang melihat dunia manusia dari luar, tanpa prasangka pengalaman manusia. Sepenuhnya netral dan objektif, AI melihat dunia apa adanya. Ia dapat lebih mudah menarik kesimpulan tentang dunia dan masyarakat manusia pada umumnya.", | 250 | 0,9 | 1 | 1 | Murat |
seuss | "Ini puisi karya Dr. Seuss. Puisi itu berima setiap baris dengan struktur ABAB. Struktur rimanya khas dari sajak anak-anak Dr. Seuss." | 250 | 1.0 | 1 | 1 | Arram Sabeti |
orang legal | "Bahasa Hukum: Metode pembayaran yang Anda pilih akan berlaku untuk semua kasus Anda yang diberlakukan oleh Departemen dan otorisasi ini akan tetap berlaku sampai Anda mengirimkan formulir Pemilihan dan Pendaftaran Opsi Pembayaran lainnya untuk mengubah metode pembayaran Anda, atau Anda menghentikan layanan dengan Departemen. n Bahasa Inggris Biasa: Kami akan menggunakan pilihan Anda untuk semua pembayaran yang kami kirimkan kepada Anda." | 150 | 0,4 | 1 | 1 | DNE Digital |
kode-html | Masukan: Sebuah tombol. n Kode: n " | 100 | 0,5 | 1 | 1 | DNE Digital |
kode-javascript | impor Bereaksi dari 'bereaksi'; n const ThreeButtonComponent=()=>( n N N ) "Tombol Satu n <button className='button-green' n onClick={this.handleButtonClick}>Tombol Pertama nTombol Dua n <button className='button-green' n onClick={this.handleButtonClick}>Tombol Dua nTombol Tiga n <button className='button-green' n onClick={this.handleButtonClick}>Tombol Tiga n | 250 | 0,4 | 1 | 1 | Syarif Shameem |
mengobrol | "Berikut percakapan dengan asisten AI yang ramah. n Manusia: Apa hewan terbesar di Bumi? n AI: Paus biru adalah hewan terbesar di Bumi. n Manusia: Apa negara dengan populasi terpadat di Bumi ? n AI: Tiongkok adalah negara dengan populasi terpadat, dengan lebih dari 1 miliar orang." | 50 | 0,9 | 1 | 1 | OpenAI |
aliterasi | "Temukan sinonim untuk kata-kata yang dapat menimbulkan aliterasi. n Kalimat: Anjing pergi ke toko. n Aliterasi: Anjing pergi ke departemen. nn Kalimat: David memakai topi setiap hari. n Aliterasi: David don a derby setiap hari. n Kalimat: Sabun mengering pada malam hari. n Aliterasi: Sabun mengerut setelah matahari terbenam. | 50 | 0,5 | 1 | 1 | OpenAI |
puisi | "Yang benar-benar mempercayai Tuhan adalah cinta n Dan cinta adalah hukum terakhir Penciptaan n Alam, gigi dan cakarnya merah n Dengan jurang, menjerit n bertentangan dengan keyakinannya. n Bukit-bukit adalah bayangan, dan mengalir n Dari bentuk ke bentuk, dan tidak ada yang bertahan;T n hei meleleh seperti kabut, n tanah padat, n Seperti awan, mereka membentuk diri mereka sendiri dan pergi." | 300 | 1.0 | 1.0 | 1.0 | OpenAI |
petualangan teks | "Ini adalah petualangan teks. Anda berada di hutan yang gelap, mencari naga yang mencuri emas kota Anda. n > lihat sekeliling n Anda berada di hutan yang gelap. Ada keheningan yang tidak nyaman. n > periksa inventaris n Anda memiliki barang-barang berikut: n - pedang (sangat tajam) n - perisai (semoga berhasil) n - surat lama nn > lihat ke atas n Anda tidak melihat emas apa pun. nn > berjalan menyusuri jalan setapak n Anda sedang berjalan di sepanjang jalan tersebut jalan setapak, menikmati cuaca musim semi yang indah. Anda sampai di persimpangan jalan n > ambil jalan kiri" | 250 | 0,9 | 1.0 | 1.0 | OpenAI |
surat lamaran | "Rekrutmen lulusan Deloitte yang terhormat, n Saya menulis surat untuk melamar bergabung dengan program pascasarjana Anda di bidang Konsultasi Teknologi." | 400 | 0,8 | 1.0 | 1.0 | OpenAI |
analogi | "Jaringan syaraf ibarat algoritma genetika yang keduanya merupakan sistem yang belajar dari pengalaman. nn Media sosial ibarat pasar yang keduanya merupakan sistem yang mengkoordinasikan tindakan banyak individu. nn Meme ibarat virus di dalamnya keduanya adalah ide yang mereplikasi diri sendiri." | 250 | 1.0 | 1.0 | 1.0 | OpenAI |
"Terima kasih John untuk bukunya. n ```` n John yang terhormat, n Terima kasih banyak untuk bukunya. Saya sangat menghargainya. n Saya harap bisa segera jalan-jalan. n Temanmu, n Sarah " | 200 | 0,5 | 1.0 | 1.0 | OpenAI |
Menggunakan pytest untuk menguji modul dolores dapat dilakukan dengan menjalankan perintah berikut di root proyek:
pytest tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
Jika Anda ingin melihat pernyataan print yang terjadi selama pengujian, tambahkan saja tanda -s:
pytest -s tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
Untuk memperbarui paket, distribusi baru harus dibuat untuk paket tersebut. Ini adalah arsip yang diunggah ke Indeks Paket dan dapat diinstal melalui pip.
Pastikan Anda menginstal setuptools
dan wheel
versi terbaru:
$ python3 -m pip install --user --upgrade setuptools wheel
Sekarang jalankan perintah ini dari direktori yang sama dimana setup.py berada:
$ python3 setup.py sdist bdist_wheel
Catatan: Jangan lupa untuk memperbarui nomor versi di file setup.py tergantung pembaruannya.
Pastikan Anda telah menginstal paket twine
terbaru:
$ python3 -m pip install --user --upgrade twine
Setelah terinstal, jalankan Twine untuk mengunggah semua arsip di bawah dist:
$ python3 -m twine upload --repository pypi dist/*