Partilhar via


Como implantar modelos Cohere Command com o estúdio Azure Machine Learning

A Cohere oferece dois modelos de Comando no estúdio do Azure Machine Learning. Esses modelos estão disponíveis como APIs sem servidor com faturamento baseado em token pré-pago.

  • Cohere Comando R
  • Comando Cohere R+

Você pode navegar pela família de modelos Cohere no catálogo de modelos filtrando a coleção Cohere.

Modelos

Neste artigo, você aprenderá a usar o estúdio de Aprendizado de Máquina do Azure para implantar os modelos Cohere Command como uma API sem servidor com cobrança paga conforme o uso.

Cohere Comando R

O Command R é um modelo de linguagem grande generativa de alto desempenho, otimizado para uma variedade de casos de uso, incluindo raciocínio, sumarização e resposta a perguntas.

Arquitetura de modelo: Este é um modelo de linguagem autorregressiva que usa uma arquitetura de transformador otimizada. Após o pré-treinamento, esse modelo usa ajuste fino supervisionado (SFT) e treinamento de preferência para alinhar o comportamento do modelo às preferências humanas para utilidade e segurança.

Idiomas abrangidos: O modelo está otimizado para ter um bom desempenho nos seguintes idiomas: inglês, francês, espanhol, italiano, alemão, português do Brasil, japonês, coreano, chinês simplificado e árabe.

Os dados de pré-treinamento também incluíram os seguintes 13 idiomas: russo, polonês, turco, vietnamita, holandês, tcheco, indonésio, ucraniano, romeno, grego, hindi, hebraico, persa.

Comprimento do contexto: O comando R suporta um comprimento de contexto de 128K.

Entrada: Os modelos inserem apenas texto.

Saída: Os modelos geram apenas texto.

Comando Cohere R+

O Command R+ é um modelo de linguagem grande generativa de alto desempenho, otimizado para uma variedade de casos de uso, incluindo raciocínio, sumarização e resposta a perguntas.

Arquitetura de modelo: Este é um modelo de linguagem autorregressiva que usa uma arquitetura de transformador otimizada. Após o pré-treinamento, esse modelo usa ajuste fino supervisionado (SFT) e treinamento de preferência para alinhar o comportamento do modelo às preferências humanas para utilidade e segurança.

Idiomas abrangidos: O modelo está otimizado para ter um bom desempenho nos seguintes idiomas: inglês, francês, espanhol, italiano, alemão, português do Brasil, japonês, coreano, chinês simplificado e árabe.

Os dados de pré-treinamento também incluíram os seguintes 13 idiomas: russo, polonês, turco, vietnamita, holandês, tcheco, indonésio, ucraniano, romeno, grego, hindi, hebraico, persa.

Comprimento do contexto: O comando R+ suporta um comprimento de contexto de 128K.

Entrada: Os modelos inserem apenas texto.

Saída: Os modelos geram apenas texto.

Importante

Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.

Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Implantar como uma API sem servidor

Certos modelos no catálogo de modelos podem ser implantados como uma API sem servidor com faturamento pré-pago. Esse método de implantação fornece uma maneira de consumir modelos como uma API sem hospedá-los em sua assinatura, mantendo a segurança corporativa e a conformidade de que as organizações precisam. Essa opção de implantação não exige cota da sua assinatura.

Os modelos Cohere mencionados anteriormente podem ser implantados como uma API sem servidor com pagamento conforme o uso e são oferecidos pela Cohere por meio do Microsoft Azure Marketplace. A Cohere pode alterar ou atualizar os termos de uso e preços deste modelo.

Pré-requisitos

  • Uma subscrição do Azure com um método de pagamento válido. As subscrições gratuitas ou de avaliação do Azure não funcionarão. Se você não tiver uma assinatura do Azure, crie uma conta paga do Azure para começar.

  • Uma área de trabalho do Azure Machine Learning. Se você não tiver esses recursos, use as etapas no artigo Guia de início rápido: criar recursos do espaço de trabalho para criá-los. A oferta de implantação de modelo de API sem servidor para o Cohere Command só está disponível com espaços de trabalho criados nestas regiões:

    • E.U.A. Leste
    • E.U.A. Leste 2
    • E.U.A. Centro-Norte
    • E.U.A. Centro-Sul
    • E.U.A. Oeste
    • EUA Oeste 3
    • Suécia Central

    Para obter uma lista das regiões disponíveis para cada um dos modelos que suportam implementações de ponto final de API sem servidor, consulte Disponibilidade regional para modelos em pontos finais de API sem servidor.

  • Os controles de acesso baseados em função do Azure (Azure RBAC) são usados para conceder acesso às operações. Para executar as etapas neste artigo, sua conta de usuário deve receber a função de Desenvolvedor do Azure AI no Grupo de Recursos.

    Para obter mais informações sobre permissões, consulte Gerir o acesso a um espaço de trabalho do Azure Machine Learning.

Criar uma nova implantação

Para criar uma implantação:

  1. Vá para o estúdio do Azure Machine Learning.

  2. Selecione o espaço de trabalho no qual você deseja implantar seus modelos. Para usar a oferta de implantação de API sem servidor, seu espaço de trabalho deve pertencer à região EastUS2 ou Sweden Central.

  3. Escolha o modelo que deseja implantar no catálogo de modelos.

    Como alternativa, você pode iniciar a implantação acessando seu espaço de trabalho e selecionando Pontos>de extremidade>sem servidor Criar.

  4. Na página de visão geral do modelo no catálogo de modelos, selecione Implantar.

    Uma captura de tela mostrando como implantar um modelo com a opção de pagamento conforme o uso.

  5. No assistente de implantação, selecione o link para Termos do Azure Marketplace para saber mais sobre os termos de uso.

  6. Você também pode selecionar a guia Detalhes da oferta do Marketplace para saber mais sobre os preços do modelo selecionado.

  7. Se esta for a primeira vez que você implanta o modelo no espaço de trabalho, você precisa inscrever seu espaço de trabalho para a oferta específica do modelo. Esta etapa requer que sua conta tenha as permissões da função Desenvolvedor do Azure AI no Grupo de Recursos, conforme listado nos pré-requisitos. Cada espaço de trabalho tem a sua própria subscrição para a oferta específica do Azure Marketplace, que lhe permite controlar e monitorizar os gastos. Selecione Inscrever-se e Implantar. Atualmente, você pode ter apenas uma implantação para cada modelo em um espaço de trabalho.

    Uma captura de tela mostrando os termos e condições de um determinado modelo.

  8. Depois de inscrever o espaço de trabalho para a oferta específica do Azure Marketplace, as implantações subsequentes da mesma oferta no mesmo espaço de trabalho não exigem assinatura novamente. Se esse cenário se aplicar a você, há uma opção Continuar a implantar para selecionar.

    Uma captura de tela mostrando um espaço de trabalho que já está inscrito na oferta.

  9. Dê um nome à implantação. Esse nome se torna parte da URL da API de implantação. Essa URL deve ser exclusiva em cada região do Azure.

    Uma captura de tela mostrando como indicar o nome da implantação que você deseja criar.

  10. Selecione Implementar. Aguarde até que a implantação seja concluída e você seja redirecionado para a página de pontos de extremidade sem servidor.

  11. Selecione o ponto de extremidade para abrir a página Detalhes.

  12. Selecione a guia Teste para começar a interagir com o modelo.

  13. Você sempre pode encontrar os detalhes, a URL e as chaves de acesso do ponto de extremidade navegando até Pontos de extremidade sem servidor de pontos de extremidade de espaço de trabalho>>.

  14. Anote o URL de destino e a chave secreta. Para obter mais informações sobre como usar as APIs, consulte a seção de referência .

Para saber mais sobre a cobrança de modelos implantados com pagamento conforme o uso, consulte Considerações sobre custo e cota para modelos Cohere implantados como um serviço.

Consuma os modelos Cohere como um serviço

Os modelos Cohere mencionados anteriormente podem ser consumidos usando a API de chat.

  1. No espaço de trabalho, selecione Pontos de extremidade> sem servidor.
  2. Localize e selecione a implantação que você criou.
  3. Copie a URL de destino e os valores do token de chave .
  4. Cohere expõe duas rotas para inferência com os modelos Command R e Command R+. A API de Inferência de Modelo de IA do Azure na rota /chat/completions e a API Cohere nativa.

Para obter mais informações sobre como usar as APIs, consulte a seção de referência .

Referência para modelos Cohere implantados como uma API sem servidor

Os modelos Cohere Command R e Command R+ aceitam a API de Inferência de Modelos do Azure AI na rota /chat/completions e a API Cohere Chat nativa em /v1/chat.

API de Inferência de Modelos do Azure AI

O esquema da API de Inferência de Modelo do Azure AI está disponível no artigo Referência à conclusão de chats e é possível obter uma especificação da OpenAPI a partir do próprio ponto final.

API de bate-papo Cohere

O seguinte contém detalhes sobre Cohere Chat API.

Pedir

    POST /v1/chat HTTP/1.1
    Host: <DEPLOYMENT_URI>
    Authorization: Bearer <TOKEN>
    Content-type: application/json

Esquema de solicitação v1/chat

Cohere Command R e Command R+ aceitam os seguintes parâmetros para uma chamada de v1/chat inferência de resposta:

Chave Type Predefinido Description
message string Obrigatório Entrada de texto para o modelo responder.
chat_history array of messages None Uma lista de mensagens anteriores entre o usuário e o modelo, destinada a fornecer ao modelo contexto de conversação para responder à mensagem do usuário.
documents array None Uma lista de documentos relevantes que o modelo pode citar para gerar uma resposta mais precisa. Cada documento é um dicionário string-string. As chaves e os valores de cada documento são serializados para uma cadeia de caracteres e passados para o modelo. A geração resultante inclui citações que fazem referência a alguns desses documentos. Algumas chaves sugeridas são "texto", "autor" e "data". Para uma melhor qualidade de geração, mantenha a contagem total de palavras das cadeias de caracteres no dicionário para menos de 300 palavras. Um _excludes campo (matriz de cadeias de caracteres) pode ser opcionalmente fornecido para omitir alguns pares chave-valor de serem mostrados ao modelo. Os campos omitidos ainda aparecem no objeto de citação. O campo "_excludes" não é passado para o modelo. Consulte o guia do Modo de Documento dos documentos Cohere.
search_queries_only boolean false Quando true, a resposta contém apenas uma lista de consultas de pesquisa geradas, mas nenhuma pesquisa ocorre e nenhuma resposta do modelo para a do usuário message é gerada.
stream boolean false Quando true, a resposta é um fluxo JSON de eventos. O evento final contém a resposta completa e tem um event_type de "stream-end". O streaming é benéfico para interfaces de usuário que renderizam o conteúdo da resposta peça por peça, à medida que ela é gerada.
max_tokens integer Nenhuma O número máximo de tokens que o modelo gera como parte da resposta. Nota: Definir um valor baixo pode resultar em gerações incompletas. Se não for especificado, gera tokens até o final da sequência.
temperature float 0.3 Use um valor mais baixo para diminuir a aleatoriedade na resposta. A aleatoriedade pode ser ainda mais maximizada aumentando o valor do p parâmetro. O valor mínimo é 0 e o máximo é 2.
p float 0.75 Use um valor mais baixo para ignorar opções menos prováveis. Defina como 0 ou 1.0 para desativar. Se p e k estiverem habilitados, p atua após k. valor min de 0,01, valor máximo de 0,99.
k float 0 Especifique o número de opções de token que o modelo usa para gerar o próximo token. Se p e k estiverem ativados, p atua após k. O valor mínimo é 0, o valor máximo é 500.
prompt_truncation enum string OFF Aceita AUTO_PRESERVE_ORDER, AUTO, OFF. Dita como o prompt é construído. Com prompt_truncation definido como AUTO_PRESERVE_ORDER, alguns elementos de e documents são descartados para construir um prompt que se encaixa dentro do limite de chat_history comprimento de contexto do modelo. Durante este processo, a ordem dos documentos e o histórico do chat são preservados. Com prompt_truncation definido como "OFF", nenhum elemento é descartado.
stop_sequences array of strings None O texto gerado é cortado no final da primeira ocorrência de uma sequência de paragem. A sequência está incluída no texto.
frequency_penalty float 0 Usado para reduzir a repetitividade dos tokens gerados. Quanto maior o valor, mais forte é a penalidade aplicada aos tokens apresentados anteriormente, proporcional a quantas vezes eles já apareceram no prompt ou na geração anterior. Valor mínimo de 0,0, valor máximo de 1,0.
presence_penalty float 0 Usado para reduzir a repetitividade dos tokens gerados. Semelhante ao frequency_penalty, exceto que esta penalidade é aplicada igualmente a todos os tokens que já apareceram, independentemente de suas frequências exatas. Valor mínimo de 0,0, valor máximo de 1,0.
seed integer None Se especificado, o back-end faz um melhor esforço para obter amostras de tokens deterministicamente, de modo que solicitações repetidas com a mesma semente e parâmetros retornem o mesmo resultado. No entanto, o determinismo não pode ser garantido.
return_prompt boolean false Retorna o prompt completo que foi enviado para o modelo quando true.
tools array of objects None O campo está sujeito a alterações. Uma lista de ferramentas (funções) disponíveis que o modelo pode sugerir invocar antes de produzir uma resposta de texto. Quando tools é passado (sem tool_results), o text campo na resposta é "" e o tool_calls campo na resposta é preenchido com uma lista de chamadas de ferramenta que precisam ser feitas. Se nenhuma chamada precisar ser feita, a tool_calls matriz estará vazia.
tool_results array of objects None O campo está sujeito a alterações. Uma lista de resultados de ferramentas de invocação recomendadas pelo modelo no turno de bate-papo anterior. Os resultados são usados para produzir uma resposta de texto e são referenciados em citações. Ao usar tool_results, tools deve ser passado também. Cada tool_result contém informações sobre como foi invocado e uma lista de saídas na forma de dicionários. A lógica de citação refinada exclusiva de Cohere exige que a saída seja uma lista. Caso a saída seja apenas um item, por exemplo, {"status": 200}ainda envolva-o dentro de uma lista.

O chat_history objeto requer os seguintes campos:

Chave Tipo Description
role enum string Leva USER, SYSTEM, ou CHATBOT.
message string Conteúdo de texto da mensagem.

O documents objeto tem os seguintes campos opcionais:

Chave Type Predefinido Description
id string None Pode ser fornecido para identificar o documento nas citações. Este campo não é passado para o modelo.
_excludes array of strings None Pode ser opcionalmente fornecido para omitir alguns pares chave-valor de serem mostrados ao modelo. Os campos omitidos ainda aparecem no objeto de citação. O _excludes campo não é passado para o modelo.

Esquema de resposta v1/chat

Os campos de resposta estão totalmente documentados na referência da API de bate-papo da Cohere. O objeto de resposta sempre contém:

Chave Tipo Description
response_id string Identificador exclusivo para conclusão do chat.
generation_id string Identificador exclusivo para conclusão de bate-papo, usado com o ponto de extremidade Feedback na plataforma da Cohere.
text string Resposta do modelo à entrada de mensagens de chat.
finish_reason enum string Por que a geração foi completada. Pode ser qualquer um dos seguintes valores: COMPLETE, ERROR, ERROR_TOXIC, ERROR_LIMIT, USER_CANCEL ou MAX_TOKENS
token_count integer Contagem de tokens usados.
meta string Dados de uso da API, incluindo a versão atual e tokens faturáveis.

Documentos

Se documents forem especificados na solicitação, há dois outros campos na resposta:

Chave Tipo Description
documents array of objects Lista os documentos que foram citados na resposta.
citations array of objects Especifica qual parte da resposta foi encontrada em um determinado documento.

citations é uma matriz de objetos com os seguintes campos obrigatórios:

Chave Tipo Description
start integer O índice de texto em que a citação começa, contando a partir de zero. Por exemplo, uma geração de Hello, world! com uma citação em world teria um valor inicial de 7. Isso porque a citação começa em w, que é o sétimo caractere.
end integer O índice de texto que a citação termina depois, contando a partir de zero. Por exemplo, uma geração de Hello, world! com uma citação em world teria um valor final de 11. Isso porque a citação termina depois de d, que é o décimo primeiro caractere.
text string O texto da citação. Por exemplo, uma geração de Hello, world! com uma citação de teria um valor de world texto de world.
document_ids array of strings Identificadores dos documentos citados nesta secção da resposta gerada.

Ferramentas

Se tools forem especificados e invocados pelo modelo, há outro campo na resposta:

Chave Tipo Description
tool_calls array of objects Contém as chamadas de ferramenta geradas pelo modelo. Use-o para invocar suas ferramentas.

tool_calls é uma matriz de objetos com os seguintes campos:

Chave Tipo Description
name string Nome da ferramenta a ser chamada.
parameters object O nome e o valor dos parâmetros a serem usados ao invocar uma ferramenta.

Search_queries_only

Se search_queries_only=TRUE for especificado na solicitação, há dois outros campos na resposta:

Chave Tipo Description
is_search_required boolean Instrui o modelo a gerar uma consulta de pesquisa.
search_queries array of objects Objeto que contém uma lista de consultas de pesquisa.

search_queries é uma matriz de objetos com os seguintes campos:

Chave Tipo Description
text string O texto da consulta de pesquisa.
generation_id string Identificador exclusivo para a consulta de pesquisa gerada. Útil para enviar comentários.

Exemplos

Chat - Conclusão

O texto a seguir é uma chamada de solicitação de exemplo para concluir o bate-papo do modelo Cohere Command. Use ao gerar uma conclusão de chat.

Pedido:

    {
        "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"
    }

Resposta:

    {
        "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 - Geração fundamentada e recursos RAG

O Command R e o Command R+ são treinados para RAG por meio de uma mistura de ajuste fino supervisionado e ajuste fino de preferência, usando um modelo de prompt específico. Introduzimos esse modelo de prompt através do documents parâmetro. Os trechos de documentos devem ser pedaços, em vez de documentos longos, normalmente em torno de 100 a 400 palavras por bloco. Os trechos de documentos consistem em pares chave-valor. As teclas devem ser cadeias de caracteres descritivas curtas. Os valores podem ser texto ou semi-estruturados.

Pedido:

    {
    "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."
        }
    ]
    }

Resposta:

    {
        "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 - Utilização da ferramenta

Se invocar ferramentas ou gerar uma resposta com base nos resultados da ferramenta, use os seguintes parâmetros.

Pedido:

    {
        "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"
            }
        ]
        }
    ]
    }

Resposta:

    {
        "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"
            }
        ]
    }

Depois de executar sua função e receber as saídas da ferramenta, você pode passá-las de volta para o modelo para gerar uma resposta para o usuário.

Pedido:

    {
        "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"
            }
        ]
        }
    ]
    }

Resposta:

    {
        "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 pesquisa

Se você estiver criando um agente RAG, também poderá usar a API de bate-papo do Cohere para obter consultas de pesquisa do Command. Especifique search_queries_only=TRUE no seu pedido.

Pedido:

    {
    "message": "Which lego set has the greatest number of pieces?",
    "search_queries_only": true
    }

Resposta:

    {
        "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"
            }
        ]
    }
Exemplos adicionais de inferência
Pacote Bloco de notas de exemplo
CLI usando solicitações da web CURL e Python - Command R comando-r.ipynb
CLI usando solicitações web CURL e Python - Command R+ comando-r-plus.ipynb
OpenAI SDK (experimental) openaisdk.ipynb
LangChain langchain.ipynb
Cohere SDK cohere-sdk.ipynb
LiteLLM SDK litellm.ipynb
Geração aumentada de recuperação (RAG) e amostras de uso de ferramentas
Descrição Pacote Bloco de notas de exemplo
Crie um índice vetorial local do Facebook AI Similarity Search (FAISS), usando incorporações Cohere - Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Use o comando Cohere R/R+ para responder a perguntas de dados no índice vetorial FAISS local - Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Use o comando Cohere R/R+ para responder a perguntas de dados no índice vetorial de pesquisa de IA - Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Use o Cohere Command R/R+ para responder a perguntas de dados no índice de vetores de pesquisa de IA - Cohere SDK cohere, azure_search_documents cohere-aisearch-rag.ipynb
Comando R+ ferramenta/função chamada usando LangChain cohere, langchain, langchain_cohere command_tools-langchain.ipynb

Custo e quotas

Considerações sobre custo e cota para modelos implantados como serviço

Os modelos Cohere implementados como serviço são oferecidos pela Cohere através do Azure Marketplace e estão integrados no estúdio do Azure Machine Learning para uso. Pode obter os preços do Azure Marketplace quando implementar os modelos.

Sempre que uma área de trabalho subscreve uma determinada oferta de modelo do Azure Marketplace, é criado um novo recurso para controlar os custos associados ao seu consumo. O mesmo recurso é usado para monitorizar os custos associados à inferência; no entanto, estão disponíveis vários medidores para monitorizar cada cenário de forma independente.

Para obter mais informações sobre como controlar os custos, consulte Monitorizar custos dos modelos oferecidos através do Azure Marketplace.

A quota é gerida por implementação. Cada implementação tem um limite de taxa de 200 000 tokens por minuto e 1000 pedidos de API por minuto. No entanto, atualmente, limitamos uma implementação por modelo por área de trabalho. Contacte o Suporte do Microsoft Azure se os limites de taxa atuais não forem suficientes para os seus cenários.

Filtragem de conteúdos

Os modelos implantados como um serviço com pagamento conforme o uso são protegidos pela segurança de conteúdo da IA do Azure. Com a segurança de conteúdo de IA do Azure habilitada, tanto o prompt quanto a conclusão passam por um conjunto de modelos de classificação destinados a detetar e prevenir a saída de conteúdo nocivo. O sistema de filtragem de conteúdo deteta e age em categorias específicas de conteúdo potencialmente nocivo em prompts de entrada e finalizações de saída. Saiba mais sobre a Segurança de Conteúdo do Azure AI.