腾讯云AI代码助手编程挑战赛——AI办公必备小达人

重要更新⬇️⬇️⬇️:

感谢大家的关注,本项目已经获奖。中奖名单参见:腾讯云 AI 代码助手编程挑战赛圆满落幕,获奖名单公布!

奖项:

项目源代码公开链接⬇️⬇️⬇️

人工智能+【PyQt5混元大模型】+【桌面聊天应用】+【效率辅助工具】资源

目录

参赛原因

创作前

创作中

创建Pycharm项目

  安装插件

登陆账号

打开对话框

开始多轮对话

作品介绍

技术架构

实现过程

开发环境

开发流程

关键技术解析

腾讯云AI代码助手起到的“关键”助力点

使用说明

启动应用

发送消息

接收回复

主题切换与背景自定义

聊天记录分享与下载

消息交互操作

效果展示

界面展示

功能效果

总结


参赛原因

        CV算法岗,5年AI从业经验。经常写博客记录项目。几乎每天都会用到一些大厂生产的对话机器人。也想自己制作一款对话助手。感谢@CSDN@腾讯❗


创作前

观看了比赛介绍和要求。老师讲的很详细👍🏻

创作中

        下面开始正式记录我的比赛整个过程。

创建Pycharm项目

由于工作中,我更常用Python语言。

  安装插件

打开Pycharm,点击File(文件),然后选择Settings,选择Plugins,输入“腾讯AI”,并点击Install进行安装:

安装完成后,点击Restart IDE,重启Pycharm。      

登陆账号

重启后,就会看到如下提示,我们进行登陆。

进入登陆界面,使用微信进行登陆。

打开对话框

登陆成功后,点击腾讯AI代码助手图标,弹出的选项中,点击:打开对话。

就会看到如下右侧弹出的对话界面:

输入问题:创建一个前端工程,期望可以实现类似chatgpt那样的对话效果。要详细。后端用python。就会给出回复的答案。

开始多轮对话

具体的对话过程就不在这里展示了,因为实在是太多了!!!!调了很多次,才得到我想要的代码。这部分,需要大家有耐心!!!不断的找bug,调试,修改!!!


作品介绍

简单说,就是一个基于大模型的聊天助手应用,用户可以通过图形界面与AI进行交互。我开发的这个应用的主要功能包括:

  • 消息发送与接收:用户在输入框中输入消息后点击发送,AI会根据消息内容生成回复,并在聊天窗口中显示。

  • 消息格式处理:用户发送的消息会进行HTML编码以保留格式,包括换行等。AI回复的消息会先转换为Markdown格式,再进行一系列处理以适配显示格式。

  • 主题切换与背景自定义:用户可以通过菜单栏切换聊天窗口的主题颜色,如浅色、深色、浅橙等,还可以自定义背景图片。

  • 聊天记录分享与下载:用户可以将聊天记录以PDF或txt格式保存到本地,方便分享或留存。

  • 消息加载提示:当AI正在生成回复时,会显示加载气泡提示用户正在思考中。

  • 消息交互操作:AI回复的消息下方有复制、点赞、点踩等按钮,用户可以对消息进行相应操作。


技术架构

该作品的技术架构主要涉及以下几个方面:

  • 前端界面:使用PyQt5框架构建图形用户界面,包括聊天窗口、输入框、发送按钮、停止按钮等控件。通过QWebEngineView加载本地的HTML页面来展示聊天内容,利用HTML、CSS和JavaScript实现消息的动态展示、格式处理以及与后端的交互逻辑。

  • 后端逻辑:主要通过Python代码实现。利用OpenAI库与腾讯云的AI大模型接口进行通信,发送用户消息并接收AI回复。创建了AIThread类继承自QThread,用于异步处理AI的回复,避免阻塞主线程。同时,还实现了消息的编码、解码、格式转换等逻辑。

  • 数据存储:聊天记录以列表的形式存储在内存中,每个消息包含发送者和消息文本。当用户需要保存聊天记录时,会将这些数据写入到本地文件中。

  • 网络通信:通过OpenAI库调用腾讯云AI大模型的API接口,发送HTTP请求并接收响应数据。在请求中携带用户消息、模型参数等信息,在响应中获取AI生成的回复内容。

实现过程

开发环境

  • 编程语言:Python,用于编写后端逻辑和与AI接口交互的代码。

  • 前端框架:PyQt5,用于构建图形用户界面。

  • 网页技术:HTML、CSS、JavaScript,用于实现聊天内容的展示和交互逻辑。

  • 依赖库:包括PyQt5、openai、markdown2、beautifulsoup4、reportlab等。

  • 功能模块:界面构建、AI接口调用、消息格式转换、HTML解析和PDF生成等功能。

  • 开发工具:PyCharm代码编辑器,用于编写和调试代码。

开发流程

  1. 需求分析:明确聊天助手应用的功能需求,包括消息发送接收、格式处理、主题切换、聊天记录保存等。

  2. 界面设计:使用PyQt5设计图形用户界面,包括窗口布局、控件样式等。同时,设计本地HTML页面的样式,展示聊天内容。

  3. 后端逻辑实现

    • 初始化OpenAI客户端,配置API密钥和基础URL。

    • 创建ChatWindow类,实现消息发送、接收、格式处理等核心功能。在发送消息时,将消息进行HTML编码后发送给AI,并启动AIThread处理AI回复。

    • 实现AIThread类,继承自QThread,用于异步接收AI回复。在run方法中发送请求给AI接口,接收流式响应数据,并通过信号将回复内容传递给主线程。

    • 实现消息格式转换逻辑,如将AI回复的文本转换为Markdown格式,再进行一系列处理以适配显示格式。

  4. 功能拓展

    • 主题切换功能,通过菜单栏选项切换聊天窗口的主题颜色。

    • 背景自定义功能,允许用户选择本地图片作为聊天窗口的背景。

    • 聊天记录分享与下载功能,将聊天记录保存为PDF或txt文件。

  5. 测试与优化:对应用进行测试,包括功能测试、界面测试、性能测试等,发现并修复存在的问题。同时,对代码进行优化,提高应用的稳定性和响应速度。

关键技术解析

  • PyQt5图形界面开发:利用PyQt5的丰富控件和布局管理功能,构建出直观易用的聊天窗口界面。例如,通过QMainWindow、QWidget、QVBoxLayout、QHBoxLayout等控件和布局类,合理安排输入框、按钮、聊天内容展示区域等的位置和大小。同时,使用QWebEngineView加载本地HTML页面,实现聊天内容的富文本展示效果。

  • 异步处理与多线程:创建AIThread类继承自QThread,用于异步处理AI的回复。在用户发送消息后,启动AIThread,它会在后台与AI接口进行通信并接收回复,不会阻塞主线程,从而保证界面的流畅性。通过信号和槽机制,将AI回复的内容传递给主线程进行处理和展示。

  • Message消息格式处理:对用户发送的消息进行HTML编码,保留消息中的格式信息,如换行等。对于AI回复的消息,先将其转换为Markdown格式,再进行一系列处理,如替换HTML标签、处理代码块等,使其能够以合适的格式在聊天窗口中展示。

  • 网络通信与API调用:使用OpenAI库调用腾讯云AI大模型的API接口,发送HTTP请求并接收响应数据。在请求中设置模型参数、用户消息等信息,在响应中获取AI生成的回复内容。通过流式响应的方式,实时获取AI回复的每个片段,并及时展示给用户。

  • PDF生成:利用reportlab库实现聊天记录的PDF生成功能。根据聊天记录数据,创建PDF文档的布局和样式,将每条消息以合适的格式添加到PDF中,包括文本、代码块等。最终生成的PDF文件可以方便用户保存和分享聊天记录。

腾讯云AI代码助手起到的“关键”助力点

代码生成

  • 基础代码框架搭建:能根据需求和描述,快速生成相关代码片段,如在实现异步处理AI回复的AIThread类时,提供多线程处理的模板代码,帮助快速搭建类的框架结构,包括初始化方法、run方法等,减少手动编写基础代码的工作量。
  • 逻辑优化建议:对于代码中的逻辑优化,如更高效地处理流式响应数据、合理使用信号和槽机制等,也能给出建议,提升代码的性能和可读性。

接口调用与参数配置

  • 详细接口文档与示例代码:在调用腾讯云AI大模型接口时,提供详细的接口文档和示例代码,让我能够快速了解接口的请求方法、参数列表、响应格式等信息,如API密钥、基础URL、模型名称等,避免因参数配置错误而导致接口调用的失败。
  • 接口更新提醒:能根据接口的更新情况,及时提醒我修改代码中的相关部分,确保了接口调用的兼容性和稳定性。

功能实现

  • 多种实现思路和方案:对于一些复杂的功能实现,如聊天记录的PDF生成,提供多种实现思路和方案。例如,给出使用reportlab库生成PDF的详细步骤,包括如何设置PDF的页面布局、如何添加文本和图片元素、如何处理特殊格式的文本等,加快开发进度。

错误排查

  • 快速定位问题:通过分析代码中的错误信息和上下文,帮助我快速定位问题所在。
  • 代码审查与修复建议:对于代码中的逻辑错误,通过代码审查功能,发现潜在的问题并给出修复建议,提高代码的健壮性和可靠性。

readme文档生成

  • 自动生成文档:腾讯云AI代码助手能够根据代码结构和功能,自动生成清晰、详细的readme文档,帮助我更好地理解和使用代码。

代码自动注释

  • 智能生成注释:为选中的代码段生成详细的注释和解释,方便我理解代码逻辑和功能,提高代码的可读性和可维护性。

使用说明【同项目ReadMe.md文档】

项目简介

本项目是一个基于PyQt5和OpenAI的聊天应用,用户可以与AI助手进行交互,并通过网页界面查看聊天记录。应用支持主题切换和自定义背景图片。

功能特性

  • 实时聊天:用户可以与AI助手进行实时对话。
  • 主题切换:支持浅色、深色、浅橙、浅蓝、浅绿五种主题。
  • 自定义背景:用户可以选择图片作为聊天窗口的背景。
  • 聊天记录分享与下载:支持将聊天记录保存为TXT或PDF文件,并分享给他人。

安装

conda创建并激活环境:

conda create -n ChatTengXunAi python=3.9
conda activate ChatTengXunAi

使用pip一键安装依赖:

pip install -r requirements.txt

确保你有OpenAI的API密钥,并在代码中正确设置。

使用方法

  1. 运行应用:
python main.py
  1. 在聊天窗口中输入消息,按回车发送。

  2. 点击设置菜单可以切换主题和设置自定义背景。

  3. 聊天记录可以分享或下载为TXT或PDF文件。

部分依赖说明

  • PyQt5: 用于创建GUI界面。
  • OpenAI Python SDK: 用于与AI助手通信。
  • reportlab: 用于生成PDF文件。
  • markdown2: 用于处理Markdown格式的消息。
  • BeautifulSoup: 用于解析HTML内容。

许可证

MIT许可证。

效果展示

界面展示

  • 主界面:启动应用后,展示的是聊天主界面,包含聊天内容展示区域、输入框、发送按钮等。界面简洁明了,方便用户进行聊天操作。

  • 主题切换:通过菜单栏切换不同主题后,聊天窗口的背景颜色、文字颜色等会相应改变,如浅色主题、深色主题等,满足用户不同的视觉偏好。

  • 背景自定义:设置自定义背景后,聊天窗口会以所选图片为背景,同时添加半透明遮罩层以提高文字可读性,使界面更具个性化。

功能效果

  • 消息发送与接收:用户发送消息后,AI能快速生成并回复消息,消息以不同颜色和样式区分展示在聊天窗口中,用户消息靠右显示,AI回复靠左显示。

消息格式处理:AI回复的消息中包含的代码块、列表等格式能够得到较好展示,代码块有高亮效果和复制按钮,方便用户查看和使用。

聊天记录分享与下载:分享聊天记录生成的PDF文件中,消息内容按顺序排列,格式整齐,包含发送者信息和消息文本,方便用户阅读和分享。

  • 消息交互操作:点击AI回复消息下方的点赞、点踩或复制按钮后,会立即执行相应操作,如复制消息内容后,会弹出复制成功的提示。

总结

到此为止,一个对话机器人项目就制作完成,不得不说,腾讯云AI代码助手还是很不错的,大家快去试试吧!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐