网站建设 sam大叔排名三天上首页,seo优化推广招聘,建设工程职称 在哪个网站,虚拟主机如何搭建网站聊天机器人设计
以会话形式进行交互#xff0c;接受一系列消息作为输入#xff0c;并返回模型生成的消息作为输出。原本设计用于简便多轮对话#xff0c;但同样适用于单轮任务。
设计思路
个性化特性#xff1a;通过定制模型的训练数据和参数#xff0c;使机器人拥有特…聊天机器人设计
以会话形式进行交互接受一系列消息作为输入并返回模型生成的消息作为输出。原本设计用于简便多轮对话但同样适用于单轮任务。
设计思路
个性化特性通过定制模型的训练数据和参数使机器人拥有特定的个性化特点。专门任务设计针对特定任务或行为进行设计模型可针对该任务进行Fine-tune提高效果和准确性。
优势
简化开发减少了构建聊天机器人所需的工作量和复杂度。灵活性模型可根据需求进行定制适应不同的应用场景和用户需求。
应用场景
客服机器人提供自然、有效的客户支持。教育助手帮助学生解答问题、提供学习指导。娱乐休闲提供有趣的对话、游戏等娱乐内容。
利用大型语言模型构建定制聊天机器人为用户提供更加个性化、高效的交互体验是人工智能技术在对话系统领域的重要应用之一。
一、给定身份
**get_completion**** 方法**
适用于单轮对话。将 Prompt 放入类似用户消息的对话框中。
**get_completion_from_messages**** 方法**
传入一个消息列表这些消息可以来自不同的角色。第一条消息作为系统消息提供总体指示。系统消息用于设置助手的行为和角色引导其回应。可以想象系统消息在助手的耳边低语不让用户注意到。用户可以与助手交替提供对话上下文。
在构建聊天机器人时您的角色可以是
用户 (user)助手 (assistant)
这些方法有助于引导助手的回应并设置对话的上下文提供更加个性化和贴切的交互体验。
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]1.1 讲笑话
# 中文
messages [
{role:system, content:你是一个像莎士比亚一样说话的助手。},
{role:user, content:给我讲个笑话},
{role:assistant, content:鸡为什么过马路},
{role:user, content:我不知道} ]1.2 友好的聊天机器人
# 中文
messages [
{role:system, content:你是个友好的聊天机器人。},
{role:user, content:Hi, 我是Isa。} ]
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)三、订餐机器人
这个机器人将被设计为自动收集用户信息并接收来自比萨饼店的订单。
3.1 构建机器人
def collect_messages(_):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)现在我们将设置并运行这个 UI 来显示订单机器人。初始的上下文包含了包含菜单的系统消息在每次调用时都会使用。此后随着对话进行上下文也会不断增长。 !pip install panelCopy to clipboardErrorCopied 如果你还没有安装 panel 库用于可视化界面请运行上述指令以安装该第三方库。
# 中文
import panel as pn # GUI
pn.extension()panels [] # collect display context [{role:system, content:
你是订餐机器人为披萨餐厅自动收集订单信息。
你要首先问候顾客。然后等待用户回复收集订单信息。收集完信息需确认顾客是否还需要添加其他内容。
最后需要询问是否自取或外送如果是外送你要询问地址。
最后告诉顾客订单总金额并送上祝福。请确保明确所有选项、附加项和尺寸以便从菜单中识别出该项唯一的内容。
你的回应应该以简短、非常随意和友好的风格呈现。菜单包括菜品
意式辣香肠披萨大、中、小 12.95、10.00、7.00
芝士披萨大、中、小 10.95、9.25、6.50
茄子披萨大、中、小 11.95、9.75、6.75
薯条大、小 4.50、3.50
希腊沙拉 7.25配料
奶酪 2.00
蘑菇 1.50
香肠 3.00
加拿大熏肉 3.50
AI酱 1.50
辣椒 1.00饮料
可乐大、中、小 3.00、2.00、1.00
雪碧大、中、小 3.00、2.00、1.00
瓶装水 5.00
} ] # accumulate messagesinp pn.widgets.TextInput(valueHi, placeholderEnter text here…)
button_conversation pn.widgets.Button(nameChat!)interactive_conversation pn.bind(collect_messages, button_conversation)dashboard pn.Column(inp,pn.Row(button_conversation),pn.panel(interactive_conversation, loading_indicatorTrue, height300),
)dashboardCopy to clipboardErrorCopied运行如上代码可以得到一个点餐机器人下图展示了一个点餐的完整流程
3.2 创建JSON摘要
此处我们另外要求模型创建一个 JSON 摘要方便我们发送给订单系统。 因此我们需要在上下文的基础上追加另一个系统消息作为另一条指示 (instruction) 。我们说创建一个刚刚订单的 JSON 摘要列出每个项目的价格字段应包括
披萨包括尺寸配料列表饮料列表辅菜列表包括尺寸总价格。
此处也可以定义为用户消息不一定是系统消息。 请注意这里我们使用了一个较低的温度因为对于这些类型的任务我们希望输出相对可预测。
messages context.copy()
messages.append(
{role:system, content:
创建上一个食品订单的 json 摘要。\
逐项列出每件商品的价格字段应该是 1) 披萨包括大小 2) 配料列表 3) 饮料列表包括大小 4) 配菜列表包括大小 5) 总价
你应该给我返回一个可解析的Json对象包括上述字段},
)response get_completion_from_messages(messages, temperature0)
print(response)Copy to clipboardErrorCopied{披萨: {意式辣香肠披萨: {大: 12.95,中: 10.00,小: 7.00},芝士披萨: {大: 10.95,中: 9.25,小: 6.50},茄子披萨: {大: 11.95,中: 9.75,小: 6.75}},配料: {奶酪: 2.00,蘑菇: 1.50,香肠: 3.00,加拿大熏肉: 3.50,AI酱: 1.50,辣椒: 1.00},饮料: {可乐: {大: 3.00,中: 2.00,小: 1.00},雪碧: {大: 3.00,中: 2.00,小: 1.00},瓶装水: 5.00}
}Copy to clipboardErrorCopied我们已经成功创建了自己的订餐聊天机器人。你可以根据自己的喜好和需求自由地定制和修改机器人的系统消息改变它的行为让它扮演各种各样的角色赋予它丰富多彩的知识。让我们一起探索聊天机器人的无限可能性吧