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

作品简介

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

技术架构

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

实现过程

开发过程

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

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

关键技术解析

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

腾讯云AI代码助手的助力

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

  1. 解决编码问题与提升效率:

例如: 开发时需要为所有工具方法创建一个 ZhipuAI 客户端实例,但不清楚如何实现单例模式。AI 助手提供了解决方案,将实例提取到公共方法中。

  1. 初始化与优化代码:

创建新页面时,可以通过描述需求让 AI 助手自动生成初始代码。生成后,再描述不足,助手会优化代码直至满足需求。

  1. 代码优化:

编写完成的代码可以交给 AI 助手进一步优化,挖掘潜在问题并完善实现。

  1. 编写代码注释:

我开发不太喜欢写注释,通过助手就可以帮我快速生成注释,甚至比我自己写的更详细,如果有不足也可以自己再进行优化。

  1. 生成单元测试:

因为python本身就不是很熟悉,单元测试就更不熟了,后端的单元测试是直接全部扔给AI助手生成的,减少了我很多开发时间。

  1. 生成readme文件

可以根据前后端文件内容生成readme文件。

使用说明/效果展示

流式对话

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

多模态对话

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

超大规模分类(三):KNN softmax

传统的分类损失计算输入数据和每个类别中心的距离,来优化模型的训练。KNN softmax通过选择和输入数据最相关的top-K个类别,仅计算输入数据和top-K个类别中心的距离,以减小计算量。 KNN softmax首次诞生于达摩院机器智能技术实验室发表的SIGKD…

MySQL素材怎么导入Navicat???

不管用什么方法都要先关掉MySQL服务,并且提前备份数据! 1.有sql文件时候。 打开navicat,运行sql文件 然后点击后面三个点,选中要运行的sql文件,开始。 鼠标右键刷新一下,就能看到sql文件中的表了 2.没有s…

程序员独立开发竞品分析:确定网站使用什么建站系统

要确定一个网站使用的建站系统,可以通过以下几种方法尝试分析: 查看页面源代码: 打开网站,右键点击页面并选择“查看页面源代码”。在代码中查找一些常见的建站系统标志,例如: WordPress 的迹象&#xff1a…

Linux(Centos7)安装Mysql/Redis/MinIO

安装Mysql 安装Redis 搜索Redis最先版本所在的在线安装yum库 查看以上两个组件是否是开机自启 安装MinIO 开源的对象存储服务,存储非结构化数据,兼容亚马逊S3协议。 minio --help #查询命令帮助minio --server --help #查询--server帮助minio serve…

【DB-GPT】开启数据库交互新篇章的技术探索与实践

一、引言:AI原生数据应用开发的挑战与机遇 在数字化转型的浪潮中,企业对于智能化应用的需求日益增长。然而,传统的数据应用开发方式面临着诸多挑战,如技术栈复杂、开发周期长、成本高昂、难以维护等。这些问题限制了智能化应用的…

解决aerich init -t xx 报错ModuleNotFoundError: No module named ‘tomli_w‘

今天在学习fastapi的时候,发现一款数据库迁移工具,通过这个工具可以根据模型类来对数据库做出改变。 随跟着学: 在执行 aerich init -t settings.TORTOISE_ORM的时候, 彼其娘之。。 报了一些错误: Traceback (most recent ca…

.NET Core NPOI 导出图片到Excel指定单元格并自适应宽度

NPOI:支持xlsx,.xls,版本>2.5.3 XLS:HSSFWorkbook,主要前缀HSS, XLSX:XSSFWorkbook,主要前缀XSS,using NPOI.XSSF.UserModel; 1、导出Excel添加图片效果&#xff0…

浅谈云计算07 | 云安全机制

浅谈云计算安全机制:全方位守护云端世界 一、引言二、加密技术:数据的隐形护盾三、散列机制:数据完整性的忠诚卫士四、数字签名:数据来源与真伪的鉴定专家五、公钥基础设施(PKI):信任的基石六、…

Unity 2d描边基于SpriteRender,高性能的描边解决方案

目标 以Unity默认渲染管线为例,打造不需要图片内边距,描边平滑,高性能的描边解决方案 前言 在2d游戏中经常需要给2d对象添加描边,来突出强调2d对象 当你去网上查找2d描边shader,移植到项目里面,大概率会…

Uniapp仿ChatGPT Stream流式输出(非Websocket)

Uniapp仿ChatGPT Stream流式输出(非Websocket) 前言:流式输出可以使用websocket也可以使用stream来实现EventSource是 HTML5 中的一个接口,用于接收服务器发送的事件流(Server - Sent Events,SSE&#xff…

黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作

B站 黑马程序员 的视频 BV1n84y1i7td 黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等 增强自控力 冥想慢呼吸绿色锻炼充分休息减少决策次数优先做重要的事情(早晨)融入强自控群控…

当你不小心使用了MySQL的保留字作为字段名而导致你的SQL语法解析错误该怎么办!

问题举例: 你在尝试更新一个名为 desc 的字段时遇到了 SQL 语法错误。原因是 desc 是 MySQL 的保留字,通常用于表示 ORDER BY 子句中的降序(DESC),因此直接使用 desc 作为字段名会导致 SQL 解析错误。如下图&#xff…

excel设置好的可选择列数据后,如何快速输入到单元格中?

当设置好列的【数据】-【数据有效性】-【序列】后,在单元格中输入可选择数据的开头,就会提示出对应的可选择数据,然后,按一下键盘上的【↓】键,再按回车,即可快速输入到单元格中。

2025封禁指定国家ip-安装xtables-addons记录

如何安装和使用 安装lux仓库(该仓库包含xtables-addons所需的依赖环境) # wget http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm # rpm -ivh lux-release-7-1.noarch.rpm 安装xtables-addons。注意:必须先安装kmod-xtables-addons,再…

力扣 岛屿数量

从某个点找,不断找相邻位置。 题目 岛屿中被“0”隔开后 ,是每一小块状的“1”,本题在问有多少块。可以用dfs进行搜索,遍历每一个点,把每一个点的上下左右做搜索检测,当检测到就标记为“0”表示已访问过&a…

ssl与ipsec的区别

ssl与ipsec的区别: 1.概念不同: ssl是一种安全协议,可通过Internet安全地发送信息,而ipsec即Internet协议安全性,是为Internet协议提供安全性的一组协议。 2.所在层不同: ssl在传输和应用层中工作,而ipsec在Interne…

基于大语言模型的组合优化

摘要:组合优化(Combinatorial Optimization, CO)对于提高工程应用的效率和性能至关重要。随着问题规模的增大和依赖关系的复杂化,找到最优解变得极具挑战性。在处理现实世界的工程问题时,基于纯数学推理的算法存在局限…

批量识别图片型PDF指定区域内容识别保存表格+PDF批量改名:技术难题与项目实战总结

相关项目实战: 一、引言 在当今数字化办公环境中,批量处理PDF文件中的表格数据并进行改名是一项常见但具有挑战性的任务。无论是从大量的财务报销凭证、学术研究报告还是项目文档中提取表格信息,都可能遇到各种各样的技术难题。 二、批量提…

open3d+opencv实现矩形框裁剪点云操作(C++)

👑主页:吾名招财 👓简介:工科学硕,研究方向机器视觉,爱好较广泛… ​💫签名:面朝大海,春暖花开! open3dopencv实现矩形框裁剪点云操作(C&#xff…

LabVIEW光流跟踪算法

1. 光流跟踪算法的概述 光流(Optical Flow)是一种图像处理技术,用于估算图像中像素点的运动。通过比较连续帧图像,光流算法可以分析图像中的运动信息,广泛用于目标跟踪、运动检测和视频处理等场景。该示例使用了NI Vi…