################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# This project is part of Cohere Sandbox, Cohere's Experimental Open Source #
# offering. This project provides a library, tooling, or demo making use of #
# the Cohere Platform. You should expect (self-)documented, high quality code #
# but be warned that this is EXPERIMENTAL. Therefore, also expect rough edges, #
# non-backwards compatible changes, or potential changes in functionality as #
# the library, tool, or demo evolves. Please consider referencing a specific #
# git commit or version if depending upon the project in any mission-critical #
# code as part of your own projects. #
# #
# Please don't hesitate to raise issues or submit pull requests, and thanks #
# for checking out this project! #
# #
################################################################################
Pengelola: Tim Cohere ConvAI
Proyek dipertahankan setidaknya hingga (YYYY-MM-DD): 01-03-2023
Bangun AI percakapan di atas model bahasa besar Cohere
conversant
conversant
dengan pip conversant
adalah kerangka kerja yang masih dalam proses untuk membangun agen dialog yang dapat disesuaikan (alias chatbots) yang dapat menjawab pertanyaan dan berkomunikasi dengan pengguna dengan berbagai persona chatbot yang berbeda. conversant
bertujuan untuk menjadi modular, fleksibel, dan dapat diperluas sehingga Anda dapat membuat jenis chatbot apa pun yang Anda inginkan!
Kami menyediakan beberapa persona khusus untuk Anda, termasuk ? agen dukungan klien, ⌚️ agen penjualan jam tangan, ?? seorang guru matematika, dan? seorang penyihir fantasi. Buat persona Anda sendiri hanya dengan deskripsi dan beberapa contoh percakapan!
Baca selengkapnya tentang seberapa conversant
menjadi bagian dari Cohere Sandbox di postingan blog peluncuran kami.
Cobalah conversant
demo Streamlit kami di sini! ?
conversant
tersedia di PyPI, dan diuji pada Python 3.8+ dan Cohere 2.8.0+.
pip install conversant
Ingin melihatnya beraksi terlebih dahulu? Anda dapat menggunakan conversant
di aplikasi Streamlit tanpa menginstal apa pun di sini! ?
Cohere menggunakan Streamlit untuk membuat aplikasi demonya. Jika Anda baru mengenal Streamlit, Anda dapat menginstalnya di sini dan membaca lebih lanjut tentang menjalankan perintah Streamlit di sini.
Jika Anda ingin memodifikasi demo Streamlit ini secara lokal, kami sangat menyarankan untuk mem-forking repositori ini daripada menginstalnya sebagai perpustakaan dari PyPI.
Jika Anda ingin menjalankan demo Streamlit Anda sendiri, Anda memerlukan COHERE_API_KEY
terlebih dahulu. Anda dapat membuatnya dengan mengunjungi dashboard.cohere.ai.
Jika Anda berencana menjalankan aplikasi Streamlit secara lokal, Anda dapat menambahkan kunci ke .streamlit/secrets.toml
:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Saat dijalankan secara lokal, Streamlit akan membaca file secrets.toml
dan secara diam-diam memasukkan nilai-nilai ini ke dalam variabel lingkungan. Alternatifnya, Anda dapat langsung menyetel kunci API sebagai variabel lingkungan dengan menjalankan perintah berikut dari baris perintah:
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
Mulai aplikasi Streamlit dari baris perintah dengan perintah berikut:
streamlit run conversant/demo/streamlit_example.py
Jika Anda ingin membuat aplikasi Streamlit yang dihosting, tambahkan kunci API Cohere Anda ke Streamlit melalui Manajemen Rahasia. Tambahkan baris berikut sebagai Rahasia:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Setelah Anda memiliki aplikasi Streamlit sendiri, Anda dapat mulai bereksperimen dengan membuat persona khusus! Lihat config.json
untuk setiap persona di direktori conversant/personas
. Anda harus membuat subfolder dalam direktori ini yang sesuai dengan persona baru Anda dan menambahkan file config.json
.
Sebagai catatan, kami sangat menyarankan untuk mem-forking repositori sandbox-conversant-lib
daripada menginstalnya sebagai perpustakaan dari PyPI. Saat Anda membuat persona baru, gunakan direktori personas
di repositori kloning. Struktur direktori akan terlihat seperti ini:
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
File konfigurasi harus berisi yang berikut:
chatbot_config
:max_context_examples
: Panjang riwayat obrolan yang digunakan chatbot sebagai balasan.avatar
: Kode pendek emoji opsional atau URL ke gambar sebagai avatar chatbot. Defaultnya adalah?.client_config
: Parameter untuk co.generate()
chat_prompt_config
:preamble
: Deskripsi persona.example_separator
: Sebuah string yang memisahkan setiap contoh percakapan.headers
: Nama untuk bot
dan user
.examples
: Beberapa contoh percakapan (few-shot), atau kosong (zero-shot). conversant
akan mengurus sisanya! Sebagai contoh, lihat fortune-teller/config.json
. Saat Anda meluncurkan aplikasi Streamlit, persona baru akan muncul di menu drop down.
Jika Anda ingin menjalankan aplikasi dengan subkumpulan persona khusus, Anda dapat membuat direktori baru yang hanya berisi direktori yang diinginkan. Ini analog dengan direktori conversant/personas
, dan harus memiliki struktur yang sama:
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
Setelah membuat direktori ini, Anda harus memberi tahu aplikasi di mana mencarinya. Dalam demo aplikasi Streamlit ( streamlit_example.py
), salah satu baris pertama berbunyi CUSTOM_PERSONA_DIRECTORY = None
. Ubah ini untuk menentukan direktori persona yang diinginkan, misalnya CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
.
Jika ini tidak diubah, aplikasi akan secara default menggunakan direktori yang berisi persona demo conversant
.
Jika Anda tidak melihat persona baru di menu drop down, Anda mungkin perlu menentukan direktori persona khusus. Ikuti petunjuk di atas untuk memberi tahu aplikasi di mana mencari persona.
Anda juga dapat mengedit persona di aplikasi Streamlit!
Dengan conversant
, Anda dapat membuat chatbot yang didukung oleh model bahasa besar Cohere hanya dengan cuplikan kode berikut.
import cohere
import conversant
co = cohere . Client ( "YOUR_API_KEY_HERE" )
bot = conversant . PromptChatbot . from_persona ( "fantasy-wizard" , client = co )
print ( bot . reply ( "Hello!" ))
>> > "Well met, fair traveller. What bringest thou to mine village?"
Anda juga dapat menentukan persona Anda sendiri dengan memasukkan ChatPrompt
Anda sendiri.
from conversant . prompts import ChatPrompt
shakespeare_config = {
"preamble" : "Below is a conversation between Shakespeare and a Literature Student." ,
"example_separator" : " n " ,
"headers" : {
"user" : "Literature Student" ,
"bot" : "William Shakespeare" ,
},
"examples" : [
[
{
"user" : "Who are you?" ,
"bot" : "Mine own nameth is Shakespeare, and I speaketh in riddles." ,
},
]
],
}
shakespeare_bot = conversant . PromptChatbot (
client = co , prompt = ChatPrompt . from_dict ( shakespeare_config )
)
print ( shakespeare_bot . reply ( "Hello!" ))
>> > "Greeteth, and welcome. I am Shakespeare, the great poet, dramatist, and playwright."
conversant
menggunakan penyelesaian cepat untuk mendefinisikan persona chatbot dengan deskripsi dan beberapa contoh. Perintah tersebut dikirim sebagai masukan ke titik akhir co.generate()
Cohere untuk model bahasa autoregresif guna menghasilkan teks dalam beberapa langkah dari contoh dan konteks dialog saat ini.
Setiap pesan pengguna dan tanggapan chatbot ditambahkan ke riwayat obrolan sehingga tanggapan di masa mendatang dikondisikan pada konteks dialog pada saat itu.
Di masa mendatang, kami berencana menambahkan fungsionalitas agar chatbot dapat didasarkan pada fakta menggunakan teks yang diambil dari cache dokumen lokal.
Untuk informasi lebih lanjut, lihat bagian ini di CONTRIBUTORS.md
.
Dokumentasi lengkap dapat ditemukan di sini.
Jika Anda memiliki pertanyaan atau komentar, silakan ajukan masalah atau hubungi kami di Discord.
Jika Anda ingin berkontribusi pada proyek ini, silakan baca CONTRIBUTORS.md
di repositori ini, dan tanda tangani Perjanjian Lisensi Kontributor sebelum mengirimkan permintaan penarikan apa pun. Tautan untuk menandatangani Cohere CLA akan dibuat saat pertama kali Anda membuat permintaan tarik ke repositori Cohere.
Selain panduan seputar pengiriman kode ke repositori ini, CONTRIBUTORS.md
berisi panduan untuk membantu pengembang memulai, serta skema yang menjelaskan cara kerja conversant
. ?
conversant
memiliki Lisensi MIT.