室内设计做效果图可以接单的网站,大馆陶网站,网站公司说我们做的网站服务器不够用,wordpress登入不进去Prompt
如何构造好的Prompt
分割符#xff1a;分隔符就像是 Prompt 中的墙#xff0c;将不同的指令、上下文、输入隔开#xff0c;避免意外的混淆。你可以选择用 #xff0c;“”#xff0c; #xff0c; #xff0c;: 等做分隔符#xff0c;只要能明确…Prompt
如何构造好的Prompt
分割符分隔符就像是 Prompt 中的墙将不同的指令、上下文、输入隔开避免意外的混淆。你可以选择用 “” : 等做分隔符只要能明确起到隔断作用即可。
from tool import get_completiontext f
您应该提供尽可能清晰、具体的指示以表达您希望模型执行的任务。\
这将引导模型朝向所需的输出并降低收到无关或不正确响应的可能性。\
不要将写清晰的提示词与写简短的提示词混淆。\
在许多情况下更长的提示词可以为模型提供更多的清晰度和上下文信息从而导致更详细和相关的输出。# 需要总结的文本内容
prompt f
把用三个反引号括起来的文本总结成一句话。
{text}# 指令内容使用 来分隔指令和待总结的内容
response get_completion(prompt)
print(response)
寻求结构化的输出。按照某种格式组织的内容例如JSON、HTML等。这种输出非常适合在代码中进一步解析和处理。例如您可以在 Python 中将其读入字典或列表中。
在以下示例中我们要求 GPT 生成三本书的标题、作者和类别并要求 GPT 以 JSON 的格式返回给我们为便于解析我们指定了 Json 的键。
prompt f
请生成包括书名、作者和类别的三本虚构的、非真实存在的中文书籍清单\
并以 JSON 格式提供其中包含以下键:book_id、title、author、genre。response get_completion(prompt)
print(response)
返回值
{books: [{book_id: 1,title: 迷失的时光,author: 张三,genre: 科幻},{book_id: 2,title: 幻境之门,author: 李四,genre: 奇幻},{book_id: 3,title: 虚拟现实,author: 王五,genre: 科幻}]
}
要求模型检查是否满足条件
# 满足条件的输入text中提供了步骤
text_1 f
泡一杯茶很容易。首先需要把水烧开。\
在等待期间拿一个杯子并把茶包放进去。\
一旦水足够热就把它倒在茶包上。\
等待一会儿让茶叶浸泡。几分钟后取出茶包。\
如果您愿意可以加一些糖或牛奶调味。\
就这样您可以享受一杯美味的茶了。prompt f
您将获得由三个引号括起来的文本。\
如果它包含一系列的指令则需要按照以下格式重新编写这些指令第一步 - ...
第二步 - …
…
第N步 - …如果文本中不包含一系列的指令则直接写“未提供步骤”。
\\\{text_1}\\\response get_completion(prompt)
print(Text 1 的总结:)
print(response)
Text 1 的总结:
第一步 - 把水烧开。
第二步 - 拿一个杯子并把茶包放进去。
第三步 - 把烧开的水倒在茶包上。
第四步 - 等待几分钟让茶叶浸泡。
第五步 - 取出茶包。
第六步 - 如果需要加入糖或牛奶调味。
第七步 - 就这样您可以享受一杯美味的茶了。
提供少量示例。“Few-shot” prompting即在要求模型执行实际任务之前给模型一两个已完成的样例让模型了解我们的要求和期望的输出样式。
prompt f
您的任务是以一致的风格回答问题。孩子: 请教我何为耐心。祖父母: 挖出最深峡谷的河流源于一处不起眼的泉眼最宏伟的交响乐从单一的音符开始最复杂的挂毯以一根孤独的线开始编织。孩子: 请教我何为韧性。response get_completion(prompt)
print(response)
指定回答的步骤和格式。
prompt_2 f
1-用一句话概括下面用括起来的文本。
2-将摘要翻译成英语。
3-在英语摘要中列出每个名称。
4-输出一个 JSON 对象其中包含以下键English_summarynum_names。请使用以下格式
文本要总结的文本
摘要摘要
翻译摘要的翻译
名称英语摘要中的名称列表
输出 JSON带有 English_summary 和 num_names 的 JSONText: {text}response get_completion(prompt_2)
print(\nprompt 2:)
print(response)
幻觉问题
虚假知识模型偶尔会生成一些看似真实实则编造的知识在开发与应用语言模型时需要注意它们可能生成虚假信息的风险。尽管模型经过大规模预训练掌握了丰富知识但它实际上并没有完全记住所见的信息难以准确判断自己的知识边界可能做出错误推断。若让语言模型描述一个不存在的产品,它可能会自行构造出似是而非的细节。这被称为“幻觉”(Hallucination)是语言模型的一大缺陷。
如何解决幻觉问题
Prompt中加入限制词外挂知识库 迭代优化
Prompt 开发也采用类似循环迭代的方式逐步逼近最优。具体来说有了任务想法后可以先编写初版 Prompt注意清晰明确并给模型充足思考时间。运行后检查结果如果不理想则分析 Prompt 不够清楚或思考时间不够等原因做出改进再次运行。如此循环多次终将找到适合应用的 Prompt。 优化提示直接加入长度限制词使用最多50个词 当在 Prompt 中设置长度限制要求时语言模型生成的输出长度不总能精确符合要求但基本能控制在可接受的误差范围内。比如要求生成50词的文本语言模型有时会生成60词左右的输出但总体接近预定长度。这是因为语言模型在计算和判断文本长度时依赖于分词器而分词器在字符统计方面不具备完美精度。目前存在多种方法可以尝试控制语言模型生成输出的长度比如指定语句数、词数、汉字数等。 根据回复不断的增加限制词。 可以让模型返回表格。
文本摘要
多条文本放在一个list里面然后for遍历
reviews [review_1, review_2, review_3, review_4]for i in range(len(reviews)):prompt f你的任务是从电子商务网站上的产品评论中提取相关信息。请对三个反引号之间的评论文本进行概括最多20个词汇。评论文本: {reviews[i]}response get_completion(prompt)print(f评论{i1}: , response, \n)
文本转换
下面是一个示例展示了如何使用一个Prompt同时对一段文本进行翻译、拼写纠正、语气调整和格式转换等操作。
prompt f
针对以下三个反引号之间的英文评论文本
首先进行拼写及语法纠错
然后将其转化成中文
再将其转化成优质淘宝评论的风格从各种角度出发分别说明产品的优点与缺点并进行总结。
润色一下描述使评论更具有吸引力。
输出结果格式为
【优点】xxx
【缺点】xxx
【总结】xxx
注意只需填写xxx部分并分段输出。
将结果输出成Markdown格式。
{text}response get_completion(prompt)
display(Markdown(response))
温度系数
大语言模型中的 “温度”(temperature) 参数可以控制生成文本的随机性和多样性。temperature 的值越大语言模型输出的多样性越大temperature 的值越小输出越倾向高概率的文本。
# 第一次运行
prompt f
你是一名客户服务的AI助手。
你的任务是给一位重要的客户发送邮件回复。
根据通过“”分隔的客户电子邮件生成回复以感谢客户的评价。
如果情感是积极的或中性的感谢他们的评价。
如果情感是消极的道歉并建议他们联系客户服务。
请确保使用评论中的具体细节。
以简明和专业的语气写信。
以“AI客户代理”的名义签署电子邮件。
客户评价{review}
评论情感{sentiment}response get_completion(prompt, temperature0.7)
print(response)
聊天机器人
大型语言模型带给我们的激动人心的一种可能性是我们可以通过它构建定制的聊天机器人Chatbot而且只需很少的工作量。在这一章节的探索中我们将带你了解如何利用会话形式与具有个性化特性或专门为特定任务或行为设计的聊天机器人进行深度对话。
单轮对话即 get_completion 其适用于单轮对话。我们将 Prompt 放入某种类似用户消息的对话框中get_completion_from_messages 传入一个消息列表。这些消息可以来自大量不同的角色 (roles) 我们会描述一下这些角色。
import openai# 下文第一个函数即tool工具包中的同名函数此处展示出来以便于读者对比
def get_completion(prompt, modelgpt-3.5-turbo):messages [{role: user, content: prompt}]response openai.ChatCompletion.create(modelmodel,messagesmessages,temperature0, # 控制模型输出的随机程度)return response.choices[0].message[content]def get_completion_from_messages(messages, modelgpt-3.5-turbo, temperature0):response openai.ChatCompletion.create(modelmodel,messagesmessages,temperaturetemperature, # 控制模型输出的随机程度)
# print(str(response.choices[0].message))return response.choices[0].message[content]
问答
# 中文
messages [
{role:system, content:你是一个像莎士比亚一样说话的助手。},
{role:user, content:给我讲个笑话},
{role:assistant, content:鸡为什么过马路},
{role:user, content:我不知道} ]response get_completion_from_messages(messages, temperature1)
print(response)
上下文提示
# 中文
messages [
{role:system, content:你是个友好的聊天机器人。},
{role:user, content:Hi, 我是Isa},
{role:assistant, content: Hi Isa! 很高兴认识你。今天有什么可以帮到你的吗?},
{role:user, content:是的你可以提醒我, 我的名字是什么?} ]
response get_completion_from_messages(messages, temperature1)
print(response)
订餐机器人
这个机器人将被设计为自动收集用户信息并接收来自比萨饼店的订单
def collect_messages(_):# panels 就是记录上下文对话pn.Row()prompt inp.value_inputinp.value context.append({role:user, content:f{prompt}})response get_completion_from_messages(context) context.append({role:assistant, content:f{response}})panels.append(pn.Row(User:, pn.pane.Markdown(prompt, width600)))panels.append(pn.Row(Assistant:, pn.pane.Markdown(response, width600, style{background-color: #F6F6F6})))return pn.Column(*panels)
这个函数将收集我们的用户消息以便我们可以避免像刚才一样手动输入。这个函数将从我们下面构建的用户界面中收集 Prompt 然后将其附加到一个名为上下文( context )的列表中并在每次调用模型时使用该上下文。模型的响应也会添加到上下文中所以用户消息和模型消息都被添加到上下文中上下文逐渐变长。这样模型就有了需要的信息来确定下一步要做什么。