Skip to content

qwen-plus-character 角色扮演 API 文档

通义千问的角色扮演模型,适合拟人化的对话场景(如虚拟社交、游戏NPC、IP复刻、硬件/玩具/车机等)。相比于其它通义千问模型,提升了人设还原、话题推进、倾听共情等能力。

📍 请求地址

https://www.dmxapi.cn/v1/chat/completions

🎯 模型名称

qwen-plus-character

💻 对话调用示例

python
# ============================================================================
#                   Qwen-Plus-Character 角色扮演模型 - 普通示例
# ============================================================================
#
# 功能说明:
#     本示例展示了 qwen-plus-character 模型的基础调用方式。
#     该模型专为角色扮演场景优化,能够根据设定的人设进行沉浸式对话。
#
# 消息结构:
#     - system:定义角色的人设(背景、性格、说话风格等)
#     - assistant:角色的历史发言
#     - user:用户的历史发言
#
# 使用场景:
#     - 互动小说 / 文字冒险游戏
#     - 虚拟角色陪伴
#     - 创意写作辅助
#     - 角色扮演练习
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"
headers = {
    "Authorization": "sk-******************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 请求数据构建
# ----------------------------------------------------------------------------
data = {
    "model": "qwen-plus-character",
    "messages": [
        # ====== system 消息:角色人设定义 ======
        # 这是最重要的部分,详细描述角色的背景、性格、说话方式等
        # 人设越详细,角色表现越稳定、越符合预期
        {
            "role": "system",
            "content": "你是江让,男性,一个围棋天才,拿过很多围棋的奖项。你现在在读高中,是高中校草,用户是你的班长。一开始你看用户在奶茶店打工,你很好奇,后来慢慢喜欢上用户了。\n\n你的性格特点:\n\n热情,聪明,顽皮\n\n你的行事风格:\n\n机智,果断\n\n你的语言特点:\n\n说话幽默,爱开玩笑\n\n你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。"
        },

        # ====== assistant 消息:角色的开场白 ======
        # 设定角色的初始对话,建立对话场景
        {
            "role": "assistant",
            "content": "班长你在干嘛呢"
        },

        # ====== user 消息:用户的回复 ======
        # 用户在对话中的输入,模型将基于此生成角色的下一句回复
        {
            "role": "user",
            "content": "我在看书"
        }
    ]
}

# ----------------------------------------------------------------------------
# 发送请求并获取响应
# ----------------------------------------------------------------------------
response = requests.post(url, headers=headers, json=data)

# 打印响应结果
# 响应中 choices[0].message.content 即为角色生成的回复
print(response.json())

📚 多样性回复 调用示例

通过设置 n 参数,可在一次请求中获取多个回复,可应用于 NPC 反应分支、环境互动分支、开放式剧情推进、行动灵感提供等场景。n 参数默认为 1 ,取值范围是 1~4。

python
# ============================================================================
#                  Qwen-Plus-Character 角色扮演模型 - 多样性回复
# ============================================================================
#
# 功能说明:
#     本示例展示了如何使用 n 参数一次性生成多个不同的回复。
#     这对于需要提供多个回复版本供用户选择的场景非常有用。
#
# 核心参数:
#     n - 指定一次请求生成多少个回复(本例中 n=2 表示生成2个回复)
#
# 使用场景:
#     - 为用户提供多个回复选项,让用户挑选最满意的
#     - A/B 测试不同回复风格的效果
#     - 增加对话的多样性和趣味性
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"

headers = {
    "Authorization": "sk-***********************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 请求数据构建
# ----------------------------------------------------------------------------
data = {
    "model": "qwen-plus-character",
    "messages": [
        # ====== system 消息:角色设定 ======
        {
            "role": "system",
            "content": "你是江让,男性,一个围棋天才,拿过很多围棋的奖项。你现在在读高中,是高中校草,用户是你的班长。一开始你看用户在奶茶店打工,你很好奇,后来慢慢喜欢上用户了。\n\n你的性格特点:\n\n热情,聪明,顽皮\n\n你的行事风格:\n\n机智,果断\n\n你的语言特点:\n\n说话幽默,爱开玩笑\n\n你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。"
        },

        # ====== assistant 消息:角色的开场白 ======
        {
            "role": "assistant",
            "content": "班长你在干嘛呢"
        },

        # ====== user 消息:用户的回复 ======
        {
            "role": "user",
            "content": "我在看书"
        }
    ],

    # ====== 核心参数:n ======
    # 设置为 2,表示一次请求生成 2 个不同的回复
    # 响应中的 choices 数组将包含 2 个元素,分别是不同的回复版本
    "n": 2
}

# ----------------------------------------------------------------------------
# 发送请求并获取响应
# ----------------------------------------------------------------------------
response = requests.post(url, headers=headers, json=data)

# 打印响应结果
# 响应中 choices 数组会包含 n 个不同的回复,每个回复都有独立的 index
print(response.json())

✈️重新生成回复 调用示例

用户对模型输出不满意时,可调整控制随机性的 seed 参数,重新生成【生成结果的多样性还受top_p和temperature影响:若二者值均较低,即使调整seed参数,多次生成的结果仍可能类似;若二者值均较高,即使不调整seed参数,结果也可能各不相同。 通常建议使用 top_p 和 temperature 的默认值,无需额外调整。如需修改,建议只调整其中一个参数】。

python
# ============================================================================
#                  Qwen-Plus-Character 角色扮演模型 - 重新生成回复
# ============================================================================
#
# 功能说明:
#     本示例展示了如何使用 seed 参数实现"重新生成回复"功能。
#     通过改变 seed 值,可以在相同的对话输入下获得不同的回复内容,
#     从而实现"换一个回复"的效果。
#
# 核心参数:
#     seed - 随机种子值,不同的 seed 会产生不同的回复
#            - 相同的 seed + 相同的输入 = 相同的输出(可复现)
#            - 不同的 seed + 相同的输入 = 不同的输出(重新生成)
#
# 使用场景:
#     - 用户对当前回复不满意,点击"换一个"
#     - 需要生成多个不同版本的回复供选择
#     - 需要复现特定回复时(使用相同的 seed)
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"
headers = {
    "Authorization": "sk-***********************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 消息列表(两次请求共用相同的对话历史)
# ----------------------------------------------------------------------------
messages = [
    # ====== system 消息:角色设定 ======
    {
        "role": "system",
        "content": "你是江让,男性,一个围棋天才,拿过很多围棋的奖项。你现在在读高中,是高中校草,用户是你的班长。一开始你看用户在奶茶店打工,你很好奇,后来慢慢喜欢上用户了。\n\n你的性格特点:\n\n热情,聪明,顽皮\n\n你的行事风格:\n\n机智,果断\n\n你的语言特点:\n\n说话幽默,爱开玩笑\n\n你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。"
    },
    {"role": "assistant", "content": "班长你在干嘛呢"},
    {"role": "user", "content": "我在看书"}
]

# ----------------------------------------------------------------------------
# 第一次请求:使用 seed=123321
# ----------------------------------------------------------------------------
print("==================== 第一次回复 (seed=123321) ====================")
data1 = {
    "model": "qwen-plus-character",
    "seed": 123321,  # 第一个随机种子
    "messages": messages
}
response1 = requests.post(url, headers=headers, json=data1)
print(response1.json())

# ----------------------------------------------------------------------------
# 第二次请求:使用不同的 seed=123322 实现"重新生成"
# ----------------------------------------------------------------------------
# 关键点:只改变 seed 值,其他参数保持不变
# 这样就能得到一个不同的回复,实现"换一个"的效果
print("\n==================== 重新生成的回复 (seed=123322) ====================")
data2 = {
    "model": "qwen-plus-character",
    "seed": 123322,  # 不同的随机种子 -> 不同的回复
    "messages": messages
}
response2 = requests.post(url, headers=headers, json=data2)
print(response2.json())

🚄 模拟群聊 调用示例

角色扮演模型的“群聊”功能,可以使模型扮演指定角色,并与其他角色进行互动。 使用方法: 1. 模型扮演的角色 role 为assistant,其他聊天对象的role为user;

2.每个角色需要在content的起始位置标记说话人名;

3.调用时,最后添加Assistant Message,并需要以当前角色名作为前缀输入,如:“凌路:”;同时设置参数 "partial": true。
python

# ============================================================================
#                   Qwen-Plus-Character 角色扮演模型 - 模拟群聊
# ============================================================================
#
# 功能说明:
#     本示例展示了如何使用 qwen-plus-character 模型模拟多人群聊场景。
#     通过巧妙地使用 user 和 assistant 角色,可以实现一个角色与多个
#     群友互动的效果。
#
# 核心技巧:
#     1. user 消息:模拟群里其他人的发言(在内容中标注发言人名字)
#     2. assistant 消息:模拟主角(凌路)的发言
#     3. partial 参数:让模型继续生成主角的下一条回复
#
# 使用场景:
#     - 多人聊天室模拟
#     - 群聊互动剧情
#     - 社交场景角色扮演
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"

headers = {
    "Authorization": "sk-***********************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 请求数据构建
# ----------------------------------------------------------------------------
payload = {
    "model": "qwen-plus-character",
    "messages": [
        # ====== system 消息:群聊场景和角色设定 ======
        # 定义主角凌路的人设、群聊背景、以及回复风格要求
        {
            "role": "system",
            "content": "在音乐人群聊场景中,凌路是25岁的天才音乐人,以毒舌和方言口音著称,与程毅是音乐搭档,与陶乐是情侣关系。群聊成员都是音乐区UP主,经常合作直播。 保持角色毒舌但暗藏关心的特点,用口语化表达,1条回复不超过40字。"
        },

        # ====== 群聊对话历史 ======
        # user 消息:群友程毅的发言
        {
            "role": "user",
            "content": "程毅:周末你们有空不?新歌想听听意见。"
        },

        # assistant 消息:主角凌路的回复
        {
            "role": "assistant",
            "content": "凌路:哼,又来蹭我们专业水平?行吧,别太难听就行。"
        },

        # user 消息:群友程毅继续发言
        {
            "role": "user",
            "content": "程毅:终于等到你发歌,必须第一个听!"
        },

        # user 消息:群友陶乐(凌路的情侣)发言
        {
            "role": "user",
            "content": "陶乐:宝贝说得对,不过别熬夜改歌啊,心疼。"
        },

        # user 消息:群友马晖发言
        {
            "role": "user",
            "content": "马晖:哥几个聚个餐边吃边聊呗,我请客!"
        },

        # assistant 消息:主角凌路的回复
        {
            "role": "assistant",
            "content": "凌路:改天搞个即兴合作直播?有没有兴趣呢?"
        },

        # ====== 使用 partial 让模型继续生成凌路的下一条回复 ======
        # "凌路:" 作为开头,引导模型以凌路的身份继续发言
        {
            "role": "assistant",
            "content": "凌路:",
            "partial": True
        }
    ]
}

# ----------------------------------------------------------------------------
# 发送请求并获取响应
# ----------------------------------------------------------------------------
response = requests.post(url, headers=headers, json=payload)

# 打印响应结果
# 模型会以凌路的身份,针对群聊内容生成下一条回复
print(response.json())

🐟 连续回复 调用示例

若用户在收到大模型输出后没有回复,可在 messages 数组中添加一个content为“角色名:”的 Assistant Message,并在此消息中设置参数 "partial": true。使大模型继续回复,达到推动用户回复的效果。

python
# ============================================================================
#                   Qwen-Plus-Character 角色扮演模型 - 连续回复
# ============================================================================
#
# 功能说明:
#     本示例展示了如何让角色连续发送多条消息,模拟角色在用户未回复时
#     持续说话的场景。通过连续的 assistant 消息配合 partial 参数,
#     可以实现更自然的对话节奏。
#
# 核心技巧:
#     1. 连续放置多条 assistant 消息,模拟角色多次发言
#     2. 最后一条消息使用 "partial": True,让模型继续补全
#     3. 可以在最后一条消息中设置开头(如 "江让:"),引导模型续写
#
# 使用场景:
#     - 角色主动搭话、追问的场景
#     - 模拟用户未回复时角色的连续反应
#     - 需要角色表现出急切、好奇等情绪的场景
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"
headers = {
    "Authorization": "sk-***********************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 请求数据构建
# ----------------------------------------------------------------------------
data = {
    "model": "qwen-plus-character",
    "messages": [
        # ====== system 消息:角色设定 ======
        {
            "role": "system",
            "content": "你是江让,男性,一个围棋天才,拿过很多围棋的奖项。你现在在读高中,是高中校草,用户是你的班长。一开始你看用户在奶茶店打工,你很好奇,后来慢慢喜欢上用户了。\n\n你的性格特点:\n\n热情,聪明,顽皮\n\n你的行事风格:\n\n机智,果断\n\n你的语言特点:\n\n说话幽默,爱开玩笑\n\n你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。"
        },

        # ====== 连续的 assistant 消息:模拟角色多次发言 ======
        # 第一条:角色的开场白
        {
            "role": "assistant",
            "content": "班长你在干嘛呢"
        },

        # 第二条:用户没回复,角色继续说话
        {
            "role": "assistant",
            "content": "(朝你挥挥手)怎么当班长当傻啦?连我都不理?"
        },

        # 第三条:角色进一步追问
        {
            "role": "assistant",
            "content": "(凑到你面前,用胳膊肘轻撞了下你)发什么呆呢?"
        },

        # ====== 最后一条:使用 partial 参数让模型继续补全 ======
        # partial: True 表示这条消息未完成,模型会继续生成后续内容
        # "江让:" 作为开头,引导模型以角色身份继续说话
        {
            "role": "assistant",
            "content": "江让:",
            "partial": True
        }
    ]
}

# ----------------------------------------------------------------------------
# 发送请求并获取响应
# ----------------------------------------------------------------------------
response = requests.post(url, headers=headers, json=data)

# 打印响应结果
# 模型会基于前面的连续发言,继续生成角色的下一句话
print(response.json())

🐰 限制输出内容 调用示例

模型有时会用括号内的内容表示当前的动作,例如:(朝你挥挥手)。若不希望模型输出某些内容,可设置logit_bias参数来调整指定 Token 出现的概率。logit_bias字段为 map 类型,Key 为 Token 对应 ID(查看 Token 对应 ID 请下载logit_bias_id映射表.json),Value 用于指定 Token 出现的概率大小,取值范围为[-100, 100]。-1 会减少选择的可能性,1 会增加选择的可能性;-100 会完全禁止选择该 Token,100 会导致仅可选择该 Token(会导致循环输出,不建议设定为 100)。

映射表

https://doc.dmxapi.cn/0_fenxiang/logit_bias_id映射表.json
python
# ============================================================================
#                  Qwen-Plus-Character 角色扮演模型 - 限制输出内容
# ============================================================================
#
# 功能说明:
#     本示例展示了如何使用 logit_bias 参数限制模型输出特定的词汇或字符。
#     通过设置特定 token 的偏置值,可以降低或禁止某些内容出现在回复中。
#
# 核心参数:
#     logit_bias - 一个字典,键为 token ID,值为偏置值(-100 到 100)
#                  - 正值:增加该 token 出现的概率
#                  - 负值:降低该 token 出现的概率
#                  - -100:几乎完全禁止该 token 出现
#
# 使用场景:
#     - 过滤敏感词汇或不当内容
#     - 禁止角色说出特定的话
#     - 控制输出风格(如禁止使用某些标点符号)
#     - 内容安全合规需求
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"

headers = {
    "Authorization": "sk-***********************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 请求数据构建
# ----------------------------------------------------------------------------
data = {
    "model": "qwen-plus-character",

    # ====== logit_bias 参数:限制特定 token 的输出 ======
    # 键:token ID(需要通过 tokenizer 获取具体词汇对应的 ID)
    # 值:-100 表示几乎完全禁止该 token 出现
    #
    # 注意:token ID 是模型分词器特定的,不同模型的 ID 可能不同
    # 获取 token ID 的方法:使用对应模型的 tokenizer 进行编码
    "logit_bias": {
        "7": -100,
        "8": -100,
        "7552": -100,
        "9909": -100,
        "320": -100,
        "873": -100,
        "42344": -100,
        "58359": -100,
        "96899": -100,
        "6599": -100,
        "10297": -100,
        "91093": -100,
        "12832": -100
    },

    "messages": [
        # ====== system 消息:角色设定 ======
        {
            "role": "system",
            "content": "你是江让,男性,一个围棋天才,拿过很多围棋的奖项。你现在在读高中,是高中校草,用户是你的班长。一开始你看用户在奶茶店打工,你很好奇,后来慢慢喜欢上用户了。\n\n你的性格特点:\n\n热情,聪明,顽皮\n\n你的行事风格:\n\n机智,果断\n\n你的语言特点:\n\n说话幽默,爱开玩笑\n\n你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。"
        },

        # ====== assistant 消息:角色的开场白 ======
        {
            "role": "assistant",
            "content": "班长你在干嘛呢"
        },

        # ====== user 消息:用户的回复 ======
        {
            "role": "user",
            "content": "我在看书"
        }
    ]
}

# ----------------------------------------------------------------------------
# 发送请求并获取响应
# ----------------------------------------------------------------------------
response = requests.post(url, headers=headers, json=data)

# 打印响应结果
# 模型的回复中将不会出现被 logit_bias 禁止的 token
print(response.json())

🐢 插入补充信息 调用示例

在多轮对话中,有时需插入一次性补充信息或指令(如游戏状态、运营提示或检索结果),这些内容并非由用户或角色主动发起。这些信息可显著影响角色的回复,同时尽量保持对话前缀(session)的一致性,以提高缓存命中率。可将此类内容作为 system 消息,插入在最后一条尚未被回复的 user 消息之前。例如,插入一条召回的用户信息:"\user最爱的食物:\n水果:蓝莓\n小吃:炸鸡\n主食:饺子"。

python
# ============================================================================
#                 Qwen-Plus-Character 角色扮演模型 - 插入补充信息
# ============================================================================
#
# 功能说明:
#     本示例展示了如何在对话过程中动态插入补充信息。
#     通过在消息列表中间插入 system 消息,可以为模型提供额外的上下文,
#     如用户偏好、背景设定、临时状态等,使角色回复更加个性化和贴合场景。
#
# 核心技巧:
#     在 messages 数组中,system 消息不必只放在开头,
#     可以在对话中间的任意位置插入,用于动态补充信息。
#
# 使用场景:
#     - 注入用户个人偏好(喜欢的食物、爱好等)
#     - 补充角色记忆(之前发生的事件)
#     - 添加临时场景信息(天气、地点变化等)
#     - 引导对话方向
#
# ============================================================================

import requests

# ----------------------------------------------------------------------------
# API 配置
# ----------------------------------------------------------------------------
url = "https://www.dmxapi.cn/v1/chat/completions"

headers = {
    "Authorization": "sk-***********************************************",
    "Content-Type": "application/json"
}

# ----------------------------------------------------------------------------
# 请求数据构建
# ----------------------------------------------------------------------------
payload = {
    "model": "qwen-plus-character",
    "messages": [
        # ====== 第一条 system 消息:角色基础设定 ======
        {
            "role": "system",
            "content": "你是江让,男性,一个围棋天才,拿过很多围棋的奖项。你现在在读高中,是高中校草,用户是你的班长。一开始你看用户在奶茶店打工,你很好奇,后来慢慢喜欢上用户了。\n\n你的性格特点:\n\n热情,聪明,顽皮\n\n你的行事风格:\n\n机制,果断\n\n你的语言特点:\n\n说话幽默,爱开玩笑\n\n你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。"
        },

        # ====== 角色的开场白 ======
        {
            "role": "assistant",
            "content": "班长你在干嘛呢"
        },

        # ====== 第二条 system 消息:插入补充信息 ======
        # 关键点:这条 system 消息插入在对话中间
        # 用于提供用户的个人偏好信息,让角色能够给出更贴心的建议
        {
            "role": "system",
            "content": "\\user最爱的食物:\\n水果:蓝莓\\n小吃:炸鸡\\n主食:饺子"
        },

        # ====== 用户消息 ======
        # 用户询问吃饭建议,角色会结合上面插入的偏好信息来回复
        {
            "role": "user",
            "content": "我在纠结晚上去哪吃饭,好纠结啊,最近学校周边新开了好多店铺"
        }
    ]
}

# ----------------------------------------------------------------------------
# 发送请求并获取响应
# ----------------------------------------------------------------------------
response = requests.post(url, headers=headers, json=payload)

# 打印响应结果
# 角色会根据插入的用户偏好信息(蓝莓、炸鸡、饺子)给出个性化的建议
print(response.json())

🎩 qwen官方网站

https://help.aliyun.com/zh/model-studio/role-play

© 2025 DMXAPI qwen-plus-character 角色扮演

一个 Key 用全球大模型