当前位置: 首页 > news >正文

腾讯云AI代码助手编程挑战赛-刑说

作品简介

鉴于当代普法力度不够大,这个刑说可以帮助大家更好的普及法律知识

技术架构
采用了全后端分离的架构,前端使用Vue.js,腾讯云的AI服务处理自然语言理解与生成。

实现过程
开发环境、开发流程
系统:win11

开发工具:VSCode

开发环境为:node-v23.6.0-win-x64

开发流程:
1、解压并配置node.js环境变量
2、使用npm i命令初始化项目
3、使用npm run dev启动项目

关键技术解析
增加了切换风格与主题声明。

腾讯云AI代码助手在上述过程中的助力
1、使用生成解释功能整理了代码思路

这段代码是一个Vue 3组件,使用了`<script setup>`语法,这是Vue 3中推荐的组合式API的使用方式。下面是对代码的主要部分的解释:

### 模板部分 (`<template>`)

- 使用了`<t-chat>`组件来展示聊天界面,具有单布局(`layout="single"`),固定高度(`style="height: 600px"`)。
- `:clear-history`属性用于控制是否显示清除历史记录的选项,当`chatList`有内容且不是流式加载时显示。
- `@clear`事件监听器用于监听清除历史的操作,触发`clearConfirm`方法。
- 使用`v-for`指令遍历`chatList`数组,为每条聊天记录渲染一个`<t-chat-item>`组件。
- 在每条聊天记录中,根据条件渲染`<t-chat-action>`组件和报警按钮。
- 使用`#footer`插槽来自定义聊天界面的底部,这里放置了一个`<t-chat-input>`组件,用于输入新的消息。

### 脚本部分 (`<script setup>`)

- 导入了`ref`函数,用于创建响应式的引用。
- 定义了一系列的响应式变量,如`loading`, `isStreamLoad`, `isGood`, `isBad`, `chatRef`等,用于控制组件的状态。
- `reportItem`方法用于处理报警操作,目前只是简单地弹出一个提示框。
- `backBottom`方法用于滚动到聊天界面的底部。
- `chatList`是一个响应式数组,包含了聊天记录的数据。
- `clearConfirm`方法用于清空聊天记录。
- `onStop`方法用于停止流式加载数据。
- `handleOperation`方法用于处理聊天记录的操作,如点赞、点踩或回复。
- `handleData`方法用于处理发送消息后的数据流,包括设置加载状态、调用`fetchSSE`方法等。
- `inputEnter`方法用于处理用户输入的消息,将其添加到`chatList`中,并触发消息处理流程。
- `fetchSSE`方法是一个异步函数,用于通过Server-Sent Events (SSE)与后端API进行通信,获取流式响应数据。

### 样式部分 (`<style lang="less" scoped>`)

- 样式部分目前为空,没有提供具体的样式规则。

### 注意事项

- 代码中使用了`fetchSSE`函数来处理与后端的流式通信,这是一个自定义的函数,不是浏览器原生支持的API。
- `fetchSSE`函数中使用了`AbortController`来支持请求的取消操作,这是一个现代浏览器提供的API。
- 代码中的`apiKey`应该是用于认证的,但在实际应用中不应该硬编码在客户端代码中,而应该通过安全的方式管理。
- `fetchSSE`函数中的错误处理和数据处理逻辑比较复杂,需要仔细调试以确保稳定性。

这段代码实现了一个具有基本聊天功能的Vue组件,包括消息的显示、输入、发送以及一些交互操作。

2、增加标题
给页面和右侧增加了高亮显示的标题,使用腾讯云AI代码助手提供的代码实现。


这里还是用腾讯云AI助手提供的对应代码完成。

使用说明
1、解压并配置node.js环境变量

2、使用npm i命令初始化项目

3、使用npm run dev启动项目

4、访问http://localhost:3005/进行提问即可。

效果展示

live.csdn.net/v/442832

http://www.lryc.cn/news/519638.html

相关文章:

  • 【测试】持续集成CI/CD
  • 阿里云直播Web
  • DuckDB:PRAGMA语句动态配置数据库行为
  • GO通过SMTP协议发送邮件
  • 轻量自高斯注意力机制LSGAttention模型详解及代码复现
  • 解读若依框架中的`@Excel` 和 `@Excels` 注解
  • 云商城--基础数据处理和分布式文件存储
  • 六十九:基于openssl实战验证RSA
  • Three.js 用户交互:构建沉浸式3D体验的关键
  • Android车机DIY开发之学习篇(五)默认应用修改
  • linux 设置mysql 外网访问
  • SQL UNION 操作符
  • c++ 17 constexpr
  • Java QueryWrapper groupBy自定义字段,以及List<Map>转List<Entity>
  • 【Rust自学】11.7. 按测试的名称运行测试
  • Git:Cherry-Pick 的使用场景及使用流程
  • Ubuntu 24.04 LTS系统安装Docker踩的坑
  • 工作生活的感悟
  • NCCL学习笔记-函数解析
  • windows系统如何将基座大模型私有化部署
  • 牛客网刷题 ——C语言初阶(6指针)——BC106 上三角矩阵判定
  • CentOS 7 下 MySQL 5.7 的详细安装与配置
  • 【深度学习】数据预处理
  • day01-HTML-CSS——基础标签样式表格标签表单标签
  • 无需昂贵GPU:本地部署开源AI项目LocalAI在消费级硬件上运行大模型
  • 搭建prometheus+grafana监控系统抓取Linux主机系统资源数据
  • uni-app无限级树形组件简单实现
  • 基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)
  • 请求方式(基于注解实现)
  • day38 tcp 并发 ,linux下的IO模型----IO多路复用