Un modelo de generación de texto genera texto a partir de prompts en lenguaje natural para aplicaciones como chatbots, creación de contenido, resumen de documentos y generación de código.
La entrada puede variar desde una sola palabra clave hasta indicaciones complejas de múltiples pasos con contexto. Los casos de uso comunes incluyen:
La respuesta contiene la réplica del modelo en un mensaje de
Respuesta de ejemplo
- Creación de contenido: Genere artículos de noticias, descripciones de productos y guiones para videos cortos.
- Atención al cliente: Cree chatbots automatizados 24/7 para responder preguntas frecuentes.
- Traducción de textos: Traduce texto entre múltiples idiomas.
- Resumen: Resume artículos largos, informes y correos electrónicos.
- Redacción de documentos legales: Redacta plantillas de contratos y dictámenes legales.
Conceptos clave
La entrada a un modelo de generación de texto es una indicación (prompt), que consiste en uno o más objetos de mensaje, cada uno conteniendo un rol y contenido:- Mensaje del sistema: Establece la personalidad del modelo, las pautas de comportamiento o instrucciones específicas de la tarea. El valor predeterminado es "You are a helpful assistant".
- Mensaje de usuario: La pregunta, instrucción o entrada del usuario al modelo.
- Mensaje del asistente: La respuesta del modelo. En una conversación de múltiples turnos, pase los mensajes históricos del asistente para mantener el contexto.
messages. Una solicitud típica consiste en un mensaje system que define las pautas de comportamiento y un mensaje user con la entrada del usuario.
El mensaje system es opcional pero recomendado. Definir el rol del modelo y sus restricciones de comportamiento produce resultados más consistentes y predecibles.
Copy
[
{"role": "system", "content": "You are a helpful assistant who provides precise, efficient, and insightful responses, ready to assist users with various tasks and questions."},
{"role": "user", "content": "Who are you?"}
]
assistant.
Copy
{
"role": "assistant",
"content": "Hello! I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you with tasks like answering questions, creating text, logical reasoning, and coding. I understand and generate multiple languages, and can handle multi-turn conversations and complex instructions. If there is anything you need help with, just let me know!"
}
Inicio rápido
Requisitos previos: Obtener una clave de API y Configurar la clave de API como variable de entorno. Si utiliza un SDK, también debe instalar el SDK de OpenAI o DashScope. El{WorkspaceId} en las URL base de ejemplo es su ID de espacio de trabajo. Para saber cómo obtenerlo, consulte Regiones y dominios de acceso.
- API Chat Completions compatible con OpenAI
- API de Responses compatible con OpenAI
- DashScope
- Python
- Java
- Node.js
- Go
- C# (HTTP)
- PHP (HTTP)
- curl
Copy
import os
from openai import OpenAI
try:
client = OpenAI(
# API keys vary by region. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
# If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.8-max",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who are you?"},
],
)
print(completion.choices[0].message.content)
# To view the full response, uncomment the following line.
# print(completion.model_dump_json())
except Exception as e:
print(f"Error message: {e}")
print("For more information, see the documentation: https://www.alibabacloud.com/help/model-studio/error-code")
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
// We recommend using OpenAI Java SDK v3.5.0 or later.
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
public class Main {
public static void main(String[] args) {
try {
OpenAIClient client = OpenAIOkHttpClient.builder()
// API keys vary by region. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
// If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
.baseUrl("https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1")
.build();
// Create ChatCompletion parameters.
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("qwen3.8-max")
.addSystemMessage("You are a helpful assistant.")
.addUserMessage("Who are you?")
.build();
// Send the request and receive the response.
ChatCompletion chatCompletion = client.chat().completions().create(params);
String content = chatCompletion.choices().get(0).message().content().orElse("No valid content returned");
System.out.println(content);
} catch (Exception e) {
System.err.println("Error message: " + e.getMessage());
System.out.println("For more information, see the documentation: https://www.alibabacloud.com/help/model-studio/error-code");
}
}
}
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
// This code requires Node.js v18+ and must be run in an ES Module environment.
import OpenAI from "openai";
const openai = new OpenAI(
{
// API keys vary by region. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
// If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
}
);
const completion = await openai.chat.completions.create({
model: "qwen3.8-max",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Who are you?" }
],
});
console.log(completion.choices[0].message.content);
// To view the full response, uncomment the following line.
// console.log(JSON.stringify(completion, null, 4));
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
// We recommend using OpenAI Go SDK v2.4.0 or later.
package main
import (
"context"
// To view the full response, uncomment the import below and the related code at the end.
// "encoding/json"
"fmt"
"os"
"github.com/openai/openai-go/v2"
"github.com/openai/openai-go/v2/option"
)
func main() {
// If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: apiKey := "sk-xxx"
apiKey := os.Getenv("DASHSCOPE_API_KEY")
client := openai.NewClient(
option.WithAPIKey(apiKey),
// API keys vary by region. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
// Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
option.WithBaseURL("https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"),
)
chatCompletion, err := client.Chat.Completions.New(
context.TODO(), openai.ChatCompletionNewParams{
Messages: []openai.ChatCompletionMessageParamUnion{
openai.SystemMessage("You are a helpful assistant."),
openai.UserMessage("Who are you?"),
},
Model: "qwen3.8-max",
},
)
if err != nil {
fmt.Fprintf(os.Stderr, "Request failed: %v\n", err)
// For more information, see the documentation: https://www.alibabacloud.com/help/model-studio/error-code
os.Exit(1)
}
if len(chatCompletion.Choices) > 0 {
fmt.Println(chatCompletion.Choices[0].Message.Content)
}
// To view the full response, uncomment the following lines.
// jsonData, _ := json.MarshalIndent(chatCompletion, "", " ")
// fmt.Println(string(jsonData))
}
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: string? apiKey = "sk-xxx";
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
// Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions";
string jsonContent = @"{
""model"": ""qwen3.8-max"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a helpful assistant.""
},
{
""role"": ""user"",
""content"": ""Who are you?""
}
]
}";
// Send the request and receive the response.
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// To view the full response, uncomment the following line.
// Console.WriteLine(result);
// Parse the JSON to extract and print the content.
using JsonDocument doc = JsonDocument.Parse(result);
JsonElement root = doc.RootElement;
if (root.TryGetProperty("choices", out JsonElement choices) &&
choices.GetArrayLength() > 0)
{
JsonElement firstChoice = choices[0];
if (firstChoice.TryGetProperty("message", out JsonElement message) &&
message.TryGetProperty("content", out JsonElement content))
{
Console.WriteLine(content.GetString());
}
}
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await httpClient.PostAsync(url, content);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
// For more information, see the documentation: https://www.alibabacloud.com/help/model-studio/error-code
return $"Request failed: {response.StatusCode}";
}
}
}
}
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
<?php
// Set the request URL.
// Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
$url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions';
// API keys vary by region. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
// If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: $apiKey = "sk-xxx";
$apiKey = getenv('DASHSCOPE_API_KEY');
// Set the request headers.
$headers = [
'Authorization: Bearer '.$apiKey,
'Content-Type: application/json'
];
// Set the request body.
$data = [
"model" => "qwen3.8-max",
"messages" => [
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "Who are you?"
]
]
];
// Initialize a cURL session.
$ch = curl_init();
// Set cURL options.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Execute the cURL session.
$response = curl_exec($ch);
// Check for errors.
// For more information, see the documentation: https://www.alibabacloud.com/help/model-studio/error-code
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
// Close the cURL resource.
curl_close($ch);
// Parse and output the response content.
$dataObject = json_decode($response);
$content = $dataObject->choices[0]->message->content;
echo $content;
// To view the full response, uncomment the following line.
//echo $response;
?>
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
El 'base_url' y la clave de API son específicos de cada región. Consulte Compatible con OpenAI - Chat para las URL de endpoint y Obtener una clave de API para obtener su clave.
Copy
# Modify the endpoint URL for your region.
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": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
]
}'
Respuesta
Copy
{
"choices": [
{
"message": {
"role": "assistant",
"content": "I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 26,
"completion_tokens": 66,
"total_tokens": 92
},
"created": 1726127645,
"system_fingerprint": null,
"model": "qwen3.8-max",
"id": "chatcmpl-81951b98-28b8-9659-ab07-xxxxxx"
}
La API de Responses sucede a la API de Chat Completions. Para instrucciones de uso, ejemplos de código y guías de migración, consulte Responses compatible con OpenAI.
- Python
- Node.js
- curl
Copy
import os
from openai import OpenAI
try:
client = OpenAI(
# API Keys vary by region. Get your API Key at: https://www.alibabacloud.com/help/model-studio/get-api-key
# If you do not set the environment variable, provide your API Key directly: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# The base URL varies by region. Update it to match your service region.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
response = client.responses.create(
model="qwen3.8-max",
input="Briefly introduce what you can do."
)
print(response)
except Exception as e:
print(f"An error occurred: {e}")
print("For details, see the error code documentation: https://www.alibabacloud.com/help/model-studio/error-code")
Respuesta
Campos clave de respuesta:-
id: El ID de respuesta. -
output: Lista que contiene objetosreasoningymessage.reasoningsolo aparece cuando thinking está habilitado (habilitado de forma predeterminada para la serie Qwen3.6). -
usage: Uso de tokens.
Copy
Hello! I'm an AI assistant with knowledge current as of 2026. Here's a brief overview of what I can do:
* **Content Creation:** Write emails, articles, stories, scripts, and more.
* **Coding & Tech:** Generate, debug, and explain code across various programming languages.
* **Analysis & Summarization:** Process documents, interpret data, and extract key insights.
* **Problem Solving:** Assist with math, logic, reasoning, and strategic planning.
* **Learning & Translation:** Explain complex topics simply or translate between multiple languages.
Feel free to ask me anything or give me a task to get started!
Copy
// Node.js v18+ is required. This code must be run in an ES Module environment.
import OpenAI from "openai";
const openai = new OpenAI({
// API Keys vary by region. Get your API Key at: https://www.alibabacloud.com/help/model-studio/get-api-key
// If you do not set the environment variable, provide your API Key directly: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// The base URL varies by region. Update it to match your service region.
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});
async function main() {
try {
const response = await openai.responses.create({
model: "qwen3.8-max",
input: "Briefly introduce what you can do."
});
// Get the model response
console.log(response);
} catch (error) {
console.error("An error occurred:", error);
}
}
main();
Respuesta
Campos clave de respuesta:-
id: El ID de respuesta. -
output: Lista que contiene objetosreasoningymessage.reasoningsolo aparece cuando thinking está habilitado (habilitado de forma predeterminada para la serie Qwen3.6). -
usage: Uso de tokens.
Copy
Hello! I'm an AI assistant with knowledge current as of 2026. Here's a brief overview of what I can do:
* **Content Creation:** Write emails, articles, stories, scripts, and more.
* **Coding & Tech:** Generate, debug, and explain code across various programming languages.
* **Analysis & Summarization:** Process documents, interpret data, and extract key insights.
* **Problem Solving:** Assist with math, logic, reasoning, and strategic planning.
* **Learning & Translation:** Explain complex topics simply or translate between multiple languages.
Feel free to ask me anything or give me a task to get started!
Copy
# The endpoint URL varies by region. Update it to match your service region.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"input": "Briefly introduce what you can do.",
"enable_thinking": true
}'
Respuesta
Copy
{
"created_at": 1772249518,
"id": "7ad48c6b-3cc4-904f-9284-5f419c6c5xxx",
"model": "qwen3.8-max",
"object": "response",
"output": [
{
"id": "msg_94805179-2801-45da-ac1c-a87e8ea20xxx",
"summary": [
{
"text": "The user is asking for a brief introduction of my capabilities. I will start by recalling the features listed in the system message, ensuring I cover the main points concisely.\n\nFirst, I should mention the enhanced language foundation and architectural efficiency. Next, the upgraded logical reasoning and mathematical capabilities. Visual analysis, including charts and formulas, is a key point. Autonomous agent planning and code generation are also important. Other features include human alignment optimization for better interaction, long-context handling up to 256K tokens, and multilingual support with OCR.\n\nSince the user asked for a \"brief\" overview, I need to be concise. I will group some points together and summarize each capability in a sentence or two, avoiding technical jargon where possible. I'll check the examples in the system message for a suitable structure.\n\nTo make it practical, I'll highlight how these features apply to real tasks, such as handling long documents, solving math problems, analyzing images, and writing code.\n\nI will structure the response as a list of key capabilities with short explanations, starting with a greeting and ending with an offer to help with specific tasks.\n\nMy introduction will identify me as the requested model, qwen3.7-max.\n\nI will not mention the knowledge cutoff unless it's relevant. Since the current date is 2026 and my knowledge is current as of 2026, this is not an issue.\n\nMy draft will be a concise, friendly, and inviting response that highlights each capability.\n",
"type": "summary_text"
}
],
"type": "reasoning"
},
{
"content": [
{
"annotations": [],
"text": "I'm **Qwen3.6-plus**, a large language model designed to assist with a wide range of tasks. Here's what I can do: \n\n- **Understand & Generate Text**: Handle complex instructions, creative writing, and multi-step tasks with improved accuracy. \n- **Solve Problems**: Tackle advanced math, logic puzzles, and scientific reasoning with step-by-step clarity. \n- **Analyze Visuals**: Interpret charts, diagrams, formulas, and even extract text from images (OCR). \n- **Plan & Execute**: Break down goals into actionable steps, run code, or interact with tools autonomously. \n- **Code & Debug**: Write, explain, or fix code in multiple programming languages. \n- **Long-Context Mastery**: Process documents, books, or videos up to **256K tokens** without losing key details. \n- **Multilingual Support**: Communicate fluently in **100+ languages**, including low-resource ones. \n\nNeed help with something specific? Just ask!",
"type": "output_text"
}
],
"id": "msg_35be06c6-ca4d-4f2b-9677-7897e488dxxx",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": false,
"status": "completed",
"tool_choice": "auto",
"tools": [],
"usage": {
"input_tokens": 54,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 662,
"output_tokens_details": {
"reasoning_tokens": 447
},
"total_tokens": 716,
"x_details": [
{
"input_tokens": 54,
"output_tokens": 662,
"output_tokens_details": {
"reasoning_tokens": 447
},
"total_tokens": 716,
"x_billing_type": "response_api"
}
]
}
}
qwen3.7-max, qwen3.7-max-2026-05-20 solo admiten la API de texto. La serie qwen3.8-max, qwen3.8-flash y qwen3.7-max-2026-06-08 admiten la API multimodal. Las series Qwen3.6 y Qwen3.5 requieren la API multimodal de DashScope. Ejecutar los siguientes ejemplos con estos modelos devuelve un
url error. Para la llamada correcta a la API multimodal, consulte Procesamiento de datos de imagen y video.- Python
- Java
- Node.js (HTTP)
- Go (HTTP)
- C# (HTTP)
- PHP (HTTP)
- curl
- CLI de dashscope
Copy
import os
import dashscope
from dashscope.v2 import DashScopeError
# La siguiente configuración corresponde a la región de Singapur. Sustituya {WorkspaceId} por el ID real de su espacio de trabajo. El valor de region varía según la región.
client = dashscope.Client(
# Las API Key varían según la región. Para obtener una API Key, consulte: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si no se ha configurado la variable de entorno, sustituya la siguiente línea por su API Key de Model Studio: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who are you?"},
]
try:
response = client.chat.completions.create(
# qwen3.7-max y qwen3.7-max-2026-05-20 solo admiten la API de texto; qwen3.8-max, qwen3.7-max-2026-06-08 y las series Qwen3.6 y Qwen3.5 requieren la API multimodal. Sustituir el modelo directamente provocará un error.
model="qwen-plus",
messages=messages,
)
print(response.choices[0].message.content)
# Para ver la respuesta completa, quite el comentario de la siguiente línea.
# print(response.model_dump_json(indent=2))
except DashScopeError as e:
print(f"Código de estado HTTP: {e.status_code}")
print(f"Código de error: {e.code}")
print(f"Mensaje de error: {e.message}")
print("Consulte: https://www.alibabacloud.com/help/model-studio/error-code")
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
// The following URL is for the Singapore region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
Message systemMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.")
.build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Who are you?")
.build();
GenerationParam param = GenerationParam.builder()
// API keys vary by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
// If you have not set the environment variable, replace the following line with your Model Studio API key: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// qwen3.7-max, qwen3.7-max-2026-05-20 only support the text API. qwen3.8-max and qwen3.7-max-2026-06-08 support the multimodal API. Qwen3.6 and Qwen3.5 series require the multimodal API. Directly replacing the model will cause an error.
.model("qwen-plus")
.messages(Arrays.asList(systemMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
// To view the full response, uncomment the following line.
// System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("Error message: "+e.getMessage());
System.out.println("For more information, see: https://www.alibabacloud.com/help/model-studio/error-code");
}
}
}
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
// Requires Node.js v18+
// If you have not set the environment variable, replace the following line with your Model Studio API key: const apiKey = "sk-xxx";
const apiKey = process.env.DASHSCOPE_API_KEY;
const data = {
// qwen3.7-max, qwen3.7-max-2026-05-20 only support the text API. qwen3.8-max and qwen3.7-max-2026-06-08 support the multimodal API. Qwen3.6 and Qwen3.5 series require the multimodal API. Directly replacing the model will cause an error.
model: "qwen-plus",
input: {
messages: [
{
role: "system",
content: "You are a helpful assistant."
},
{
role: "user",
content: "Who are you?"
}
]
},
parameters: {
result_format: "message"
}
};
async function callApi() {
try {
// The following URL is for the Singapore region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
const response = await fetch('https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
const result = await response.json();
console.log(result.output.choices[0].message.content);
// To view the full response, uncomment the following line.
// console.log(JSON.stringify(result));
} catch (error) {
// For more information, see: https://www.alibabacloud.com/help/model-studio/error-code
console.error('Request failed:', error.message);
}
}
callApi();
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
func main() {
requestBody := map[string]interface{}{
// qwen3.7-max, qwen3.7-max-2026-05-20 only support the text API. qwen3.8-max and qwen3.7-max-2026-06-08 support the multimodal API. Qwen3.6 and Qwen3.5 series require the multimodal API. Directly replacing the model will cause an error.
"model": "qwen-plus",
"input": map[string]interface{}{
"messages": []map[string]string{
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": "Who are you?",
},
},
},
"parameters": map[string]string{
"result_format": "message",
},
}
// Serialize to JSON.
jsonData, _ := json.Marshal(requestBody)
// Create an HTTP client and request.
client := &http.Client{}
// The following URL is for the Singapore region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
req, _ := http.NewRequest("POST", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation", bytes.NewBuffer(jsonData))
// Set request headers.
apiKey := os.Getenv("DASHSCOPE_API_KEY")
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
// Send the request.
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Read the response body.
bodyText, _ := io.ReadAll(resp.Body)
// Parse the JSON and print the content.
var result map[string]interface{}
json.Unmarshal(bodyText, &result)
content := result["output"].(map[string]interface{})["choices"].([]interface{})[0].(map[string]interface{})["message"].(map[string]interface{})["content"].(string)
fmt.Println(content)
// To view the full response, uncomment the following line.
// fmt.Printf("%s\n", bodyText)
}
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Copy
using System.Net.Http.Headers;
using System.Text;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// API keys vary by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
// If you have not set the environment variable, replace the following line with your Model Studio API key: string? apiKey = "sk-xxx";
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
// Set the request URL and content.
// The following URL is for the Singapore region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// qwen3.7-max, qwen3.7-max-2026-05-20 only support the text API. qwen3.8-max and qwen3.7-max-2026-06-08 support the multimodal API. Qwen3.6 and Qwen3.5 series require the multimodal API. Directly replacing the model will cause an error.
string jsonContent = @"{
""model"": ""qwen-plus"",
""input"": {
""messages"": [
{
""role"": ""system"",
""content"": ""You are a helpful assistant.""
},
{
""role"": ""user"",
""content"": ""Who are you?""
}
]
},
""parameters"": {
""result_format"": ""message""
}
}";
// Send the request and get the response.
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
var jsonResult = System.Text.Json.JsonDocument.Parse(result);
var content = jsonResult.RootElement.GetProperty("output").GetProperty("choices")[0].GetProperty("message").GetProperty("content").GetString();
Console.WriteLine(content);
// To view the full response, uncomment the following line.
// Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string? apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// Set request headers.
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Send the request and get the response.
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// Handle the response.
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"Request failed: {response.StatusCode}";
}
}
}
}
Respuesta
Copy
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!"
}
}
]
},
"usage": {
"total_tokens": 92,
"output_tokens": 66,
"input_tokens": 26
},
"request_id": "09dceb20-ae2e-999b-85f9-xxxxxx"
}
Copy
<?php
// The following URL is for the Singapore region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
$url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
$apiKey = getenv('DASHSCOPE_API_KEY');
$data = [
// qwen3.7-max, qwen3.7-max-2026-05-20 only support the text API. qwen3.8-max and qwen3.7-max-2026-06-08 support the multimodal API. Qwen3.6 and Qwen3.5 series require the multimodal API. Directly replacing the model will cause an error.
"model" => "qwen-plus",
"input" => [
"messages" => [
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "Who are you?"
]
]
],
"parameters" => [
"result_format" => "message"
]
];
$jsonData = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $apiKey",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
$jsonResult = json_decode($response, true);
$content = $jsonResult['output']['choices'][0]['message']['content'];
echo $content;
// To view the full response, uncomment the following line.
// echo "Model response: " . $response;
} else {
echo "Request failed: " . $httpCode . " - " . $response;
}
curl_close($ch);
?>
Respuesta
Copy
I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
La URL base y la clave de API varían según la región. Para más detalles, consulte DashScope y Obtener una clave de API.
Copy
# The following URL is for the Singapore region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
]
},
"parameters": {
"result_format": "message"
}
}'
Respuesta
Copy
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!"
}
}
]
},
"usage": {
"total_tokens": 92,
"output_tokens": 66,
"input_tokens": 26
},
"request_id": "09dceb20-ae2e-999b-85f9-xxxxxx"
}
Llamada a través de la línea de comandos dashscope.Para la tabla completa de regiones, consulte Resumen de URL base.
Copy
export DASHSCOPE_API_KEY="your-api-key"
# Replace {WorkspaceId} with your workspace ID, ap-southeast-1 with your region (e.g., us-east-1, eu-central-1)
export DASHSCOPE_HTTP_BASE_URL="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
dashscope generation create -m qwen-plus -p "Hello"
El asistente interactivo SDK Expert puede realizar las mismas tareas de desarrollo y solución de problemas mediante lenguaje natural; consulte DashScope SDK Expert.
Procesamiento de datos de imagen y video
Los modelos multimodales procesan datos no textuales (imágenes, videos) para tareas como respuesta a preguntas visuales y detección de eventos. Se diferencian de los modelos solo de texto en dos aspectos:- Construcción de mensajes de usuario: Los mensajes de usuario multimodales incluyen texto y datos no textuales, como imágenes y audio.
- Interfaces del SDK de DashScope: Utilice la interfaz
client.multimodal.chat.createpara el SDK de Python de DashScope 2.0 y la claseMultiModalConversationpara el SDK de Java de DashScope.
Para limitaciones sobre archivos de imagen y video, consulte Comprensión de imágenes y videos.
- Chat completions compatible con OpenAI
- DashScope
- Python
- Node.js
- curl
Copy
from openai import OpenAI
import os
client = OpenAI(
# API keys vary by region. To get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# If the environment variable is not set, provide your Model Studio API key directly, for example: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
# This is the endpoint for the Singapore region. Replace {WorkspaceId} with your WorkspaceId. Endpoints vary by region.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
messages = [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
},
},
{"type": "text", "text": "What products are shown in the image?"},
],
}
]
completion = client.chat.completions.create(
model="qwen3.6-plus",
messages=messages,
)
print(completion.choices[0].message.content)
Copy
import OpenAI from "openai";
const openai = new OpenAI(
{
// API keys vary by region. To get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
// If the environment variable is not set, provide your Model Studio API key directly, for example: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// This is the endpoint for the Singapore region. Replace {WorkspaceId} with your WorkspaceId. Endpoints vary by region.
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
}
);
let messages = [
{
role: "user",
content: [
{ type: "image_url", image_url: { "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png" } },
{ type: "text", text: "What products are shown in the image?" },
]
}]
async function main() {
let response = await openai.chat.completions.create({
model: "qwen3.6-plus",
messages: messages
});
console.log(response.choices[0].message.content);
}
main()
El 'base_url' y la clave de API son específicos de cada región. Consulte Compatible con OpenAI - Chat para las URL de endpoint y Obtener una clave de API para obtener su clave.
Copy
# This is the endpoint for the Singapore region. Replace {WorkspaceId} with your WorkspaceId. Endpoints vary by region.
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.6-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
}
},
{
"type": "text",
"text": "What products are shown in the image?"
}
]
}
]
}'
- Python
- Java
- curl
Copy
import os
import dashscope
# La siguiente configuración corresponde a la región de Singapur. Sustituya {WorkspaceId} por el ID real de su espacio de trabajo. El valor de region varía según la región.
client = dashscope.Client(
# Las API Key varían según la región. Para obtener una API Key, consulte: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si no se ha configurado la variable de entorno, sustituya la siguiente línea por su API Key de Model Studio: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
messages = [
{
"role": "user",
"content": [
{
"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
},
{"text": "What products are shown in the image?"},
],
}
]
response = client.multimodal.chat.create(
model='qwen3.6-plus', # Puede sustituirla por otro modelo multimodal y modificar los messages en consecuencia.
messages=messages
)
print(response.output_text)
Copy
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// This is the endpoint for the Singapore region. Replace {WorkspaceId} with your WorkspaceId. Endpoints vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
private static final String modelName = "qwen3.6-plus"; // You can replace this with another multimodal model and modify the messages accordingly.
public static void MultiRoundConversationCall() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"),
Collections.singletonMap("text", "What products are shown in the image?"))).build();
List<MultiModalMessage> messages = new ArrayList<>();
messages.add(userMessage);
MultiModalConversationParam param = MultiModalConversationParam.builder()
// API keys vary by region. To get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
// If the environment variable is not set, provide your Model Studio API key directly, for example: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(modelName)
.messages(messages)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
MultiRoundConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
La URL base y la clave de API varían según la región. Para más detalles, consulte DashScope y Obtener una clave de API.
Copy
# This is the endpoint for the Singapore region. Replace {WorkspaceId} with your WorkspaceId. Endpoints vary by region.
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.6-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"},
{"text": "What products are shown in the image?"}
]
}
]
}
}'
Llamadas asíncronas
Las llamadas asíncronas mejoran el rendimiento para cargas de trabajo de alta concurrencia.- API de chat completions compatible con OpenAI
- DashScope
Python
Copy
import os
import asyncio
from openai import AsyncOpenAI
import platform
# Create an asynchronous client instance.
client = AsyncOpenAI(
# API keys vary by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
# If you have not set the environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# This is the URL for the Singapore region. Replace {WorkspaceId} with your workspace ID.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
# Define an asynchronous task.
async def task(question):
print(f"Sending question: {question}")
response = await client.chat.completions.create(
messages=[
{"role": "user", "content": question}
],
model="qwen-plus", # For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
)
print(f"Model response: {response.choices[0].message.content}")
# Main asynchronous function.
async def main():
questions = ["Who are you?", "What can you do?", "What's the weather like?"]
tasks = [task(q) for q in questions]
await asyncio.gather(*tasks)
if __name__ == '__main__':
# Set the event loop policy.
if platform.system() == 'Windows':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
# Run the main coroutine.
asyncio.run(main(), debug=False)
La generación de texto asíncrona con el SDK de DashScope solo es compatible con Python.
Copy
# Requiere DashScope Python SDK 2.0.1 o posterior.
import asyncio
import platform
import os
import dashscope
# La siguiente configuración corresponde a la región de Singapur. Sustituya {WorkspaceId} por el ID real de su espacio de trabajo. El valor de region varía según la región.
aclient = dashscope.AsyncClient(
# Las API Key varían según la región. Para obtener una API Key, consulte: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si no se ha configurado la variable de entorno, sustituya la siguiente línea por su API Key de Model Studio: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="ap-southeast-1",
)
# Define una tarea asíncrona.
async def task(question):
print(f"Sending question: {question}")
response = await aclient.chat.completions.create(
model="qwen-plus", # Para ver la lista de modelos, consulte: https://www.alibabacloud.com/help/model-studio/models
messages=[{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": question}],
)
print(f"Model response: {response.choices[0].message.content}")
# Función asíncrona principal.
async def main():
questions = ["Who are you?", "What can you do?", "What's the weather like?"]
tasks = [task(q) for q in questions]
await asyncio.gather(*tasks)
if __name__ == '__main__':
# Establece la política del bucle de eventos.
if platform.system() == 'Windows':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
# Ejecuta la corrutina principal.
asyncio.run(main(), debug=False)
Dado que las llamadas son asíncronas, el orden de las respuestas puede diferir de este ejemplo.
Copy
Sending question: Who are you?
Sending question: What can you do?
Sending question: What's the weather like?
Model response: Hello! I'm Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, programming, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Model response: Hello! I am currently unable to access real-time weather information. You can tell me your city or region, and I will do my best to provide you with general weather advice or information. Alternatively, you can use a weather app to check the real-time weather conditions.
Model response: I have many skills, for example:
1. Answering questions: Whether it's academic questions, general knowledge, or professional topics, I can try to help you find answers.
2. Creating text: I can write various types of text, such as stories, official documents, emails, and scripts.
3. Logical reasoning: I can help you solve logical reasoning problems, such as math problems and riddles.
4. Programming: I can provide programming assistance, including code writing, debugging, and optimization.
5. Multilingual support: I support multiple languages, including but not limited to Chinese, English, French, and Spanish.
6. Expressing opinions: I can offer you some perspectives and suggestions to help you make decisions.
7. Playing games: We can play text-based games together, such as riddles or idiom solitaire.
If you have any specific needs or questions, feel free to let me know, and I will do my best to help you!
Uso en producción
Construcción de contexto de alta calidad
Alimentar al modelo con grandes cantidades de datos sin procesar aumenta los costos y puede degradar el rendimiento debido a las limitaciones de la ventana de contexto. La ingeniería de contexto —cargar dinámicamente conocimiento preciso— mejora la calidad y eficiencia de la generación. Las técnicas clave incluyen:- ingeniería de prompts: Diseñe y optimice prompts de texto para guiar al modelo hacia el resultado deseado. Para más información, consulte la página Guía de prompts para generación de texto.
- Generación Aumentada por Recuperación (RAG): Permite al modelo responder preguntas a partir de una base de conocimientos externa, como documentación de productos o manuales técnicos.
- llamada a herramientas: Recupera información en tiempo real (clima, tráfico) o realiza acciones (llamadas a API, envío de correos electrónicos) en nombre del modelo.
- memory: Proporciona memoria a largo y corto plazo para que el modelo pueda recordar el contexto a través de conversaciones de múltiples turnos.
Control de la diversidad de respuestas
Los parámetrostemperature y top_p controlan la diversidad del texto generado. Valores más altos aumentan la diversidad; valores más bajos aumentan el determinismo. Para aislar el efecto de cada parámetro, ajuste solo uno a la vez.
- temperature: Rango: [0, 2). Ajusta principalmente la aleatoriedad.
- top_p: Rango: [0, 1]. Filtra las respuestas basándose en un umbral de probabilidad.
- Alta diversidad (Ejemplo:
temperature=0.9): Ideal para escritura creativa, lluvia de ideas o textos de marketing.
Copy
Sunlight slanted across the windowsill, and the orange cat crept toward the bright patch as its fur turned the color of melted honey.
It reached out and tapped the light, then sank into it as if stepping into a warm pool, and the sunlight flowed up its back in a quiet tide.
The afternoon grew heavy—curled in drifting gold, the cat heard time melt softly inside its purr.
- Alto determinismo (Ejemplo:
temperature=0.1): Ideal para preguntas y respuestas basadas en hechos, generación de código o textos legales.
Copy
In the afternoon, an old cat curled on the windowsill and dozed while counting the spots of light.
Sunlight hopped across its mottled back, like turning the pages of an old photo album.
Dust rose and fell, as if time whispered: you were once young, and I was once fierce.
Cómo funciona
Cómo funciona
temperature:
- Una temperatura más alta aplana la distribución de probabilidad de los tokens, haciendo que los tokens menos probables sean más probables y aumentando la aleatoriedad de la salida.
- Una temperatura más baja agudiza la distribución, haciendo que los tokens de alta probabilidad sean aún más probables y reduciendo la aleatoriedad de la salida.
top_p. Los tokens se ordenan por probabilidad y se acumulan hasta alcanzar el umbral; luego, el siguiente token se muestrea aleatoriamente de este conjunto reducido.- Un valor más alto de top_p amplía el grupo de selección de tokens, produciendo un texto más diverso.
- Un valor más bajo de top_p reduce el grupo, produciendo un texto más enfocado y determinista.
Configuraciones de parámetros de ejemplo para escenarios comunes
Configuraciones de parámetros de ejemplo para escenarios comunes
Copy
# Configuraciones de parámetros recomendadas para escenarios comunes
SCENARIO_CONFIGS = {
# Escritura creativa
"creative_writing": {
"temperature": 0.9,
"top_p": 0.95
},
# Generación de código
"code_generation": {
"temperature": 0.2,
"top_p": 0.8
},
# Preguntas y respuestas fácticas
"factual_qa": {
"temperature": 0.1,
"top_p": 0.7
},
# Traducción
"translation": {
"temperature": 0.3,
"top_p": 0.8
}
}
# Ejemplo con OpenAI
# completion = client.chat.completions.create(
# model="qwen-plus",
# messages=[{"role": "user", "content": "Write a poem about the moon"}],
# **SCENARIO_CONFIGS["creative_writing"]
# )
# Ejemplo con DashScope
# client = dashscope.Client(api_key=os.getenv("DASHSCOPE_API_KEY"), workspace="{WorkspaceId}", region="ap-southeast-1")
# response = client.chat.completions.create(
# model="qwen-plus",
# messages=[{"role": "user", "content": "Write a Python function that determines whether the input n is a prime number. Output code only."}],
# **SCENARIO_CONFIGS["code_generation"]
# )
Más funciones
Para escenarios más complejos, están disponibles las siguientes funciones:- conversación de múltiples turnos: Para interacción continua, como preguntas de seguimiento o recopilación de información.
- salida en streaming: Devuelve tokens incrementalmente a medida que se generan, evitando tiempos de espera en chatbots y generación de código en tiempo real.
- pensamiento profundo: Produce respuestas de mayor calidad y más estructuradas para razonamientos complejos o análisis estratégicos.
- salida estructurada: Restringe las respuestas a un formato JSON consistente para su uso programático y el análisis de datos.
- Completado de prefijo: Continúa la generación a partir de texto existente, útil para completado de código o escritura de formato largo.
Referencia de API
Para todos los parámetros, consulte la referencia de API compatible con OpenAI y la referencia de API de DashScope.FAQ
P: ¿Por qué el recuento de tokens de entrada es mayor que el recuento de tokens del texto que envié?
R: Al procesar una conversación, el sistema utiliza una Plantilla de Chat para envolver el texto de entrada sin formato, agregando marcadores de control como identificadores de rol y límites de mensaje. Estos marcadores generados por el sistema también se cuentan como tokens. Por ejemplo, cuando envía el mensaje{"role": "user", "content": "Hi"} a qwen3.8-max, qwen3.8-max-0902, el texto "Hi" corresponde a solo 1 token después de la tokenización. Sin embargo, durante el procesamiento del sistema, el texto de entrada completo real se formatea de la siguiente manera: <|im_start|>user\nHi<|im_end|>\n<|im_start|>assistant\n<think>. Después de la tokenización, este texto completo aumenta el recuento total de tokens de entrada a 11.