Skip to main content
文本生成

概述

文本生成模型根据自然语言提示词(Prompt)生成连贯、上下文相关的文本,支持聊天机器人、内容创作、文档摘要和代码生成等场景。

文本生成模型所需的输入可以是简单的关键词、一句话概述或更复杂的多步骤指令和上下文信息。常见应用场景:
  • 内容创作:生成新闻文章、商品介绍及短视频脚本。
  • 客户服务:构建全天候自动应答的聊天机器人,解答常见问题。
  • 文本翻译:支持多语言之间的快速精准翻译。
  • 摘要提炼:从长文、报告及邮件中提取关键信息。
  • 法律文档编写:生成合同模板、法律意见书的基础框架。
更多示例可以参考文本生成样例

核心概念

文本生成模型的输入为提示词(Prompt),它由一个或多个消息(Message)对象构成。每条消息由角色(Role)和内容(Content)组成,具体为:
  • 系统消息(System Message):设定模型的角色定位、行为准则或特定任务指令。若不指定,默认为"You are a helpful assistant"。
  • 用户消息(User Message):用户向模型提出的问题、指令或输入内容。
  • 助手消息(Assistant Message):模型的回复内容。在多轮对话中,传入历史助手消息以维持上下文。
调用模型时,需构造一个由上述消息对象构成的数组messages。一个典型的请求通常由一条定义行为准则的 system 消息和一条用户提出的 user 消息组成。
system 消息是可选的,但建议设定。明确模型的角色定位和行为约束,有助于获得更一致、可预测的输出。
[
    {"role": "system", "content": "你是一个有帮助的助手,需要提供精准、高效且富有洞察力的回应,随时准备协助用户处理各种任务与问题。"},
    {"role": "user", "content": "你是谁?"}
]
输出的响应对象中会包含模型回复的assistant消息。
{
    "role": "assistant",
    "content": "你好!我是Qwen,是阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我可以帮助你回答问题、创作文字、进行逻辑推理、编程等。我能够理解并生成多种语言,支持多轮对话和复杂任务处理。如果你有任何需要帮助的地方,尽管告诉我!"
}

快速开始

API 使用前提:已获取与配置 API Key并完成配置API Key到环境变量。如果通过SDK调用,需要安装 OpenAI 或 DashScope SDK。示例接入地址中的 {WorkspaceId} 为业务空间 ID,获取方式请参见选择地域、服务部署范围和接入域名
  • OpenAI兼容-Chat Completions API
  • OpenAI兼容-Responses API
  • DashScope
  • Python
  • Java
  • Node.js
  • Go
  • C#(HTTP)
  • PHP(HTTP)
  • curl
import os
from openai import OpenAI

try:
    client = OpenAI(
        # 各地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
        # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # 以下为华北2(北京)地域的URL,调用时请将{WorkspaceId}替换为真实的业务空间ID,各地域的URL不同。
        base_url="https://{WorkspaceId}.cn-beijing.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": "你是谁?"},
        ],
    )
    print(completion.choices[0].message.content)
    # 如需查看完整响应,请取消下列注释
    # print(completion.model_dump_json())
except Exception as e:
    print(f"错误信息:{e}")
    print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")

返回结果

我是千问,阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我可以帮助你回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!

图像、视频数据处理

多模态模型支持处理图像、视频等非文本数据,可用于视觉问答、事件检测等任务。其调用方式与纯文本模型主要有以下不同:
  • 用户消息(user message)的构造方式:多模态模型的用户消息不仅包含文本,还包含图片、音频等多模态信息。
  • DashScope SDK接口:使用 DashScope Python SDK时,需调用 MultiModalConversation 接口;使用DashScope Java SDK时,需调用 MultiModalConversation 类。
图片、视频文件限制请参见 图像与视频理解
  • OpenAI兼容-Chat Completions API
  • DashScope
  • Python
  • Node.js
  • curl
from openai import OpenAI
import os

client = OpenAI(
    # 各地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
    # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的URL,调用时请将{WorkspaceId}替换为真实的业务空间ID,各地域的URL不同。
    base_url="https://{WorkspaceId}.cn-beijing.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": "请问图片展现了有哪些商品?"},
        ],
    }
]
completion = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=messages,
)
print(completion.choices[0].message.content)

异步调用模型

调用异步接口,可有效提升高并发请求的处理效率。
  • OpenAI兼容-Chat Completions API
  • DashScope
Python
import os
import asyncio
from openai import AsyncOpenAI
import platform

# 创建异步客户端实例
client = AsyncOpenAI(
    # 各地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的URL,调用时请将{WorkspaceId}替换为真实的业务空间ID,各地域的URL不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"
)

# 定义异步任务列表
async def task(question):
    print(f"发送问题: {question}")
    response = await client.chat.completions.create(
        messages=[
            {"role": "system", "content": "You are a helpful assistant." },
            {"role": "user", "content": question}
        ],
        model="qwen-plus",  # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
    )
    print(f"模型回复: {response.choices[0].message.content}")

# 主异步函数
async def main():
    questions = ["你是谁?", "你会什么?", "天气怎么样?"]
    tasks = [task(q) for q in questions]
    await asyncio.gather(*tasks)

if __name__ == '__main__':
    # 设置事件循环策略
    if platform.system() == 'Windows':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    # 运行主协程
    asyncio.run(main(), debug=False)

返回结果
由于调用是异步的,响应的返回顺序可能与示例不同。
发送问题: 你是谁?
发送问题: 你会什么?
发送问题: 天气怎么样?
模型回复: 你好!我是千问,阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我可以帮助你回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!
模型回复: 您好!我目前无法实时获取天气信息。您可以告诉我您所在的城市或地区,我会尽力为您提供一些通用的天气建议或信息。或者您也可以使用天气应用查看实时天气情况。
模型回复: 我会很多技能,比如:

1. **回答问题**:无论是学术问题、生活常识还是专业知识,我都可以尝试帮你解答。
2. **创作文字**:我可以写故事、公文、邮件、剧本等各类文本。
3. **逻辑推理**:我可以帮助你解决一些逻辑推理问题,比如数学题、谜语等。
4. **编程**:我可以提供编程帮助,包括代码编写、调试和优化。
5. **多语言支持**:我支持多种语言,包括但不限于中文、英文、法语、西班牙语等。
6. **观点表达**:我可以为你提供一些观点和建议,帮助你做出决策。
7. **玩游戏**:我们可以一起玩文字游戏,比如猜谜语、成语接龙等。

如果你有任何具体的需求或问题,欢迎告诉我,我会尽力帮助你!

应用于生产环境

构建高质量的上下文

向大模型直接输入大量原始数据,会因上下文容量的限制导致成本增加与效果下降。上下文工程(Context Engineering)通过动态加载精准知识,显著提升生成质量与效率。核心技术包括:
  • 提示词工程(Prompt Engineering):通过设计和优化文本指令(Prompt),可以更精确地引导模型,使其输出更符合预期的结果。若想了解更多,可参考文生文Prompt指南、阿里云百炼 提示词模板页面。
  • 检索增强生成(RAG):适用于需要模型依据外部知识库(例如产品文档或技术手册)来回答问题的场景。
  • 工具调用(Tool):允许模型获取实时信息(如查询天气、路况)或完成特定操作(如调用API、发送邮件)。
  • 记忆机制(Memory):为模型建立长短期记忆,使其能够理解连续对话的历史信息。
若想系统了解,可参考阿里云大模型高级工程师ACP认证课程

控制回复多样性

temperaturetop_p用于控制生成文本的多样性。数值越高,内容越多样,数值越低,内容越确定。为准确评估参数效果,建议每次只调整一个。
  • temperature:范围 [0, 2)。侧重调整随机性。
  • top_p:范围 (0, 1]。通过概率阈值筛选回复。
以下示例将展示不同参数设置对生成内容的影响。输入提示词为:“写一个三句话的短故事,主角是一只猫和一束阳光。”
  • 高多样性(示例temperature=0.9):适用于需要创意、想象力和新颖表达的场景,如创意写作、头脑风暴或市场营销文案。
阳光斜斜地切进窗台,橘猫蹑手蹑脚走近那块发光的方砖,绒毛瞬间被染成熔化的蜜糖。
它伸出前爪轻拍光斑,却像踩进温热的池水般陷了进去,整片阳光顺着肉垫汩汩漫上脊背。
午后忽然变得很重——猫儿蜷在流动的金砂里,听见时光在呼噜声中轻轻融化。
  • 高确定性(示例temperature=0.1):适用于要求内容准确、严谨和可预测的场景,如事实问答、代码生成或法律文本。
午后,一只老猫蜷在窗台,数着光斑打盹。
阳光轻轻跃过它斑驳的脊背,像在翻阅一本旧相册。
尘埃浮起又落下,仿佛时光低语:你曾年轻,我也炽热。
temperature
  • temperature 越高,Token 概率分布变得更平坦(即高概率 Token 的概率降低,低概率 Token 的概率上升),使得模型在选择下一个 Token 时更加随机。
  • temperature 越低,Token 概率分布变得更陡峭(即高概率 Token 被选取的概率更高,低概率 Token 的概率更低),使得模型更倾向于选择高概率的少数 Token。
top_ptop_p 采样是指从最高概率(最核心)的 Token 集合中进行采样。它将所有可能的下一个 Token 按概率从高到低排序,然后从概率最高的 Token 开始累加概率,直至概率总和达到阈值(例如80%,即 top_p=0.8),最后从这些概率最高、概率总和达到阈值的 Token 中随机选择一个用于输出。
  • top_p 越高,考虑的 Token 越多,因此生成的文本更多样。
  • top_p 越低,考虑的 Token 越少,因此生成的文本更集中和确定。
# 不同场景的推荐参数配置
SCENARIO_CONFIGS = {
    # 创造性写作
    "creative_writing": {
        "temperature": 0.9,
        "top_p": 0.95
    },
    # 代码生成
    "code_generation": {
        "temperature": 0.2,
        "top_p": 0.8
    },
    # 事实性问答
    "factual_qa": {
        "temperature": 0.1,
        "top_p": 0.7
    },
    # 翻译
    "translation": {
        "temperature": 0.3,
        "top_p": 0.8
    }
}

# OpenAI使用示例
# completion = client.chat.completions.create(
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "写一首关于月亮的诗"}],
#     **SCENARIO_CONFIGS["creative_writing"]
# )
# DashScope使用示例
# response = Generation.call(
#     # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key = "sk-xxx",
#     api_key=os.getenv("DASHSCOPE_API_KEY"),
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "写一个判断输入n是否是质数的python函数,不要输出非代码内容"}],
#     result_format="message",
#     **SCENARIO_CONFIGS["code_generation"]
# )

更多功能

上文介绍了基础的交互方式。针对更复杂的场景,可参考:
  • 多轮对话:适用于追问、信息采集等需要连续交流的场景。
  • 流式输出:适用于聊天机器人、实时代码生成等需要即时响应的场景,可以提升用户体验,并避免因响应时间过长导致的超时。
  • 深度思考:适用于复杂推理、策略分析等需要更高质量、更具条理的深度回答的场景。
  • 结构化输出:当需要模型按稳定的JSON格式回复,以便于程序调用或数据解析时使用。
  • 前缀续写:适用于代码补全、长文写作等需要模型接续已有文本的场景。

API 参考

模型调用的完整参数列表,请参考 OpenAI 兼容API参考DashScope API参考

常见问题

Q:为什么输入Token数比我发送的文本Token数多?

A:在处理对话时,系统会使用对话模板(Chat Template)对输入的原始文本进行包装,添加角色标识、消息边界等控制标记。这些由系统添加的标记同样会计入Token。 例如,向qwen3.8-max发送消息{"role": "user", "content": "你好"},“你好” 在分词(Tokenize)后仅对应 1 个 Token,但系统处理时,实际输入完整文本为<|im_start|>user\n你好<|im_end|>\n<|im_start|>assistant\n<think>,分词后总Token数会增加到11个。

Q:千问API为何无法分析网页链接?

A:千问API本身不具备直接访问网页链接的能力。您可以通过Function CallingMCP等功能,或结合 Python 的 Beautiful Soup 等网页抓取工具提取网页内容后传入模型。

Q:网页端千问和千问API的回复为什么不一致?

A:网页端千问在千问API的基础上做了额外的工程优化,因此可以达到解析网页、联网搜索、画图、制作 PPT等功能,这些本身并不属于大模型API的能力,可以通过联网搜索Function CallingMCP等功能优化模型的效果。

Q:如何处理模型超时的情况?

A:使用流式输出可避免超时。流式输出在生成过程中逐步返回 token,无需等待完整响应。 非流式调用的最大超时时间不少于300秒,实际时长因部署区域与选用模型存在差异。若超时未完成,服务将中断请求,但返回已生成的内容,且不再报超时错误。此时响应头将包含x-dashscope-partialresponse: true,表示返回的是超时前的部分结果。
若无法获取响应头参数(例如通过SDK调用),可通过 finish_reason 字段辅助判断,若为 null ,表示生成内容不完整(但不一定是触发了超时)。
大模型可续写不完整的内容,详情请参见:基于不完整输出进行续写
Java SDK暂不支持前缀续写功能。

Q:模型能直接生成 Word、Excel、PDF 或 PPT 格式的文件吗?

A:不能。阿里云百炼的文本生成模型仅输出纯文本内容。您需要通过代码或使用第三方库将文本转换为所需格式,或通过阿里云百炼PPT自动生成应用网页端千问等方式进行生成。
Token Plan
模型体验
模型调优
模型压缩目录节点
用量统计与性能监控
资产中心
服务支持