如何使用一個 API 建立 AI 聊天機器人來存取多個 LLM

王林
發布: 2024-08-25 06:02:02
原創
583 人瀏覽過

Asal 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 bersusah payah 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. Mereka menawarkan kelebihan berbeza bergantung pada gesaan, jadi mungkin masuk akal untuk memasukkan lebih daripada satu model dalam aplikasi AI anda.

Tetapibagaimanaanda menyepadukan semua model ini ke dalam apl andatanpakod 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 memberi perlindungan untuk anda ?

Baca untuk mengetahui:

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

Tak rasa nak baca? 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.
  • Pertuturan: 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 aplikasi 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 reka bentuk aplikasi di atas kepala.

? 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 ambil kata-kata saya untuk itu. Cuba apl itu sendiri atau tonton video berjalan dan lihat pendapat anda.

Dalam tunjuk cara 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.

?Was ist Top-P?Auch bekannt als „Nucleus Sampling“ – ist eine weitere Methode zur Anpassung der Zufälligkeit. Es funktioniert, indem ein breiterer Satz von Token berücksichtigt wird, wenn der Top-P-Wert steigt. Ein höherer Top-P-Wert führt zu einer vielfältigeren Auswahl an Token, die abgetastet werden, was zu vielfältigeren Ergebnissen führt.

Voraussetzungen

  • Python-Version >=3.8, !=3.9.7
  • Ein replizierter API-Schlüssel (Bitte beachten Sie, dass für den Zugriff auf Funktionen, die über die Grenzen der kostenlosen Testversion hinausgehen, eine Zahlungsmethode erforderlich ist.)

? Um mehr über API-Schlüssel zu erfahren, lesen Sie den Blogbeitrag hier.

Umgebungseinrichtung

Lokales Setup

  1. Klonen Sie das Cookbook-Repo: Git-Klon https://github.com/streamlit/cookbook.git
  2. Wechseln Sie im Stammverzeichnis des Kochbuchs in das Replikate-Rezept: cd Rezepte/replicate
  3. Fügen Sie Ihren Replikate-API-Schlüssel zur Datei .streamlit/secrets_template.toml hinzu
  4. Aktualisieren Sie den Dateinamen von Secrets_template.toml zu Secrets.toml: mv .streamlit/secrets_template.toml .streamlit/secrets.toml (Weitere Informationen zum Umgang mit Geheimnissen in Streamlit finden Sie in der Dokumentation hier.)
  5. Erstellen Sie eine virtuelle Umgebung: python -m venv replicatevenv
  6. Aktivieren Sie die virtuelle Umgebung: source replicatevenv/bin/activate
  7. Installieren Sie die Abhängigkeiten: pip install -r require.txt

GitHub Codespaces-Setup

  1. Erstellen Sie im Cookbook-Repository auf GitHub einen neuen Codespace, indem Sie über die Schaltfläche „Code“ die Option „Codespaces“ auswählen

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

  2. Sobald der Codespace generiert wurde, fügen Sie Ihren Replicate-API-Schlüssel zur Datei „recipes/replicate/.streamlit/secrets_template.toml“ hinzu

  3. Aktualisieren Sie den Dateinamen von Secrets_template.toml in Secrets.toml
    (Weitere Informationen zum Umgang mit Geheimnissen in Streamlit finden Sie in der Dokumentation hier.)

  4. Wechseln Sie im Stammverzeichnis des Kochbuchs in das Verzeichnis „Rezept replizieren“: cd Rezepte/replicate

  5. Installieren Sie die Abhängigkeiten: pip install -r require.txt

Führen Sie mit Replicate ein Textgenerierungsmodell aus

  1. Erstellen Sie eine Datei im Verzeichnis „recipes/replicate“ mit dem Namen „repliate_hello_world.py“.
  2. Fügen Sie der Datei den folgenden Code hinzu:

    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. Führen Sie das Skript aus: python replicate_hello_world.py

Sie sollten einen Ausdruck des vom Modell generierten Textes sehen.

Um mehr über Replicate-Modelle und ihre Funktionsweise zu erfahren, können Sie sich hier die Dokumentation ansehen. Im Kern bezieht sich ein Replikat-„Modell“ auf ein trainiertes, verpacktes und veröffentlichtes Softwareprogramm, das Eingaben akzeptiert und Ausgaben zurückgibt.

In diesem speziellen Fall ist das Modell meta/meta-llama-3-8b und die Eingabe ist „prompt“: „Was ist Streamlit?“. Wenn Sie das Skript ausführen, erfolgt ein Aufruf an den Replicate-Endpunkt und der gedruckte Text ist die vom Modell über Replicate.

zurückgegebene Ausgabe

Führen Sie die Demo-Chatbot-App Replicate Streamlit aus

Um die Demo-App auszuführen, verwenden Sie die Streamlit-CLI: streamlit run streamlit_app.py.

Durch Ausführen dieses Befehls wird die App auf einem Port auf localhost bereitgestellt. Wenn Sie auf diesen Standort zugreifen, sollte eine Streamlit-App ausgeführt werden.

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

Mit dieser App können Sie verschiedene LLMs über „Replizieren“ anfordern und generativen Text gemäß den von Ihnen bereitgestellten Konfigurationen erstellen.

Eine gemeinsame API für mehrere LLM-Modelle

Durch die Verwendung von Replicate können Sie mehrere Open-Source-LLMs mit einer API aufrufen, was die KI-Integration in moderne Softwareabläufe vereinfacht.

Dies wird im folgenden Codeblock erreicht:

for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
登入後複製

Die Modell-, Temperatur- und Top-P-Konfigurationen werden vom Benutzer über die Eingabe-Widgets von Streamlit bereitgestellt. Die Chat-Elemente von Streamlit erleichtern die Integration von Chatbot-Funktionen in Ihre App. Das Beste daran ist, dass Sie weder JavaScript noch CSS beherrschen müssen, um diese Komponenten zu implementieren und zu gestalten – Streamlit bietet all das direkt nach dem Auspacken.

Best Practices replizieren

Verwenden Sie das beste Modell für die Eingabeaufforderung

Replicate bietet einen API-Endpunkt für die Suche nach öffentlichen Modellen. Sie können auch vorgestellte Modelle und Anwendungsfälle auf ihrer Website erkunden. So finden Sie ganz einfach das richtige Modell für Ihre spezifischen Bedürfnisse.

Verschiedene Modelle haben unterschiedliche Leistungsmerkmale. Verwenden Sie das passende Modell basierend auf Ihren Anforderungen an Genauigkeit und Geschwindigkeit.

使用 Webhooks、串流媒體和圖像 URL 提高效能

Replicate 的輸出資料僅可用一小時。使用 webhook 將資料儲存到您自己的儲存空間。您也可以設定 Webhooks 來處理來自模型的非同步回應。這對於建立可擴展的應用程式至關重要。

盡可能利用串流媒體。某些模型支援串流傳輸,允許您在生成部分結果時獲得它們。這非常適合即時應用程式。

與使用 Base 64 編碼的上傳圖像相比,使用圖像 URL 可以提高效能。

使用 Streamlit 釋放 AI 的潛力

借助 Streamlit,數月的應用程式設計工作簡化為只需幾行 Python 程式碼。它是展示最新人工智慧發明的完美框架。

使用 Streamlit Cookbook 中的其他 AI 食譜快速啟動並運行快速。 (別忘了在論壇中向我們展示您正在建造的內容!)

祝 Streamlit 快樂! ?

以上是如何使用一個 API 建立 AI 聊天機器人來存取多個 LLM的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!