Sdílet prostřednictvím


Nasazení modelů příkazů Cohere s využitím Azure AI Studia

Důležité

Některé funkce popsané v tomto článku můžou být dostupné jenom ve verzi Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

V tomto článku se dozvíte, jak pomocí Azure AI Studia nasadit modely příkazů Cohere jako bezserverová rozhraní API s fakturací na základě tokenů s průběžnými platbami.

Společnost Cohere nabízí ve službě Azure AI Studio dva modely příkazů. Tyto modely jsou k dispozici jako bezserverová rozhraní API s fakturací na základě tokenů založených na průběžných platbách. Řadu modelů Cohere můžete procházet v katalogu modelů filtrováním v kolekci Cohere.

Modely příkazů cohere

V této části se dozvíte o dvou modelech příkazů Cohere, které jsou k dispozici v katalogu modelů:

  • Příkaz Cohere R
  • Cohere Command R+

Řadu modelů Cohere můžete procházet v katalogu modelů filtrováním v kolekci Cohere.

  • Architektura modelu: Command R i Command R+ jsou auto-regresní jazykové modely, které používají optimalizovanou architekturu transformátoru. Po předtrénování modely používají jemně vyladění pod dohledem (SFT) a preferované trénování k sladění chování modelu s lidskými preferencemi pro užitečnost a bezpečnost.

  • Probírané jazyky: Modely jsou optimalizované tak, aby dobře fungovaly v následujících jazycích: angličtina, francouzština, španělština, italština, němčina, brazilská portugalština, japonština, korejština, zjednodušená čínština a arabština.

    Předtrénovací data navíc obsahovala následující 13 jazyků: ruština, polština, turečtina, vietnamština, holandština, čeština, indonéština, ukrajinština, rumunština, řečtina, hindština, hebrejština, perština.

  • Délka kontextu: Command R a Command R+ podporují délku kontextu 128 tisíc.

  • Vstup: Modeluje pouze vstupní text.

  • Výstup: Modely generují pouze text.

Nasazení jako bezserverového rozhraní API

Některé modely v katalogu modelů je možné nasadit jako bezserverové rozhraní API s průběžnými platbami. Tento druh nasazení poskytuje způsob, jak využívat modely jako rozhraní API bez jejich hostování ve vašem předplatném a současně udržovat podnikové zabezpečení a dodržování předpisů, které organizace potřebují. Tato možnost nasazení nevyžaduje kvótu z vašeho předplatného.

Dříve zmíněné modely Cohere je možné nasadit jako službu s průběžnými platbami a nabízí společnost Cohere prostřednictvím Microsoft Azure Marketplace. Společnost Cohere může změnit nebo aktualizovat podmínky použití a ceny těchto modelů.

Požadavky

  • Předplatné Azure s platným způsobem platby. Bezplatná nebo zkušební předplatná Azure nebudou fungovat. Pokud nemáte předplatné Azure, vytvořte si placený účet Azure, abyste mohli začít.

  • Centrum Azure AI Studio. Nabídka nasazení modelu bezserverového rozhraní API pro příkaz Cohere je dostupná pouze u center vytvořených v těchto oblastech:

    • East US
    • USA – východ 2
    • USA – středosever
    • Středojižní USA
    • USA – západ
    • USA – západ 3
    • Švédsko – střed

    Seznam oblastí dostupných pro každý z modelů podporujících nasazení koncových bodů bez serveru najdete v tématu Dostupnost oblastí pro modely v koncových bodech bezserverového rozhraní API.

  • Projekt AI Studio v Azure AI Studiu

  • Řízení přístupu na základě role v Azure (Azure RBAC) se používá k udělení přístupu k operacím v Azure AI Studiu. Pokud chcete provést kroky v tomto článku, musí být vašemu uživatelskému účtu přiřazena role Vývojář Azure AI ve skupině prostředků. Další informace o oprávněních najdete v tématu Řízení přístupu na základě role v nástroji Azure AI Studio.

Vytvoření nového nasazení

Následující kroky ukazují nasazení příkazu Cohere Command R, ale stejný postup můžete použít k nasazení příkazu Cohere Command R+ nahrazením názvu modelu.

Vytvoření nasazení:

  1. Přihlaste se k Azure AI Studiu.

  2. Na levém bočním panelu vyberte Katalog modelů.

  3. Vyhledejte Cohere.

  4. Výběrem příkazu Cohere-command-r otevřete stránku Podrobnosti modelu.

    Snímek obrazovky znázorňující, jak získat přístup ke stránce podrobností modelu v katalogu modelů

  5. Výběrem možnosti Nasadit otevřete okno nasazení bezserverového rozhraní API pro model.

  6. Případně můžete zahájit nasazení spuštěním projektu v AI Studiu.

    1. Na levém bočním panelu projektu vyberte Nasazení komponent>.

    2. Vyberte + Vytvořit nasazení.

    3. Vyhledejte a vyberte Cohere-command-r. a otevřete stránku Podrobnosti modelu.

      Snímek obrazovky znázorňující, jak získat přístup ke stránce podrobností modelu na stránce Nasazení v projektu

    4. Výběrem možnosti Potvrdit otevřete okno nasazení bezserverového rozhraní API pro model.

    Snímek obrazovky znázorňující, jak nasadit model jako bezserverové rozhraní API

  7. Vyberte projekt, ve kterém chcete model nasadit. Pokud chcete nasadit model, který projekt nasadíte, musí být v oblasti Usa – východ 2 nebo Švédsko – střed .

  8. V průvodci nasazením vyberte odkaz na podmínky Azure Marketplace, kde najdete další informace o podmínkách použití.

  9. Vyberte kartu Ceny a podmínky a seznamte se s cenami pro vybraný model.

  10. Vyberte tlačítko Přihlásit se k odběru a nasazení . Pokud model nasazujete v projektu poprvé, musíte se přihlásit k odběru projektu pro konkrétní nabídku. Tento krok vyžaduje, aby váš účet má pro skupinu prostředků oprávnění role Azure AI Developer, jak je uvedeno v požadavcích. Každý projekt má vlastní předplatné konkrétní nabídky modelu Azure Marketplace, která umožňuje řídit a monitorovat útraty. V současné době můžete mít pro každý model v rámci projektu pouze jedno nasazení.

  11. Jakmile se přihlásíte k odběru projektu pro konkrétní nabídku Azure Marketplace, následná nasazení stejné nabídky ve stejném projektu nevyžadují opětovné přihlášení k odběru. Pokud se tento scénář týká vás, můžete vybrat možnost Pokračovat k nasazení .

    Snímek obrazovky znázorňující projekt, který je už přihlášený k odběru nabídky

  12. Pojmenujte nasazení. Tento název se stane součástí adresy URL rozhraní API nasazení. Tato adresa URL musí být v každé oblasti Azure jedinečná.

    Snímek obrazovky znázorňující, jak vyznačit název nasazení, které chcete vytvořit

  13. Vyberte Nasadit. Počkejte, až bude nasazení připravené a budete přesměrováni na stránku Nasazení.

  14. Vyberte Otevřít v dětském hřišti a začněte s modelem pracovat.

  15. Vraťte se na stránku Nasazení, vyberte nasazení a poznamenejte si cílovou adresu URL koncového bodu a tajný klíč. Další informace o používání rozhraní API najdete v referenční části.

  16. Podrobnosti o koncovém bodu, adresu URL a přístupové klíče můžete kdykoli najít tak, že přejdete na stránku přehledu projektu. Potom na levém bočním panelu projektu vyberte Nasazení komponent>.

Další informace o fakturaci modelů Cohere nasazených jako bezserverové rozhraní API s fakturací založenými na tokenech s průběžnými platbami najdete v tématu Požadavky na náklady a kvóty pro modely nasazené jako bezserverové rozhraní API.

Využívání modelů Cohere jako služby

Tyto modely je možné využívat pomocí rozhraní API chatu.

  1. Na stránce přehledu projektu přejděte na levý boční panel a vyberte Nasazení součástí>.

  2. Vyhledejte a vyberte nasazení, které jste vytvořili.

  3. Zkopírujte cílovou adresu URL a hodnotu klíče.

  4. Společnost Cohere zveřejňuje dvě trasy pro odvozování pomocí modelů Command R a Command R+. Rozhraní API pro odvozování modelů Azure AI na trase /chat/completions a nativní rozhraní COHERE API.

Další informace o používání rozhraní API najdete v referenční části.

Referenční informace o modelech Cohere nasazených jako služba

Modely Cohere Command R a Command R+ přijímají rozhraní API pro odvozování modelů Azure AI na trase /chat/completions i nativní rozhraní API pro chat Cohere./v1/chat

Rozhraní API pro odvozování modelů Azure AI

Schéma rozhraní API pro odvozování modelů Azure AI najdete v referenčních informacích k článku o dokončování chatuspecifikaci OpenAPI lze získat ze samotného koncového bodu.

Rozhraní API pro kohere chat

Následující informace obsahují podrobnosti o rozhraní API pro chat společnosti Cohere.

Žádost

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

Schéma žádosti o chat v1/chat

Příkaz R a Command R+ přijímají následující parametry pro v1/chat volání odvozování odpovědi:

Klíč Typ Výchozí Popis
message string Povinní účastníci Textové zadání, na které má model reagovat.
chat_history array of messages None Seznam předchozích zpráv mezi uživatelem a modelem, který má dát modelu konverzační kontext pro reagování na zprávu uživatele.
documents array None Seznam relevantních dokumentů, na které může model citovat, aby vygeneroval přesnější odpověď. Každý dokument je slovník řetězců. Klíče a hodnoty z každého dokumentu jsou serializovány do řetězce a předány modelu. Výsledná generace obsahuje citace, které odkazují na některé z těchto dokumentů. Některé navrhované klíče jsou "text", "autor" a "datum". Pro lepší kvalitu generování doporučujeme zachovat celkový počet slov řetězců ve slovníku na méně než 300 slov. Pole _excludes (pole řetězců) lze volitelně zadat, aby se v modelu vynechaly některé páry klíč-hodnota. Vynechaná pole se stále zobrazují v objektu citace. Pole "_excludes" se do modelu nepředá. Viz průvodce režimem dokumentu z dokumentace Společnosti Cohere.
search_queries_only boolean false Pokud trueodpověď obsahuje pouze seznam generovaných vyhledávacích dotazů, ale neprobíhá žádné hledání a nevygeneruje se žádná odpověď z modelu na uživatele message .
stream boolean false Když trueje odpovědí datový proud událostí JSON. Poslední událost obsahuje úplnou odpověď a má hodnotu event_type "stream-end". Streamování je výhodné pro uživatelská rozhraní, která vykreslují obsah části odpovědi po kusu, protože se generuje.
max_tokens integer Nic Maximální počet tokenů, které model vygeneruje jako součást odpovědi. Poznámka: Nastavení nízké hodnoty může vést k neúplným generacím. Pokud ho nezadáte, vygeneruje tokeny až do konce sekvence.
temperature float 0.3 Ke snížení náhodnosti v odpovědi použijte nižší hodnotu. Náhodnost lze dále maximalizovat zvýšením hodnoty parametru p . Minimální hodnota je 0 a maximum je 2.
p float 0.75 Pokud chcete ignorovat méně pravděpodobné možnosti, použijte nižší hodnotu. Nastavte na hodnotu 0 nebo 1.0 a zakažte ji. Pokud jsou povoleny hodnoty p i k, p působí za k. min. hodnota 0,01, maximální hodnota 0,99.
k float 0 Zadejte počet voleb tokenů, které model používá k vygenerování dalšího tokenu. Pokud jsou povoleny p i k, p působí po k. Minimální hodnota je 0, maximální hodnota je 500.
prompt_truncation enum string OFF Přijímá AUTO_PRESERVE_ORDER, AUTO, OFF. Určuje způsob vytváření výzvy. Když prompt_truncation je nastavená hodnota AUTO_PRESERVE_ORDER, některé prvky z chat_history a documents jsou vyřazeny k vytvoření výzvy, která se vejde do limitu délky kontextu modelu. Během tohoto procesu se zachová pořadí dokumentů a historie chatu. Když prompt_truncation je nastavená hodnota VYPNUTO, nezahodí se žádné prvky.
stop_sequences array of strings None Vygenerovaný text se vyjme na konci nejstaršího výskytu sekvence zastavení. Sekvence je zahrnuta v textu.
frequency_penalty float 0 Používá se ke snížení opakování vygenerovaných tokenů. Čím vyšší je hodnota, tím silnější je trest aplikován na dříve přítomné tokeny, úměrný tomu, kolikrát se už v příkazovém řádku nebo předchozí generaci zobrazily. Minimální hodnota 0,0, maximální hodnota 1,0
presence_penalty float 0 Používá se ke snížení opakování vygenerovaných tokenů. frequency_penaltyPodobně jako u všech tokenů, které se již objevily, se tato pokuta uplatňuje stejně bez ohledu na jejich přesné četnosti. Minimální hodnota 0,0, maximální hodnota 1,0
seed integer None Pokud je zadáno, back-end se nejlépe snaží vzorkovat tokeny deterministicky, aby opakované požadavky se stejným počátečním a parametry měly vrátit stejný výsledek. Determinismus ale nejde zaručit.
return_prompt boolean false Vrátí úplnou výzvu, která byla odeslána do modelu při true.
tools array of objects None Pole podléhá změnám. Seznam dostupných nástrojů (funkcí), které model může navrhnout vyvolání před vytvořením textové odpovědi. Při tools předání (bez tool_results) text je "" pole v odpovědi a tool_calls pole v odpovědi se naplní seznamem volání nástrojů, která je potřeba provést. Pokud není potřeba provádět žádná volání, tool_calls pole je prázdné.
tool_results array of objects None Pole podléhá změnám. Seznam výsledků z vyvolání nástrojů doporučených modelem v předchozím kroku chatu Výsledky slouží k vytvoření textové odpovědi a odkazuje se na ně v citacích. Při použití tool_resultstools musí být předán také. Každý tool_result obsahuje informace o tom, jak byla vyvolána, a seznam výstupů ve formě slovníků. Jedinečná jemně odstupňovaná citační logika společnosti Cohere vyžaduje, aby výstup byl seznamem. Pokud je výstupem například jenom jedna položka, {"status": 200}stále ji zabalte do seznamu.

Objekt chat_history vyžaduje následující pole:

Klíč Typ Popis
role enum string Bere USER, SYSTEMnebo CHATBOT.
message string Textový obsah zprávy

Objekt documents má následující volitelná pole:

Klíč Typ Výchozí Popis
id string None Lze zadat k identifikaci dokumentu v citacích. Toto pole není předáno do modelu.
_excludes array of strings None Volitelně je možné zadat, aby se některé páry klíč-hodnota vynechaly, aby se v modelu zobrazovaly. Vynechaná pole se stále zobrazují v objektu citace. Pole _excludes se nepředá modelu.

schéma odpovědi na chat v1/chat

Pole odpovědí jsou plně zdokumentována v referenčních informacích k rozhraní API chatu společnosti Cohere. Objekt odpovědi vždy obsahuje:

Klíč Typ Popis
response_id string Jedinečný identifikátor pro dokončení chatu
generation_id string Jedinečný identifikátor dokončení chatu, který se používá s koncovým bodem Feedback na platformě Společnosti Cohere.
text string Odpověď modelu na vstup zprávy chatu
finish_reason enum string Proč bylo generování dokončeno. Může to být libovolná z následujících hodnot: COMPLETE, ERROR, ERROR_TOXIC, ERROR_LIMITnebo USER_CANCELMAX_TOKENS
token_count integer Počet použitých tokenů
meta string Data o využití rozhraní API, včetně aktuální verze a fakturovatelných tokenů.

Dokumenty

Pokud documents je v požadavku zadáno, v odpovědi jsou dvě další pole:

Klíč Typ Popis
documents array of objects Zobrazí seznam dokumentů citovaných v odpovědi.
citations array of objects Určuje, která část odpovědi byla nalezena v daném dokumentu.

citations je pole objektů s následujícími povinnými poli:

Klíč Typ Popis
start integer Index textu, na který citace začíná, počítá se od nuly. Například generace Hello, world! s citací world by měla počáteční hodnotu 7. Je to proto, že citace začíná na w, což je sedmý znak.
end integer Index textu, po který citace končí, počítá se od nuly. Například generace Hello, world! s citací by world měla koncovou hodnotu 11. Je to proto, že citace končí po d, což je jedenáctý znak.
text string Text citace. Například generace Hello, world! s citací world by měla textovou hodnotu world.
document_ids array of strings Identifikátory dokumentů citovaných v této části vygenerované odpovědi

Nástroje

Pokud tools je model zadaný a vyvolán modelem, v odpovědi je další pole:

Klíč Typ Popis
tool_calls array of objects Obsahuje volání nástroje vygenerovaná modelem. Použijte ho k vyvolání nástrojů.

tool_calls je pole objektů s následujícími poli:

Klíč Typ Popis
name string Název nástroje, který se má volat.
parameters object Název a hodnota parametrů, které se mají použít při vyvolání nástroje.

Search_queries_only

Pokud search_queries_only=TRUE je v požadavku zadáno, v odpovědi jsou dvě další pole:

Klíč Typ Popis
is_search_required boolean Dá modelu pokyn, aby vygeneroval vyhledávací dotaz.
search_queries array of objects Objekt, který obsahuje seznam vyhledávacích dotazů.

search_queries je pole objektů s následujícími poli:

Klíč Typ Popis
text string Text vyhledávacího dotazu.
generation_id string Jedinečný identifikátor vygenerovaného vyhledávacího dotazu. Užitečné při odesílání zpětné vazby.

Příklady

Chat – dokončení

Následující příklad je ukázkové volání žádosti o získání dokončení chatu z modelu Cohere Command. Používá se při generování dokončení chatu.

Požadavek:

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

Odpověď:

    {
        "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 – základní generace a možnosti RAG

PříkazY R a Command R+ se trénují pro RAG prostřednictvím kombinace vyladění pod dohledem a vyladění předvoleb pomocí konkrétní šablony výzvy. Tuto šablonu výzvy představujeme prostřednictvím parametru documents . Fragmenty dokumentu by měly být bloky dat, nikoli dlouhé dokumenty, obvykle přibližně 100–400 slov na blok dat. Fragmenty kódu dokumentu se skládají z párů klíč-hodnota. Klíče by měly být krátké popisné řetězce. Hodnoty můžou být textové nebo částečně strukturované.

Požadavek:

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

Odpověď:

    {
        "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 – použití nástrojů

Pokud vyvoláte nástroje nebo vygeneruje odpověď na základě výsledků nástroje, použijte následující parametry.

Požadavek:

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

Odpověď:

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

Jakmile funkci spustíte a obdržíte výstupy nástrojů, můžete je předat zpět do modelu a vygenerovat odpověď pro uživatele.

Požadavek:

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

Odpověď:

    {
        "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 – vyhledávací dotazy

Pokud vytváříte agenta RAG, můžete také použít rozhraní API chatu Společnosti Cohere k získání vyhledávacích dotazů z příkazu. Zadejte search_queries_only=TRUE v požadavku.

Požadavek:

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

Odpověď:

    {
        "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"
            }
        ]
    }
Další příklady odvození
Balíček Ukázkový poznámkový blok
Rozhraní příkazového řádku s využitím webových požadavků CURL a Pythonu – příkaz R command-r.ipynb
Rozhraní příkazového řádku s využitím webových požadavků CURL a Pythonu – Command R+ command-r-plus.ipynb
OpenAI SDK (experimentální) openaisdk.ipynb
LangChain langchain.ipynb
Cohere SDK cohere-sdk.ipynb
LiteLLM SDK litellm.ipynb
Načítání rozšířené generace (RAG) a nástroje používají ukázky
Popis Balíček Ukázkový poznámkový blok
Vytvoření místního indexu vektorového vyhledávání AI na Facebooku (FAISS) pomocí vkládání cohere – Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Odpovědi na otázky z dat v místním indexu vektoru FAISS – Langchain pomocí příkazu Cohere Command R/R+ langchain, langchain_cohere command_faiss_langchain.ipynb
Použití příkazu Cohere Command R/R+ k zodpovězení otázek z dat v indexu vektoru vyhledávání AI – Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Použití příkazu Cohere Command R/R+ k zodpovězení otázek z dat v indexu vektoru vyhledávání AI – Cohere SDK cohere, azure_search_documents cohere-aisearch-rag.ipynb
Command R+ tool/function calling, using LangChain cohere, , langchainlangchain_cohere command_tools-langchain.ipynb

Náklady a kvóty

Důležité informace o nákladech a kvótách pro modely nasazené jako bezserverové rozhraní API

Modely cohere nasazené jako bezserverové rozhraní API s průběžnými platbami nabízí Společnost Cohere prostřednictvím Azure Marketplace a je integrovaná s Azure AI Studio pro použití. Ceny na Azure Marketplace najdete při nasazení modelu.

Pokaždé, když si projekt předplatí danou nabídku z tržiště Azure Marketplace, vytvoří se nový prostředek pro sledování nákladů spojených s jeho spotřebou. Stejný zdroj se používá ke sledování nákladů spojených s odvozováním; Pro nezávislé sledování jednotlivých scénářů je však k dispozici více měřičů.

Další informace o sledování nákladů naleznete v části Sledování nákladů na modely nabízené prostřednictvím služby Azure Marketplace.

Kvóta se spravuje podle nasazení. Každé nasazení má limit rychlosti 200 000 tokenů za minutu a 1 000 požadavků rozhraní API za minutu. V současné době ale omezujeme jedno nasazení na model na jeden projekt. Pokud aktuální limity sazeb pro vaše scénáře nestačí, obraťte se na podporu Microsoft Azure.

Filtrování obsahu

Modely nasazené jako bezserverové rozhraní API s průběžnými platbami jsou chráněné službou Azure AI Content Safety. S bezpečností obsahu Azure AI prochází výzva i dokončení souborem klasifikačních modelů určených k detekci a zabránění výstupu škodlivého obsahu. Systém filtrování obsahu zjistí a provede akce s konkrétními kategoriemi potenciálně škodlivého obsahu ve vstupních výzev i dokončení výstupu. Další informace o filtrování obsahu najdete tady.