AI大模型探索之路-基础篇3:构建Chat Completions驱动的多轮对话机器人

文章目录
前言
一、初步测试
二、读取本地知识库
三、问答测试
四、实现多轮对话
总结
前言
在上一篇《AI大模型应用开发篇之Chat Completions API》中熟悉了 Chat Completions API相关特点和各种场景的使用样例; 在本章中,我们将深入探讨如何利用ChatCompletion API的使用技巧来构建一个多轮对话机器人。我们主要关注于message参数中的system属性,通过它可以设置知识背景,从而让大模型浏览本地知识库内容。将本地知识库内容设定为System role的知识背景,我们可以实现一个多轮对话机器人的案例。这种方法为我们提供了一个强大的工具,可以用于各种应用中,如客服、教育等。

一、初步测试
为了验证大模型对新知识的理解和回答能力,我们先向其咨询了一个未经训练且不知道的内容。结果显示,大模型的回答结果并不完全真实,基本上都是它根据已有的知识编写出来的。这表明,虽然大模型具有强大的语言生成能力,但在面对未知领域时,仍然存在一定的局限性。

from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "null"},
    {"role": "user", "content": '你知道《地球特派员》的电影里角色有哪些吗?'}
  ]
)
# 输出结果
response.choices[0].message.content  

# 可以发现输出的内容都是大模型自己编出来的
'《地球特派员》是一部动画电影,也称为《Men in Black》。以下是电影中的一些角色:\n\n1. Agent K (凯)\n2. Agent J (杰)\n3. Frank the Pug (弗兰克)\n4. Agent L (艾丽)\n5. Zed (齐德)\n6. Edgar the Bug (埃德加)\n7. Laurel Weaver (劳瑞)\n8. Serleena (赛琳娜)\n\n这些是电影中比较重要的主要角色,还有其他一些次要角色和外星人角色。'


二、读取本地知识库
为了解决这个问题,我们开始读取本地服务器提前准备好的知识库内容。这些内容涵盖了各种领域的专业知识和信息,可以为大模型提供丰富的知识背景。通过将这些知识库内容整合到系统中,我们可以让大模型更好地理解和回答用户的问题。

with open('地球特派员.txt', 'r', encoding='utf-8') as f:
    chatCompletion_kg = f.read()
# 输出 chatCompletion_kg
'电影:地球特派员 Elio\n导演: 阿德里安·莫利纳\n主演: 约纳斯·基布雷亚布 / 亚美莉卡·费雷拉\n类型: 喜剧 / 科幻 / 动画 / 冒险\n上映日期: 2024-03-01(美国)\n这是皮克斯宣布了第 28 部故事片,将聚焦于一个 11 岁的男孩(当然叫 Elio),他无意中被传送到太空,被误认为是另一个星球上的地球大使。



三、问答测试
接下来,我们以本地知识库作为背景知识,再次让大模型回答相关问题。经过测试,我们发现大模型的基本回答已经正确无误。这证明了我们的方法有效性,也展示了大模型在获取新知识后的强大潜力。

response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": chatCompletion_kg},
    {"role": "user", "content": '你知道《地球特派员》的电影里角色有哪些吗?'}
  ]
)
#输出 response.choices[0].message.content
'当然!《地球特派员》电影中的主要角色包括:\n\n1. Elio:主角,一个 11 岁的男孩,被误认为是地球大使而被传送到另一个星球上。\n2. 太空探险家 Zara:另一个星球的居民,是 Elio 在外太空中遇到的重要角色。\n3. 机器人小助手 R1C4:协助 Elio 在另一个星球上生存和应对挑战的机器人伙伴。\n4. 地球特派员团队:一群来自不同星球的使者,与 Elio 一起合作展开冒险活动。\n\n这些角色将在影片中展开一系列有趣、惊险和感人的故事情节。'



四、实现多轮对话
最后,我们利用本地知识库和循环处理技术实现了简单的多轮对话效果。通过这种方式,用户可以与机器人进行自然而流畅的对话,就像与真人交流一样。这不仅提高了用户体验,也为我们的机器人增添了更多的实用性和趣味性。

def chat_with_model(messages):
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    return response.choices[0].message.content

# 测试函数
def gpt_chat_with_model():
    # 初始问候
    messages = [
        {"role": "system", "content": chatCompletion_kg}, ##添加本地知识库
        {"role": "user", "content": "你好!"},
        {"role": "assistant", "content": "你好!我是一个AIGC智能助理,有什么问题我可以帮助你?"}
    ]
    print(chat_with_model(messages))

    # 进行对话
    while True:
        user_input = input("用户:")
        messages.append({"role": "user", "content": user_input})
        assistant_response = chat_with_model(messages)
        messages.append({"role": "assistant", "content": assistant_response})
        print("助理:" + assistant_response)

        # 判断是否结束对话
        if user_input.lower() == 'quit':
            break


调用gpt_chat_with_model()

问题如下:
问题1:请问地球特派员的导演是谁?
问题2:请问地球特派员的主演是谁?
问题3:请问地球特派员的什么时候上映?
问题4:请问地球特派员是什么类型的电影?
问题5:quit

回复如下:
助理:这部电影的导演是阿德里安·莫利纳(Adrian Molina)。
助理:《地球特派员》的主演包括约纳斯·基布雷亚布(Jonas Kühnemann)和亚美莉卡·费雷拉(Amarilys Ferreira)。
助理:《地球特派员》预计于2024年3月1日在美国上映。
助理:《地球特派员》是一部喜剧、科幻、动画和冒险题材相结合的电影。
助理:如有任何其他问题,欢迎随时向我提问!祝您有美好的一天!如果需要帮助,请随时回来。再见!

总结
在本章的探索和实践中,我们成功地利用了ChatCompletion API与本地知识库相结合的方法,构建了一个能够进行多轮对话的机器人。这不仅证实了AI技术在处理复杂交互方面的灵活性,也展示了其在实际应用中的广泛潜力。通过精心设计的系统角色知识和对话流程,我们的机器人能够在多个回合中维持与用户的自然对话,提供了一种新颖且有效的解决方案,尤其适用于客户服务和教育辅导等场景。

随着未来技术的持续进步,我们预见这类机器人将会变得更加智能化和自动化。他们将更好地理解用户意图,提供更为精准的信息,并逐渐承担起更多复杂的任务。这不仅会极大地提升个人和企业的效率,也将使人们的日常生活更加便捷和愉快。

此外,这一技术的进步还将推动相关伦理和隐私保护措施的发展,确保在增强AI能力的同时,用户的安全和权益得到充分的尊重和保护。总之,这一案例不仅为我们打开了探索人工智能无限可能的大门,也为未来的技术创新和应用提供了坚实的基础。我们期待着这些智能机器人在未来不断进化,成为人类生活中不可或缺的伙伴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值