هام: الحرب في أوكرانيا لا تزال مستمرة. كل يوم ، اغتصاب الجنود الروس والقتل والتعذيب وترحيل المدنيين الأوكرانيين. تفضل بزيارة هذه الصفحة لترى كيف يمكنك دعم أوكرانيا اليوم.
يتيح لك Horace تطبيق chatbot مخصصة مع اختيارك لـ LLM ومجموعة من الإضافات chatgpt. يتم تشغيله كخادم WebSocket ، مما يتيح لك إضافة chatbot التي تعمل بالطاقة LLM بسهولة إلى تطبيق الويب الخاص بك أو تطبيق الهاتف المحمول.
سمات:
none ، user_http ، service_httpيبني هوراس ويمتد غريس ، chatbot الأصلي الذي يعمل به LLM. فيما يلي Horace يعمل في وضع التصحيح مع المكون الإضافي Klarna ChatGpt ، الذي يتم الوصول إليه عبر عميل ويب:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp : cd appOPENAI_API_KEY=openai-api-key python3 main.py (استبدل openai-api-key بمفتاح API الخاص بك-احصل عليه هنا) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html في Explorer/Finder وما إلى ذلك لفتحه في متصفحك. 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 في Explorer/Finder وما إلى ذلك لفتحه في متصفحك. يدعم main.py و horace-cli.py بعض وسيطات سطر الأوامر:
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
في الوقت الحالي ، يتم دعم الواجهة الخلفية API Openai فقط. (أنا لست على دراية بـ غير Openai LLMs مع مستوى من تتبع التعليمات كافية لاستدعاء البرنامج المساعد في الوقت الحالي.) ومع ذلك ، فإن إضافة خلفية LLM مخصصة مع Horace أمر واضح تمامًا:
Backend الموجودة في backends/backend.py complete()backendsmain.pyBACKENDS في main.py لتشمل الاسم المستعار الجديد للواجهة الخلفية واسم الفصل الدراسيconfig.yaml : backend:
name: my_llm_backend
ارجع إلى الواجهة الخلفية لـ Openai API ( backends/openai_backend.py ) كمثال.
يتيح لك الواجهة الخلفية Openai API التبديل بين النماذج التالية:
انظر config.yaml للتبديل بين نماذج Openai API.
يعمل Horace مع Plugins chatgpt خارج الصندوق. لتمكين مكون إضافي ، أضف اسم المضيف الخاص به برقم منفذ اختياري إلى قسم plugins في config.yaml :
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
عند البدء ، يطلب الخادم http://[hostname]/.well-known/ai-plugin.json
يدعم Horace حاليًا أساليب none user_http و server_http لإضافات chatgpt. إذا كان هناك حاجة إلى رمز مصادق للمكون الإضافي ، فإن Horace يسألك عن واحد أثناء بدء تشغيل الخادم. في الوقت الحالي ، يتم حفظ الرموز المميزة لـ Auth دون تشفير في .plugin_auth.json .
تم تصميم موجه LLM الافتراضي لـ Horace لجعل Bot Neutral. لا يقتصر الروبوت على طلبات المستخدم التي تم تسليحها بالمكونات الإضافية (مثل روبوت حجز المطاعم ، على سبيل المثال) ، كما أنها لا تدفع بشكل استباقي إلى الوظيفة التي تدعم المكون الإضافي إلى المستخدم. بمعنى آخر ، يمكنك الدردشة مع الروبوت كما لو كنت عادة مع chatgpt ؛ إذا شعرت الروبوت بأن هناك حاجة إلى استدعاء طريقة البرنامج المساعد ، فسوف يفعل ذلك.
في سيناريوهات العالم الحقيقي ، قد ترغب في قصر الروبوت على نطاق معين مثل حجز طاولة (انظر موجه Grace للإلهام) ، أو ربما تزودها بصوت/شخصية فريدة من نوعها. للقيام بذلك ، يمكنك إضافة إرشادات إلى موجه LLM باستخدام خاصية extra_instructions في 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.
جرب إزالة كتلة يودا أعلاه لترى كيف يتغير صوت chatbot وفقًا لذلك. (لا تنس إعادة تشغيل الخادم بعد إجراء أي تغييرات على التكوين.)
لم يتم تحديث الاختبارات بعد منذ زحف من النعمة. ليكون ثابتا.