Pour des scénarios tels que la complétion de code ou la continuation de texte, générez du contenu à partir d'un fragment de texte existant (préfixe). Le mode partiel garantit que la sortie du modèle s'enchaîne parfaitement avec votre préfixe, pour une précision et un contrôle accrus.
Fonctionnement
Pour utiliser le mode partiel, configurez le tableau messages. Dans le dernier message du tableau, définissez le role sur assistant et indiquez le préfixe dans le champ content. Définissez également le paramètre "partial": true dans ce message. Le format de messages est le suivant :
[
{
"role": "user",
"content": "Complete this Fibonacci function. Do not add anything else."
},
{
"role": "assistant",
"content": "def calculate_fibonacci(n):\n if n <= 1:\n return n\n else:\n",
"partial": true
}
]
Le modèle commence alors à générer du texte à partir du préfixe spécifié.
Modèles pris en charge
-
Modèles de génération de texte
- Qwen-Max (mode sans réflexion) : séries Qwen3.7-Max, Qwen3.6-Max, Qwen3-Max, Qwen-Max
- Qwen-Plus (mode sans réflexion) : séries Qwen3.7-Plus, Qwen3.6-Plus, Qwen3.5-Plus, Qwen-Plus
- Qwen-Flash (mode sans réflexion) : séries Qwen3.7-Flash, Qwen3.6-Flash, Qwen3.5-Flash, Qwen-Flash
- Qwen-Coder : séries Qwen3-Coder, Qwen2.5-Coder
- Qwen-Turbo (mode sans réflexion) : série Qwen-Turbo
- Série open source Qwen3.6 (mode sans réflexion)
- Série open source Qwen3.5 (mode sans réflexion)
- Série open source Qwen3 (mode sans réflexion)
- Série open source Qwen2.5
-
Modèles multimodaux
- Qwen-VL : séries Qwen3-VL-Plus, Qwen3-VL-Flash, Qwen-VL-Max, Qwen-VL-Plus
- Série open source Qwen3-VL (mode sans réflexion)
Prise en main
Prérequis
Avant de commencer, obtenez une clé API et configurez-la comme variable d'environnement. Si vous appelez le service via le SDK OpenAI ou DashScope, installez le SDK. Si vous appartenez à un sous-espace de travail, vérifiez que le super-administrateur a bien accordé l'accès aux modèles à votre espace de travail.
RemarqueLe SDK Java DashScope n'est pas pris en charge.
Exemple de code
La complétion de code constitue le cas d'usage principal du mode partiel. L'exemple suivant montre comment compléter une fonction Python.
OpenAI compatible
Python
import os
from openai import OpenAI
# 1. Initialize the client
client = OpenAI(
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# If not set in environment, replace here with your API key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
# 2. Define the code prefix to complete
prefix = """def calculate_fibonacci(n):
if n <= 1:
return n
else:
"""
# 3. Make a Partial Mode request
# Note: The last message in the messages array must have role "assistant" and include "partial": True
completion = client.chat.completions.create(
model="qwen3.8-max",
messages=[
{"role": "user", "content": "Complete this Fibonacci function. Do not add anything else."},
{"role": "assistant", "content": prefix, "partial": True},
],
)
# 4. Manually join the prefix and the model's generated content
generated_code = completion.choices[0].message.content
complete_code = prefix + generated_code
print(complete_code)
Réponse
def calculate_fibonacci(n):
if n <= 1:
return n
else:
return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)
Node.js
import OpenAI from "openai";
const openai = new OpenAI({
// If not set in environment, replace the next line with: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
// For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
// Define the code prefix to complete
const prefix = `def calculate_fibonacci(n):
if n <= 1:
return n
else:
`;
const completion = await openai.chat.completions.create({
model: "qwen3.8-max", // Use a code model
messages: [
{ role: "user", content: "Complete this Fibonacci function. Do not add anything else." },
{ role: "assistant", content: prefix, partial: true }
],
});
// Manually join the prefix and the model's generated content
const generatedCode = completion.choices[0].message.content;
const completeCode = prefix + generatedCode;
console.log(completeCode);
curl
# ======= Important notice =======
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions
# === Remove this comment before running ===
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"messages": [
{
"role": "user",
"content": "Complete this Fibonacci function. Do not add anything else."
},
{
"role": "assistant",
"content": "def calculate_fibonacci(n):\n if n <= 1:\n return n\n else:\n",
"partial": true
}
]
}'
Réponse
{
"choices": [
{
"message": {
"content": " return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 48,
"completion_tokens": 19,
"total_tokens": 67,
"prompt_tokens_details": {
"cache_type": "implicit",
"cached_tokens": 0
}
},
"created": 1756800231,
"system_fingerprint": null,
"model": "qwen3.8-max",
"id": "chatcmpl-d103b1cf-4bda-942f-92d6-d7ecabfeeccb"
}
DashScope
Python
import os
import dashscope
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# If you use a model in the Beijing region, replace the URL with: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Define the code prefix to be completed
prefix = """def calculate_fibonacci(n):
if n <= 1:
return n
else:
"""
messages = [
{
"role": "user",
"content": "Complete this Fibonacci function. Do not add any other content."
},
{
"role": "assistant",
"content": prefix,
"partial": True
}
]
response = dashscope.Generation.call(
# The API key varies by region. To obtain an API key, visit: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# If the environment variable is not configured, replace the following line with api_key="sk-xxx", and use your Alibaba Cloud Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3.8-max', # Use a code model
messages=messages,
result_format='message',
)
# Manually concatenate the prefix and the content generated by the model
generated_code = response.output.choices[0].message.content
complete_code = prefix + generated_code
print(complete_code)
Réponse
def calculate_fibonacci(n):
if n <= 1:
return n
else:
return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)
curl
# ======= Important notice =======
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Remove this comment before running ===
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"input":{
"messages":[
{
"role": "user",
"content": "Complete this Fibonacci function. Do not add anything else."
},
{
"role": "assistant",
"content": "def calculate_fibonacci(n):\n if n <= 1:\n return n\n else:\n",
"partial": true
}
]
},
"parameters": {
"result_format": "message"
}
}'
Réponse
{
"output": {
"choices": [
{
"message": {
"content": " return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)",
"role": "assistant"
},
"finish_reason": "stop"
}
]
},
"usage": {
"total_tokens": 67,
"output_tokens": 19,
"input_tokens": 48,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"request_id": "c61c62e5-cf97-90bc-a4ee-50e5e117b93f"
}
Cas d'utilisation
Transmission d'images ou de vidéos
Les modèles Qwen-VL prennent en charge le mode partiel avec des données image ou vidéo. Cette fonctionnalité s'avère utile pour les descriptions de produits, les publications sur les réseaux sociaux, les articles d'actualité et la rédaction créative.
OpenAI compatible
Python
import os
from openai import OpenAI
client = OpenAI(
# If not set in environment, replace the next line with: api_key="sk-xxx",
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
completion = client.chat.completions.create(
model="qwen3-vl-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
},
},
{"type": "text", "text": "I want to post this on social media. Help me write a caption."},
],
},
{
"role": "assistant",
"content": "Today I discovered a hidden-gem café",
"partial": True,
},
],
)
print(completion.choices[0].message.content)
Réponse
— the tiramisu here is pure bliss! Every bite delivers perfect harmony between coffee and cream. Pure joy! #FoodShare #Tiramisu #CoffeeTime
Hope you like this caption! Let me know if you need any changes.
Node.js
import OpenAI from "openai";
const openai = new OpenAI({
// API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// If you have not set the environment variable, replace the next line with: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// For Beijing region models, replace baseURL with: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3-vl-plus",
messages: [
{
role: "user",
content: [
{
type: "image_url",
image_url: {
"url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
}
},
{
type: "text",
text: "I want to post this on social media. Help me write a caption."
}
]
},
{
role: "assistant",
content: "Today I discovered a hidden-gem café",
"partial": true
}
]
});
console.log(response.choices[0].message.content);
}
main();
curl
# ======= Important notice =======
# For Beijing region models, replace base_url with: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Remove this comment before running ===
curl -X POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
}
},
{
"type": "text",
"text": "I want to post this on social media. Help me write a caption."
}
]
},
{
"role": "assistant",
"content": "Today I discovered a hidden-gem café",
"partial": true
}
]
}'
Réponse
{
"choices": [
{
"message": {
"content": "— the tiramisu here is pure bliss! Every bite delivers perfect harmony between coffee and cream. Pure joy! #FoodShare #Tiramisu #CoffeeTime\n\nHope you like this caption! Let me know if you need any changes.",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 282,
"completion_tokens": 56,
"total_tokens": 338,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"created": 1756802933,
"system_fingerprint": null,
"model": "qwen3-vl-plus",
"id": "chatcmpl-5780cbb7-ebae-9c63-b098-f8cc49e321f0"
}
DashScope
Python
import os
import dashscope
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# For Beijing region models, replace the URL with: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{
"image": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
},
{"text": "I want to post this on social media. Help me write a caption."},
],
},
{"role": "assistant", "content": "Today I discovered a hidden-gem café", "partial": True},
]
response = dashscope.MultiModalConversation.call(
# If you have not set the environment variable, replace the next line with: api_key ="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-plus",
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])
Réponse
— the tiramisu here is pure bliss! Every bite delivers perfect harmony between coffee and cream. Pure joy! #FoodShare #Tiramisu #CoffeeTime
Hope you like this caption! Let me know if you need any changes.
curl
# ======= Important notice =======
# For Beijing region models, replace the URL with: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Remove this comment before running ===
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"},
{"text": "I want to post this on social media. Help me write a caption."}]
},
{"role": "assistant",
"content": "Today I discovered a hidden-gem café",
"partial": true
}
]
}
}'
Réponse
{
"output": {
"choices": [
{
"message": {
"content": [
{
"text": "— the tiramisu here is pure bliss! Every bite delivers perfect harmony between coffee and cream. Pure joy! #FoodShare #Tiramisu #CoffeeTime\n\nHope you like this caption! Let me know if you need any changes."
}
],
"role": "assistant"
},
"finish_reason": "stop"
}
]
},
"usage": {
"total_tokens": 339,
"input_tokens_details": {
"image_tokens": 258,
"text_tokens": 24
},
"output_tokens": 57,
"input_tokens": 282,
"output_tokens_details": {
"text_tokens": 57
},
"image_tokens": 258
},
"request_id": "c741328c-23dc-9286-bfa7-626a4092ca09"
}
Continuer à partir d'une sortie incomplète
Si la valeur de max_tokens est trop faible, le LLM peut renvoyer un contenu incomplet. Utilisez le mode partiel pour continuer à partir de ce point et garantir une sortie sémantiquement complète.
OpenAI compatible
Python
import os
from openai import OpenAI
client = OpenAI(
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# If not set in environment, replace here with your API key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
def chat_completion(messages,max_tokens=None):
response = client.chat.completions.create(
model="qwen-plus",
messages=messages,
max_tokens=max_tokens
)
print(f"### Reason generation stopped: {response.choices[0].finish_reason}")
return response.choices[0].message.content
# Example usage
messages = [{"role": "user", "content": "Write a short sci-fi story"}]
# First call with max_tokens set to 40
first_content = chat_completion(messages, max_tokens=40)
print(first_content)
# Add the first response as an assistant message and set partial=True
messages.append({"role": "assistant", "content": first_content, "partial": True})
# Second call
second_content = chat_completion(messages)
print("### Complete content:")
print(first_content+second_content)
Réponse
length : la limite max_tokens a été atteinte. stop : le modèle a terminé naturellement ou a rencontré un mot d'arrêt du paramètre stop.
### Reason generation stopped: length
**"The End of Memory"**
In the distant future, Earth is no longer fit for human life. The atmosphere is polluted, oceans are dry, and cities lie in ruins. Humans migrated to a habitable planet named "Eden," with blue skies, fresh air, and endless resources.
However, Eden is not a true paradise. It holds no human history, no past, and no memory.
...
**"If we forget who we are, are we still human?"**
— End —
Node.js
import OpenAI from "openai";
const openai = new OpenAI({
// API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// If not set in environment, replace the next line with: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
// For Beijing region use: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function chatCompletion(messages, maxTokens = null) {
const completion = await openai.chat.completions.create({
model: "qwen-plus",
messages: messages,
max_tokens: maxTokens
});
console.log(`### Reason generation stopped: ${completion.choices[0].finish_reason}`);
return completion.choices[0].message.content;
}
// Example usage
async function main() {
let messages = [{"role": "user", "content": "Write a short sci-fi story"}];
try {
// First call with max_tokens set to 40
const firstContent = await chatCompletion(messages, 40);
console.log(firstContent);
// Add the first response as an assistant message and set partial=true
messages.push({"role": "assistant", "content": firstContent, "partial": true});
// Second call
const secondContent = await chatCompletion(messages);
console.log("### Complete content:");
console.log(firstContent + secondContent);
} catch (error) {
console.error('Execution error:', error);
}
}
// Run the example
main();
DashScope
Python
Exemple de code
import os
import dashscope
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
# For Beijing region models, replace the URL with: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
def chat_completion(messages, max_tokens=None):
response = dashscope.Generation.call(
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# If not set in environment, replace the next line with: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen-plus',
messages=messages,
max_tokens=max_tokens,
result_format='message',
)
print(f"### Reason generation stopped: {response.output.choices[0].finish_reason}")
return response.output.choices[0].message.content
# Example usage
messages = [{"role": "user", "content": "Write a short sci-fi story"}]
# First call with max_tokens set to 40
first_content = chat_completion(messages, max_tokens=40)
print(first_content)
# Add the first response as an assistant message and set partial=True
messages.append({"role": "assistant", "content": first_content, "partial": True})
# Second call
second_content = chat_completion(messages)
print("### Complete content:")
print(first_content + second_content)
Réponse
### Reason generation stopped: length
Title: **"Origami Time"**
---
In 2179, humanity finally mastered time travel. But this technology did not rely on massive machines or complex energy fields. It relied on paper.
A single sheet of paper.
It was called "Origami Time," made from an unknown alien material. Scientists could not explain how it worked. They only knew that drawing a scene on the paper and folding it in a specific way opened a door to the past or future.
...
"You are not the key to time. You are just a reminder that our future is always in our hands."
Then I tore it into pieces.
---
**(End)**
Facturation
La facturation couvre les tokens d'entrée et de sortie. Le préfixe est inclus dans les tokens d'entrée.
Codes d'erreur
Si l'appel au modèle échoue et renvoie un message d'erreur, consultez la rubrique Codes d'erreur pour résoudre le problème.