DeepSeek-R1-redeneringsmodel gebruiken
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
In dit artikel leert u meer over DeepSeek-R1 en hoe u deze kunt gebruiken. DeepSeek-R1 excelleert bij het redeneren van taken met behulp van een stapsgewijs trainingsproces, zoals taal, wetenschappelijke redenering en coderingstaken. Het bevat 671B totale parameters met 37B actieve parameters en 128k contextlengte.
Belangrijk
Modellen die in preview zijn, worden gemarkeerd als voorbeeld op hun modelkaarten in de modelcatalogus.
DeepSeek-R1
DeepSeek-R1 bouwt voort op de voortgang van eerdere redeneringsgerichte modellen die de prestaties verbeterden door coT-redenering (Chain-of-Thought) uit te breiden. DeepSeek-R1 gaat verder door versterkingsleer (RL) te combineren met het verfijnen van zorgvuldig gekozen gegevenssets. Het ontwikkelde zich van een eerdere versie, DeepSeek-R1-Zero, die alleen afhankelijk was van RL en sterke redeneringsvaardigheden vertoonde, maar problemen had zoals moeilijk te lezen uitvoer en taalconsistentie. Om deze beperkingen aan te pakken, bevat DeepSeek-R1 een kleine hoeveelheid koude-startgegevens en volgt u een verfijnde trainingspijplijn die de redeneringsgerichte RL combineert met geavanceerde afstemming op gecureerde gegevenssets, wat resulteert in een model dat geavanceerde prestaties bereikt op basis van redeneringsbenchmarks.
Meer informatie over de modellen vindt u in hun respectieve modelkaart:
Vereisten
Als u DeepSeek-R1 wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
DeepSeek-R1 kan worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het azure-ai-inference
pakket met Python. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- Python 3.8 of hoger geïnstalleerd, inclusief pip.
- De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Zodra u aan deze vereisten voldoet, installeert u het Azure AI-deductiepakket met de volgende opdracht:
pip install azure-ai-inference
Lees meer over het Azure AI-deductiepakket en de naslaginformatie.
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in Azure AI Foundry met dezelfde code en structuur, waaronder DeepSeek-R1.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
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"]),
)
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
model_info = client.get_model_info()
Het antwoord is als volgt:
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: DeepSeek-R1
Model type: chat-completions
Model provider name: DeepSeek
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
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?"),
],
)
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
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: DeepSeek-R1
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inzicht in redenering
Sommige redeneringsmodellen, zoals DeepSeek-R1, genereren voltooiingen en bevatten de redenering erachter. De redenering die aan de voltooiing is gekoppeld, wordt opgenomen in de inhoud van het antwoord binnen de tags <think>
en </think>
. Het model kan selecteren welke scenario's u wilt gebruiken om redeneringsinhoud te genereren. Voorbeeld:
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
)
U kunt de redeneringsinhoud uit het antwoord extraheren om het gedachteproces van het model als volgt te begrijpen:
import re
match = re.match(r"<think>(.*?)</think>(.*)", response.choices[0].message.content, re.DOTALL)
print("Response:", )
if match:
print("\tThinking:", match.group(1))
print("\tAnswer:", match.group(2))
else:
print("\tAnswer:", 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)
Thinking: Okay, the user is asking how many languages exist in the world. I need to provide a clear and accurate answer. Let's start by recalling the general consensus from linguistic sources. I remember that the number often cited is around 7,000, but maybe I should check some reputable organizations.\n\nEthnologue is a well-known resource for language data, and I think they list about 7,000 languages. But wait, do they update their numbers? It might be around 7,100 or so. Also, the exact count can vary because some sources might categorize dialects differently or have more recent data. \n\nAnother thing to consider is language endangerment. Many languages are endangered, with some having only a few speakers left. Organizations like UNESCO track endangered languages, so mentioning that adds context. Also, the distribution isn't even. Some countries have hundreds of languages, like Papua New Guinea with over 800, while others have just a few. \n\nA user might also wonder why the exact number is hard to pin down. It's because the distinction between a language and a dialect can be political or cultural. For example, Mandarin and Cantonese are considered dialects of Chinese by some, but they're mutually unintelligible, so others classify them as separate languages. Also, some regions are under-researched, making it hard to document all languages. \n\nI should also touch on language families. The 7,000 languages are grouped into families like Indo-European, Sino-Tibetan, Niger-Congo, etc. Maybe mention a few of the largest families. But wait, the question is just about the count, not the families. Still, it's good to provide a bit more context. \n\nI need to make sure the information is up-to-date. Let me think – recent estimates still hover around 7,000. However, languages are dying out rapidly, so the number decreases over time. Including that note about endangerment and language extinction rates could be helpful. For instance, it's often stated that a language dies every few weeks. \n\nAnother point is sign languages. Does the count include them? Ethnologue includes some, but not all sources might. If the user is including sign languages, that adds more to the count, but I think the 7,000 figure typically refers to spoken languages. For thoroughness, maybe mention that there are also over 300 sign languages. \n\nSummarizing, the answer should state around 7,000, mention Ethnologue's figure, explain why the exact number varies, touch on endangerment, and possibly note sign languages as a separate category. Also, a brief mention of Papua New Guinea as the most linguistically diverse country. \n\nWait, let me verify Ethnologue's current number. As of their latest edition (25th, 2022), they list 7,168 living languages. But I should check if that's the case. Some sources might round to 7,000. Also, SIL International publishes Ethnologue, so citing them as reference makes sense. \n\nOther sources, like Glottolog, might have a different count because they use different criteria. Glottolog might list around 7,000 as well, but exact numbers vary. It's important to highlight that the count isn't exact because of differing definitions and ongoing research. \n\nIn conclusion, the approximate number is 7,000, with Ethnologue being a key source, considerations of endangerment, and the challenges in counting due to dialect vs. language distinctions. I should make sure the answer is clear, acknowledges the variability, and provides key points succinctly.
Answer: The exact number of languages in the world is challenging to determine due to differences in definitions (e.g., distinguishing languages from dialects) and ongoing documentation efforts. However, widely cited estimates suggest there are approximately **7,000 languages** globally.
Model: DeepSeek-R1
Usage:
Prompt tokens: 11
Total tokens: 897
Completion tokens: 886
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
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,
)
Als u voltooiingen wilt streamen, stelt u in stream=True
wanneer u het model aanroept.
Als u de uitvoer wilt visualiseren, definieert u een helperfunctie om de stream af te drukken.
def print_stream(result):
"""
Prints the chat completion with streaming.
"""
for update in result:
if update.choices:
print(update.choices[0].delta.content, end="")
U kunt visualiseren hoe streaming inhoud genereert:
print_stream(result)
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
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
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
DeepSeek-R1
DeepSeek-R1 bouwt voort op de voortgang van eerdere redeneringsgerichte modellen die de prestaties verbeterden door coT-redenering (Chain-of-Thought) uit te breiden. DeepSeek-R1 gaat verder door versterkingsleer (RL) te combineren met het verfijnen van zorgvuldig gekozen gegevenssets. Het ontwikkelde zich van een eerdere versie, DeepSeek-R1-Zero, die alleen afhankelijk was van RL en sterke redeneringsvaardigheden vertoonde, maar problemen had zoals moeilijk te lezen uitvoer en taalconsistentie. Om deze beperkingen aan te pakken, bevat DeepSeek-R1 een kleine hoeveelheid koude-startgegevens en volgt u een verfijnde trainingspijplijn die de redeneringsgerichte RL combineert met geavanceerde afstemming op gecureerde gegevenssets, wat resulteert in een model dat geavanceerde prestaties bereikt op basis van redeneringsbenchmarks.
Meer informatie over de modellen vindt u in hun respectieve modelkaart:
Vereisten
Als u DeepSeek-R1 wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
DeepSeek-R1 kan worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het @azure-rest/ai-inference
pakket van npm
. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- LTS-versies van
Node.js
metnpm
. - De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Nadat u deze vereisten hebt, installeert u de Azure-deductiebibliotheek voor JavaScript met de volgende opdracht:
npm install @azure-rest/ai-inference
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in Azure AI Foundry met dezelfde code en structuur, waaronder DeepSeek-R1.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
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)
);
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
var model_info = await client.path("/info").get()
Het antwoord is als volgt:
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: DeepSeek-R1
Model type: chat-completions
Model provider name: DeepSeek
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
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,
}
});
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
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: DeepSeek-R1
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inzicht in redenering
Sommige redeneringsmodellen, zoals DeepSeek-R1, genereren voltooiingen en bevatten de redenering erachter. De redenering die aan de voltooiing is gekoppeld, wordt opgenomen in de inhoud van het antwoord binnen de tags <think>
en </think>
. Het model kan selecteren welke scenario's u wilt gebruiken om redeneringsinhoud te genereren. Voorbeeld:
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,
}
});
U kunt de redeneringsinhoud uit het antwoord extraheren om het gedachteproces van het model als volgt te begrijpen:
var content = response.body.choices[0].message.content
var match = content.match(/<think>(.*?)<\/think>(.*)/s);
console.log("Response:");
if (match) {
console.log("\tThinking:", match[1]);
console.log("\Answer:", match[2]);
}
else {
console.log("Response:", 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);
Thinking: Okay, the user is asking how many languages exist in the world. I need to provide a clear and accurate answer. Let's start by recalling the general consensus from linguistic sources. I remember that the number often cited is around 7,000, but maybe I should check some reputable organizations.\n\nEthnologue is a well-known resource for language data, and I think they list about 7,000 languages. But wait, do they update their numbers? It might be around 7,100 or so. Also, the exact count can vary because some sources might categorize dialects differently or have more recent data. \n\nAnother thing to consider is language endangerment. Many languages are endangered, with some having only a few speakers left. Organizations like UNESCO track endangered languages, so mentioning that adds context. Also, the distribution isn't even. Some countries have hundreds of languages, like Papua New Guinea with over 800, while others have just a few. \n\nA user might also wonder why the exact number is hard to pin down. It's because the distinction between a language and a dialect can be political or cultural. For example, Mandarin and Cantonese are considered dialects of Chinese by some, but they're mutually unintelligible, so others classify them as separate languages. Also, some regions are under-researched, making it hard to document all languages. \n\nI should also touch on language families. The 7,000 languages are grouped into families like Indo-European, Sino-Tibetan, Niger-Congo, etc. Maybe mention a few of the largest families. But wait, the question is just about the count, not the families. Still, it's good to provide a bit more context. \n\nI need to make sure the information is up-to-date. Let me think – recent estimates still hover around 7,000. However, languages are dying out rapidly, so the number decreases over time. Including that note about endangerment and language extinction rates could be helpful. For instance, it's often stated that a language dies every few weeks. \n\nAnother point is sign languages. Does the count include them? Ethnologue includes some, but not all sources might. If the user is including sign languages, that adds more to the count, but I think the 7,000 figure typically refers to spoken languages. For thoroughness, maybe mention that there are also over 300 sign languages. \n\nSummarizing, the answer should state around 7,000, mention Ethnologue's figure, explain why the exact number varies, touch on endangerment, and possibly note sign languages as a separate category. Also, a brief mention of Papua New Guinea as the most linguistically diverse country. \n\nWait, let me verify Ethnologue's current number. As of their latest edition (25th, 2022), they list 7,168 living languages. But I should check if that's the case. Some sources might round to 7,000. Also, SIL International publishes Ethnologue, so citing them as reference makes sense. \n\nOther sources, like Glottolog, might have a different count because they use different criteria. Glottolog might list around 7,000 as well, but exact numbers vary. It's important to highlight that the count isn't exact because of differing definitions and ongoing research. \n\nIn conclusion, the approximate number is 7,000, with Ethnologue being a key source, considerations of endangerment, and the challenges in counting due to dialect vs. language distinctions. I should make sure the answer is clear, acknowledges the variability, and provides key points succinctly.
Answer: The exact number of languages in the world is challenging to determine due to differences in definitions (e.g., distinguishing languages from dialects) and ongoing documentation efforts. However, widely cited estimates suggest there are approximately **7,000 languages** globally.
Model: DeepSeek-R1
Usage:
Prompt tokens: 11
Total tokens: 897
Completion tokens: 886
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
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();
Als u voltooiingen wilt streamen, gebruikt .asNodeStream()
u deze wanneer u het model aanroept.
U kunt visualiseren hoe streaming inhoud genereert:
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 ?? "");
}
}
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
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;
}
}
}
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
DeepSeek-R1
DeepSeek-R1 bouwt voort op de voortgang van eerdere redeneringsgerichte modellen die de prestaties verbeterden door coT-redenering (Chain-of-Thought) uit te breiden. DeepSeek-R1 gaat verder door versterkingsleer (RL) te combineren met het verfijnen van zorgvuldig gekozen gegevenssets. Het ontwikkelde zich van een eerdere versie, DeepSeek-R1-Zero, die alleen afhankelijk was van RL en sterke redeneringsvaardigheden vertoonde, maar problemen had zoals moeilijk te lezen uitvoer en taalconsistentie. Om deze beperkingen aan te pakken, bevat DeepSeek-R1 een kleine hoeveelheid koude-startgegevens en volgt u een verfijnde trainingspijplijn die de redeneringsgerichte RL combineert met geavanceerde afstemming op gecureerde gegevenssets, wat resulteert in een model dat geavanceerde prestaties bereikt op basis van redeneringsbenchmarks.
Meer informatie over de modellen vindt u in hun respectieve modelkaart:
Vereisten
Als u DeepSeek-R1 wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
DeepSeek-R1 kan worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het Azure.AI.Inference
pakket van NuGet. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Nadat u deze vereisten hebt, installeert u de Azure AI-deductiebibliotheek met de volgende opdracht:
dotnet add package Azure.AI.Inference --prerelease
U kunt zich ook verifiëren met Microsoft Entra ID (voorheen Azure Active Directory). Als u referentieproviders wilt gebruiken die bij de Azure SDK zijn geleverd, installeert u het Azure.Identity
pakket:
dotnet add package Azure.Identity
Importeer de volgende naamruimten:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
In dit voorbeeld worden ook de volgende naamruimten gebruikt, maar u hebt ze mogelijk niet altijd nodig:
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Reflection;
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in Azure AI Foundry met dezelfde code en structuur, waaronder DeepSeek-R1.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL")),
"DeepSeek-R1"
);
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
Response<ModelInfo> modelInfo = client.GetModelInfo();
Het antwoord is als volgt:
Console.WriteLine($"Model name: {modelInfo.Value.ModelName}");
Console.WriteLine($"Model type: {modelInfo.Value.ModelType}");
Console.WriteLine($"Model provider name: {modelInfo.Value.ModelProviderName}");
Model name: DeepSeek-R1
Model type: chat-completions
Model provider name: DeepSeek
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
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);
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
Console.WriteLine($"Response: {response.Value.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: DeepSeek-R1
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inzicht in redenering
Sommige redeneringsmodellen, zoals DeepSeek-R1, genereren voltooiingen en bevatten de redenering erachter. De redenering die aan de voltooiing is gekoppeld, wordt opgenomen in de inhoud van het antwoord binnen de tags <think>
en </think>
. Het model kan selecteren welke scenario's u wilt gebruiken om redeneringsinhoud te genereren. Voorbeeld:
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);
U kunt de redeneringsinhoud uit het antwoord extraheren om het gedachteproces van het model als volgt te begrijpen:
Regex regex = new Regex(pattern, RegexOptions.Singleline);
Match match = regex.Match(response.Value.Content);
Console.WriteLine("Response:");
if (match.Success)
{
Console.WriteLine($"\tThinking: {match.Groups[1].Value}");
Console.WriteLine($"\tAnswer: {match.Groups[2].Value}");
else
{
Console.WriteLine($"Response: {response.Value.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}");
Thinking: Okay, the user is asking how many languages exist in the world. I need to provide a clear and accurate answer. Let's start by recalling the general consensus from linguistic sources. I remember that the number often cited is around 7,000, but maybe I should check some reputable organizations.\n\nEthnologue is a well-known resource for language data, and I think they list about 7,000 languages. But wait, do they update their numbers? It might be around 7,100 or so. Also, the exact count can vary because some sources might categorize dialects differently or have more recent data. \n\nAnother thing to consider is language endangerment. Many languages are endangered, with some having only a few speakers left. Organizations like UNESCO track endangered languages, so mentioning that adds context. Also, the distribution isn't even. Some countries have hundreds of languages, like Papua New Guinea with over 800, while others have just a few. \n\nA user might also wonder why the exact number is hard to pin down. It's because the distinction between a language and a dialect can be political or cultural. For example, Mandarin and Cantonese are considered dialects of Chinese by some, but they're mutually unintelligible, so others classify them as separate languages. Also, some regions are under-researched, making it hard to document all languages. \n\nI should also touch on language families. The 7,000 languages are grouped into families like Indo-European, Sino-Tibetan, Niger-Congo, etc. Maybe mention a few of the largest families. But wait, the question is just about the count, not the families. Still, it's good to provide a bit more context. \n\nI need to make sure the information is up-to-date. Let me think – recent estimates still hover around 7,000. However, languages are dying out rapidly, so the number decreases over time. Including that note about endangerment and language extinction rates could be helpful. For instance, it's often stated that a language dies every few weeks. \n\nAnother point is sign languages. Does the count include them? Ethnologue includes some, but not all sources might. If the user is including sign languages, that adds more to the count, but I think the 7,000 figure typically refers to spoken languages. For thoroughness, maybe mention that there are also over 300 sign languages. \n\nSummarizing, the answer should state around 7,000, mention Ethnologue's figure, explain why the exact number varies, touch on endangerment, and possibly note sign languages as a separate category. Also, a brief mention of Papua New Guinea as the most linguistically diverse country. \n\nWait, let me verify Ethnologue's current number. As of their latest edition (25th, 2022), they list 7,168 living languages. But I should check if that's the case. Some sources might round to 7,000. Also, SIL International publishes Ethnologue, so citing them as reference makes sense. \n\nOther sources, like Glottolog, might have a different count because they use different criteria. Glottolog might list around 7,000 as well, but exact numbers vary. It's important to highlight that the count isn't exact because of differing definitions and ongoing research. \n\nIn conclusion, the approximate number is 7,000, with Ethnologue being a key source, considerations of endangerment, and the challenges in counting due to dialect vs. language distinctions. I should make sure the answer is clear, acknowledges the variability, and provides key points succinctly.
Answer: The exact number of languages in the world is challenging to determine due to differences in definitions (e.g., distinguishing languages from dialects) and ongoing documentation efforts. However, widely cited estimates suggest there are approximately **7,000 languages** globally.
Model: DeepSeek-R1
Usage:
Prompt tokens: 11
Total tokens: 897
Completion tokens: 886
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
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);
}
Als u voltooiingen wilt streamen, gebruikt CompleteStreamingAsync
u de methode wanneer u het model aanroept. In dit voorbeeld wordt de aanroep verpakt in een asynchrone methode.
Als u de uitvoer wilt visualiseren, definieert u een asynchrone methode om de stream in de console af te drukken.
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);
}
}
}
U kunt visualiseren hoe streaming inhoud genereert:
StreamMessageAsync(client).GetAwaiter().GetResult();
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
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.Content);
}
catch (RequestFailedException ex)
{
if (ex.ErrorCode == "content_filter")
{
Console.WriteLine($"Your query has trigger Azure Content Safety: {ex.Message}");
}
else
{
throw;
}
}
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
DeepSeek-R1
DeepSeek-R1 bouwt voort op de voortgang van eerdere redeneringsgerichte modellen die de prestaties verbeterden door coT-redenering (Chain-of-Thought) uit te breiden. DeepSeek-R1 gaat verder door versterkingsleer (RL) te combineren met het verfijnen van zorgvuldig gekozen gegevenssets. Het ontwikkelde zich van een eerdere versie, DeepSeek-R1-Zero, die alleen afhankelijk was van RL en sterke redeneringsvaardigheden vertoonde, maar problemen had zoals moeilijk te lezen uitvoer en taalconsistentie. Om deze beperkingen aan te pakken, bevat DeepSeek-R1 een kleine hoeveelheid koude-startgegevens en volgt u een verfijnde trainingspijplijn die de redeneringsgerichte RL combineert met geavanceerde afstemming op gecureerde gegevenssets, wat resulteert in een model dat geavanceerde prestaties bereikt op basis van redeneringsbenchmarks.
Meer informatie over de modellen vindt u in hun respectieve modelkaart:
Vereisten
Als u DeepSeek-R1 wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
DeepSeek-R1 kan worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Studio, Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Een REST-client
Modellen die zijn geïmplementeerd met de Deductie-API van het Azure AI-model kunnen worden gebruikt met behulp van een REST-client. Als u de REST-client wilt gebruiken, hebt u de volgende vereisten nodig:
- Als u de aanvragen wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waarbijyour-host-name`` is your unique model deployment host name and
uw azure-regio de Azure-regio is waar het model is geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in Azure AI Foundry met dezelfde code en structuur, waaronder DeepSeek-R1.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
Het antwoord is als volgt:
{
"model_name": "DeepSeek-R1",
"model_type": "chat-completions",
"model_provider_name": "DeepSeek"
}
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
{
"model": "DeepSeek-R1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
]
}
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
{
"id": "0a1234b5de6789f01gh2i345j6789klm",
"object": "chat.completion",
"created": 1718726686,
"model": "DeepSeek-R1",
"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
}
}
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inzicht in redenering
Sommige redeneringsmodellen, zoals DeepSeek-R1, genereren voltooiingen en bevatten de redenering erachter. De redenering die aan de voltooiing is gekoppeld, wordt opgenomen in de inhoud van het antwoord binnen de tags <think>
en </think>
. Het model kan selecteren welke scenario's u wilt gebruiken om redeneringsinhoud te genereren. Voorbeeld:
{
"model": "DeepSeek-R1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
]
}
U kunt de redeneringsinhoud uit het antwoord extraheren om het gedachteproces van het model als volgt te begrijpen:
{
"id": "0a1234b5de6789f01gh2i345j6789klm",
"object": "chat.completion",
"created": 1718726686,
"model": "DeepSeek-R1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "<think>\nOkay, the user is asking how many languages exist in the world. I need to provide a clear and accurate answer. Let's start by recalling the general consensus from linguistic sources. I remember that the number often cited is around 7,000, but maybe I should check some reputable organizations.\n\nEthnologue is a well-known resource for language data, and I think they list about 7,000 languages. But wait, do they update their numbers? It might be around 7,100 or so. Also, the exact count can vary because some sources might categorize dialects differently or have more recent data. \n\nAnother thing to consider is language endangerment. Many languages are endangered, with some having only a few speakers left. Organizations like UNESCO track endangered languages, so mentioning that adds context. Also, the distribution isn't even. Some countries have hundreds of languages, like Papua New Guinea with over 800, while others have just a few. \n\nA user might also wonder why the exact number is hard to pin down. It's because the distinction between a language and a dialect can be political or cultural. For example, Mandarin and Cantonese are considered dialects of Chinese by some, but they're mutually unintelligible, so others classify them as separate languages. Also, some regions are under-researched, making it hard to document all languages. \n\nI should also touch on language families. The 7,000 languages are grouped into families like Indo-European, Sino-Tibetan, Niger-Congo, etc. Maybe mention a few of the largest families. But wait, the question is just about the count, not the families. Still, it's good to provide a bit more context. \n\nI need to make sure the information is up-to-date. Let me think – recent estimates still hover around 7,000. However, languages are dying out rapidly, so the number decreases over time. Including that note about endangerment and language extinction rates could be helpful. For instance, it's often stated that a language dies every few weeks. \n\nAnother point is sign languages. Does the count include them? Ethnologue includes some, but not all sources might. If the user is including sign languages, that adds more to the count, but I think the 7,000 figure typically refers to spoken languages. For thoroughness, maybe mention that there are also over 300 sign languages. \n\nSummarizing, the answer should state around 7,000, mention Ethnologue's figure, explain why the exact number varies, touch on endangerment, and possibly note sign languages as a separate category. Also, a brief mention of Papua New Guinea as the most linguistically diverse country. \n\nWait, let me verify Ethnologue's current number. As of their latest edition (25th, 2022), they list 7,168 living languages. But I should check if that's the case. Some sources might round to 7,000. Also, SIL International publishes Ethnologue, so citing them as reference makes sense. \n\nOther sources, like Glottolog, might have a different count because they use different criteria. Glottolog might list around 7,000 as well, but exact numbers vary. It's important to highlight that the count isn't exact because of differing definitions and ongoing research. \n\nIn conclusion, the approximate number is 7,000, with Ethnologue being a key source, considerations of endangerment, and the challenges in counting due to dialect vs. language distinctions. I should make sure the answer is clear, acknowledges the variability, and provides key points succinctly.\n</think>\n\nThe exact number of languages in the world is challenging to determine due to differences in definitions (e.g., distinguishing languages from dialects) and ongoing documentation efforts. However, widely cited estimates suggest there are approximately **7,000 languages** globally.",
"tool_calls": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 11,
"total_tokens": 897,
"completion_tokens": 886
}
}
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
{
"model": "DeepSeek-R1",
"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
}
U kunt visualiseren hoe streaming inhoud genereert:
{
"id": "23b54589eba14564ad8a2e6978775a39",
"object": "chat.completion.chunk",
"created": 1718726371,
"model": "DeepSeek-R1",
"choices": [
{
"index": 0,
"delta": {
"role": "assistant",
"content": ""
},
"finish_reason": null,
"logprobs": null
}
]
}
Het laatste bericht in de stream is finish_reason
ingesteld, wat de reden aangeeft waarom het generatieproces moet worden gestopt.
{
"id": "23b54589eba14564ad8a2e6978775a39",
"object": "chat.completion.chunk",
"created": 1718726371,
"model": "DeepSeek-R1",
"choices": [
{
"index": 0,
"delta": {
"content": ""
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
{
"model": "DeepSeek-R1",
"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
}
}
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
Meer deductievoorbeelden
Zie de volgende voorbeelden en zelfstudies voor meer voorbeelden van het gebruik van DeepSeek-modellen:
Beschrijving | Taal | Voorbeeld |
---|---|---|
Azure AI-deductiepakket voor Python | Python | Koppeling |
Azure AI-deductiepakket voor JavaScript | JavaScript | Koppeling |
Azure AI-deductiepakket voor C# | C# | Koppeling |
Azure AI-deductiepakket voor Java | Java | Koppeling |
Kosten- en quotumoverwegingen voor DeepSeek-modellen die zijn geïmplementeerd als serverloze API-eindpunten
Het quotum wordt beheerd per implementatie. Elke implementatie heeft een frequentielimiet van 200.000 tokens per minuut en 1000 API-aanvragen per minuut. Momenteel beperken we echter tot één implementatie per model per project. Neem contact op met de ondersteuning voor Microsoft Azure als de huidige frequentielimieten niet voldoende zijn voor uw scenario's.