大模型提示词工程实践:大语言模型文本转换实践
大模型文本转换
学习目标
在本课程中,我们将探究如何使用大语言模型来完成文本转换任务,例如语言翻译、拼写和语法检查、语气调整以及格式转换。
相关知识点
大模型文本转换
学习内容
1. 大模型文本转换
文本转换的核心定义与范畴 文本转换 是指通过技术手段对文本的语言、格式、风格、结构等维度进行系统性改造,使其适应不同场景需求的过程。基于大语言模型(LLM)的文本转换,本质是利用模型对自然语言的理解与生成能力,实现语义在不同形式间的精准映射。其核心范畴包括:
- 语言维度:跨语种翻译(如中英互译、小语种转换)、方言与标准语转换;
- 格式维度:非结构化文本与结构化数据互转(如JSON转HTML表格)、代码格式转换(Markdown转LaTeX);
- 风格维度:语气调整(口语→书面语、正式→非正式)、文体转换(新闻稿→诗歌、技术文档→科普文案);
- 语义维度:语法纠错、拼写修正、语义优化(如增强说服力、简化复杂句式)。
文本转换的核心应用场景
跨语言沟通与全球化业务
- 电商客服工单翻译:实时将法语、西班牙语等多语言客户反馈译为中文,辅助客服快速响应;
- 跨境营销内容本地化:将英文产品描述转为符合日本文化习惯的日语文案(如调整敬语等级、规避敏感词汇)。
内容创作与传播优化
- 多平台适配:将一篇深度报道转换为短视频脚本(提炼核心观点+口语化表达),或转为微博话题文案(添加话题标签+情绪化表达);
- 学术成果通俗化:将论文摘要转换为面向公众的科普短文(如将“量子纠缠”解释为“跨越时空的粒子联动”)。
企业级文档处理
- 格式标准化:将员工提交的非结构化需求文档转换为统一的JSON格式,便于系统解析;
- 合规性改造:将包含敏感信息的合同文本进行脱敏处理(如隐藏身份证号、银行账号),同时保持语义完整。
教育与语言学习
- 个性化学习材料生成:将同一篇英文文章转换为不同难度的版本(如基础版简化句式、进阶版增加专业术语);
- 语言教学辅助:自动批改学生作文,标注语法错误并提供修改建议(如“此处应使用过去完成时”)。
1.1 准备工作
安装依赖
httpx 是一个用于进行 HTTP 请求的库,我们可以使用它来向大模型发送请求并获取响应。
openai 库提供了统一的接口来调用大模型。
redlines 是一个用于文本对比和高亮显示差异的 Python 库,主要功能是将两个文本版本之间的修改以直观的方式呈现出来,类似文档编辑中的 “修订模式” 或代码版本控制中的 diff 功能。
%pip install httpx
%pip install openai
%pip install redlines
初始化参数
import os
import httpx
from openai import OpenAI# 此课程基于DeepSeek-R1运行,学员可自行前往官网进行api申请
client = OpenAI(base_url=<BASE_URL>,api_key=<API_KEY>,http_client=httpx.Client(verify=False),
)
- 定义 get_completion 函数,用于调用大模型生成文本。
- 这个函数通过 OpenAI 客户端调用指定模型,根据输入的提示词生成回复,并处理可能存在的思维标记,返回最终的回复内容。
get_completion
函数用于向模型发送单个用户提示,并获取模型的响应。它将提示封装在messages
列表中,然后调用client.chat.completions.create
方法与模型进行交互,最后调用extract_after_think
函数处理响应。
参数 | 说明 |
---|---|
model | 指定使用的大语言模型,决定生成文本的能力和风格 |
messages | 对话历史列表,仅包含用户提示词,引导模型生成回复 |
stream | 是否以流式方式返回结果。为 False 时,模型生成完整内容后一次性返回;为 True 时逐字返回 |
temperature | 控制输出的随机性和创造性。值接近 0 时输出更具确定性,结果更保守、准确;值接近 1 时输出更随机,可能增加创意但也可能有胡言乱语风险 |
max_tokens | 限制生成内容的最大 token 数量(含输入和输出)。超过此限制模型输出会被截断,token 约4个字符或1个汉字,设置过小可能回复不完整 |
top_p | 核采样参数,控制词汇选择的概率分布范围。值为 0.95 时模型只考虑累积概率达 95% 的词汇,过滤低概率词汇,减少随机性 |
#请根据实际替换model_name
def get_completion(prompt, model=<model_name>):mess = [{"role": "user", "content": prompt}]response = client.chat.completions.create(model=model,messages=mess,stream=False,temperature=0.6, # 这就是该模型输出结果的随机程度。 max_tokens=2048,top_p=0.95)return response.choices[0].message.content.split("</think>\n\n")[-1]
1.2 调用大模型
1.2.1 翻译
大模型是通过多种语言的资料进行训练的。这使得模型具备了进行翻译的能力。以下是一些关于如何运用这一能力的示例。
prompt = f"""
将以下英文文本翻译成中文: \
```Hi, I would like to order a blender```
"""
response = get_completion(prompt)
print(response)
prompt = f"""
告诉我这是哪种语言:
```Combien coûte le lampadaire?```
"""
response = get_completion(prompt)
print(response)
prompt = f"""
将以下文本翻译成法语、西班牙语和英式英语海盗风格表达: \
```I want to order a basketball```
"""
response = get_completion(prompt)
print(response)
prompt = f"""
将以下文本分别翻译成中文的正式形式和非正式形式:
'Would you like to order a pillow?'
"""
response = get_completion(prompt)
print(response)
1.2.2 通用翻译器
设想一下,你在一家大型跨国电子商务公司负责信息技术(IT)工作。用户们用他们各自的母语向你反馈信息技术方面的问题。而你的员工来自世界各地,每个人都只会说自己的母语。此时,你就需要一个通用翻译器!
例如下面的各地语言:
- 法语(系统的性能比平时要慢。)
- 西班牙语(我的显示器有一些不发光的像素点。)
- 意大利语(我的鼠标不工作了。)
- 波兰语(我的 Ctrl 键坏了。)
- 英语(我的屏幕在闪烁。)
user_messages = ["La performance du système est plus lente que d'habitude.", "Mi monitor tiene píxeles que no se iluminan.", "Il mio mouse non funziona", "Mój klawisz Ctrl jest zepsuty", "My screen is flickering."
]
for issue in user_messages:prompt = f"告诉我这是什么语言:```{issue}```"lang = get_completion(prompt)print(f"原始信息: ({lang}): {issue}")prompt = f"""将以下文本翻译成汉语和韩语:```{issue}```"""response = get_completion(prompt)print(response, "\n")
1.2.3 语气转换
写作会因目标受众的不同而有所差异。大模型能够生成不同的语气风格。
prompt = f"""
将以下内容从日常口语转换为商务信函风格:
'各位,这次活动的报名人数比咱们预想的少太多了,得赶紧想想办法推广推广。'
"""
response = get_completion(prompt)
print(response)
1.2.4 格式转换
大模型能够在不同格式之间进行转换。提示语应当对输入格式和输出格式进行描述。
data_json = { "餐厅员工" :[ {"姓名":"杉木", "电子邮箱":"shyamjaiswal@gmail.com"},{"姓名":"薄冰", "电子邮箱":"bob32@gmail.com"},{"姓名":"嘉义", "电子邮箱":"jai87@gmail.com"}]
}
prompt = f"""
将以上Python字典(以JSON格式呈现)转换为带有列标题和标题的HTML表格。仅输出html:{data_json}
"""
response = get_completion(prompt)
print(response)
from IPython.display import display, HTML
display(HTML(response))
1.2.5 拼写及语法语义检查
以下是一些常见的语法和拼写问题的示例,以及大语言模型(LLM)的回复。
要向大语言模型表明你希望它校对文本,你可以指示模型 “进行校对” 或 “进行校对并改正”。
text = [ "The girl with the black and white puppies have a ball.", # 语法错误,主语 “The girl” 是单数,谓语动词应用 “has” 而非 “have”"Yolanda has her notebook.", # 正确"Its going to be a long day. Does the car need it’s oil changed?", # 同音异义词错误"This phrase is to cherck Deepseek for speling abilitty" # 拼写错误
]
for t in text:prompt = f"""校对并改正以下文本,然后重写改正后的版本。\如果你没有发现任何错误,就说“未发现错误”。\不要在文本周围使用任何标点符号:```{t}```"""response = get_completion(prompt)print(response)
text = f"""
这是我给女儿买的生日礼物,因为她老是从我房间里拿走我的东西。\
没错,大人也同样喜欢熊猫。她到哪儿都带着它,而且它超级柔软可爱。\
它的一只耳朵比另一只低一点,我觉得这不是设计成不对称的样子。\
不过就我付的价钱来说,它有点小了。\
我觉得可能还有其他同样价格但更大一些的选择。\
它比预计时间提前一天就到了,所以在我把它送给女儿之前,我自己还玩了一会儿。
"""
prompt = f"校对并纠正这条评论: ```{text}```"
response1 = get_completion(prompt)
print(response)
from IPython.display import Markdown
from redlines import Redlinesdiff = Redlines(text,response1)
display(Markdown(diff.output_markdown))
prompt = f"""
校对并纠正这条评论,使其更具说服力。
确保遵循APA格式指南,并以资深读者为目标受众。
以Markdown格式输出。
文本:```{text}```
"""
response = get_completion(prompt)
display(Markdown(response))