Implementación de modelos de comandos de Cohere con Azure AI Studio
Importante
Algunas de las características descritas en este artículo solo pueden estar disponibles en versión preliminar. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
En este artículo, aprenderá a usar Inteligencia artificial de Azure Studio para implementar los modelos de Cohere Command como API sin servidor con facturación basada en tokens de pago por uso.
Cohere ofrece dos modelos de comandos en Azure AI Studio. Estos modelos están disponibles como API sin servidor con la facturación basada en tokens de pago por uso. Puede examinar la familia de modelos Cohere en el catálogo de modelo si filtra por la colección Cohere.
Modelos de Cohere Command
En esta sección, obtendrá información sobre los dos modelos de Cohere Command que están disponibles en el catálogo de modelo:
- Cohere Command R
- Cohere Command R+
Puede examinar la familia Cohere de modelos en el catálogo de modelos filtrando por la colección Cohere.
Arquitectura del modelo: Command R y Command R+ son modelos de lenguaje de regresión automática que usa una arquitectura de transformador optimizada. Después del entrenamiento previo, los modelos usan el ajuste preciso supervisado (SFT) y el entrenamiento de preferencias para alinear el comportamiento del modelo con las preferencias humanas con el fin de aumentar la utilidad y la seguridad.
Idiomas cubiertos: los modelos están optimizados para funcionar correctamente en los siguientes idiomas: inglés, francés, español, italiano, alemán, portugués brasileño, japonés, coreano, chino simplificado y árabe.
Entre los datos de entrenamiento previo se incluyen también los siguientes 13 idiomas: ruso, polaco, turco, vietnamita, neerlandés, checo, indonesio, rumano, griego, hindi, hebreo, persa.
Longitud del contexto: Command R y Command R+ admiten una longitud de contexto de 128 000.
Entrada: los modelos solo admiten texto.
Salida: los modelos solo generan texto.
Implementación como una API sin servidor
Algunos modelos del catálogo de modelos pueden implementarse como API sin servidor con facturación de pago por uso. Este tipo de implementación proporciona una manera de consumir modelos como una API sin hospedarlos en la suscripción, a la vez que mantiene la seguridad empresarial y el cumplimiento que necesitan las organizaciones. Esta opción de implementación no requiere cuota de la suscripción.
Los modelos de Cohere mencionados anteriormente se pueden implementar como un servicio con facturación de pago por uso y son ofrecidos por Cohere a través de Microsoft Azure Marketplace. Cohere puede cambiar o actualizar las condiciones de uso y los precios de estos modelos.
Requisitos previos
Una suscripción de Azure con un método de pago válido. Las suscripciones gratuitas o de evaluación de Azure no funcionarán. Si no tiene una suscripción de Azure, cree una cuenta de Azure de pago para comenzar.
-
Importante
En el caso de los modelos de la familia Cohere, la oferta de implementación de modelos de API sin servidor solo está disponible con centros creados en las regiones Este de EE. UU. 2 o Centro de Suecia.
Un proyecto de AI Studio en Azure AI Studio.
Los controles de acceso basado en rol de Azure (RBAC de Azure) se usan para conceder acceso a las operaciones en la inteligencia artificial de Azure Studio. Para realizar los pasos descritos en este artículo, la cuenta de usuario debe tener asignado el rol Desarrollador de Azure AI en el grupo de recursos. Para más información sobre los permisos, consulte control de acceso basado en rol en Inteligencia artificial de Azure Studio.
Crear una nueva implementación
En los pasos siguientes se muestra la implementación de Cohere Command R, pero puede usar los mismos pasos para implementar Cohere Command R+ si reemplaza el nombre del modelo.
Para crear una implementación:
Inicie sesión en Azure AI Studio.
Seleccione Catálogo de modelos en la barra lateral izquierda.
Busque Cohere.
Seleccione Cohere-command-r para abrir la página Detalles del modelo.
Seleccione Implementar para abrir una ventana de implementación de API sin servidor para el modelo.
Como alternativa, puedes iniciar una implementación empezando por el proyecto en AI Studio.
En la barra lateral de la izquierda del proyecto, seleccione Componentes>Implementaciones.
Seleccione + Crear implementación.
Busque y seleccione Cohere-command-r. para abrir la página Detalles del modelo.
Seleccione Confirmar para abrir una ventana de implementación de API sin servidor para el modelo.
Selecciona el proyecto en el que deseas implementar el modelo. Para implementar el modelo, el proyecto debe estar en la región Este de EE. UU. 2 o Centro de Suecia.
En el Asistente para la implementación, selecciona el vínculo a Términos de Azure Marketplace para obtener más información sobre los términos de uso.
Seleccione la pestaña Precios y términos para obtener información sobre los precios del modelo seleccionado.
Seleccione el botón Suscribir e implementar. Si esta es la primera vez que implementas el modelo en el proyecto, debes suscribirte al proyecto para la oferta concreta. Para este paso es necesario que la cuenta tenga los permisos del rol Desarrollador de Azure AI en el grupo de recursos, como se muestra en los requisitos previos. Cada proyecto tiene su propia suscripción a la oferta concreta de Azure Marketplace del modelo, lo que te permite controlar y supervisar los gastos. Actualmente solo puede tener una implementación para cada modelo dentro de un proyecto.
Una vez que suscribas el proyecto para la oferta concreta de Azure Marketplace, las implementaciones posteriores de la misma oferta en el mismo proyecto no requieren la suscripción de nuevo. Si este escenario le afecta, podrá seleccionar la opción Continuar para implementar.
Asigne un nombre a la implementación. Este nombre forma parte de la dirección URL de la API de implementación. Esta dirección URL debe ser única en cada región de Azure.
Seleccione Implementar. Espere hasta que la implementación esté lista y se le redirigirá a la página Implementaciones.
Seleccione Abrir en el área de juegos para empezar a interactuar con el modelo.
Vuelva a la página Implementaciones, seleccione la implementación y anote la URL de Objetivo del punto de conexión y la Clave secreta. Para obtener más información sobre el uso de las API, consulte la sección de referencia.
Puede encontrar los detalles, la dirección URL y las claves de acceso del punto de conexión si navega a la página Información general del proyecto. Después, en la barra lateral izquierda del proyecto, seleccione Componentes>Implementaciones.
Para obtener información sobre la facturación de los modelos Cohere implementados como API sin servidor con facturación basada en tokens de pago por uso, consulte Consideraciones sobre costos y cuotas para los modelos implementados como una API sin servidor.
Consumo de los modelos de Cohere como servicio
Estos modelos se pueden consumir mediante la API de chat.
En la página Información general del proyecto, vaya a la barra lateral de la izquierda y seleccione Componentes>Implementaciones.
Busque y seleccione la implementación que ha creado.
Copia la dirección URL de destino y el valor clave.
Cohere expone dos rutas para la inferencia con los modelos Command R y Command R+. La API de inferencia de modelos de Azure AI en la ruta
/chat/completions
y la API Cohere nativa.
Para obtener más información sobre el uso de las API, consulte la sección de referencia.
Referencia de los modelos de Cohere implementados como servicio
Los modelos Cohere Command R y Command R+ aceptan tanto la API de inferencia de modelos de Azure AI en la ruta /chat/completions
como la API nativa Cohere Chat en /v1/chat
.
API de inferencia de modelos de Azure AI
El esquema de API de inferencia de modelos de Azure AI puede encontrarse en el artículo de Referencia para las finalizaciones de chat y puede obtenerse una Especificación OpenAPI del propio punto de conexión.
API Cohere Chat
A continuación se incluyen detalles sobre la API Cohere Chat.
Solicitar
POST /v1/chat HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json
Esquema de solicitud de v1/chat
Cohere Command R y Command R+ aceptan los parámetros siguientes para una llamada de inferencia de respuesta de v1/chat
:
Clave | Tipo | Valor predeterminado | Descripción |
---|---|---|---|
message |
string |
Obligatorio | Entrada de texto para que el modelo responda. |
chat_history |
array of messages |
None |
Lista de mensajes anteriores entre el usuario y el modelo, diseñados para proporcionar al modelo contexto conversacional para responder al mensaje del usuario. |
documents |
array |
None |
Lista de documentos relevantes que el modelo puede citar para generar una respuesta más precisa. Cada documento es un diccionario de cadenas. Las claves y los valores de cada documento se serializan en una cadena y se pasan al modelo. La generación resultante incluye citas que hacen referencia a algunos de esos documentos. Algunas claves sugeridas son "text", "author" y "date". Para mejorar la calidad de la generación, se recomienda mantener el recuento total de palabras de las cadenas del diccionario en menos de 300 palabras. Opcionalmente, se puede proporcionar un campo _excludes (matriz de cadenas) para que no se muestren al modelo algunos pares clave-valor. Los campos omitidos siguen apareciendo en el objeto de cita. El campo "_excludes" no se pasa al modelo. Consulte la guía del modo de documento de la documentación de Cohere. |
search_queries_only |
boolean |
false |
Si el valor es true , la respuesta solo contiene una lista de consultas de búsqueda generadas, pero no se realiza ninguna búsqueda y no se genera ninguna respuesta del modelo al message del usuario. |
stream |
boolean |
false |
Si el valor es true , la respuesta es una secuencia JSON de eventos. El evento final contiene la respuesta completa y tiene un event_type de "stream-end" . El streaming es ventajoso en el caso de las interfaces de usuario que representan el contenido de la respuesta fragmento a fragmento, a medida que se va generando. |
max_tokens |
integer |
None | Número máximo de tokens que genera el modelo como parte de la respuesta. Nota: Establecer un valor bajo puede dar lugar a generaciones incompletas. Si no se especifica, genera tokens hasta el final de la secuencia. |
temperature |
float |
0.3 |
Use un valor inferior para reducir la aleatoriedad en la respuesta. Para maximizar la aleatoriedad, aumente el valor del parámetro p . El valor mínimo es 0 y el máximo es 2. |
p |
float |
0.75 |
Use un valor inferior para omitir las opciones menos probables. Establézcalo en 0 o 1.0 para deshabilitarlo. Si se habilitan p y k, p actúa después de k. Valor mínimo de 0,01, valor máximo de 0,99. |
k |
float |
0 |
Especifique el número de opciones de token que usa el modelo para generar el siguiente token. Si se habilitan p y k, p actúa después de k. Valor mínimo de 0, valor máximo de 500. |
prompt_truncation |
enum string |
OFF |
Acepta AUTO_PRESERVE_ORDER , AUTO y OFF . Determina cómo se construye la solicitud. Si prompt_truncation se establece en AUTO_PRESERVE_ORDER , se quitan algunos elementos de chat_history y documents para construir una solicitud que se ajuste al límite de longitud de contexto del modelo. Durante este proceso, se conserva el orden de los documentos y el historial de chat. Si prompt_truncation se establece en "OFF", no se quita ningún elemento. |
stop_sequences |
array of strings |
None |
El texto generado se corta al final de la primera aparición de una secuencia de detención. La secuencia se incluye en el texto. |
frequency_penalty |
float |
0 |
Se usa para reducir la repetición de los tokens generados. Cuanto mayor sea el valor, mayor será la penalización que se aplique a los tokens presentes previamente, de forma proporcional al número de veces que ya hayan aparecido en la solicitud o en la generación anterior. Valor mínimo de 0,0, valor máximo de 1,0. |
presence_penalty |
float |
0 |
Se usa para reducir la repetición de los tokens generados. De forma similar a frequency_penalty , salvo que esta penalización se aplica por igual a todos los tokens que ya han aparecido, independientemente de sus frecuencias exactas. Valor mínimo de 0,0, valor máximo de 1,0. |
seed |
integer |
None |
Si se especifica, el back-end realizará un mejor esfuerzo para muestrear tokens de forma determinista, de modo que las solicitudes repetidas con la misma inicialización y parámetros deben devolver el mismo resultado. Sin embargo, no se puede garantizar el determinismo. |
return_prompt |
boolean |
false |
Devuelve la solicitud completa que se envió al modelo si el valor es true . |
tools |
array of objects |
None |
El campo está sujeto a cambios. Lista de herramientas (funciones) disponibles que el modelo puede sugerir invocar antes de generar una respuesta de texto. Cuando se pasa tools (sin tool_results ), el campo text de la respuesta es "" y el campo tool_calls de la respuesta se rellena con una lista de las llamadas a herramientas que se deben realizar. Si no es necesario realizar ninguna llamada, la matriz tool_calls está vacía. |
tool_results |
array of objects |
None |
El campo está sujeto a cambios. Lista de resultados de la invocación de las herramientas recomendadas por el modelo en el turno de chat anterior. Los resultados se usan para producir una respuesta textual y se hace referencia a ellos en las citas. Al usar tool_results , también se debe pasar tools . Cada tool_result contiene información sobre cómo se invocó y una lista de salidas en forma de diccionarios. La lógica de cita específica de Cohere requiere que la salida sea una lista. En caso de que la salida sea solo un elemento, por ejemplo, {"status": 200} , se sigue encapsulando en una lista. |
El objeto chat_history
requiere los siguientes campos:
Clave | Tipo | Descripción |
---|---|---|
role |
enum string |
Toma USER , SYSTEM o CHATBOT . |
message |
string |
Contenido del texto del mensaje. |
El objeto documents
tiene los siguientes campos opcionales:
Clave | Tipo | Valor predeterminado | Descripción |
---|---|---|---|
id |
string |
None |
Se puede proporcionar para identificar el documento en las citas. Este campo no se pasa al modelo. |
_excludes |
array of strings |
None |
Se puede proporcionar opcionalmente para que no se muestren al modelo algunos pares clave-valor. Los campos omitidos siguen apareciendo en el objeto de cita. El campo _excludes no se pasa al modelo. |
Esquema de respuesta de v1/chat
Los campos de respuesta se documentan completamente en la Referencia de la API de chat de Cohere. El objeto de respuesta siempre contiene lo siguiente:
Clave | Tipo | Descripción |
---|---|---|
response_id |
string |
Identificador único para la finalización del chat. |
generation_id |
string |
Identificador único para la finalización del chat, que se usa con el punto de conexión de comentarios en la plataforma de Cohere. |
text |
string |
Respuesta del modelo a la entrada del mensaje de chat. |
finish_reason |
enum string |
Por qué se completó la generación. Puede ser cualquiera de los siguientes valores: COMPLETE , ERROR , ERROR_TOXIC , ERROR_LIMIT , USER_CANCEL o MAX_TOKENS . |
token_count |
integer |
Recuento de tokens usados. |
meta |
string |
Datos de uso de API, incluidos los tokens facturables y la versión actual. |
Documentos
Si se especifican documents
en la solicitud, hay otros dos campos en la respuesta:
Clave | Tipo | Descripción |
---|---|---|
documents |
array of objects |
Enumera los documentos citados en la respuesta. |
citations |
array of objects |
Especifica qué parte de la respuesta se encontró en un documento determinado. |
citations
es una matriz de objetos con los siguientes campos obligatorios:
Clave | Tipo | Descripción |
---|---|---|
start |
integer |
Índice del texto en el que comienza la cita, contando desde cero. Por ejemplo, una generación de Hello, world! con una cita en world tendría un valor inicial de 7 . Esto se debe a que la cita comienza en w , que es el séptimo carácter. |
end |
integer |
Índice del texto tras el que finaliza la cita, contando desde cero. Por ejemplo, una generación de Hello, world! con una cita en world tendría un valor final de 11 . Esto se debe a que la cita finaliza tras d , que es el undécimo carácter. |
text |
string |
Texto de la cita. Por ejemplo, una generación de Hello, world! con una cita de world tendría un valor de texto de world . |
document_ids |
array of strings |
Identificadores de los documentos citados por esta sección de la respuesta generada. |
Herramientas
Si se especifican tools
y el modelo las invoca, hay otro campo en la respuesta:
Clave | Tipo | Descripción |
---|---|---|
tool_calls |
array of objects |
Contiene las llamadas a herramientas generadas por el modelo. Se usa para invocar las herramientas. |
tool_calls
es una matriz de objetos con los siguientes campos:
Clave | Tipo | Descripción |
---|---|---|
name |
string |
Nombre de la herramienta a la que se va a llamar. |
parameters |
object |
Nombre y valor de los parámetros que se van a usar al invocar una herramienta. |
Search_queries_only
Si se especifica search_queries_only=TRUE
en la solicitud, hay otros dos campos en la respuesta:
Clave | Tipo | Descripción |
---|---|---|
is_search_required |
boolean |
Indica al modelo que genere una consulta de búsqueda. |
search_queries |
array of objects |
Objeto que contiene una lista de consultas de búsqueda. |
search_queries
es una matriz de objetos con los siguientes campos:
Clave | Tipo | Descripción |
---|---|---|
text |
string |
Texto de la consulta de búsqueda. |
generation_id |
string |
Identificador único de la consulta de búsqueda generada. Es útil para enviar comentarios. |
Ejemplos
Chat: finalizaciones
En el ejemplo siguiente se muestra una llamada de solicitud de ejemplo para obtener finalizaciones de chat del modelo de comandos de Cohere. Se usan para generar una finalización de chat.
Solicitud:
{
"chat_history": [
{"role":"USER", "message": "What is an interesting new role in AI if I don't have an ML background"},
{"role":"CHATBOT", "message": "You could explore being a prompt engineer!"}
],
"message": "What are some skills I should have"
}
Respuesta:
{
"response_id": "09613f65-c603-41e6-94b3-a7484571ac30",
"text": "Writing skills are very important for prompt engineering. Some other key skills are:\n- Creativity\n- Awareness of biases\n- Knowledge of how NLP models work\n- Debugging skills\n\nYou can also have some fun with it and try to create some interesting, innovative prompts to train an AI model that can then be used to create various applications.",
"generation_id": "6d31a57f-4d94-4b05-874d-36d0d78c9549",
"finish_reason": "COMPLETE",
"token_count": {
"prompt_tokens": 99,
"response_tokens": 70,
"total_tokens": 169,
"billed_tokens": 151
},
"meta": {
"api_version": {
"version": "1"
},
"billed_units": {
"input_tokens": 81,
"output_tokens": 70
}
}
}
Chat: generación con base y funcionalidades de RAG
Command R y Command R+ se entrenan para RAG a través de una combinación de ajuste preciso supervisado y ajuste preciso de preferencias, para lo que se usa una plantilla de instrucciones específica. Se presenta esa plantilla de solicitud a través del parámetro documents
. Los fragmentos de código de documentos deben ser fragmentos en lugar de documentos largos, normalmente de entre 100 y 400 palabras por fragmento. Los fragmentos de código de documentos constan de pares clave-valor. Las claves deben ser cadenas descriptivas cortas. Los valores pueden ser de texto o semiestructurados.
Solicitud:
{
"message": "Where do the tallest penguins live?",
"documents": [
{
"title": "Tall penguins",
"snippet": "Emperor penguins are the tallest."
},
{
"title": "Penguin habitats",
"snippet": "Emperor penguins only live in Antarctica."
}
]
}
Respuesta:
{
"response_id": "d7e72d2e-06c0-469f-8072-a3aa6bd2e3b2",
"text": "Emperor penguins are the tallest species of penguin and they live in Antarctica.",
"generation_id": "b5685d8d-00b4-48f1-b32f-baebabb563d8",
"finish_reason": "COMPLETE",
"token_count": {
"prompt_tokens": 615,
"response_tokens": 15,
"total_tokens": 630,
"billed_tokens": 22
},
"meta": {
"api_version": {
"version": "1"
},
"billed_units": {
"input_tokens": 7,
"output_tokens": 15
}
},
"citations": [
{
"start": 0,
"end": 16,
"text": "Emperor penguins",
"document_ids": [
"doc_0"
]
},
{
"start": 69,
"end": 80,
"text": "Antarctica.",
"document_ids": [
"doc_1"
]
}
],
"documents": [
{
"id": "doc_0",
"snippet": "Emperor penguins are the tallest.",
"title": "Tall penguins"
},
{
"id": "doc_1",
"snippet": "Emperor penguins only live in Antarctica.",
"title": "Penguin habitats"
}
]
}
Chat: uso de herramientas
Si se van a invocar herramientas o generar una respuesta basada en los resultados de las herramientas, use los parámetros siguientes.
Solicitud:
{
"message":"I'd like 4 apples and a fish please",
"tools":[
{
"name":"personal_shopper",
"description":"Returns items and requested volumes to purchase",
"parameter_definitions":{
"item":{
"description":"the item requested to be purchased, in all caps eg. Bananas should be BANANAS",
"type": "str",
"required": true
},
"quantity":{
"description": "how many of the items should be purchased",
"type": "int",
"required": true
}
}
}
],
"tool_results": [
{
"call": {
"name": "personal_shopper",
"parameters": {
"item": "Apples",
"quantity": 4
},
"generation_id": "cb3a6e8b-6448-4642-b3cd-b1cc08f7360d"
},
"outputs": [
{
"response": "Sale completed"
}
]
},
{
"call": {
"name": "personal_shopper",
"parameters": {
"item": "Fish",
"quantity": 1
},
"generation_id": "cb3a6e8b-6448-4642-b3cd-b1cc08f7360d"
},
"outputs": [
{
"response": "Sale not completed"
}
]
}
]
}
Respuesta:
{
"response_id": "fa634da2-ccd1-4b56-8308-058a35daa100",
"text": "I've completed the sale for 4 apples. \n\nHowever, there was an error regarding the fish; it appears that there is currently no stock.",
"generation_id": "f567e78c-9172-4cfa-beba-ee3c330f781a",
"chat_history": [
{
"message": "I'd like 4 apples and a fish please",
"response_id": "fa634da2-ccd1-4b56-8308-058a35daa100",
"generation_id": "a4c5da95-b370-47a4-9ad3-cbf304749c04",
"role": "User"
},
{
"message": "I've completed the sale for 4 apples. \n\nHowever, there was an error regarding the fish; it appears that there is currently no stock.",
"response_id": "fa634da2-ccd1-4b56-8308-058a35daa100",
"generation_id": "f567e78c-9172-4cfa-beba-ee3c330f781a",
"role": "Chatbot"
}
],
"finish_reason": "COMPLETE",
"token_count": {
"prompt_tokens": 644,
"response_tokens": 31,
"total_tokens": 675,
"billed_tokens": 41
},
"meta": {
"api_version": {
"version": "1"
},
"billed_units": {
"input_tokens": 10,
"output_tokens": 31
}
},
"citations": [
{
"start": 5,
"end": 23,
"text": "completed the sale",
"document_ids": [
""
]
},
{
"start": 113,
"end": 132,
"text": "currently no stock.",
"document_ids": [
""
]
}
],
"documents": [
{
"response": "Sale completed"
}
]
}
Una vez que ejecute la función y reciba las salidas de las herramientas, puede volver a pasarlas al modelo para generar una respuesta para el usuario.
Solicitud:
{
"message":"I'd like 4 apples and a fish please",
"tools":[
{
"name":"personal_shopper",
"description":"Returns items and requested volumes to purchase",
"parameter_definitions":{
"item":{
"description":"the item requested to be purchased, in all caps eg. Bananas should be BANANAS",
"type": "str",
"required": true
},
"quantity":{
"description": "how many of the items should be purchased",
"type": "int",
"required": true
}
}
}
],
"tool_results": [
{
"call": {
"name": "personal_shopper",
"parameters": {
"item": "Apples",
"quantity": 4
},
"generation_id": "cb3a6e8b-6448-4642-b3cd-b1cc08f7360d"
},
"outputs": [
{
"response": "Sale completed"
}
]
},
{
"call": {
"name": "personal_shopper",
"parameters": {
"item": "Fish",
"quantity": 1
},
"generation_id": "cb3a6e8b-6448-4642-b3cd-b1cc08f7360d"
},
"outputs": [
{
"response": "Sale not completed"
}
]
}
]
}
Respuesta:
{
"response_id": "fa634da2-ccd1-4b56-8308-058a35daa100",
"text": "I've completed the sale for 4 apples. \n\nHowever, there was an error regarding the fish; it appears that there is currently no stock.",
"generation_id": "f567e78c-9172-4cfa-beba-ee3c330f781a",
"chat_history": [
{
"message": "I'd like 4 apples and a fish please",
"response_id": "fa634da2-ccd1-4b56-8308-058a35daa100",
"generation_id": "a4c5da95-b370-47a4-9ad3-cbf304749c04",
"role": "User"
},
{
"message": "I've completed the sale for 4 apples. \n\nHowever, there was an error regarding the fish; it appears that there is currently no stock.",
"response_id": "fa634da2-ccd1-4b56-8308-058a35daa100",
"generation_id": "f567e78c-9172-4cfa-beba-ee3c330f781a",
"role": "Chatbot"
}
],
"finish_reason": "COMPLETE",
"token_count": {
"prompt_tokens": 644,
"response_tokens": 31,
"total_tokens": 675,
"billed_tokens": 41
},
"meta": {
"api_version": {
"version": "1"
},
"billed_units": {
"input_tokens": 10,
"output_tokens": 31
}
},
"citations": [
{
"start": 5,
"end": 23,
"text": "completed the sale",
"document_ids": [
""
]
},
{
"start": 113,
"end": 132,
"text": "currently no stock.",
"document_ids": [
""
]
}
],
"documents": [
{
"response": "Sale completed"
}
]
}
Chat: consultas de búsqueda
Si va a compilar un agente de RAG, también puede usar la API de chat de Cohere para obtener consultas de búsqueda desde Command. Especifique search_queries_only=TRUE
en la solicitud.
Solicitud:
{
"message": "Which lego set has the greatest number of pieces?",
"search_queries_only": true
}
Respuesta:
{
"response_id": "5e795fe5-24b7-47b4-a8bc-b58a68c7c676",
"text": "",
"finish_reason": "COMPLETE",
"meta": {
"api_version": {
"version": "1"
}
},
"is_search_required": true,
"search_queries": [
{
"text": "lego set with most pieces",
"generation_id": "a086696b-ad8e-4d15-92e2-1c57a3526e1c"
}
]
}
Más ejemplos de inferencia
Package | Cuaderno de ejemplo |
---|---|
CLI mediante solicitudes web de Python y CURL: Command R | command-r.ipynb |
CLI mediante solicitudes web de Python y CURL: Command R+ | command-r-plus.ipynb |
SDK de OpenAI (experimental) | openaisdk.ipynb |
LangChain | langchain.ipynb |
SDK de Cohere | cohere-sdk.ipynb |
SDK de LiteLLM | litellm.ipynb |
Generación aumentada de recuperación (RAG) y ejemplos de uso de herramientas
Descripción | Paquete | Cuaderno de ejemplo |
---|---|---|
Creación de un índice de vectores de búsqueda de similitud de IA de Facebook local (FAISS), mediante incrustaciones de Cohere: Langchain | langchain , langchain_cohere |
cohere_faiss_langchain_embed.ipynb |
Uso de Cohere Command R/R+ para responder preguntas de datos en el índice de vectores de FAISS local: Langchain | langchain , langchain_cohere |
command_faiss_langchain.ipynb |
Uso de Cohere Command R/R+ para responder preguntas de datos en el índice de vectores de búsqueda de IA: Langchain | langchain , langchain_cohere |
cohere-aisearch-langchain-rag.ipynb |
Uso de Cohere Command R/R+ para responder preguntas de datos en el índice de vectores de búsqueda de IA: SDK de Cohere | cohere , azure_search_documents |
cohere-aisearch-rag.ipynb |
Llamada a herramientas o funciones de Command R+, mediante LangChain | cohere , langchain , langchain_cohere |
command_tools-langchain.ipynb |
Coste y cuotas
Consideraciones de costos y cuotas para los modelos implementados como una API sin servidor
Los modelos de Cohere implementados como una API sin servidor con facturación de pago por uso los ofrece Cohere a través de Azure Marketplace y se integran con Inteligencia artificial de Azure Studio para su uso. Puedes encontrar los precios de Azure Marketplace al implementar modelos.
Cada vez que un proyecto se suscribe a una oferta determinada de Azure Marketplace, se crea un nuevo recurso para realizar un seguimiento de los costos asociados a su consumo. El mismo recurso se usa para hacer un seguimiento de los costos asociados con la inferencia; sin embargo, hay varios medidores disponibles para hacer un seguimiento de cada escenario de forma independiente.
Para más información sobre cómo realizar un seguimiento de los costos, consulte Supervisar los costos de los modelos ofrecidos en Azure Marketplace.
La cuota se administra por implementación. Cada implementación tiene un límite de velocidad de 200 000 tokens por minuto y 1000 solicitudes de API por minuto. Sin embargo, actualmente limitamos una implementación por modelo por proyecto. Póngase en contacto con el Soporte técnico de Microsoft Azure si los límites de velocidad actuales no son suficientes para sus escenarios.
Filtrado de contenido
Los modelos implementados como una API sin servidor con facturación de pago por uso están protegidos por Seguridad del contenido de Azure AI. Con la seguridad de contenido de Azure AI, tanto la solicitud como la finalización pasan por un conjunto de modelos de clasificación destinados a detectar y evitar la salida de contenido dañino. El sistema de filtrado de contenido detecta y toma medidas en categorías específicas de contenido potencialmente perjudicial tanto en solicitudes de entrada como en finalizaciones de salida. Puede encontrar más información sobre el filtrado de contenido aquí.
Contenido relacionado
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de