网站开发主题,推广网app下载,页面设计师,专业汽车网站目录
1、给定身份
1.1、基础代码
1.2、聊天机器人
2、构建上下文
3、订餐机器人
3.1、窗口可视化
3.2、构建机器人
3.3、创建JSON摘要 利用会话形式#xff0c;与具有个性化特性#xff08;或专门为特定任务或行为设计#xff09;的聊天机器人进行深度对话。
在 Ch…目录
1、给定身份
1.1、基础代码
1.2、聊天机器人
2、构建上下文
3、订餐机器人
3.1、窗口可视化
3.2、构建机器人
3.3、创建JSON摘要 利用会话形式与具有个性化特性或专门为特定任务或行为设计的聊天机器人进行深度对话。
在 Chat 网页界面中我们的消息称为用户消息而ChatGPT 的消息称为助手消息。
但在构建聊天机器人时在发送了系统消息之后您的角色可以仅作为用户 (user) 也可以在用户和助手 (assistant) 之间交替从而提供对话上下文。
1、给定身份
第一条消息中我们以系统身份发送系统消息 (system message) 它提供了一个总体的指示。
系统消息则有助于设置助手的行为和角色并作为对话的高级指示。
1.1、基础代码
import openaiopenai.api_key EMPTY
openai.api_base http://192.168.1.1:20000/v1def get_completion_from_messages(messages, modelchatglm3-6b, 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)1.2、聊天机器人
系统消息来定义“你是一个友好的聊天机器人”第一个用户消息“嗨我叫Isa。”
# 中文
messages [
{role:system, content:你是个友好的聊天机器人。},
{role:user, content:Hi, 我是Isa。} ]response get_completion_from_messages(messages, temperature1)
print(response)你好Isa很高兴认识你。有什么我可以帮忙的吗 2、构建上下文
当我们想gpt询问一个它不知道的问题由于缺少上下文他无法给出一个正确的答案。
messages [{role:system, 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) 当然可以你的名字是Isa。有什么我可以帮你记住的吗 3、订餐机器人
3.1、窗口可视化
pip install panelimport panel as pn
import numpy as np
import pandas as pd# 创建随机数据
np.random.seed(0)
data pd.DataFrame(np.random.randn(100, 2), columns[A, B])# 创建一个散点图
scatter pn.pane.DataFrame(data, width800, height400)# 显示散点图
scatter.show() Launching server at http://localhost:62221 3.2、构建机器人
# 中文
import panel as pn # GUI
import openaiopenai.api_key EMPTY
openai.api_base http://192.168.1.1:20000/v1def get_completion_from_messages(messages, modelchatglm3-6b, temperature0.7):response openai.ChatCompletion.create(modelmodel,messagesmessages,temperaturetemperature, # 控制模型输出的随机程度)# print(str(response.choices[0].message))return response.choices[0].message[content]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, css_classes[custom-markdown])))return pn.Column(*panels)# 在适当的位置添加自定义CSS
html_code
style
.custom-markdown {background-color: #F6F6F6;
}
/stylepn.extension(raw_css[html_code])panels [] # collect displaycontext [{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),
)dashboard.show()
页面显示效果及部分回复内容 3.3、创建JSON摘要
temperature0 每次生成相同内容保证结果可预测
# context 参考 3.2内容
messages context.copy()
messages.append({role:system, content:创建上一个食品订单的 json 摘要。\逐项列出每件商品的价格字段应该是 1) 披萨包括大小 2) 配料列表 3) 饮料列表包括大小 4) 配菜列表包括大小 5) 总价你应该给我返回一个可解析的Json对象包括上述字段},
)response get_completion_from_messages(messages, temperature0)
print(response)
{披萨: {大尺寸: 15.0,小尺寸: 12.0},配料: [{名称: 切片奶酪,大小: 大尺寸},{名称: 番茄酱,大小: 小尺寸}],饮料: [{名称: 可乐,大小: 大尺寸},{名称: 果汁,大小: 小尺寸}],配菜: [{名称: 洋葱,大小: 大尺寸},{名称: 蘑菇,大小: 小尺寸}],总价: 42.0
}