Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara membuat chatbot AI menggunakan satu API untuk mengakses berbilang LLM

Cara membuat chatbot AI menggunakan satu API untuk mengakses berbilang LLM

王林
王林asal
2024-08-25 06:02:02766semak imbas

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.

How to create an AI chatbot using one API to access multiple LLMs

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:

  • Apa itu Replika
  • Apa itu Streamlit
  • Cara membina demo Replicate chatbot Streamlit app
  • Dan amalan terbaik untuk menggunakan Replika

Tidak berasa mahu membaca? Berikut ialah beberapa cara lain untuk meneroka demo ini:

  • Cari kod dalam repo Buku Masakan Streamlit di sini
  • Cuba versi apl yang digunakan di sini
  • Tonton panduan video daripada pereka pengasas Replicate, Zeke Sikelianos, di sini

Apakah Replika?

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.

Model yang tersedia di Replicate

  • Teks: Model seperti Llama 3 boleh menjana teks yang koheren dan berkaitan kontekstual berdasarkan gesaan input.
  • Imej: Model seperti resapan stabil boleh menjana imej berkualiti tinggi daripada gesaan teks.
  • Ucapan: Model seperti bisikan boleh menukar pertuturan kepada teks manakala model seperti xtts-v2 boleh menjana pertuturan yang berbunyi semula jadi.
  • Video: Model seperti animasi-diff atau varian resapan stabil seperti videocrafter boleh menjana dan/atau mengedit video daripada teks dan gesaan imej, masing-masing.

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.

Apa itu Streamlit?

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.

Cuba resipi apl: Replicate + Streamlit

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.

Prasyarat

  • Versi Python >=3.8, !=3.9.7
  • Kunci API Replika (Sila ambil perhatian bahawa kaedah pembayaran diperlukan untuk mengakses ciri melebihi had percubaan percuma.)

? Untuk mengetahui lebih lanjut tentang kunci API, lihat catatan blog di sini.

Persediaan persekitaran

Persediaan setempat

  1. Klon repo Buku Masakan: git clone https://github.com/streamlit/cookbook.git
  2. Daripada direktori akar Buku Masakan, tukar direktori kepada Resipi Replika: resipi cd/replika
  3. Tambahkan kunci API Replika anda pada fail .streamlit/secrets_template.toml
  4. Kemas kini nama fail daripada secrets_template.toml kepada secrets.toml: mv .streamlit/secrets_template.toml .streamlit/secrets.toml (Untuk mengetahui lebih lanjut tentang pengendalian rahsia dalam Streamlit, rujuk dokumentasi di sini.)
  5. Buat persekitaran maya: python -m venv replicatevenv
  6. Aktifkan persekitaran maya: source replicatevenv/bin/activate
  7. Pasang kebergantungan: pip install -r requirements.txt

Persediaan Ruang Kod GitHub

  1. Dari repo Buku Masakan di GitHub, cipta ruang kod baharu dengan memilih pilihan Ruang Kod daripada butang Kod

    How to create an AI chatbot using one API to access multiple LLMs

  2. Setelah ruang kod dijana, tambahkan kunci API Replika anda pada fail resipi/replicate/.streamlit/secrets_template.toml

  3. Kemas kini nama fail daripada secrets_template.toml kepada secrets.toml
    (Untuk mengetahui lebih lanjut tentang pengendalian rahsia dalam Streamlit, rujuk dokumentasi di sini.)

  4. Daripada direktori akar Buku Masakan, tukar direktori kepada Resipi Replika: resipi cd/replika

  5. Pasang dependencies: pip install -r requirements.txt

Jalankan model penjanaan teks dengan Replicate

  1. Buat fail dalam direktori resipi/replika yang dipanggil replicate_hello_world.py
  2. 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="")
    
  3. 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.

Jalankan apl sembang Replicate Streamlit demo

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.

How to create an AI chatbot using one API to access multiple LLMs

Anda boleh menggunakan apl ini untuk menggesa LLM yang berbeza melalui Replika dan menghasilkan teks generatif mengikut konfigurasi yang anda berikan.

API biasa untuk berbilang model LLM

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.

Tiru amalan terbaik

Gunakan model terbaik untuk gesaan

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.

Tingkatkan prestasi dengan webhooks, penstriman dan URL imej

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.

Buka kunci potensi AI dengan Streamlit

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Tutorial Python - pengenalanArtikel seterusnya:Tutorial Python - pengenalan