Penting: Perang di Ukraina masih berlangsung. Setiap hari, tentara Rusia memperkosa, pembunuhan, penyiksaan, dan mendeportasi warga sipil Ukraina. Kunjungi halaman ini untuk melihat bagaimana Anda dapat mendukung Ukraina hari ini.
Horace memungkinkan Anda menerapkan chatbot khusus dengan pilihan LLM dan satu set plugin chatgpt. Ini berjalan sebagai server WebSocket, memungkinkan Anda untuk dengan mudah menambahkan chatbot bertenaga LLM ke web atau aplikasi seluler Anda.
Fitur:
none , user_http , service_httpHorace dibangun di atas dan memperluas Grace, chatbot bertenaga LLM asli saya. Berikut adalah Horace yang berjalan dalam mode debug dengan plugin Klarna Chatgpt, diakses melalui klien web:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp : cd appOPENAI_API_KEY=openai-api-key python3 main.py (ganti openai-api-key dengan Kunci API OpenAI Anda-Dapatkan di sini) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html di Explorer/Finder dll untuk membukanya di browser Anda. cd horacedocker build -t horace:latest . docker run --rm
-e OPENAI_API_KEY=openai-api-key
-p 8001:8001
--name horace
horace:latest
docker exec -it horace python3 /app/horace-cli.pyclient-demo/index.html di Explorer/Finder dll untuk membukanya di browser Anda. main.py dan horace-cli.py mendukung beberapa argumen baris perintah:
python3 main.py --help
usage: main.py [-h] [--host HOST] [--port PORT] [--debug]
optional arguments:
-h, --help show this help message and exit
--host HOST bind host name
--port PORT bind port number
--debug enable debug mode
python3 app/horace-cli.py --help
usage: horace-cli.py [-h] [--host HOST] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--host HOST server host name
--port PORT server port number
Saat ini, hanya backend API Openai yang didukung. (Saya tidak mengetahui llms non-openai dengan tingkat pengikut instruksi yang cukup untuk doa plugin sekarang.) Namun, menambahkan backend LLM khusus dengan Horace cukup mudah:
Backend yang terletak di backends/backend.py dan mengimplementasikan metode complete()backendsmain.pyBACKENDS di main.py untuk memasukkan alias dan nama kelas backend baru Andaconfig.yaml : backend:
name: my_llm_backend
Lihat backend API OpenAI ( backends/openai_backend.py ) sebagai contoh.
Backend API OpenAI memungkinkan Anda beralih di antara model -model berikut:
Lihat config.yaml untuk beralih di antara model API OpenAI.
Horace bekerja dengan plugin chatgpt di luar kotak. Untuk mengaktifkan plugin, tambahkan nama host -nya dengan nomor port opsional ke bagian plugins di config.yaml :
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
Setelah memulai, server meminta http://[hostname]/.well-known/ai-plugin.json untuk setiap plugin dan mengambilnya dari sana untuk memuatnya.
Horace saat ini mendukung metode auth none , user_http dan server_http untuk plugin chatgpt. Jika token AUTH diperlukan untuk plugin, Horace meminta Anda selama startup server. Saat ini, token auth disimpan tanpa terenkripsi di .plugin_auth.json .
Prompt LLM default untuk Horace dirancang untuk membuat bot netral. Bot tidak terbatas pada permintaan pengguna yang difasilitasi plugin (seperti bot pemesanan restoran, misalnya), juga tidak secara proaktif mendorong fungsionalitas yang diaktifkan plugin ke pengguna. Dengan kata lain, Anda dapat mengobrol dengan bot seperti biasanya dengan chatgpt; Jika bot merasa bahwa memohon metode plugin diperlukan, itu akan melakukannya.
Dalam skenario dunia nyata, Anda mungkin ingin membatasi bot pada ruang lingkup tertentu seperti memesan meja (lihat Prompt Grace untuk inspirasi), atau mungkin memberikannya suara/kepribadian yang unik. Untuk melakukan ini, Anda dapat menambahkan instruksi ke prompt LLM menggunakan properti extra_instructions di config.yaml :
horace:
# Any extra instructions to prepend the prompt with
extra_instructions: >-
You are a helpful and polite AI assistant.
# extra_instructions: >-
# In your speech, you impersonate Jedi Master Yoda and crack jokes in response
# to mentions of other Star Wars characters.
Cobalah membongkar blok yoda di atas untuk melihat bagaimana suara chatbot berubah. (Jangan lupa untuk memulai ulang server setelah melakukan perubahan pada konfigurasi.)
Tes belum diperbarui sejak bercabang dari rahmat. Untuk diperbaiki.