################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# This project is part of Cohere Sandbox, Cohere's Experimental Open Source #
# offering. This project provides a library, tooling, or demo making use of #
# the Cohere Platform. You should expect (self-)documented, high quality code #
# but be warned that this is EXPERIMENTAL. Therefore, also expect rough edges, #
# non-backwards compatible changes, or potential changes in functionality as #
# the library, tool, or demo evolves. Please consider referencing a specific #
# git commit or version if depending upon the project in any mission-critical #
# code as part of your own projects. #
# #
# Please don't hesitate to raise issues or submit pull requests, and thanks #
# for checking out this project! #
# #
################################################################################
المشرف: فريق Cohere ConvAI
يستمر المشروع حتى (YYYY-MM-DD) على الأقل: 2023-03-01
قم ببناء الذكاء الاصطناعي للمحادثة أعلى نماذج اللغات الكبيرة من Cohere
conversant
conversant
بالنقطة conversant
هو إطار عمل قيد التنفيذ لبناء وكلاء حوار قابلين للتخصيص (يعرفون أيضًا باسم chatbots) يمكنهم الإجابة على الأسئلة والتحدث مع المستخدمين من خلال مجموعة متنوعة من شخصيات chatbots المختلفة. تهدف conversant
إلى أن تكون معيارية ومرنة وقابلة للتوسيع حتى تتمكن من إنشاء أي نوع من برامج الدردشة الآلية التي تريدها!
نحن نقدم لك العديد من الشخصيات المخصصة، بما في ذلك ? وكيل دعم العملاء، ⌚️ وكيل مبيعات الساعات، ? مدرس رياضيات و ؟ معالج الخيال. أنشئ شخصيتك الخاصة بمجرد وصف وبعض أمثلة المحادثات!
اقرأ المزيد حول مدى كون conversant
جزءًا من Cohere Sandbox في منشور مدونة الإطلاق الخاص بنا.
جرب conversant
بالعرض التجريبي الخاص بـ Streamlit هنا! ؟
conversant
متاح على PyPI، وتم اختباره على Python 3.8+ وCohere 2.8.0+.
pip install conversant
هل تريد رؤيته عمليًا أولاً؟ يمكنك استخدام conversant
على تطبيق Streamlit دون تثبيت أي شيء هنا! ؟
يستخدم Cohere Streamlit لإنشاء تطبيقاته التجريبية. إذا كنت مستخدمًا جديدًا لـ Streamlit، فيمكنك تثبيته هنا وقراءة المزيد حول تشغيل أوامر Streamlit هنا.
إذا كنت ترغب في تعديل هذا العرض التوضيحي لـ Streamlit محليًا، فإننا نوصي بشدة بتقسيم هذا المستودع بدلاً من تثبيته كمكتبة من PyPI.
إذا كنت ترغب في تشغيل المثيل الخاص بك من العرض التوضيحي Streamlit، فستحتاج أولاً إلى COHERE_API_KEY
. يمكنك إنشاء واحد عن طريق زيارة Dashboard.cohere.ai.
إذا كنت تخطط لتشغيل تطبيق Streamlit محليًا، فيمكنك إضافة المفتاح إلى .streamlit/secrets.toml
:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
عند التشغيل محليًا، سيقرأ Streamlit ملف secrets.toml
ويحقن هذه القيم بصمت في متغيرات البيئة. وبدلاً من ذلك، يمكنك تعيين مفتاح API مباشرة كمتغير بيئة عن طريق تشغيل الأمر التالي من سطر الأوامر:
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
ابدأ تشغيل تطبيق Streamlit من سطر الأوامر باستخدام الأمر التالي:
streamlit run conversant/demo/streamlit_example.py
إذا كنت تريد بدلاً من ذلك إنشاء تطبيق Streamlit مستضاف، فأضف مفتاح Cohere API الخاص بك إلى Streamlit عبر Secrets Management. أضف السطر التالي باعتباره سرًا:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
بمجرد أن يكون لديك المثيل الخاص بك لتطبيق Streamlit، يمكنك البدء في تجربة إنشاء شخصيات مخصصة! تحقق من config.json
لكل شخصية في دليل conversant/personas
. ستحتاج إلى إنشاء مجلد فرعي داخل هذا الدليل يتوافق مع شخصيتك الجديدة وإضافة ملف config.json
.
كملاحظة، نوصي بشدة بتقسيم مستودع sandbox-conversant-lib
بدلاً من تثبيته كمكتبة من PyPI. عندما تقوم بإنشاء شخصية جديدة، استخدم دليل personas
الموجود في المستودع المستنسخ. يجب أن تبدو بنية الدليل كما يلي:
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
يجب أن يحتوي ملف التكوين على ما يلي:
chatbot_config
:max_context_examples
: طول سجل الدردشة الذي سيستخدمه برنامج الدردشة الآلي في الرد.avatar
: رمز تعبيري قصير اختياري أو عنوان URL للصورة كصورة رمزية لبرنامج الدردشة الآلية. الافتراضيات ل؟.client_config
: معلمات co.generate()
chat_prompt_config
:preamble
: وصف الشخصية.example_separator
: سلسلة تفصل بين كل محادثة نموذجية.headers
: اسم bot
user
.examples
: بعض أمثلة المحادثة (لقطة قليلة)، أو فارغة (لقطة صفر). سوف يعتني conversant
بالباقي! على سبيل المثال، راجع fortune-teller/config.json
. عند تشغيل تطبيق Streamlit، ستظهر الشخصية الجديدة في القائمة المنسدلة.
إذا كنت ترغب في تشغيل التطبيق مع مجموعة فرعية من الشخصيات المخصصة، فمن الممكن إنشاء دليل جديد يحتوي على الأشخاص المطلوبين فقط. هذا مشابه لدليل conversant/personas
، ويحتاج إلى نفس البنية:
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
بعد إنشاء هذا الدليل، ستحتاج إلى إخبار التطبيق بمكان البحث عنه. في تطبيق Streamlit التجريبي ( streamlit_example.py
)، يقرأ أحد الأسطر الأولى CUSTOM_PERSONA_DIRECTORY = None
. قم بتغيير هذا لتحديد دليل الشخصية المطلوب، على سبيل المثال CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
.
إذا لم يتغير هذا، فسيقوم التطبيق افتراضيًا باستخدام الدليل الذي يحتوي على الشخصيات التجريبية conversant
.
إذا لم تشاهد الشخصية الجديدة في القائمة المنسدلة، فقد تحتاج إلى تحديد دليل شخصية مخصص. اتبع الإرشادات المذكورة أعلاه لإخبار التطبيق بمكان البحث عن الأشخاص.
يمكنك أيضًا تعديل شخصية على تطبيق Streamlit!
باستخدام conversant
، يمكنك إنشاء chatbot مدعومًا بنماذج اللغة الكبيرة من Cohere باستخدام مقتطف التعليمات البرمجية التالي فقط.
import cohere
import conversant
co = cohere . Client ( "YOUR_API_KEY_HERE" )
bot = conversant . PromptChatbot . from_persona ( "fantasy-wizard" , client = co )
print ( bot . reply ( "Hello!" ))
>> > "Well met, fair traveller. What bringest thou to mine village?"
يمكنك أيضًا تحديد شخصيتك الخاصة عن طريق تمرير ChatPrompt
الخاص بك.
from conversant . prompts import ChatPrompt
shakespeare_config = {
"preamble" : "Below is a conversation between Shakespeare and a Literature Student." ,
"example_separator" : " n " ,
"headers" : {
"user" : "Literature Student" ,
"bot" : "William Shakespeare" ,
},
"examples" : [
[
{
"user" : "Who are you?" ,
"bot" : "Mine own nameth is Shakespeare, and I speaketh in riddles." ,
},
]
],
}
shakespeare_bot = conversant . PromptChatbot (
client = co , prompt = ChatPrompt . from_dict ( shakespeare_config )
)
print ( shakespeare_bot . reply ( "Hello!" ))
>> > "Greeteth, and welcome. I am Shakespeare, the great poet, dramatist, and playwright."
يستخدم conversant
الإكمال الفوري لتحديد شخصية chatbot مع وصف وبعض الأمثلة. يتم إرسال المطالبة كمدخل إلى نقطة النهاية co.generate()
الخاصة بـ Cohere لنموذج لغة الانحدار التلقائي لإنشاء نص بطريقة لقطات قليلة من الأمثلة وسياق الحوار الحالي.
يتم إلحاق كل رسالة مستخدم واستجابة لروبوت الدردشة بسجل الدردشة بحيث تكون الاستجابات المستقبلية مشروطة بسياق الحوار في ذلك الوقت.
في المستقبل، نخطط لإضافة وظيفة لروبوت الدردشة ليتم ترسيخها بشكل واقعي باستخدام النص الذي يتم استرداده من ذاكرة التخزين المؤقت للمستندات المحلية.
لمزيد من المعلومات، راجع هذا القسم في CONTRIBUTORS.md
.
يمكن العثور على الوثائق الكاملة هنا.
إذا كان لديك أي أسئلة أو تعليقات، يرجى تقديم مشكلة أو التواصل معنا على Discord.
إذا كنت ترغب في المساهمة في هذا المشروع، يرجى قراءة CONTRIBUTORS.md
في هذا المستودع، والتوقيع على اتفاقية ترخيص المساهم قبل تقديم أي طلبات سحب. سيتم إنشاء رابط للتوقيع على Cohere CLA في المرة الأولى التي تقوم فيها بتقديم طلب سحب إلى مستودع Cohere.
بالإضافة إلى الإرشادات حول إرسال التعليمات البرمجية إلى هذا المستودع، يحتوي CONTRIBUTORS.md
على إرشادات لمساعدة المطورين على البدء، بالإضافة إلى مخططات تشرح كيفية عمل conversant
تحت الغطاء. ؟
conversant
لديه رخصة معهد ماساتشوستس للتكنولوجيا.