Compartir vía


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.

  • Un Centro Azure AI Studio.

    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:

  1. Inicie sesión en Azure AI Studio.

  2. Seleccione Catálogo de modelos en la barra lateral izquierda.

  3. Busque Cohere.

  4. Seleccione Cohere-command-r para abrir la página Detalles del modelo.

    Captura de pantalla en la que se muestra cómo acceder a la página de detalles del modelo desde el catálogo de modelo.

  5. Seleccione Implementar para abrir una ventana de implementación de API sin servidor para el modelo.

  6. Como alternativa, puedes iniciar una implementación empezando por el proyecto en AI Studio.

    1. En la barra lateral de la izquierda del proyecto, seleccione Componentes>Implementaciones.

    2. Seleccione + Crear implementación.

    3. Busque y seleccione Cohere-command-r. para abrir la página Detalles del modelo.

      Captura de pantalla en la que se muestra cómo acceder a la página de detalles del modelo desde la página Implementaciones del proyecto.

    4. Seleccione Confirmar para abrir una ventana de implementación de API sin servidor para el modelo.

    Captura de pantalla en la que se muestra cómo implementar un modelo como una API sin servidor.

  7. 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.

  8. 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.

  9. Seleccione la pestaña Precios y términos para obtener información sobre los precios del modelo seleccionado.

  10. 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.

  11. 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.

    Captura de pantalla que muestra un proyecto que ya está suscrito a la oferta.

  12. 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.

    Captura de pantalla que muestra cómo indicar el nombre de la implementación que desea crear.

  13. Seleccione Implementar. Espere hasta que la implementación esté lista y se le redirigirá a la página Implementaciones.

  14. Seleccione Abrir en el área de juegos para empezar a interactuar con el modelo.

  15. 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.

  16. 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.

  1. En la página Información general del proyecto, vaya a la barra lateral de la izquierda y seleccione Componentes>Implementaciones.

  2. Busque y seleccione la implementación que ha creado.

  3. Copia la dirección URL de destino y el valor clave.

  4. 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í.