################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# 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! #
# #
################################################################################
Responsable : équipe Cohere ConvAI
Projet maintenu jusqu'au (AAAA-MM-JJ) au moins : 2023-03-01
Créez une IA conversationnelle au-dessus des grands modèles linguistiques de Cohere
conversant
conversant
avec pip conversant
est un cadre de travail en cours pour créer des agents de dialogue personnalisables (alias chatbots) capables de répondre aux questions et de converser avec des utilisateurs ayant une variété de personnalités de chatbot différentes. conversant
se veut modulaire, flexible et extensible afin que vous puissiez créer tous les types de chatbots de votre choix !
Nous vous proposons plusieurs personnages personnalisés, dont ? un agent de support client, ⌚️ un agent commercial de montres, ?? un professeur de mathématiques, et ? un sorcier fantastique. Créez votre propre personnage avec juste une description et quelques exemples de conversations !
Apprenez-en davantage sur la façon dont conversant
fait partie du Cohere Sandbox sur notre article de blog de lancement.
Essayez conversant
de notre démo Streamlit ici ! ?
conversant
est disponible sur PyPI et est testé sur Python 3.8+ et Cohere 2.8.0+.
pip install conversant
Vous voulez d’abord le voir en action ? Vous pouvez utiliser conversant
sur une application Streamlit sans rien installer ici ! ?
Cohere utilise Streamlit pour créer ses applications de démonstration. Si vous êtes nouveau sur Streamlit, vous pouvez l'installer ici et en savoir plus sur l'exécution des commandes Streamlit ici.
Si vous souhaitez modifier cette démo Streamlit localement, nous vous recommandons fortement de créer ce référentiel plutôt que de l'installer en tant que bibliothèque à partir de PyPI.
Si vous souhaitez créer votre propre instance de la démo Streamlit, vous aurez d'abord besoin d'un COHERE_API_KEY
. Vous pouvez en générer un en visitant Dashboard.cohere.ai.
Si vous prévoyez d'exécuter l'application Streamlit localement, vous pouvez ajouter la clé à .streamlit/secrets.toml
:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Lors de son exécution locale, Streamlit lira le fichier secrets.toml
et injectera silencieusement ces valeurs dans les variables d'environnement. Alternativement, vous pouvez définir directement la clé API comme variable d'environnement en exécutant la commande suivante à partir de la ligne de commande :
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
Démarrez l'application Streamlit à partir de la ligne de commande avec la commande suivante :
streamlit run conversant/demo/streamlit_example.py
Si vous souhaitez plutôt créer une application Streamlit hébergée, ajoutez votre clé API Cohere à Streamlit via Secrets Management. Ajoutez la ligne suivante comme secret :
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Une fois que vous disposez de votre propre instance de l'application Streamlit, vous pouvez commencer à expérimenter la création de personnages personnalisés ! Consultez le config.json
pour chaque personnage dans le répertoire conversant/personas
. Vous devrez créer un sous-dossier dans ce répertoire qui correspond à votre nouveau personnage et ajouter un fichier config.json
.
Pour information, nous vous recommandons fortement de créer un duplicata du référentiel sandbox-conversant-lib
plutôt que de l'installer en tant que bibliothèque à partir de PyPI. Lorsque vous créez un nouveau personnage, utilisez le répertoire personas
dans le référentiel cloné. La structure des répertoires devrait ressembler à ceci :
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
Le fichier de configuration doit contenir les éléments suivants :
chatbot_config
:max_context_examples
: La longueur de l'historique de discussion que le chatbot doit utiliser en réponse.avatar
: shortcode emoji facultatif ou URL à utiliser comme avatar du chatbot. La valeur par défaut est ?.client_config
: Paramètres pour co.generate()
chat_prompt_config
:preamble
: Description du persona.example_separator
: une chaîne qui sépare chaque exemple de conversation.headers
: un nom pour le bot
et l' user
.examples
: Quelques exemples de conversation (quelques-plans), ou vides (zéro-plan). conversant
s'occupera du reste ! À titre d'exemple, consultez fortune-teller/config.json
. Lorsque vous lancez l'application Streamlit, le nouveau personnage apparaîtra dans le menu déroulant.
Si vous souhaitez exécuter l'application avec un sous-ensemble de personnages personnalisés, il est possible de créer un nouveau répertoire contenant uniquement ceux souhaités. Ceci est analogue au répertoire conversant/personas
et doit avoir la même structure :
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
Après avoir créé ce répertoire, vous devrez indiquer à l'application où le rechercher. Dans l'application de démonstration Streamlit ( streamlit_example.py
), l'une des premières lignes indique CUSTOM_PERSONA_DIRECTORY = None
. Modifiez cela pour spécifier le répertoire de personnes souhaité, par exemple CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
.
Si cela reste inchangé, l'application utilisera par défaut le répertoire qui contient les personnages de démonstration conversant
.
Si vous ne voyez pas le nouveau personnage dans le menu déroulant, vous devrez peut-être spécifier un répertoire de personnages personnalisé. Suivez les instructions ci-dessus pour indiquer à l'application où rechercher les personnages.
Vous pouvez également modifier un personnage sur l'application Streamlit !
Avec conversant
, vous pouvez créer un chatbot alimenté par les grands modèles de langage de Cohere avec uniquement l'extrait de code suivant.
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?"
Vous pouvez également définir votre propre personnalité en transmettant votre propre 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
utilise la saisie semi-automatique pour définir un personnage de chatbot avec une description et quelques exemples. L'invite est envoyée en entrée au point de terminaison co.generate()
de Cohere pour un modèle de langage autorégressif afin de générer du texte en quelques étapes à partir des exemples et du contexte de dialogue actuel.
Chaque message utilisateur et réponse du chatbot est ajouté à un historique de discussion afin que les réponses futures soient conditionnées au contexte du dialogue à ce moment-là.
À l’avenir, nous prévoyons d’ajouter des fonctionnalités permettant à un chatbot d’être fondé sur des faits à l’aide de texte récupéré d’un cache de documents local.
Pour plus d'informations, reportez-vous à cette section dans CONTRIBUTORS.md
.
La documentation complète peut être trouvée ici.
Si vous avez des questions ou des commentaires, veuillez signaler un problème ou nous contacter sur Discord.
Si vous souhaitez contribuer à ce projet, veuillez lire CONTRIBUTORS.md
dans ce référentiel et signer le contrat de licence de contributeur avant de soumettre des demandes d'extraction. Un lien pour signer le Cohere CLA sera généré la première fois que vous effectuerez une pull request vers un référentiel Cohere.
En plus des directives concernant la soumission de code à ce référentiel, CONTRIBUTORS.md
contient une procédure pas à pas pour aider les développeurs à démarrer, ainsi que des schémas expliquant comment conversant
fonctionne sous le capot. ?
conversant
possède une licence MIT.