Em cenários como conclusão de código e continuação de texto, é possível gerar novo conteúdo a partir de um fragmento de texto existente (prefixo). O Modo Parcial garante que a saída do modelo se conecte perfeitamente ao seu prefixo, proporcionando maior precisão e controle.
Como funciona
Para usar o Modo Parcial, configure o arraymessages. Na última mensagem do array, defina o role como assistant e forneça o prefixo no campo content. Também é necessário definir o parâmetro "partial": true nessa mensagem. O formato de messages é o seguinte:
Copy
[
{
"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
}
]
Modelos suportados
-
Modelos de geração de texto
- Qwen-Max (modo sem raciocínio): séries Qwen3.7-Max, Qwen3.6-Max, Qwen3-Max, Qwen-Max
- Qwen-Plus (modo sem raciocínio): séries Qwen3.7-Plus, Qwen3.6-Plus, Qwen3.5-Plus, Qwen-Plus
- Qwen-Flash (modo sem raciocínio): séries Qwen3.7-Flash, Qwen3.6-Flash, Qwen3.5-Flash, Qwen-Flash
- Qwen-Coder: séries Qwen3-Coder, Qwen2.5-Coder
- Qwen-Turbo (modo sem raciocínio): série Qwen-Turbo
- Série open source Qwen3.6 (modo sem raciocínio)
- Série open source Qwen3.5 (modo sem raciocínio)
- Série open source Qwen3 (modo sem raciocínio)
- Série open source Qwen2.5
-
Modelos multimodais
- Qwen-VL: séries Qwen3-VL-Plus, Qwen3-VL-Flash, Qwen-VL-Max, Qwen-VL-Plus
- Série open source Qwen3-VL (modo sem raciocínio)
Primeiros passos
Pré-requisitos
Antes de começar, get an API key e set the API key as an environment variable. Se você chamar o service usando o OpenAI SDK ou DashScope SDK, será necessário install the SDK. Caso seja membro de um sub-workspace, verifique se o superadministrador já granted model access to your workspace.O DashScope Java SDK não é suportado.
Código de exemplo
A conclusão de código é o principal caso de uso do Modo Parcial. O exemplo a seguir mostra como concluir uma função Python.- OpenAI compatible
- DashScope
- Python
- Node.js
- curl
Copy
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)
Resposta
Copy
def calculate_fibonacci(n):
if n <= 1:
return n
else:
return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)
Copy
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);
Copy
# ======= 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
}
]
}'
Resposta
Copy
{
"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"
}
- Python
- curl
Copy
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)
Resposta
Copy
def calculate_fibonacci(n):
if n <= 1:
return n
else:
return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)
Copy
# ======= 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"
}
}'
Resposta
Copy
{
"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"
}
Casos de uso
Passar imagens ou vídeos
Os modelos Qwen-VL suportam o Modo Parcial com dados de imagem ou vídeo, o que é útil para cenários como descrições de produtos, publicações em redes sociais, artigos de notícias e redação criativa.- OpenAI compatible
- DashScope
- Python
- Node.js
- curl
Copy
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)
Resposta
Copy
— 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.
Copy
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();
Copy
# ======= 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
}
]
}'
Resposta
Copy
{
"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"
}
- Python
- curl
Copy
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"])
Resposta
Copy
— 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.
Copy
# ======= 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
}
]
}
}'
Resposta
Copy
{
"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"
}
Continuar a partir de uma saída incompleta
Se o valor demax_tokens for muito pequeno, o LLM poderá retornar conteúdo incompleto. Utilize o Modo Parcial para continuar a partir desse ponto e assegurar que a saída seja semanticamente completa.
- OpenAI compatible
- DashScope
- Python
- Node.js
Copy
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)
Resposta
length: O limite de max_tokens foi atingido. stop: O modelo finalizou naturalmente ou encontrou uma palavra de parada do parâmetro stop.Copy
### 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 —
Copy
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();
- Python
Código de exemplo
Copy
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)
Resposta
Copy
### 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)**