腾讯云AI代码助手编程挑战赛-智能聊天助手

发布于:2025-02-10 ⋅ 阅读:(41) ⋅ 点赞:(0)

作品简介

本作品开发于腾讯云 AI 代码助手编程挑战赛,旨在体验腾讯云 AI 代码助手在项目开发中的助力。通过这一开发过程,体验到了 AI 辅助编程的高效性。

技术架构

前端: 使用 VUE3、TypeScript、TDesign 和 ElementUI 实现。
后端: 基于 Python 开发,集成了智谱大模型的 API,涵盖语言处理、图像理解和视频生成能力。

实现过程

开发过程

我想做的就是一个可以通过对话就可以满足用户所有需求的聊天工具,页面上不需要有多余的操作。目前可以分析用户的图片分析意图和视频生成意图,后续还可以加入一些联网的功能,比如搜索车次信息,天气信息等…

  1. 后端服务
    开发工具: PyCharm。
    大模型支持: 使用智谱的大语言模型、图像理解模型和视频生成模型。
    服务接口:
    流式对话接口: 支持实时返回普通对话结果。
    普通对话接口: 支持普通对话并一次性返回响应结果,同时支持图片理解和视频生成功能。用户可以上传图片并结合描述需求生成相应的结果。
  2. 前端开发
    开发工具: VSCode。
    前端页面:
    流式对话菜单: 基于 TDesign 组件构建,实现实时聊天页面功能。
    多模态对话菜单: 使用 ElementUI 实现,与流式对话菜单相比,增加了图片上传功能,支持结合图片和用户需求生成结果。

程序运行

后端
  1. 使用PyCharm打开项目
  2. 在终端执行命令pip install -r requirements.txt安装依赖
  3. 然后打开main文件点击启动按钮
    在这里插入图片描述
前端
  1. 使用VsCode打开项目
  2. 打开终端执行命令npm install安装依赖
  3. 依赖安装完成后执行命令npm run dev启动前端页面

node版本为v16.0.0

关键技术解析

  1. 生成消息类型判断:
  • 前端未加入返回消息类型的判断逻辑,服务端需要根据用户提问分析响应类型。
  • 解决方案: 单独调用一次语言模型,并基于 LangGPT 架构编写系统 prompt,从而精准判断调用的模型及其返回结果。
  1. 上传图片判断:
  • 用户问题可能无法直接体现与图片相关的意图。
  • 解决方案: 若检测到用户上传图片,服务端会自动拼接字段 “已上传图片”,帮助模型更准确地识别用户需求。
  1. 流式响应结果:
  • 服务端需循环返回响应内容,前端则动态接收并实时拼接展示,确保流畅的用户体验。

腾讯云AI代码助手的助力

背景
本人对 Python 不够熟练,TDesign 组件也是首次使用,开发中时常遇到想法难以实现的问题。
腾讯云 AI 代码助手在以下方面提供了显著帮助:

  1. 解决编码问题与提升效率:
  • 例如: 开发时需要为所有工具方法创建一个 ZhipuAI 客户端实例,但不清楚如何实现单例模式。AI 助手提供了解决方案,将实例提取到公共方法中。
  1. 初始化与优化代码:
  • 创建新页面时,可以通过描述需求让 AI 助手自动生成初始代码。生成后,再描述不足,助手会优化代码直至满足需求。
  1. 代码优化:
  • 编写完成的代码可以交给 AI 助手进一步优化,挖掘潜在问题并完善实现。
  1. 编写代码注释:
  • AI 助手可快速生成详细的代码注释,比手动编写更加高效、精准,开发者仅需根据需要进一步调整。
  1. 生成单元测试:
  • 对于不熟悉的 Python 单元测试,直接将需求交给 AI 助手,由其生成测试代码,大幅减少开发时间。
  1. 生成readme文件
  • 可以根据前后端文件内容生成readme文件。

使用说明/效果展示

流式对话

  • 在输入框中输入信息并按下 Enter,后台服务会实时响应消息。
  • 用户可随时点击中止按钮终止消息的返回。
    在这里插入图片描述

多模态对话

  • 支持一次性响应对话消息。
  • 用户可点击上传按钮上传图片,并结合描述信息生成响应结果。
    在这里插入图片描述
  • 在输入框中输入需求,可生成与需求相关的视频。
    在这里插入图片描述

总结

由于时间有限,有些功能尚未完成,比如联网检索、航班查询、车次查询等高级功能仍在计划之中。同时,文本和视频生成的质量也有待进一步优化和提升。这次的开发活动不仅让我深入体验了项目开发的全流程,也让我对腾讯云 AI 助手的强大功能有了更深层次的了解。它在提高开发效率、解决技术难题方面表现尤为突出,让我对未来在更多领域应用 AI 助手充满期待。


网站公告

今日签到

点亮在社区的每一天
去签到