大模型-文本扩展&聊天机器人

文本扩展

定制客户邮件

我们将根据客户评价和情感撰写自定义电子邮件响应。因此,我们将给定客户评价和情感,并生成自定义响应即使用 LLM 根据客户评价和评论情感生成定制电子邮件。

review = f"""
他们在11月份的季节性销售期间以约49美元的价格出售17件套装,折扣约为一半。\
但由于某些原因(可能是价格欺诈),到了12月第二周,同样的套装价格全都涨到了70美元到89美元不等。\
11件套装的价格也上涨了大约10美元左右。\
虽然外观看起来还可以,但基座上锁定刀片的部分看起来不如几年前的早期版本那么好。\
不过我打算非常温柔地使用它,例如,\
我会先在搅拌机中将像豆子、冰、米饭等硬物研磨,然后再制成所需的份量,\
切换到打蛋器制作更细的面粉,或者在制作冰沙时先使用交叉切割刀片,然后使用平面刀片制作更细/不粘的效果。\
制作冰沙时,特别提示:\
将水果和蔬菜切碎并冷冻(如果使用菠菜,则轻轻煮软菠菜,然后冷冻直到使用;\
如果制作果酱,则使用小到中号的食品处理器),这样可以避免在制作冰沙时添加太多冰块。\
大约一年后,电机发出奇怪的噪音,我打电话给客服,但保修已经过期了,所以我不得不再买一个。\
总的来说,这些产品的总体质量已经下降,因此它们依靠品牌认可和消费者忠诚度来维持销售。\
货物在两天内到达。
"""
prompt = f"""
你是一位客户服务的AI助手。
你的任务是给一位重要客户发送邮件回复。
根据客户通过“```”分隔的评价,准确判断用户的情感并且生成回复以感谢客户的评价。提醒模型使用评价中的具体细节
用简明而专业的语气写信。
作为“AI客户代理”签署电子邮件。
请首先输出用户情感,以标准邮件格式输出回复邮件
客户评论:
```{review}```
"""

使用温度系数

“温度”将允许我们改变模型响应的多样性。温度可以视为模型探索或随机性的程度。

response = get_completion(prompt,temperature=0.7)

聊天机器人

对话聊天

聊天模型实际上是组装成以一系列消息作为输入,并返回一个模型生成的消息作为输出的
辅助函数

def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=temperature, # 控制模型输出的随机程度
    )
#     print(str(response.choices[0].message))
    return response.choices[0].message["content"]
messages =  [  
{
   'role':'system', 'content':'You are friendly chatbot.'},
{
   'role':'user', 'content':'Hi, my name is Isa'},
{
   'role':'assistant', 'content': "Hi Isa! It's nice to meet you. \
Is there anything I can help you with today?"},
{
   'role':'user', 'content':'Yes, you can remind me, What is my name?'}  ]
response = get_completion_from_messages(messages, temperature=1)
print(response)

订餐机器人

我们构建一个 “订餐机器人”,需要它自动收集用户信息,接受比萨饼店的订单。
下面这个函数将收集我们的用户消息,以便我们可以避免手动输入,就像我们在刚刚上面做的那样。这个函数将从我们下面构建的用户界面中收集提示,然后将其附加到一个名为上下文的列表中,并在每次调用模型时使用该上下文。模型的响应也会被添加到上下文中,所以模型消息和用户消息都被添加到上下文中,因此上下文逐渐变长。这样,模型就有了需要的信息来确定下一步要做什么。

def collect_messages(_):
    prompt = inp.value_input
    inp.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, width=600)))
    panels.append(
        pn.Row('Assistant:', pn.pane.Markdown(response, width=600, style={
   'background-color': '#F6F6F6'})))
 
    return pn.Column(*panels)
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 messages


inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…')
button_conversation = pn.widgets.Button(name="Chat!")

interactive_conversation = pn.bind(collect_messages, button_conversation)

dashboard = pn.Column(
    inp,
    pn.Row(button_conversation),
    pn.panel(interactive_conversation, loading_indicator=True, height=300),
)
messages =  context.copy()
messages.append(
{
   'role':'system', 'content':'创建上一个食品订单的 json 摘要。\
逐项列出每件商品的价格,字段应该是 1) 披萨,包括大小 2) 配料列表 3) 饮料列表,包括大小 4) 配菜列表包括大小 5) 总价'},
)

response = get_completion_from_messages(messages, temperature=0)
print(response)

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 15:02:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 15:02:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 15:02:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 15:02:03       20 阅读

热门阅读

  1. 【美团】无人机-大数据开发工程师

    2024-01-30 15:02:03       39 阅读
  2. css 让 width = (100% - 30px)

    2024-01-30 15:02:03       40 阅读
  3. udp(无连接)客户端和服务端代码

    2024-01-30 15:02:03       48 阅读
  4. 快捷键:IDEA 清理无效导入依赖

    2024-01-30 15:02:03       35 阅读
  5. STL之stack 【栈】

    2024-01-30 15:02:03       29 阅读
  6. VA_LIST可变参数列表使用学习

    2024-01-30 15:02:03       33 阅读
  7. 正则表达式 grep

    2024-01-30 15:02:03       31 阅读
  8. STM32 1-5

    STM32 1-5

    2024-01-30 15:02:03      34 阅读
  9. 【iOS ARKit】光照效果--光源

    2024-01-30 15:02:03       35 阅读