基于vite+vue 的聊天对话框(设计部分)纯小白分享 | 豆包MarsCode AI刷题

246 阅读3分钟

纯记录 大量内心独白 步骤思考方式

基于字节旗下-coze平台API调用和vite,vue快速搭建的大模型对话框应用(网页版)..单页面应用 因为是小白,第一个项目,边学边上手,从0到1落地,还有很多地方做的不够好,纯分享,掘友们有什么好的指点欢迎评论区发言~


功能设计---由浅入深

  • 目前定位是可以根据用户的问题进行回答---仿豆包mini极简版
  1. 输入框--可以输入文本(包括粘贴板上的图片,文字,代码等等),文件资源(访问文件夹资源),音频输入(调用麦克风,音响等等功能),没有内容时不能发送(按钮)。

  2. 对话框整体外观--背景颜色主题切换,中英切换(翻译插件),回到底部,回到顶部,ai回答导航,在对话框外侧悬浮,footer部分。

  3. 其他功能--ai回答收藏(数据库存储或者缓存),最近一周的使用历史,搜索栏目,登录注册等等

  4. ai回答--ai回答提供复制,引用,扩展(代码功能)--这部分应该和api有关?--

唠唠:这些个功能设计可能对于大佬来说非常大白话且平平无奇,但是要一个一个实现这些功能对我来说是一种挑战一种新的实践。个人就是喜欢在写项目前先写好大体功能框架,然后再往里面不断地填充,这个项目我会一直完善,慢慢扩展一些别的功能或者展现。


整个项目构建 (vite)

//Vue Router 用于路由管理
npm install vue-router@next
//安装 Vue I18n 用于多语言支持
npm install vue-i18n
//axios库实现http请求
npm install axios

组件设计--(自己先思考一个大概的框架,结合ai工具辅助开发)

遇到的第一个问题就是需要学习vue框架,了解vue是如何高效编写组件化模块的

1.输入框:

  • 文本输入:可以使用 <input><textarea> 来实现。
  • 粘贴板支持:可以通过监听 paste 事件来处理粘贴的内容。
  • 文件资源:可以使用 <input type="file"> 来允许用户选择文件。
  • 音频输入:可以使用 Web Audio API 和 MediaRecorder API 来实现录音功能。
  • 按钮控制:确保在没有内容时禁用发送按钮。

2.对话框:

  • 背景颜色主题切换:可以使用 CSS 变量来实现主题切换。
  • 中英切换:可以使用 i18n 库(如 vue-i18n)来实现多语言支持。
  • 滚动控制:可以使用 JavaScript 来实现滚动到底部和顶部的功能。
  • 悬浮导航:可以使用 CSS 的 position: fixed 来实现悬浮效果。
  • footer 部分:可以设计一个固定的 footer 栏,包含版权信息等

3.其他功能

  • 用 localStorage 或后端数据库来存储收藏的数据。
  • 使用历史:可以记录用户的会话历史,并在页面上显示最近一周的使用记录。
  • 搜索栏目:可以实现一个简单的搜索栏,允许用户搜索历史对话或特定关键词。
  • 登录注册:可以使用简单的表单和后端 API 来实现用户认证。

4.ai回答

  • 复制、引用、扩展:可以为 AI 回答添加按钮,分别实现复制、引用和扩展功能。这些功能可以通过 JavaScript 实现,可使用 navigator.clipboard.writeText 来复制文本。

调用接口--coze

  • [API文档]
  • [请求封装 ]
  • [调用API ]

等等等等~~

文档编写 用户手册等等(与后端服务端的联系,通信等等)

待更新ing