文本生成

2025-03-05   访问量:1004

文本生成是一种人工智能技术,它基于深度学习算法,根据给定的提示信息创作出有逻辑、连贯的文本内容。



文本生成所需的输入(提示或Prompt)可以是简单的关键词、一句话概述或是更复杂的指令和上下文信息。文本生成模型通过分析大量现有数据,学习语言模式,广泛应用于以下领域:

  • 内容创作:自动生成新闻报道、商品介绍、短视频脚本等。

  • 客户服务:在聊天机器人中应用,提供24小时客服支持,解答常见问题。

  • 文本翻译:快速准确地将文本从一种语言翻译成另一种语言。

  • 摘要生成:为长篇文章、报告、客户邮件自动生成摘要。

  • 法律文档编写:自动化生成合同模板、法律意见书的基础框架。


文本生成示例:根据需求提取客户邮件中的关键信息

Prompt

 

请从这封客户反馈邮件中提取以下信息:1.客户信息 2.软件版本 3.错误代码 4.问题描述 5.操作系统 6.其他相关细节
------------
邮件正文:
主题:【报障求助】智能百炼助手启动故障
尊敬的百炼客服和技术支持团队,
我是来自通义科技的张伟,我的用户ID是12345。我正在使用的智能百炼助手软件版本为V3.1.8,在此向您报告一个严重影响工作进度的技术问题,望尽快协助解决。
自昨日下午起,我在启动智能百炼助手时遇到严重障碍,软件启动过程卡在初始化界面,错误码为ERR-2007,并弹出错误提示“数据库连接失败”,导致所有功能模块无法正常使用。这一情况已经持续至今,严重影响了我司的办公效率。
我目前使用的服务器操作系统是Windows 10版本1909,针对64位架构进行优化。在遇到问题后,我已经采取了若干初步故障排除措施,其中包括完全关闭并重新启动系统以试图清除可能的临时软件冲突或系统挂起状态,以及彻底卸载并重新安装相关软件,旨在消除可能存在的软件损坏或配置错误问题。然而,尽管进行了这些常规解决尝试,问题仍然持续存在,未见任何改善。
为了便于更深入地诊断问题,我已将详细的错误截图和系统日志文件作为附件一并提供。这些材料应当能精确展示错误发生时的软件状态、异常详情以及任何相关的错误代码,为快速定位并解决当前遇到的技术障碍提供了关键信息。
期待您的尽快回复!

模型输出

 

1.客户信息:通义科技张伟(ID12345)
2.软件版本:智能百炼助手V3.1.8
3.错误代码:ERR-2007
4.问题描述:能百炼助手在启动过程中卡在初始化界面,出现“数据库连接失败”的错误提示,导致所有功能模块无法使用,问题自昨日下午开始持续存在。
5.操作系统:Win10 1909 64位
6.其他相关细节:已尝试的解决措施包括重启系统和重装软件,但问题未解决。附件包含错误截图与日志文件。

更多示例可以参考文本生成样例

文本生成模型

百炼大模型服务平台支持通义千问商业版、通义千问开源版与一些知名第三方模型,详细的模型列表请参考文本生成模型列表

通义千问商业版

通义千问开源版

第三方模型

模型选型建议

如何使用

文本生成模型将接收的信息作为提示(Prompt),并返回一个根据提示信息生成的输出。百炼支持 OpenAI SDK、DashScope SDK、HTTP 接入方式。

本文以调用通义千问模型为例,介绍如何使用文本生成模型。使用 OpenAI 接口进行模型调用的完整参数列表参考 OpenAI 兼容 API 参考,DashScope 模型调用的完整参数列表参考DashScope API 参考

消息类型

您通过API与大模型进行交互时的输入和输出也被称为消息(Message)。每条消息都属于一个角色(Role),角色包括系统(System)、用户(User)和助手(Assistant)。

  • 系统消息(System Message,也称为System Prompt):用于告知模型要扮演的角色或行为。例如,您可以让模型扮演一个严谨的科学家等。默认值是“You are a helpful assistant”。您也可以将此类指令放在用户消息中,但放在系统消息中会更有效。

  • 用户消息(User Message):您输入给模型的文本。

  • 助手消息(Assistant Message):模型的回复。您也可以预先填写助手消息,作为后续助手消息的示例。

快速开始

API 使用前提:已获取API Key并完成配置API Key到环境变量

OpenAI兼容

DashScope

您可以通过 OpenAI SDK 或 OpenAI 兼容的HTTP方式快速体验通义千问模型。

完整参数列表参考 OpenAI 兼容 API 参考

Python

Node.js

HTTP

示例代码

 

import osfrom openai import OpenAItry:
    client = OpenAI(        # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    )

    completion = client.chat.completions.create(        # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
        model="qwen-plus",
        messages=[
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': '你是谁?'}
            ]
    )    print(completion.choices[0].message.content)except Exception as e:    print(f"错误信息:{e}")    print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")

返回结果

 

我是来自阿里云的超大规模语言模型,我叫通义千问。

异步调用

您可以使用Asyncio接口调用实现并发,提高程序的效率。示例代码如下:

OpenAI SDK

DashScope SDK

示例代码

 

import osimport asynciofrom openai import AsyncOpenAIimport platform# 创建异步客户端实例client = AsyncOpenAI(    # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")# 定义异步任务列表async def task(question):    print(f"Sending question: {question}")
    response = await client.chat.completions.create(
        messages=[
            {"role": "user", "content": question}
        ],
        model="qwen-plus",  # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
    )    print(f"Received answer: {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)

控制生成的常用参数

Temperature 和 top_p

这两个参数都用于控制模型生成文本的多样性。temperature 或 top_p 越高,生成的文本更多样,反之生成的文本更确定。

  • 具有多样性的文本,适用于创意写作(如小说、广告文案)、头脑风暴、聊天应用等场景。

  • 具有确定性的文本,适用于有明确答案(如问题分析、选择题、事实查询)或要求用词准确(如技术文档、法律文本、新闻报导、学术论文)的场景。

原理介绍

API 参考

使用 OpenAI 接口进行模型调用的完整参数列表参考 OpenAI 兼容 API 参考,DashScope 模型调用的完整参数列表参考DashScope API 参考

了解更多

提示(Prompt)工程

提示(Prompt)是输入给大语言模型的文本信息,用于明确地告诉模型想要解决的问题或完成的任务,也是模型理解需求并生成相关、准确内容的基础。通过精心设计和优化 Prompt,向模型“明确”任务目的,使模型输出的结果更符合预期,这一过程被称之为"提示工程(Prompt Engineering)"这个过程包括以下关键步骤:

payukogjvzcwbvvabpvc.png

如果您对提示工程感兴趣,请前往Prompt 最佳实践了解如何构建有效的Prompt来提升模型表现。

也可以浏览百炼服务平台的 Prompt工程页面,从而快速了解如何利用模板来快速生成所需的文本内容。

多模态能力

多模态能力是指模型能够处理和结合多种不同类型的数据模态(如文本、图像、音频、视频等)进行信息的理解、处理和生成的能力。这种能力使得模型能够更全面地理解和生成内容,增强上下文理解,提高模型表现。

当前百炼支持的多模态模型有:

  • 通义千问VL(文+图->文):具有图像理解能力的通义千问模型,能完成 OCR、视觉推理、本文理解等任务,支持超百万像素分辨率和任意宽高比的图像。

  • 通义千问Audio(文+音->文):具有音频理解能力的通义千问模型,不仅能对输入的音频进行转录,还具备更深层次的语义理解、情感分析、音频事件检测、语音聊天等能力。

  • 语音识别模型(音->文):识别并转写音频中的语音内容,支持中文(含粤语等各种方言)、英文、日语、韩语等。

常见问题

  1. 文本生成模型的后缀,比如:-chat、-instruct 等,具体是什么意思,会影响我的模型表现吗?

    这些后缀代表了模型经过了微调和强化学习,并有场景专精方向。您需要根据您的业务场景,选择合适的模型。

    • -chat 表示模型专为处理人机交互而设计,‌善于理解上下文和生成连贯且情境相关的响应。‌适用于对话型任务,‌如聊天机器人、‌虚拟助手或客户支持场景,‌善于提供自然、‌流畅且符合对话习惯的回复。‌

    • -Instruct 表示模型能够理解和执行复杂的自然语言指令,拥有强大的工具调用能力,适用于执行具体指令,如回答问题、生成文本、翻译等任务。

  2. 通义千问模型的后缀,比如:-0428、-0206,是什么意思?

    -0428 这种数字后缀的意思是该模型在428日的快照版本。

  3. 什么时候应该选择通义千问模型的快照版本

    由于通义千问系列模型会不定期更新升级(不带数字后缀的版本)。

    如果希望您的应用在上线后有稳定表现,不受模型更新影响,可以优先选择快照版本。(当前快照版本只能通过 API 调用进行应用创建等)

    推荐您在通义千问系列模型发布新版本后,对比评测当前您使用的快照版本和新版本的表现差异,并根据评测结果灵活切换模型版本,以保证您应用的最佳表现。

  4. 为什么我向网页端通义千问输入的网页链接可以被解析,向通义千问 API 输入却无法解析?

    网页端是在通义千问 API 的基础上做了额外的工程优化,解析网页链接本身并不属于大模型 API 的能力。您可以结合 Python 的 Beautiful Soup 等网页抓取工具实现读取网页的功能。

  5. 网页端通义千问和通义千问 API 的回复效果差异较大是什么原因?

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


热门文章
更多>