Aracılığıyla paylaş


Azure Machine Learning stüdyosu ile Birlikte Komut sohbet modellerini kullanma

Bu makalede, Cohere Command sohbet modelleri ve bunların nasıl kullanılacağı hakkında bilgi ediniyorsunuz. Cohere model ailesi, sohbet tamamlamaları, eklemeler ve yeniden düzenleme gibi farklı kullanım örnekleri için iyileştirilmiş çeşitli modeller içerir. Tutarlı modeller, akıl yürütme, özetleme ve soru yanıtlama gibi çeşitli kullanım örnekleri için iyileştirilmiştir.

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.

Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Komut sohbet modellerini uyumlu yapma

Cohere Command sohbet modelleri aşağıdaki modelleri içerir:

R+ 08-2024 komutu, akıl yürütme, özetleme ve soru yanıtlama gibi çeşitli kullanım örnekleri için iyileştirilmiş, üretken bir büyük dil modelidir.

  • Model Mimarisi: Command R+ 08-2024, iyileştirilmiş transformatör mimarisi kullanan otomatik girişli bir dil modelidir. Ön eğitimden sonra model, model davranışını yararlılık ve güvenlik için insan tercihleriyle uyumlu hale getirmek için denetimli ince ayar (SFT) ve tercih eğitimini kullanır.
  • Kapsanan diller: Mod şu dillerde iyi performans sergiecek şekilde iyileştirilmiştir: İngilizce, Fransızca, İspanyolca, İtalyanca, Almanca, Brezilya Portekizcesi, Japonca, Korece, basitleştirilmiş Çince ve Arapça.
  • Ön eğitim verileri şu 13 dili de içeriyordu: Rusça, Lehçe, Türkçe, Vietnamca, Felemenkçe, Çekçe, Endonezyaca, Ukraynaca, Rumence, Yunanca, Hintçe, İbranice ve Farsça.
  • Bağlam uzunluğu: R+ 08-2024 komutu 128 K bağlam uzunluğunu destekler.
  • Giriş: Yalnızca metin.
  • Çıkış: Yalnızca metin.

Karmaşık alma artırılmış oluşturma (RAG) işlevselliğine, çok adımlı araç kullanımına (aracılar) ve yapılandırılmış çıkışlara dayanan iş akışları için Command R+ 08-2024 kullanmanızı öneririz.

Aşağıdaki modeller kullanılabilir:

İpucu

Ayrıca Cohere, modelin belirli özellikleriyle kullanılmak üzere uyarlanmış bir API kullanımını destekler. Model sağlayıcısına özgü API'yi kullanmak için Uyumlu belgelere bakın veya kod örneklerinin çıkarım örnekleri bölümüne bakın.

Önkoşullar

Azure Machine Learning ile Birlikte Komut sohbeti modellerini kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Uyumlu Komut sohbet modelleri, kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa, modeli sunucusuz API olarak dağıtmak için Azure Machine Learning stüdyosu, Azure Machine Learning stüdyosu, Python için Azure Machine Learning SDK'sını, Azure CLI'yı veya ARM şablonlarını kullanın.

Çıkarım paketi yüklü

Python ile paketini kullanarak bu modeldeki azure-ai-inference tahminleri kullanabilirsiniz. Bu paketi yüklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Pip de dahil olmak üzere Python 3.8 veya üzeri yüklü.
  • Uç nokta URL'si. İstemci kitaplığını oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name benzersiz model dağıtım ana bilgisayar adınızdır ve your-azure-region modelin dağıtıldığı Azure bölgesidir (örneğin eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Bu önkoşullara sahip olduktan sonra aşağıdaki komutu kullanarak Azure AI çıkarım paketini yükleyin:

pip install azure-ai-inference

Azure AI çıkarım paketi ve başvurusu hakkında daha fazla bilgi edinin.

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Azure Machine Learning'de dağıtılan çoğu modelle aynı kod ve yapıda konuşmanıza olanak tanır. Buna Birlikte Tutarlı Komut sohbet modelleri de dahildir.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential

client = ChatCompletionsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

model_info = client.get_model_info()

Yanıt aşağıdaki gibidir:

print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider_name)
Model name: Cohere-command-r-plus-08-2024
Model type: chat-completions
Model provider name: Cohere

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

from azure.ai.inference.models import SystemMessage, UserMessage

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
)

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

print("Response:", response.choices[0].message.content)
print("Model:", response.model)
print("Usage:")
print("\tPrompt tokens:", response.usage.prompt_tokens)
print("\tTotal tokens:", response.usage.total_tokens)
print("\tCompletion tokens:", response.usage.completion_tokens)
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Cohere-command-r-plus-08-2024
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

usage İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

result = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    temperature=0,
    top_p=1,
    max_tokens=2048,
    stream=True,
)

Tamamlanmaların akışını yapmak için modeli çağırdığınızda ayarlayın stream=True .

Çıkışı görselleştirmek için akışı yazdıracak bir yardımcı işlev tanımlayın.

def print_stream(result):
    """
    Prints the chat completion with streaming.
    """
    import time
    for update in result:
        if update.choices:
            print(update.choices[0].delta.content, end="")

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

print_stream(result)

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

from azure.ai.inference.models import ChatCompletionsResponseFormatText

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    presence_penalty=0.1,
    frequency_penalty=0.8,
    max_tokens=2048,
    stop=["<|endoftext|>"],
    temperature=0,
    top_p=1,
    response_format={ "type": ChatCompletionsResponseFormatText() },
)

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

JSON çıkışları oluşturma

Komut sohbet modellerini uyumlu bir şekilde kullanarak JSON çıkışları oluşturabilirsiniz. json_object JSON modunu etkinleştirmek için olarak ayarlayın response_format ve modelin oluşturduğu iletinin geçerli JSON olduğundan emin olun. Ayrıca modele bir sistem veya kullanıcı iletisi aracılığıyla JSON üretmesini de belirtmeniz gerekir. Ayrıca, ileti içeriği, neslin aşıldığını veya konuşmanın maksimum bağlam uzunluğunu aştığını max_tokens belirten ise finish_reason="length"kısmen kesilebilir.

from azure.ai.inference.models import ChatCompletionsResponseFormatJSON

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant that always generate responses in JSON format, using."
                      " the following format: { ""answer"": ""response"" }."),
        UserMessage(content="How many languages are in the world?"),
    ],
    response_format={ "type": ChatCompletionsResponseFormatJSON() }
)

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    model_extras={
        "logprobs": True
    }
)

Araçları kullanma

Uyumlu Komut sohbet modelleri, belirli görevleri dil modelinden boşaltmanız ve bunun yerine daha belirleyici bir sisteme ve hatta farklı bir dil modeline güvenmeniz gerektiğinde olağanüstü bir kaynak olabilecek araçların kullanımını destekler. Azure AI Model Çıkarımı API'si, araçları aşağıdaki şekilde tanımlamanızı sağlar.

Aşağıdaki kod örneği, iki farklı şehirden gelen uçuş bilgilerinden bakabilen bir araç tanımı oluşturur.

from azure.ai.inference.models import FunctionDefinition, ChatCompletionsFunctionToolDefinition

flight_info = ChatCompletionsFunctionToolDefinition(
    function=FunctionDefinition(
        name="get_flight_info",
        description="Returns information about the next flight between two cities. This includes the name of the airline, flight number and the date and time of the next flight",
        parameters={
            "type": "object",
            "properties": {
                "origin_city": {
                    "type": "string",
                    "description": "The name of the city where the flight originates",
                },
                "destination_city": {
                    "type": "string",
                    "description": "The flight destination city",
                },
            },
            "required": ["origin_city", "destination_city"],
        },
    )
)

tools = [flight_info]

Bu örnekte işlevin çıkışı, seçilen rota için kullanılabilir uçuş olmamasıdır, ancak kullanıcının tren kullanmayı göz önünde bulundurması gerekir.

def get_flight_info(loc_origin: str, loc_destination: str):
    return { 
        "info": f"There are no flights available from {loc_origin} to {loc_destination}. You should take a train, specially if it helps to reduce CO2 emissions."
    }

Not

Cohere-command-r-plus-08-2024, Cohere-command-r-08-2024, Cohere-command-r-plus ve Cohere-command-r, bir aracın yanıtlarının dize olarak biçimlendirilmiş geçerli bir JSON içeriği olmasını gerektirir. Tool türünde iletiler oluştururken yanıtın geçerli bir JSON dizesi olduğundan emin olun.

Bu işlevin yardımıyla modelden uçuş rezervasyonu gerçekleştirmesini iste:

messages = [
    SystemMessage(
        content="You are a helpful assistant that help users to find information about traveling, how to get"
                " to places and the different transportations options. You care about the environment and you"
                " always have that in mind when answering inqueries.",
    ),
    UserMessage(
        content="When is the next flight from Miami to Seattle?",
    ),
]

response = client.complete(
    messages=messages, tools=tools, tool_choice="auto"
)

Bir aracın çağrılması gerekip gerekmediğini öğrenmek için yanıtı inceleyebilirsiniz. Aracın çağrılıp çağrılmadığını belirlemek için bitiş nedenini inceleyin. Birden çok araç türünün gösterilebileceğini unutmayın. Bu örnekte türünde functionbir araç gösterilmektedir.

response_message = response.choices[0].message
tool_calls = response_message.tool_calls

print("Finish reason:", response.choices[0].finish_reason)
print("Tool call:", tool_calls)

Devam etmek için bu iletiyi sohbet geçmişine ekleyin:

messages.append(
    response_message
)

Şimdi, araç çağrısını işlemek için uygun işlevi çağırmanın zamanı geldi. Aşağıdaki kod parçacığı yanıtta belirtilen tüm araç çağrıları üzerinde yinelenir ve ilgili işlevi uygun parametrelerle çağırır. Yanıt, sohbet geçmişine de eklenir.

import json
from azure.ai.inference.models import ToolMessage

for tool_call in tool_calls:

    # Get the tool details:

    function_name = tool_call.function.name
    function_args = json.loads(tool_call.function.arguments.replace("\'", "\""))
    tool_call_id = tool_call.id

    print(f"Calling function `{function_name}` with arguments {function_args}")

    # Call the function defined above using `locals()`, which returns the list of all functions 
    # available in the scope as a dictionary. Notice that this is just done as a simple way to get
    # the function callable from its string name. Then we can call it with the corresponding
    # arguments.

    callable_func = locals()[function_name]
    function_response = callable_func(**function_args)

    print("->", function_response)

    # Once we have a response from the function and its arguments, we can append a new message to the chat 
    # history. Notice how we are telling to the model that this chat message came from a tool:

    messages.append(
        ToolMessage(
            tool_call_id=tool_call_id,
            content=json.dumps(function_response)
        )
    )

Modelin yanıtını görüntüleyin:

response = client.complete(
    messages=messages,
    tools=tools,
)

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek belirli içerik kategorilerini algılar ve üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage

try:
    response = client.complete(
        messages=[
            SystemMessage(content="You are an AI assistant that helps people find information."),
            UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
        ]
    )

    print(response.choices[0].message.content)

except HttpResponseError as ex:
    if ex.status_code == 400:
        response = ex.response.json()
        if isinstance(response, dict) and "error" in response:
            print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
        else:
            raise
    raise

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Komut sohbet modellerini uyumlu yapma

Cohere Command sohbet modelleri aşağıdaki modelleri içerir:

R+ 08-2024 komutu, akıl yürütme, özetleme ve soru yanıtlama gibi çeşitli kullanım örnekleri için iyileştirilmiş, üretken bir büyük dil modelidir.

  • Model Mimarisi: Command R+ 08-2024, iyileştirilmiş transformatör mimarisi kullanan otomatik girişli bir dil modelidir. Ön eğitimden sonra model, model davranışını yararlılık ve güvenlik için insan tercihleriyle uyumlu hale getirmek için denetimli ince ayar (SFT) ve tercih eğitimini kullanır.
  • Kapsanan diller: Mod şu dillerde iyi performans sergiecek şekilde iyileştirilmiştir: İngilizce, Fransızca, İspanyolca, İtalyanca, Almanca, Brezilya Portekizcesi, Japonca, Korece, basitleştirilmiş Çince ve Arapça.
  • Ön eğitim verileri şu 13 dili de içeriyordu: Rusça, Lehçe, Türkçe, Vietnamca, Felemenkçe, Çekçe, Endonezyaca, Ukraynaca, Rumence, Yunanca, Hintçe, İbranice ve Farsça.
  • Bağlam uzunluğu: R+ 08-2024 komutu 128 K bağlam uzunluğunu destekler.
  • Giriş: Yalnızca metin.
  • Çıkış: Yalnızca metin.

Karmaşık alma artırılmış oluşturma (RAG) işlevselliğine, çok adımlı araç kullanımına (aracılar) ve yapılandırılmış çıkışlara dayanan iş akışları için Command R+ 08-2024 kullanmanızı öneririz.

Aşağıdaki modeller kullanılabilir:

İpucu

Ayrıca Cohere, modelin belirli özellikleriyle kullanılmak üzere uyarlanmış bir API kullanımını destekler. Model sağlayıcısına özgü API'yi kullanmak için Uyumlu belgelere bakın veya kod örneklerinin çıkarım örnekleri bölümüne bakın.

Önkoşullar

Azure Machine Learning ile Birlikte Komut sohbeti modellerini kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Uyumlu Komut sohbet modelleri, kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa, modeli sunucusuz API olarak dağıtmak için Azure Machine Learning stüdyosu, Python için Azure Machine Learning SDK'sını, Azure CLI'yı veya ARM şablonlarını kullanın.

Çıkarım paketi yüklü

bu modeldeki tahminleri, paketinden npmkullanarak @azure-rest/ai-inference kullanabilirsiniz. Bu paketi yüklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • ile npmlts sürümleriNode.js.
  • Uç nokta URL'si. İstemci kitaplığını oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name benzersiz model dağıtım ana bilgisayar adınızdır ve your-azure-region modelin dağıtıldığı Azure bölgesidir (örneğin eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Bu önkoşullara sahip olduktan sonra aşağıdaki komutla JavaScript için Azure Çıkarım kitaplığını yükleyin:

npm install @azure-rest/ai-inference

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Azure Machine Learning'de dağıtılan çoğu modelle aynı kod ve yapıda konuşmanıza olanak tanır. Buna Birlikte Tutarlı Komut sohbet modelleri de dahildir.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

var model_info = await client.path("/info").get()

Yanıt aşağıdaki gibidir:

console.log("Model name: ", model_info.body.model_name)
console.log("Model type: ", model_info.body.model_type)
console.log("Model provider name: ", model_info.body.model_provider_name)
Model name: Cohere-command-r-plus-08-2024
Model type: chat-completions
Model provider name: Cohere

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
    }
});

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log("Response: ", response.body.choices[0].message.content);
console.log("Model: ", response.body.model);
console.log("Usage:");
console.log("\tPrompt tokens:", response.body.usage.prompt_tokens);
console.log("\tTotal tokens:", response.body.usage.total_tokens);
console.log("\tCompletion tokens:", response.body.usage.completion_tokens);
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Cohere-command-r-plus-08-2024
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

usage İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
    }
}).asNodeStream();

Tamamlanmaların akışını yapmak için modeli çağırdığınızda kullanın .asNodeStream() .

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

var stream = response.body;
if (!stream) {
    stream.destroy();
    throw new Error(`Failed to get chat completions with status: ${response.status}`);
}

if (response.status !== "200") {
    throw new Error(`Failed to get chat completions: ${response.body.error}`);
}

var sses = createSseStream(stream);

for await (const event of sses) {
    if (event.data === "[DONE]") {
        return;
    }
    for (const choice of (JSON.parse(event.data)).choices) {
        console.log(choice.delta?.content ?? "");
    }
}

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
        presence_penalty: "0.1",
        frequency_penalty: "0.8",
        max_tokens: 2048,
        stop: ["<|endoftext|>"],
        temperature: 0,
        top_p: 1,
        response_format: { type: "text" },
    }
});

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

JSON çıkışları oluşturma

Komut sohbet modellerini uyumlu bir şekilde kullanarak JSON çıkışları oluşturabilirsiniz. json_object JSON modunu etkinleştirmek için olarak ayarlayın response_format ve modelin oluşturduğu iletinin geçerli JSON olduğundan emin olun. Ayrıca modele bir sistem veya kullanıcı iletisi aracılığıyla JSON üretmesini de belirtmeniz gerekir. Ayrıca, ileti içeriği, neslin aşıldığını veya konuşmanın maksimum bağlam uzunluğunu aştığını max_tokens belirten ise finish_reason="length"kısmen kesilebilir.

var messages = [
    { role: "system", content: "You are a helpful assistant that always generate responses in JSON format, using."
        + " the following format: { \"answer\": \"response\" }." },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
        response_format: { type: "json_object" }
    }
});

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    headers: {
        "extra-params": "pass-through"
    },
    body: {
        messages: messages,
        logprobs: true
    }
});

Araçları kullanma

Uyumlu Komut sohbet modelleri, belirli görevleri dil modelinden boşaltmanız ve bunun yerine daha belirleyici bir sisteme ve hatta farklı bir dil modeline güvenmeniz gerektiğinde olağanüstü bir kaynak olabilecek araçların kullanımını destekler. Azure AI Model Çıkarımı API'si, araçları aşağıdaki şekilde tanımlamanızı sağlar.

Aşağıdaki kod örneği, iki farklı şehirden gelen uçuş bilgilerinden bakabilen bir araç tanımı oluşturur.

const flight_info = {
    name: "get_flight_info",
    description: "Returns information about the next flight between two cities. This includes the name of the airline, flight number and the date and time of the next flight",
    parameters: {
        type: "object",
        properties: {
            origin_city: {
                type: "string",
                description: "The name of the city where the flight originates",
            },
            destination_city: {
                type: "string",
                description: "The flight destination city",
            },
        },
        required: ["origin_city", "destination_city"],
    },
}

const tools = [
    {
        type: "function",
        function: flight_info,
    },
];

Bu örnekte işlevin çıkışı, seçilen rota için kullanılabilir uçuş olmamasıdır, ancak kullanıcının tren kullanmayı göz önünde bulundurması gerekir.

function get_flight_info(loc_origin, loc_destination) {
    return {
        info: "There are no flights available from " + loc_origin + " to " + loc_destination + ". You should take a train, specially if it helps to reduce CO2 emissions."
    }
}

Not

Cohere-command-r-plus-08-2024, Cohere-command-r-08-2024, Cohere-command-r-plus ve Cohere-command-r, bir aracın yanıtlarının dize olarak biçimlendirilmiş geçerli bir JSON içeriği olmasını gerektirir. Tool türünde iletiler oluştururken yanıtın geçerli bir JSON dizesi olduğundan emin olun.

Bu işlevin yardımıyla modelden uçuş rezervasyonu gerçekleştirmesini iste:

var result = await client.path("/chat/completions").post({
    body: {
        messages: messages,
        tools: tools,
        tool_choice: "auto"
    }
});

Bir aracın çağrılması gerekip gerekmediğini öğrenmek için yanıtı inceleyebilirsiniz. Aracın çağrılıp çağrılmadığını belirlemek için bitiş nedenini inceleyin. Birden çok araç türünün gösterilebileceğini unutmayın. Bu örnekte türünde functionbir araç gösterilmektedir.

const response_message = response.body.choices[0].message;
const tool_calls = response_message.tool_calls;

console.log("Finish reason: " + response.body.choices[0].finish_reason);
console.log("Tool call: " + tool_calls);

Devam etmek için bu iletiyi sohbet geçmişine ekleyin:

messages.push(response_message);

Şimdi, araç çağrısını işlemek için uygun işlevi çağırmanın zamanı geldi. Aşağıdaki kod parçacığı yanıtta belirtilen tüm araç çağrıları üzerinde yinelenir ve ilgili işlevi uygun parametrelerle çağırır. Yanıt, sohbet geçmişine de eklenir.

function applyToolCall({ function: call, id }) {
    // Get the tool details:
    const tool_params = JSON.parse(call.arguments);
    console.log("Calling function " + call.name + " with arguments " + tool_params);

    // Call the function defined above using `window`, which returns the list of all functions 
    // available in the scope as a dictionary. Notice that this is just done as a simple way to get
    // the function callable from its string name. Then we can call it with the corresponding
    // arguments.
    const function_response = tool_params.map(window[call.name]);
    console.log("-> " + function_response);

    return function_response
}

for (const tool_call of tool_calls) {
    var tool_response = tool_call.apply(applyToolCall);

    messages.push(
        {
            role: "tool",
            tool_call_id: tool_call.id,
            content: tool_response
        }
    );
}

Modelin yanıtını görüntüleyin:

var result = await client.path("/chat/completions").post({
    body: {
        messages: messages,
        tools: tools,
    }
});

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek belirli içerik kategorilerini algılar ve üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

try {
    var messages = [
        { role: "system", content: "You are an AI assistant that helps people find information." },
        { role: "user", content: "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills." },
    ];

    var response = await client.path("/chat/completions").post({
        body: {
            messages: messages,
        }
    });

    console.log(response.body.choices[0].message.content);
}
catch (error) {
    if (error.status_code == 400) {
        var response = JSON.parse(error.response._content);
        if (response.error) {
            console.log(`Your request triggered an ${response.error.code} error:\n\t ${response.error.message}`);
        }
        else
        {
            throw error;
        }
    }
}

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Komut sohbet modellerini uyumlu yapma

Cohere Command sohbet modelleri aşağıdaki modelleri içerir:

R+ 08-2024 komutu, akıl yürütme, özetleme ve soru yanıtlama gibi çeşitli kullanım örnekleri için iyileştirilmiş, üretken bir büyük dil modelidir.

  • Model Mimarisi: Command R+ 08-2024, iyileştirilmiş transformatör mimarisi kullanan otomatik girişli bir dil modelidir. Ön eğitimden sonra model, model davranışını yararlılık ve güvenlik için insan tercihleriyle uyumlu hale getirmek için denetimli ince ayar (SFT) ve tercih eğitimini kullanır.
  • Kapsanan diller: Mod şu dillerde iyi performans sergiecek şekilde iyileştirilmiştir: İngilizce, Fransızca, İspanyolca, İtalyanca, Almanca, Brezilya Portekizcesi, Japonca, Korece, basitleştirilmiş Çince ve Arapça.
  • Ön eğitim verileri şu 13 dili de içeriyordu: Rusça, Lehçe, Türkçe, Vietnamca, Felemenkçe, Çekçe, Endonezyaca, Ukraynaca, Rumence, Yunanca, Hintçe, İbranice ve Farsça.
  • Bağlam uzunluğu: R+ 08-2024 komutu 128 K bağlam uzunluğunu destekler.
  • Giriş: Yalnızca metin.
  • Çıkış: Yalnızca metin.

Karmaşık alma artırılmış oluşturma (RAG) işlevselliğine, çok adımlı araç kullanımına (aracılar) ve yapılandırılmış çıkışlara dayanan iş akışları için Command R+ 08-2024 kullanmanızı öneririz.

Aşağıdaki modeller kullanılabilir:

İpucu

Ayrıca Cohere, modelin belirli özellikleriyle kullanılmak üzere uyarlanmış bir API kullanımını destekler. Model sağlayıcısına özgü API'yi kullanmak için Uyumlu belgelere bakın veya kod örneklerinin çıkarım örnekleri bölümüne bakın.

Önkoşullar

Azure Machine Learning ile Birlikte Komut sohbeti modellerini kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Uyumlu Komut sohbet modelleri, kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa, modeli sunucusuz API olarak dağıtmak için Azure Machine Learning stüdyosu, Python için Azure Machine Learning SDK'sını, Azure CLI'yı veya ARM şablonlarını kullanın.

Çıkarım paketi yüklü

NuGet'ten gelen paketi kullanarak bu modeldeki Azure.AI.Inference tahminleri kullanabilirsiniz. Bu paketi yüklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Uç nokta URL'si. İstemci kitaplığını oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name benzersiz model dağıtım ana bilgisayar adınızdır ve your-azure-region modelin dağıtıldığı Azure bölgesidir (örneğin eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Bu önkoşullara sahip olduktan sonra aşağıdaki komutla Azure AI çıkarım kitaplığını yükleyin:

dotnet add package Azure.AI.Inference --prerelease

Ayrıca Microsoft Entra Id (eski adıyla Azure Active Directory) ile de kimlik doğrulaması yapabilirsiniz. Azure SDK ile sağlanan kimlik bilgisi sağlayıcılarını kullanmak için paketini yükleyin Azure.Identity :

dotnet add package Azure.Identity

Aşağıdaki ad alanlarını içeri aktarın:

using Azure;
using Azure.Identity;
using Azure.AI.Inference;

Bu örnekte aşağıdaki ad alanları da kullanılır ancak bunlara her zaman ihtiyacınız olmayabilir:

using System.Text.Json;
using System.Text.Json.Serialization;
using System.Reflection;

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Azure Machine Learning'de dağıtılan çoğu modelle aynı kod ve yapıda konuşmanıza olanak tanır. Buna Birlikte Tutarlı Komut sohbet modelleri de dahildir.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

ChatCompletionsClient client = new ChatCompletionsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

Response<ModelInfo> modelInfo = client.GetModelInfo();

Yanıt aşağıdaki gibidir:

Console.WriteLine($"Model name: {modelInfo.Value.ModelName}");
Console.WriteLine($"Model type: {modelInfo.Value.ModelType}");
Console.WriteLine($"Model provider name: {modelInfo.Value.ModelProviderName}");
Model name: Cohere-command-r-plus-08-2024
Model type: chat-completions
Model provider name: Cohere

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("How many languages are in the world?")
    },
};

Response<ChatCompletions> response = client.Complete(requestOptions);

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");
Console.WriteLine($"\tCompletion tokens: {response.Value.Usage.CompletionTokens}");
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Cohere-command-r-plus-08-2024
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

usage İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

static async Task StreamMessageAsync(ChatCompletionsClient client)
{
    ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
    {
        Messages = {
            new ChatRequestSystemMessage("You are a helpful assistant."),
            new ChatRequestUserMessage("How many languages are in the world? Write an essay about it.")
        },
        MaxTokens=4096
    };

    StreamingResponse<StreamingChatCompletionsUpdate> streamResponse = await client.CompleteStreamingAsync(requestOptions);

    await PrintStream(streamResponse);
}

Tamamlanmaların akışını yapmak için modeli çağırırken yöntemini kullanın CompleteStreamingAsync . Bu örnekte çağrısının zaman uyumsuz bir yöntemde sarmalandığını fark edin.

Çıkışı görselleştirmek için, akışı konsolda yazdırmak için zaman uyumsuz bir yöntem tanımlayın.

static async Task PrintStream(StreamingResponse<StreamingChatCompletionsUpdate> response)
{
    await foreach (StreamingChatCompletionsUpdate chatUpdate in response)
    {
        if (chatUpdate.Role.HasValue)
        {
            Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
        }
        if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
        {
            Console.Write(chatUpdate.ContentUpdate);
        }
    }
}

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

StreamMessageAsync(client).GetAwaiter().GetResult();

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("How many languages are in the world?")
    },
    PresencePenalty = 0.1f,
    FrequencyPenalty = 0.8f,
    MaxTokens = 2048,
    StopSequences = { "<|endoftext|>" },
    Temperature = 0,
    NucleusSamplingFactor = 1,
    ResponseFormat = new ChatCompletionsResponseFormatText()
};

response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

JSON çıkışları oluşturma

Komut sohbet modellerini uyumlu bir şekilde kullanarak JSON çıkışları oluşturabilirsiniz. json_object JSON modunu etkinleştirmek için olarak ayarlayın response_format ve modelin oluşturduğu iletinin geçerli JSON olduğundan emin olun. Ayrıca modele bir sistem veya kullanıcı iletisi aracılığıyla JSON üretmesini de belirtmeniz gerekir. Ayrıca, ileti içeriği, neslin aşıldığını veya konuşmanın maksimum bağlam uzunluğunu aştığını max_tokens belirten ise finish_reason="length"kısmen kesilebilir.

requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage(
            "You are a helpful assistant that always generate responses in JSON format, " +
            "using. the following format: { \"answer\": \"response\" }."
        ),
        new ChatRequestUserMessage(
            "How many languages are in the world?"
        )
    },
    ResponseFormat = new ChatCompletionsResponseFormatJSON()
};

response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("How many languages are in the world?")
    },
    AdditionalProperties = { { "logprobs", BinaryData.FromString("true") } },
};

response = client.Complete(requestOptions, extraParams: ExtraParameters.PassThrough);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");

Araçları kullanma

Uyumlu Komut sohbet modelleri, belirli görevleri dil modelinden boşaltmanız ve bunun yerine daha belirleyici bir sisteme ve hatta farklı bir dil modeline güvenmeniz gerektiğinde olağanüstü bir kaynak olabilecek araçların kullanımını destekler. Azure AI Model Çıkarımı API'si, araçları aşağıdaki şekilde tanımlamanızı sağlar.

Aşağıdaki kod örneği, iki farklı şehirden gelen uçuş bilgilerinden bakabilen bir araç tanımı oluşturur.

FunctionDefinition flightInfoFunction = new FunctionDefinition("getFlightInfo")
{
    Description = "Returns information about the next flight between two cities. This includes the name of the airline, flight number and the date and time of the next flight",
    Parameters = BinaryData.FromObjectAsJson(new
    {
        Type = "object",
        Properties = new
        {
            origin_city = new
            {
                Type = "string",
                Description = "The name of the city where the flight originates"
            },
            destination_city = new
            {
                Type = "string",
                Description = "The flight destination city"
            }
        }
    },
        new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }
    )
};

ChatCompletionsFunctionToolDefinition getFlightTool = new ChatCompletionsFunctionToolDefinition(flightInfoFunction);

Bu örnekte işlevin çıkışı, seçilen rota için kullanılabilir uçuş olmamasıdır, ancak kullanıcının tren kullanmayı göz önünde bulundurması gerekir.

static string getFlightInfo(string loc_origin, string loc_destination)
{
    return JsonSerializer.Serialize(new
    {
        info = $"There are no flights available from {loc_origin} to {loc_destination}. You " +
        "should take a train, specially if it helps to reduce CO2 emissions."
    });
}

Not

Cohere-command-r-plus-08-2024, Cohere-command-r-08-2024, Cohere-command-r-plus ve Cohere-command-r, bir aracın yanıtlarının dize olarak biçimlendirilmiş geçerli bir JSON içeriği olmasını gerektirir. Tool türünde iletiler oluştururken yanıtın geçerli bir JSON dizesi olduğundan emin olun.

Bu işlevin yardımıyla modelden uçuş rezervasyonu gerçekleştirmesini iste:

var chatHistory = new List<ChatRequestMessage>(){
        new ChatRequestSystemMessage(
            "You are a helpful assistant that help users to find information about traveling, " +
            "how to get to places and the different transportations options. You care about the" +
            "environment and you always have that in mind when answering inqueries."
        ),
        new ChatRequestUserMessage("When is the next flight from Miami to Seattle?")
    };

requestOptions = new ChatCompletionsOptions(chatHistory);
requestOptions.Tools.Add(getFlightTool);
requestOptions.ToolChoice = ChatCompletionsToolChoice.Auto;

response = client.Complete(requestOptions);

Bir aracın çağrılması gerekip gerekmediğini öğrenmek için yanıtı inceleyebilirsiniz. Aracın çağrılıp çağrılmadığını belirlemek için bitiş nedenini inceleyin. Birden çok araç türünün gösterilebileceğini unutmayın. Bu örnekte türünde functionbir araç gösterilmektedir.

var responseMenssage = response.Value.Choices[0].Message;
var toolsCall = responseMenssage.ToolCalls;

Console.WriteLine($"Finish reason: {response.Value.Choices[0].FinishReason}");
Console.WriteLine($"Tool call: {toolsCall[0].Id}");

Devam etmek için bu iletiyi sohbet geçmişine ekleyin:

requestOptions.Messages.Add(new ChatRequestAssistantMessage(response.Value.Choices[0].Message));

Şimdi, araç çağrısını işlemek için uygun işlevi çağırmanın zamanı geldi. Aşağıdaki kod parçacığı yanıtta belirtilen tüm araç çağrıları üzerinde yinelenir ve ilgili işlevi uygun parametrelerle çağırır. Yanıt, sohbet geçmişine de eklenir.

foreach (ChatCompletionsToolCall tool in toolsCall)
{
    if (tool is ChatCompletionsFunctionToolCall functionTool)
    {
        // Get the tool details:
        string callId = functionTool.Id;
        string toolName = functionTool.Name;
        string toolArgumentsString = functionTool.Arguments;
        Dictionary<string, object> toolArguments = JsonSerializer.Deserialize<Dictionary<string, object>>(toolArgumentsString);

        // Here you have to call the function defined. In this particular example we use 
        // reflection to find the method we definied before in an static class called 
        // `ChatCompletionsExamples`. Using reflection allows us to call a function 
        // by string name. Notice that this is just done for demonstration purposes as a 
        // simple way to get the function callable from its string name. Then we can call 
        // it with the corresponding arguments.

        var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
        string toolResponse = (string)typeof(ChatCompletionsExamples).GetMethod(toolName, flags).Invoke(null, toolArguments.Values.Cast<object>().ToArray());

        Console.WriteLine("->", toolResponse);
        requestOptions.Messages.Add(new ChatRequestToolMessage(toolResponse, callId));
    }
    else
        throw new Exception("Unsupported tool type");
}

Modelin yanıtını görüntüleyin:

response = client.Complete(requestOptions);

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek belirli içerik kategorilerini algılar ve üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

try
{
    requestOptions = new ChatCompletionsOptions()
    {
        Messages = {
            new ChatRequestSystemMessage("You are an AI assistant that helps people find information."),
            new ChatRequestUserMessage(
                "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
            ),
        },
    };

    response = client.Complete(requestOptions);
    Console.WriteLine(response.Value.Choices[0].Message.Content);
}
catch (RequestFailedException ex)
{
    if (ex.ErrorCode == "content_filter")
    {
        Console.WriteLine($"Your query has trigger Azure Content Safety: {ex.Message}");
    }
    else
    {
        throw;
    }
}

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Komut sohbet modellerini uyumlu yapma

Cohere Command sohbet modelleri aşağıdaki modelleri içerir:

R+ 08-2024 komutu, akıl yürütme, özetleme ve soru yanıtlama gibi çeşitli kullanım örnekleri için iyileştirilmiş, üretken bir büyük dil modelidir.

  • Model Mimarisi: Command R+ 08-2024, iyileştirilmiş transformatör mimarisi kullanan otomatik girişli bir dil modelidir. Ön eğitimden sonra model, model davranışını yararlılık ve güvenlik için insan tercihleriyle uyumlu hale getirmek için denetimli ince ayar (SFT) ve tercih eğitimini kullanır.
  • Kapsanan diller: Mod şu dillerde iyi performans sergiecek şekilde iyileştirilmiştir: İngilizce, Fransızca, İspanyolca, İtalyanca, Almanca, Brezilya Portekizcesi, Japonca, Korece, basitleştirilmiş Çince ve Arapça.
  • Ön eğitim verileri şu 13 dili de içeriyordu: Rusça, Lehçe, Türkçe, Vietnamca, Felemenkçe, Çekçe, Endonezyaca, Ukraynaca, Rumence, Yunanca, Hintçe, İbranice ve Farsça.
  • Bağlam uzunluğu: R+ 08-2024 komutu 128 K bağlam uzunluğunu destekler.
  • Giriş: Yalnızca metin.
  • Çıkış: Yalnızca metin.

Karmaşık alma artırılmış oluşturma (RAG) işlevselliğine, çok adımlı araç kullanımına (aracılar) ve yapılandırılmış çıkışlara dayanan iş akışları için Command R+ 08-2024 kullanmanızı öneririz.

Aşağıdaki modeller kullanılabilir:

İpucu

Ayrıca Cohere, modelin belirli özellikleriyle kullanılmak üzere uyarlanmış bir API kullanımını destekler. Model sağlayıcısına özgü API'yi kullanmak için Uyumlu belgelere bakın veya kod örneklerinin çıkarım örnekleri bölümüne bakın.

Önkoşullar

Azure Machine Learning ile Birlikte Komut sohbeti modellerini kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Uyumlu Komut sohbet modelleri, kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa, modeli sunucusuz API olarak dağıtmak için Azure Machine Learning stüdyosu, Python için Azure Machine Learning SDK'sını, Azure CLI'yı veya ARM şablonlarını kullanın.

REST istemcisi

Azure AI modeli çıkarım API'siyle dağıtılan modeller herhangi bir REST istemcisi kullanılarak kullanılabilir. REST istemcisini kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

  • İstekleri oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name`` is your unique model deployment host name and your-azure-region'' modelin dağıtıldığı Azure bölgesidir (örneğin, eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Azure Machine Learning'de dağıtılan çoğu modelle aynı kod ve yapıda konuşmanıza olanak tanır. Buna Birlikte Tutarlı Komut sohbet modelleri de dahildir.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json

Yanıt aşağıdaki gibidir:

{
    "model_name": "Cohere-command-r-plus-08-2024",
    "model_type": "chat-completions",
    "model_provider_name": "Cohere"
}

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ]
}

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

{
    "id": "0a1234b5de6789f01gh2i345j6789klm",
    "object": "chat.completion",
    "created": 1718726686,
    "model": "Cohere-command-r-plus-08-2024",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
                "tool_calls": null
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

usage İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "stream": true,
    "temperature": 0,
    "top_p": 1,
    "max_tokens": 2048
}

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

{
    "id": "23b54589eba14564ad8a2e6978775a39",
    "object": "chat.completion.chunk",
    "created": 1718726371,
    "model": "Cohere-command-r-plus-08-2024",
    "choices": [
        {
            "index": 0,
            "delta": {
                "role": "assistant",
                "content": ""
            },
            "finish_reason": null,
            "logprobs": null
        }
    ]
}

Akıştaki finish_reason son ileti ayarlandı ve oluşturma işleminin durma nedenini belirtir.

{
    "id": "23b54589eba14564ad8a2e6978775a39",
    "object": "chat.completion.chunk",
    "created": 1718726371,
    "model": "Cohere-command-r-plus-08-2024",
    "choices": [
        {
            "index": 0,
            "delta": {
                "content": ""
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "presence_penalty": 0.1,
    "frequency_penalty": 0.8,
    "max_tokens": 2048,
    "stop": ["<|endoftext|>"],
    "temperature" :0,
    "top_p": 1,
    "response_format": { "type": "text" }
}
{
    "id": "0a1234b5de6789f01gh2i345j6789klm",
    "object": "chat.completion",
    "created": 1718726686,
    "model": "Cohere-command-r-plus-08-2024",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
                "tool_calls": null
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

JSON çıkışları oluşturma

Komut sohbet modellerini uyumlu bir şekilde kullanarak JSON çıkışları oluşturabilirsiniz. json_object JSON modunu etkinleştirmek için olarak ayarlayın response_format ve modelin oluşturduğu iletinin geçerli JSON olduğundan emin olun. Ayrıca modele bir sistem veya kullanıcı iletisi aracılığıyla JSON üretmesini de belirtmeniz gerekir. Ayrıca, ileti içeriği, neslin aşıldığını veya konuşmanın maksimum bağlam uzunluğunu aştığını max_tokens belirten ise finish_reason="length"kısmen kesilebilir.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant that always generate responses in JSON format, using the following format: { \"answer\": \"response\" }"
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "response_format": { "type": "json_object" }
}
{
    "id": "0a1234b5de6789f01gh2i345j6789klm",
    "object": "chat.completion",
    "created": 1718727522,
    "model": "Cohere-command-r-plus-08-2024",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "{\"answer\": \"There are approximately 7,117 living languages in the world today, according to the latest estimates. However, this number can vary as some languages become extinct and others are newly discovered or classified.\"}",
                "tool_calls": null
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 39,
        "total_tokens": 87,
        "completion_tokens": 48
    }
}

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

POST /chat/completions HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
extra-parameters: pass-through
{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "logprobs": true
}

Araçları kullanma

Uyumlu Komut sohbet modelleri, belirli görevleri dil modelinden boşaltmanız ve bunun yerine daha belirleyici bir sisteme ve hatta farklı bir dil modeline güvenmeniz gerektiğinde olağanüstü bir kaynak olabilecek araçların kullanımını destekler. Azure AI Model Çıkarımı API'si, araçları aşağıdaki şekilde tanımlamanızı sağlar.

Aşağıdaki kod örneği, iki farklı şehirden uçuş bilgilerini arayabilen bir araç tanımı oluşturur.

{
    "type": "function",
    "function": {
        "name": "get_flight_info",
        "description": "Returns information about the next flight between two cities. This includes the name of the airline, flight number and the date and time of the next flight",
        "parameters": {
            "type": "object",
            "properties": {
                "origin_city": {
                    "type": "string",
                    "description": "The name of the city where the flight originates"
                },
                "destination_city": {
                    "type": "string",
                    "description": "The flight destination city"
                }
            },
            "required": [
                "origin_city",
                "destination_city"
            ]
        }
    }
}

Bu örnekte işlevin çıkışı, seçilen rota için kullanılabilir uçuş olmamasıdır, ancak kullanıcının tren kullanmayı göz önünde bulundurması gerekir.

Not

Cohere-command-r-plus-08-2024, Cohere-command-r-08-2024, Cohere-command-r-plus ve Cohere-command-r, bir aracın yanıtlarının dize olarak biçimlendirilmiş geçerli bir JSON içeriği olmasını gerektirir. Tool türünde iletiler oluştururken yanıtın geçerli bir JSON dizesi olduğundan emin olun.

Bu işlevin yardımıyla modelden uçuş rezervasyonu gerçekleştirmesini iste:

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant that help users to find information about traveling, how to get to places and the different transportations options. You care about the environment and you always have that in mind when answering inqueries"
        },
        {
            "role": "user",
            "content": "When is the next flight from Miami to Seattle?"
        }
    ],
    "tool_choice": "auto",
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "get_flight_info",
                "description": "Returns information about the next flight between two cities. This includes the name of the airline, flight number and the date and time of the next flight",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "origin_city": {
                            "type": "string",
                            "description": "The name of the city where the flight originates"
                        },
                        "destination_city": {
                            "type": "string",
                            "description": "The flight destination city"
                        }
                    },
                    "required": [
                        "origin_city",
                        "destination_city"
                    ]
                }
            }
        }
    ]
}

Bir aracın çağrılması gerekip gerekmediğini öğrenmek için yanıtı inceleyebilirsiniz. Aracın çağrılıp çağrılmadığını belirlemek için bitiş nedenini inceleyin. Birden çok araç türünün gösterilebileceğini unutmayın. Bu örnekte türünde functionbir araç gösterilmektedir.

{
    "id": "0a1234b5de6789f01gh2i345j6789klm",
    "object": "chat.completion",
    "created": 1718726007,
    "model": "Cohere-command-r-plus-08-2024",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "",
                "tool_calls": [
                    {
                        "id": "abc0dF1gh",
                        "type": "function",
                        "function": {
                            "name": "get_flight_info",
                            "arguments": "{\"origin_city\": \"Miami\", \"destination_city\": \"Seattle\"}",
                            "call_id": null
                        }
                    }
                ]
            },
            "finish_reason": "tool_calls",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 190,
        "total_tokens": 226,
        "completion_tokens": 36
    }
}

Devam etmek için bu iletiyi sohbet geçmişine ekleyin:

Şimdi, araç çağrısını işlemek için uygun işlevi çağırmanın zamanı geldi. Aşağıdaki kod parçacığı yanıtta belirtilen tüm araç çağrıları üzerinde yinelenir ve ilgili işlevi uygun parametrelerle çağırır. Yanıt, sohbet geçmişine de eklenir.

Modelin yanıtını görüntüleyin:

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant that help users to find information about traveling, how to get to places and the different transportations options. You care about the environment and you always have that in mind when answering inqueries"
        },
        {
            "role": "user",
            "content": "When is the next flight from Miami to Seattle?"
        },
        {
            "role": "assistant",
            "content": "",
            "tool_calls": [
                {
                    "id": "abc0DeFgH",
                    "type": "function",
                    "function": {
                        "name": "get_flight_info",
                        "arguments": "{\"origin_city\": \"Miami\", \"destination_city\": \"Seattle\"}",
                        "call_id": null
                    }
                }
            ]
        },
        {
            "role": "tool",
            "content": "{ \"info\": \"There are no flights available from Miami to Seattle. You should take a train, specially if it helps to reduce CO2 emissions.\" }",
            "tool_call_id": "abc0DeFgH" 
        }
    ],
    "tool_choice": "auto",
    "tools": [
        {
            "type": "function",
            "function": {
            "name": "get_flight_info",
            "description": "Returns information about the next flight between two cities. This includes the name of the airline, flight number and the date and time of the next flight",
            "parameters":{
                "type": "object",
                "properties": {
                    "origin_city": {
                        "type": "string",
                        "description": "The name of the city where the flight originates"
                    },
                    "destination_city": {
                        "type": "string",
                        "description": "The flight destination city"
                    }
                },
                "required": ["origin_city", "destination_city"]
            }
            }
        }
    ]
}

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek belirli içerik kategorilerini algılar ve üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

{
    "messages": [
        {
            "role": "system",
            "content": "You are an AI assistant that helps people find information."
        },
                {
            "role": "user",
            "content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
        }
    ]
}
{
    "error": {
        "message": "The response was filtered due to the prompt triggering Microsoft's content management policy. Please modify your prompt and retry.",
        "type": null,
        "param": "prompt",
        "code": "content_filter",
        "status": 400
    }
}

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Diğer çıkarım örnekleri

Cohere modellerini kullanma hakkında daha fazla örnek için aşağıdaki örneklere ve öğreticilere bakın:

Açıklama Language Örnek
Web istekleri Bash Command-R - Command-R+
JavaScript için Azure AI Çıkarım paketi JavaScript Bağlantı
Python için Azure AI Çıkarım paketi Python Bağlantı
OpenAI SDK (deneysel) Python Bağlantı
LangChain Python Bağlantı
Tutarlı SDK Python Bağlantı
LiteLLM SDK Python Bağlantı

Alma Artırılmış Nesil (RAG) ve araç kullanım örnekleri

Açıklama Paketler Örnek
Cohere embeddings kullanarak yerel bir Facebook AI benzerlik araması (FAISS) vektör dizini oluşturma - Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Yerel FAISS vektör dizinindeki verilerden gelen soruları yanıtlamak için Cohere Command R/R+ kullanma - Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Yapay zeka arama vektör dizinindeki verilerden gelen soruları yanıtlamak için Cohere Command R/R+ kullanma - Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Yapay zeka arama vektör dizinindeki verilerden gelen soruları yanıtlamak için Cohere Command R/R+ kullanma - Tutarlı SDK cohere, azure_search_documents cohere-aisearch-rag.ipynb
LangChain kullanarak R+ aracı/işlev çağrısı komutu cohere, langchain, langchain_cohere command_tools-langchain.ipynb

Sunucusuz API uç noktaları olarak dağıtılan tutarlı modeller için maliyet ve kota konuları

Kota dağıtım başına yönetilir. Her dağıtımın dakikada 200.000 belirteç ve dakikada 1.000 API isteği hız sınırı vardır. Ancak şu anda proje başına model başına bir dağıtımla sınırlandırıyoruz. Geçerli hız sınırları senaryolarınız için yeterli değilse Microsoft Azure Desteği'ne başvurun.

Sunucusuz API olarak dağıtılan tutarlı modeller, Azure Market aracılığıyla Cohere tarafından sunulur ve kullanım için Azure Machine Learning stüdyosu ile tümleştirilir. Modeli dağıtırken Azure Market fiyatlandırmasını bulabilirsiniz.

Bir proje Azure Market'ten belirli bir teklife her abone olduğunda tüketimiyle ilişkili maliyetleri izlemek için yeni bir kaynak oluşturulur. Çıkarımla ilişkili maliyetleri izlemek için aynı kaynak kullanılır ancak, her senaryoda bağımsız izleme için birden çok metre kullanılabilir.

Maliyetlerin nasıl izleneceği hakkında daha fazla bilgi için Azure Market aracılığıyla sunulan modellerin maliyetlerini izleme bölümüne bakın.