Python课程设计:智能聊天机器人

最近作者在课设周,本学期的学的是C++面向对象程序设计,课程设计题目里有一个标题名为智能聊天机器人的一个课设题目

智能聊天机器人

题目描述:

设计并实现一个智能聊天机器人,能够与用户进行自然语言对话。该聊天机器人应该能够回答常见问题、提供信息查询服务(如天气、新闻、时间等)。要求实现过程体现面向对象编程的基本思想。

详细要求:
一、基本功能(必做)
  1. 问答系统:
    • 预设一组常见问题及其答案,机器人能够准确回答这些问题。
    • 能够处理简单的对话上下文,理解用户的连续提问。
  2. 对话管理:
    • 实现对话状态管理,能够根据对话上下文调整回答。
    • 支持多轮对话,保持对话的连贯性。
  3. 信息查询服务:
    • 用户可以通过简单的自然语言提问,如今天的天气如何?现在几点了?等,机器人能够准确提供信息。
二、高级功能(选做,加分项)
  1. 聊天记录回顾:
    • 提供聊天记录回顾功能,用户可以查看历史对话。
  2. 编写单元测试:
    • 为相关模块编写单元测试,确保功能的正确性。
  3. 用户图形交互界面:
    • 提供一个图形用户界面(GUI)或控制台界面,允许用户输入问题并接收机器人的回答。
    • 界面设计应简单直观,便于用户使用。
  4. 主动思考的优化或添加的其他功能

看到这个标题,笔者脑子里就冒出来了人工智能,接下来就是python,随机就有了倒反天罡的想法,用py写c++课设,询问之后得到了老师的允许,所以便有了接下来的kk智能聊天机器人的诞生

设计结果展示如下
封装成了一个可执行的应用程序,有设计的ui图标

在桌面端的展示


 

如输入问题:北京时间,结果显示如下

 或者其他问题

 然后点击保存对话即可保存在conversation_history文件夹下,有详细的日期时间可供查阅历史

大模型的api

首先需要的就是找到一个合适的大模型的api,这里笔者用了讯飞星火的api

 领取api

 点击箭头所指的地方跳转到如下界面,注册认证之后就可以免费领取到Spark3.5 的api

 获取到接口信息

 领取完后找到了如下的的红色框所指的服务接口认证信息

部分代码书写

 ChatApplication部分的编写

class ChatApplication:
    def __init__(self, root, sparkAPI):
        self.sparkAPI = sparkAPI
        self.root = root
        self.root.title("KK智能聊天机器人")

        # 创建文本框以显示聊天记录
        self.chat_log = scrolledtext.ScrolledText(root, state='disabled', wrap='word')
        self.chat_log.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)

        # 创建输入框
        self.input_frame = tk.Frame(root)
        self.input_frame.pack(padx=10, pady=10, fill=tk.X, side=tk.BOTTOM)

        self.input_box = tk.Entry(self.input_frame, width=80)
        self.input_box.pack(side=tk.LEFT, padx=5, pady=5)
        self.input_box.bind("<Return>", self.send_message)

        self.send_button = tk.Button(self.input_frame, text="发送", command=self.send_message)
        self.send_button.pack(side=tk.RIGHT, padx=5, pady=5)

        self.save_button = tk.Button(self.input_frame, text="保存对话", command=self.save_history)
        self.save_button.pack(side=tk.RIGHT, padx=5, pady=5)

        # 初始化对话历史
        self.history = []

        # 在界面打开时显示欢迎信息
        self.display_message("KK", "****欢迎使用KK智能聊天机器人****")
        self.display_message("KK", "输入 exit 或 stop 可以结束对话并退出程序\n")

    def send_message(self, event=None):
        user_message = self.input_box.get()
        if not user_message.strip():
            return

        # 显示用户消息
        self.display_message("用户", user_message)

        # 清空输入框
        self.input_box.delete(0, tk.END)

        # 检查是否结束对话
        if "exit" in user_message or "stop" in user_message:
            self.root.quit()

        # 发送消息到SparkAPI
        self.chat_with_sparkapi(user_message)

    def display_message(self, sender, message):
        self.chat_log.config(state='normal')
        self.chat_log.insert(tk.END, f"{sender}: {message}\n")
        self.chat_log.yview(tk.END)
        self.chat_log.config(state='disabled')

    def chat_with_sparkapi(self, query):
        try:
            # 发送消息到 SparkAPI 并获取回复和更新的历史记录
            response, updated_history = self.sparkAPI.chat(query=query, history=self.history)

            # 更新历史记录(包含用户和助手的消息)
            self.history = updated_history

            # 显示助手回复
            self.display_message("KK", response)
        except Exception as e:
            messagebox.showerror("错误", f"聊天机器人发生错误: {str(e)}")

    def save_history(self):
        folder_path = "conversation_history"
        self.sparkAPI.save_history(self.history, folder_path)
        messagebox.showinfo("保存成功", "对话历史已保存")

    def run(self):
        self.root.mainloop()

 

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python+Transformer实现的智能聊天机器人项目完整源码+项目说明文档(毕设高分新项目).zip 该项目属于个人毕业设计,经导师的精心指导与严格评审获得高分通过的设计项目。主要针对计算机相关专业的教师、正在做毕设、课设的学生使用,也可作为项目实战演练,可直接作为课程设计、期末大作业、毕设等。 【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【备注】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于Python+Transformer实现的智能聊天机器人项目完整源码+项目说明文档(毕设高分新项目).zip 该项目属于个人毕业设计,经导师的精心指导与严格评审获得高分通过的设计项目。主要针对计算机相关专业的教师、正在做毕设、课设的学生使用,也可作为项目实战演练,可直接作为课程设计、期末大作业、毕设等。 基于Python+Transformer实现的智能聊天机器人项目完整源码+项目说明文档(毕设高分新项目).zip 该项目属于个人毕业设计,经导师的精心指导与严格评审获得高分通过的设计项目。主要针对计算机相关专业的教师、正在做毕设、课设的学生使用,也可作为项目实战演练,可直接作为课程设计、期末大作业、毕设等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值