文本生成
功能描述
文本生成支持基于用户输入的文本提示 Prompt
,生成符合语境、逻辑连贯的续写内容,或直接创作全新文本。无论是长文创作,还是特定风格的内容生成,均能通过简洁的 API 调用实现,且兼容 OpenAI 风格接口,降低开发者接入成本。
功能特点:
- 多场景适配:支持文案创作、代码生成、内容摘要等多类场景
- 风格可控:可通过参数精准控制生成内容的随机性、长度、语气风格
- 无缝集成:兼容主流开发框架
LangChain
、LlamaIndex
等),支持函数调用、工具链扩展 - 高效响应:支持流式输出
Stream
,减少等待时间,提升交互体验
模力方舟集成了多种高性能文本生成模型,您可以在 AI 模型广场 中了解其特性并体验效果,也可以通过 基础文本生成示例 快速上手。
快速上手:基础文本生成示例
示例一:通过 curl 快速使用大模型能力
一些框架、插件封装度较高,curl
可清晰了解请求路径、参数的原始情况:
- Bash
- JavaScript
curl https://ai.gitee.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 您的访问令牌" \
-d '{
"model": "Qwen2.5-72B-Instruct",
"stream": false,
"messages": [
{
"role": "system",
"content": "你是聪明的助手"
},
{
"role": "user",
"content": "老鼠生病了可以吃老鼠药治好吗?"
}
]
}'
async function query(data) {
const response = await fetch('https://ai.gitee.com/v1/chat/completions', {
headers: {
Authorization: 'Bearer xxxxx',
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify(data),
});
const result = await response.json();
return result;
}
query({
"messages": [
{
"role": "system",
"content": "你是聪明的助手"
},
{
"role": "user",
"content": "老鼠生病了可以吃老 鼠药治好吗?"
}
],
"model": "Qwen2.5-72B-Instruct",
"stream": false,
"max_tokens": 512,
"temperature": 0.7,
"top_p": 0.7,
"frequency_penalty": 1
}).then((response) => {
console.log(JSON.stringify(response));
});
AI 模型响应:
{
"id": "chat-476266af435142d2bb7d342ea54694f2",
"object": "chat.completion",
"created": 1731401912,
"model": "Qwen2.5-72B-Instruct",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "不可以。老鼠药是用于杀死老鼠的毒药,而不是治疗老鼠的疾病。如果老鼠生病了,应该寻求兽医的帮助。",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}],
"usage": {
"prompt_tokens": 27,
"total_tokens": 57,
"completion_tokens": 30
},
"prompt_logprobs": null
}
示例二:使用 OpenAI 客户端调用模力方舟模型 API
模力方舟的 Serverless API 兼容开发者喜爱且社区流行的 OpenAI 风格 API。
所有支持 OpenAI API 的工具都可以直接使用 模力方舟的 Serverless API 工作。
- 获取访问凭证:登录模力方舟控制台,在 工作台 -> 访问令牌 中创建访问令牌。
- 安装客户端:以 OpenAI 客户端为例,首先安装依赖:
pip install openai -i https://mirrors.cloud.tencent.com/pypi/simple
如果您有 javascript 经验可使用 OpenAI nodejs 客户端
通过简单接口调用,生成指定内容:
from openai import OpenAI
import json
base_url = "https://ai.gitee.com/v1"
model_name = "Qwen2.5-72B-Instruct"
# https://ai.gitee.com/dashboard/settings/tokens 获取您的访问令牌
GITEE_AI_API_KEY = "您的访问令牌"
client = OpenAI(base_url=base_url, api_key=GITEE_AI_API_KEY)
completion = client.chat.completions.create(
model=model_name, # 指定模型名称 例如 Qwen2.5-72B-Instruct,可访问 https://ai.gitee.com/serverless-api 查看
stream=True,
temperature=0.7,
top_p=0.95,
frequency_penalty=1.05,
messages=[
{"role": "system", "content": "你是一个有用的助手。"},
{"role": "user", "content": "写一个 python 简明教程"}
]
)
for chunk in completion:
print(chunk.choices[0].delta.content, end="")
除了纯文本,您还可以让模型以 JSON 格式返回结构化数据 —— 此功能称为 结构化输出 ,在模力方舟中可通过 guided_json
参数实现。
流式响应
对于长文本生成,启用流式响应 stream=True
可实时获取结果,减少等待时间:
from openai import OpenAI
# 初始化客户端
client = OpenAI(
base_url="https://ai.gitee.com/v1",
api_key="您的访问令牌"
)
stream = client.chat.completions.create(
model="Qwen2.5-72B-Instruct",# 替换成指定模型名称
messages=[
{"role": "user", "content": "写一段关于人工智能发展历程的短文"}
],
stream=True, # 启用流式输出
temperature=0.6
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
核心参数说明
- tool_choice: 支持
auto
由模型自动选择工具,也支持强制选择工具,写法如下:
"tool_choice": {"type": "function", "function": {"name": "function_name"}},
-
guided_json:让模型以指定的 JSON Schema 响应。不建议与
tools
、guided_json
同时传入。JSON Schema 更多信息可参阅:JSON Schema
-
guided_choice: 让模型选择提供的字符串列表之一,不建议与
tools
、guided_json
同时传入。
例如判断用户输入正负面性可传入:
"guided_choice": ["正面", "负面", "中性"]
其他参数详见 接口文档
模型选择
通过 API 生成内容时,一个关键选择是您想要使用的模型,即上述代码示例中的 model
参数。您可以在 模型广场 找到可用模型的完整列表。选择文本 生成模型时,需要考虑以下几个因素:
任务场景适配
- 通用文本创作:如文案撰写、故事续写,优先选语言理解与生成能力均衡的模型,适配日常多样化表达需求
- 专业领域任务:代码生成、数学推理等场景,需聚焦模型在对应领域的专项能力,像代码逻辑推导、公式运算精度
- 长文本处理:万字级文档生成,关注模型上下文窗口(如 32K、128K 等),确保完整承接信息逻辑
功能特性需求
- 工具调用能力:需结合外部系统(如函数调用、多模态工具),优先选标注 “Function Calling” 的模型(如 kimi-k2-instruct、Qwen2.5-72B-Instruct),实现与业务系统深度交互
- 多语言支持:涉及中英双语或小语种,关注 “多语言” 标签模型(如 ERNIE-4.5-Turbo ),保障跨语言文本质量
选型实践建议
- 快速验证:先用免费模型(如 Qwen3-8B、Qwen3-4B )跑通流程,验证任务可行性
- 场景深化:聚焦核心需求(如长文本选 kimi-k2-instruct 、专业推理选 DeepSeek-R1 ),迁移至对应模型优化效果
结合以上考虑因素,可根据实际业务的文本场景复杂度、功能依赖等精准匹配模力方舟模型广场中的模型,提升文本生成效率与质量。
提示工程
提示工程是为模型编写有效指令的过程,目的是让模型持续生成符合需求的内容。由于模型生成具有非确定性,构建精准提示词需结合艺术与科学,但通过技术和最佳实践可稳定获取优质结果。
- 核心原则-模型适配性:不同模型、同系列不同版本对提示的响应存在差异。
消息角色与指令遵循
通过 instructions
参数或消息角色,可分层向模型注入指令,控制响应逻辑。
- instructions 参数:全局指令优先级
instructions
为模型提供高级指令(语气、目标、示例等),优先级高于 input
内容。
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://ai.gitee.com/v1',
apiKey: '您的模力方舟API密钥',
});
const response = await client.responses.create({
model: '对应模型名称',
// 定义全局风格/规则
instructions: '用老奶奶的语气说话,带点生活化的比喻和慈祥的唠叨',
input: 'JavaScript中的分号是可选的吗?',
});
console.log(response.output_text);
// 示例输出:"哎哟孩子啊,JavaScript里这个分号嘛,就像咱们包饺子放盐——可放可不放!不过奶奶跟你说啊,该放的时候还是得放,不然煮出来容易破皮(出bug)哩!"
-
消息角色:精细化场景控制
结合
system
、user
、assistant
角色,可更灵活定义交互逻辑。若需深度定制 AI 人设(如二次元风格、专业助手),可扩展阅读:定制AI的聊天角色风格
提示词格式化技巧
通过 Markdown 和 XML 标签 增强提示词结构,帮助模型理解逻辑边界,提升输出准确性。
推荐结构(developer 消息):
- 身份:描述助手的角色、沟通风格和目标
- 指令:明确规则(必做 / 禁止事项)
- 示例:提供输入输出样例
- 上下文:补充私有数据或相关信息(建议放末尾,便于动态替换)
示例:代码生成提示词
# 身份
你是一名编码助手,帮助在JavaScript代码中强制使用蛇形命名法变量,并编写可在Internet Explorer 6中运行的代码。
# 指令
定义变量时,使用蛇形命名法(例如my_variable)而不是驼峰命名法(例如myVariable)。
为了支持旧浏览器,使用较旧的"var"关键字声明变量。
不要用Markdown格式回应,只需按要求返回代码。
# 示例
<user_query>
如何声明一个用于名字的字符串变量?
</user_query>
<assistant_response>
var first_name = "安娜";
</assistant_response>
少样本学习
通过在提示词中包含少量输入 / 输出示例,引导模型快速掌握任务(无需微调)。模型会隐式学习示例中的模式并应用于新输入。
示例:情感分类任务
# 身份
你是一个有帮助的助手,将简短的产品评论标记为正面、负面或中性。
# 指令
* 响应中只输出一个单词,不包含额外格式或评论。
* 你的响应只能是"正面"、"负面"或"中性"中的一个。
# 示例
<product_review id="example-1">
我非常喜欢这副耳机——音质太棒了!
</product_review>
<assistant_response id="example-1">
正面
</assistant_response>
<product_review id="example-2">
电池续航还行,但感觉很廉价。
</product_review>
<assistant_response id="example-2">
中性
</assistant_response>
<product_review id="example-3">
客户服务太糟糕了,我再也不会从他们那里买东西了。
</product_review>
<assistant_response id="example-3">
负面
</assistant_response>