################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# 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! #
# #
################################################################################
Mantenedor: Equipo Cohere ConvAI
Proyecto mantenido hasta al menos (AAAA-MM-DD): 2023-03-01
Cree IA conversacional sobre los grandes modelos de lenguaje de Cohere
conversant
conversant
con pip conversant
es un marco de trabajo en progreso para crear agentes de diálogo personalizables (también conocidos como chatbots) que pueden responder preguntas y conversar con usuarios con una variedad de diferentes personajes de chatbot. conversant
pretende ser modular, flexible y extensible para que puedas crear cualquier tipo de chatbots que desees!
Le proporcionamos varias personas personalizadas, entre ellas ? un agente de atención al cliente, ⌚️ un agente de ventas de relojes, ?? un profesor de matemáticas, y ? un mago de fantasía. ¡Crea tu propia personalidad con solo una descripción y algunas conversaciones de ejemplo!
Lea más sobre cómo conversant
es parte de Cohere Sandbox en nuestra publicación de blog de lanzamiento.
¡Pruebe conversant
con nuestra demostración de Streamlit aquí! ?
conversant
está disponible en PyPI y se prueba en Python 3.8+ y Cohere 2.8.0+.
pip install conversant
¿Quieres verlo en acción primero? ¡Puedes usar conversant
en una aplicación Streamlit sin instalar nada aquí! ?
Cohere utiliza Streamlit para crear sus aplicaciones de demostración. Si es nuevo en Streamlit, puede instalarlo aquí y leer más sobre cómo ejecutar comandos Streamlit aquí.
Si desea modificar esta demostración de Streamlit localmente, le recomendamos encarecidamente bifurcar este repositorio en lugar de instalarlo como una biblioteca desde PyPI.
Si desea crear su propia instancia de la demostración de Streamlit, primero necesitará COHERE_API_KEY
. Puede generar uno visitando Dashboard.cohere.ai.
Si planeas ejecutar la aplicación Streamlit localmente, puedes agregar la clave a .streamlit/secrets.toml
:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Cuando se ejecuta localmente, Streamlit leerá el archivo secrets.toml
e inyectará silenciosamente estos valores en las variables de entorno. Alternativamente, puede configurar directamente la clave API como una variable de entorno ejecutando el siguiente comando desde la línea de comando:
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
Inicie la aplicación Streamlit desde la línea de comando con el siguiente comando:
streamlit run conversant/demo/streamlit_example.py
Si, en cambio, desea crear una aplicación Streamlit alojada, agregue su clave API de Cohere a Streamlit a través de Secrets Management. Agregue la siguiente línea como secreto:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Una vez que tengas tu propia instancia de la aplicación Streamlit, ¡puedes comenzar a experimentar con la creación de personajes personalizados! Consulte el config.json
para cada persona en el directorio conversant/personas
. Deberá crear una subcarpeta dentro de este directorio que corresponda a su nueva persona y agregar un archivo config.json
.
Como nota, recomendamos encarecidamente bifurcar el repositorio sandbox-conversant-lib
en lugar de instalarlo como una biblioteca de PyPI. Cuando cree una nueva persona, utilice el directorio personas
en el repositorio clonado. La estructura del directorio debería verse así:
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
El archivo de configuración debe contener lo siguiente:
chatbot_config
:max_context_examples
: la longitud del historial de chat que el chatbot utilizará en respuesta.avatar
: código abreviado de emoji opcional o URL para visualizar la imagen del avatar del chatbot. El valor predeterminado es ?.client_config
: Parámetros para co.generate()
chat_prompt_config
:preamble
: Descripción de la persona.example_separator
: una cadena que separa cada conversación de ejemplo.headers
: Un nombre para el bot
y el user
.examples
: algunos ejemplos de conversación (pocas tomas) o vacíos (cero tomas). conversant
se encargará del resto! Como ejemplo, consulte fortune-teller/config.json
. Cuando inicies la aplicación Streamlit, la nueva persona aparecerá en el menú desplegable.
Si desea ejecutar la aplicación con un subconjunto de personas personalizadas, es posible crear un nuevo directorio que contenga solo las deseadas. Esto es análogo al directorio conversant/personas
y debe tener la misma estructura:
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
Después de crear este directorio, deberá indicarle a la aplicación dónde buscarlo. En la aplicación de demostración Streamlit ( streamlit_example.py
), una de las primeras líneas dice CUSTOM_PERSONA_DIRECTORY = None
. Cambie esto para especificar el directorio de personas deseado, por ejemplo, CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
.
Si esto no se modifica, la aplicación utilizará de forma predeterminada el directorio que contiene las personas de demostración conversant
.
Si no ve la nueva persona en el menú desplegable, es posible que deba especificar un directorio de personas personalizado. Siga las instrucciones anteriores para indicarle a la aplicación dónde buscar las personas.
¡También puedes editar una persona en la aplicación Streamlit!
Con conversant
, puede crear un chatbot impulsado por los grandes modelos de lenguaje de Cohere con solo el siguiente fragmento de código.
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?"
También puedes definir tu propia personalidad pasando tu propio 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
utiliza la finalización rápida para definir una persona de chatbot con una descripción y algunos ejemplos. El mensaje se envía como entrada al punto final co.generate()
de Cohere para que un modelo de lenguaje autorregresivo genere texto en pocas tomas a partir de los ejemplos y el contexto de diálogo actual.
Cada mensaje de usuario y respuesta del chatbot se agrega a un historial de chat para que las respuestas futuras estén condicionadas al contexto del diálogo en ese momento.
En el futuro, planeamos agregar funcionalidad para que un chatbot se base en hechos usando texto que se recupera de un caché de documentos local.
Para obtener más información, consulte esta sección en CONTRIBUTORS.md
.
La documentación completa se puede encontrar aquí.
Si tiene alguna pregunta o comentario, presente un problema o comuníquese con nosotros en Discord.
Si desea contribuir a este proyecto, lea CONTRIBUTORS.md
en este repositorio y firme el Acuerdo de licencia de colaborador antes de enviar cualquier solicitud de extracción. Se generará un enlace para firmar el CLA de Cohere la primera vez que realice una solicitud de extracción a un repositorio de Cohere.
Además de las pautas sobre el envío de código a este repositorio, CONTRIBUTORS.md
contiene un tutorial para ayudar a los desarrolladores a comenzar, así como esquemas que explican cómo funciona conversant
en su interior. ?
conversant
tiene una licencia MIT.