Rumah > Artikel > pembangunan bahagian belakang > Cara membuat chatbot AI menggunakan satu API untuk mengakses berbilang LLM
Asalnya diterbitkan di blog Streamlit oleh Liz Acosta
Ingat betapa hebatnya ia bermain dengan penjana imej AI buat kali pertama? Dua puluh juta jari dan imej makan spageti mimpi buruk itu lebih daripada sekadar lucu, mereka secara tidak sengaja mendedahkannya oops! Model AI hanya pintar seperti kita. Seperti kita, mereka juga bergelut untuk menarik tangan.
Model AI telah menjadi lebih canggih dengan cepat, tetapi kini terdapat begitu banyak model. Dan - sekali lagi - seperti kami, sesetengah daripada mereka lebih baik dalam tugas tertentu daripada yang lain. Ambil penjanaan teks, sebagai contoh. Walaupun Llama, Gemma dan Mistral semuanya LLM, sesetengah daripada mereka lebih baik dalam menjana kod manakala yang lain lebih baik dalam sumbangsaran, pengekodan atau penulisan kreatif. Ia menawarkan kelebihan berbeza bergantung pada gesaan, jadi mungkin masuk akal untuk memasukkan lebih daripada satu model dalam aplikasi AI anda.
Tetapi bagaimana anda menyepadukan semua model ini ke dalam apl anda tanpa kod pendua? Bagaimanakah anda menjadikan penggunaan AI anda lebih modular dan oleh itu lebih mudah untuk dikekalkan dan skala? Di situlah API boleh menawarkan set arahan piawai untuk berkomunikasi merentas teknologi yang berbeza.
Dalam catatan blog ini, kami akan melihat cara menggunakan Replicate dengan Streamlit untuk mencipta apl yang membolehkan anda mengkonfigurasi dan menggesa LLM yang berbeza dengan satu panggilan API. Dan jangan risau – apabila saya menyebut "apl", saya tidak bermaksud perlu memutarkan seluruh pelayan Flask atau mengkonfigurasi laluan anda dengan membosankan atau bimbang tentang CSS. Streamlit menyediakannya untuk anda ?
Baca untuk mengetahui:
Tidak berasa mahu membaca? Berikut ialah beberapa cara lain untuk meneroka demo ini:
Replicate ialah platform yang membolehkan pembangun menggunakan, memperhalusi dan mengakses model AI sumber terbuka melalui CLI, API atau SDK. Platform ini memudahkan untuk menyepadukan keupayaan AI secara pemrograman ke dalam aplikasi perisian.
Apabila digunakan bersama, Replicate membolehkan anda membangunkan apl berbilang mod yang boleh menerima input dan menjana output dalam pelbagai format sama ada teks, imej, pertuturan atau video.
Streamlit ialah rangka kerja Python sumber terbuka untuk membina apl yang sangat interaktif – hanya dalam beberapa baris kod. Streamlit disepadukan dengan semua alatan terbaharu dalam AI generatif, seperti mana-mana LLM, pangkalan data vektor, atau pelbagai rangka kerja AI seperti LangChain, LlamaIndex, atau Weights & Biases. Elemen sembang Streamlit menjadikannya sangat mudah untuk berinteraksi dengan AI supaya anda boleh membina bot sembang yang "bercakap dengan data anda."
Digabungkan dengan platform seperti Replicate, Streamlit membolehkan anda mencipta aplikasi AI generatif tanpa sebarang overhed reka bentuk apl.
? Untuk mengetahui lebih lanjut tentang cara Streamlit memihak anda ke arah kemajuan ke hadapan, lihat catatan blog ini.
Untuk mengetahui lebih lanjut tentang Streamlit, lihat panduan 101.
Tetapi jangan terima kata-kata saya. Cuba apl itu sendiri atau tonton video berjalan dan lihat pendapat anda.
Dalam demo ini, anda akan memutarkan apl bot sembang Streamlit dengan Replicate. Apl ini menggunakan API tunggal untuk mengakses tiga LLM berbeza dan melaraskan parameter seperti suhu dan p atas. Parameter ini mempengaruhi rawak dan kepelbagaian teks yang dijana AI, serta kaedah untuk memilih token.
? Apakah suhu model? Suhu mengawal cara model memilih token. Suhu yang lebih rendah menjadikan model lebih konservatif, mengutamakan perkataan biasa dan "selamat". Sebaliknya, suhu yang lebih tinggi menggalakkan model untuk mengambil lebih banyak risiko dengan memilih token yang kurang berkemungkinan, menghasilkan output yang lebih kreatif.
? Apakah itu top-p? Juga dikenali sebagai "pensampelan nukleus" — ialah kaedah lain untuk melaraskan rawak. Ia berfungsi dengan mempertimbangkan set token yang lebih luas apabila nilai p atas meningkat. Nilai p atas yang lebih tinggi membawa kepada julat token yang lebih pelbagai untuk dijadikan sampel, menghasilkan output yang lebih pelbagai.
? Untuk mengetahui lebih lanjut tentang kunci API, lihat catatan blog di sini.
Persediaan setempat
Persediaan Ruang Kod GitHub
Dari repo Buku Masakan di GitHub, cipta ruang kod baharu dengan memilih pilihan Ruang Kod daripada butang Kod
Setelah ruang kod dijana, tambahkan kunci API Replika anda pada fail resipi/replicate/.streamlit/secrets_template.toml
Kemas kini nama fail daripada secrets_template.toml kepada secrets.toml
(Untuk mengetahui lebih lanjut tentang pengendalian rahsia dalam Streamlit, rujuk dokumentasi di sini.)
Daripada direktori akar Buku Masakan, tukar direktori kepada Resipi Replika: resipi cd/replika
Pasang dependencies: pip install -r requirements.txt
Tambahkan kod berikut pada fail:
import replicate import toml import os # Read the secrets from the secrets.toml file with open(".streamlit/secrets.toml", "r") as f: secrets = toml.load(f) # Create an environment variable for the Replicate API token os.environ['REPLICATE_API_TOKEN'] = secrets["REPLICATE_API_TOKEN"] # Run a model for event in replicate.stream("meta/meta-llama-3-8b", input={"prompt": "What is Streamlit?"},): print(str(event), end="")
Jalankan skrip: python replicate_hello_world.py
Anda sepatutnya melihat cetakan teks yang dijana oleh model.
Untuk mengetahui lebih lanjut tentang model Replika dan cara ia berfungsi, anda boleh merujuk kepada dokumentasinya di sini. Pada terasnya, "model" Replika merujuk kepada program perisian terlatih, dibungkus dan diterbitkan yang menerima input dan mengembalikan output.
Dalam kes ini, modelnya ialah meta/meta-llama-3-8b dan inputnya ialah "prompt": "What is Streamlit?". Apabila anda menjalankan skrip, panggilan dibuat ke titik akhir Replika dan teks yang dicetak ialah output yang dikembalikan daripada model melalui Replika.
Untuk menjalankan apl demo, gunakan Streamlit CLI: streamlit run streamlit_app.py.
Menjalankan arahan ini menggunakan apl ke port pada localhost. Apabila anda mengakses lokasi ini, anda sepatutnya melihat apl Streamlit sedang berjalan.
Anda boleh menggunakan apl ini untuk menggesa LLM yang berbeza melalui Replika dan menghasilkan teks generatif mengikut konfigurasi yang anda berikan.
Menggunakan Replika bermakna anda boleh menggesa berbilang LLM sumber terbuka dengan satu API yang membantu memudahkan penyepaduan AI ke dalam aliran perisian moden.
Ini dicapai dalam blok kod berikut:
for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
Model, suhu dan konfigurasi p teratas disediakan oleh pengguna melalui widget input Streamlit. Elemen sembang Streamlit memudahkan untuk menyepadukan ciri bot sembang dalam apl anda. Bahagian yang terbaik ialah anda tidak perlu mengetahui JavaScript atau CSS untuk melaksanakan dan menggayakan komponen ini – Streamlit menyediakan semua itu di luar kotak.
Replicate menyediakan titik akhir API untuk mencari model awam. Anda juga boleh meneroka model yang ditampilkan dan kes penggunaan di tapak web mereka. Ini memudahkan anda mencari model yang sesuai untuk keperluan khusus anda.
Model yang berbeza mempunyai ciri prestasi yang berbeza. Gunakan model yang sesuai berdasarkan keperluan anda untuk ketepatan dan kelajuan.
Data output Replika hanya tersedia selama sejam. Gunakan webhooks untuk menyimpan data ke storan anda sendiri. Anda juga boleh menyediakan webhooks untuk mengendalikan respons tak segerak daripada model. Ini penting untuk membina aplikasi berskala.
Manfaatkan penstriman apabila boleh. Sesetengah model menyokong penstriman, membolehkan anda mendapatkan hasil separa semasa ia dijana. Ini sesuai untuk aplikasi masa nyata.
Menggunakan URL imej memberikan prestasi yang lebih baik berbanding penggunaan imej yang dimuat naik yang dikodkan oleh asas 64.
Dengan Streamlit, bulan dan bulan kerja reka bentuk apl diselaraskan kepada hanya beberapa baris Python. Ia adalah rangka kerja yang sempurna untuk mempamerkan ciptaan AI terbaharu anda.
Bangun dan berlari cepat dengan resipi AI lain dalam Buku Masakan Streamlit. (Dan jangan lupa tunjukkan kepada kami perkara yang anda sedang bina dalam forum!)
Selamat Menipis! ?
Atas ialah kandungan terperinci Cara membuat chatbot AI menggunakan satu API untuk mengakses berbilang LLM. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!