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

Vue 实现AI对话和AI绘图(AIGC)人工智能

我司是主要是负责AIGC人工智能化平台的项目,俗称内容创作及智能工具平台。

授人以鱼不如授人以渔 首先我们要明白AIGC中前端需要做什么 会用到哪些技术栈 。

AIGC前端需要用到的技术栈:Vue,Markdown,SSE。就这个三件套。

前沿:有人觉得AI对话那种打字机效果很酷还有哪些代码风格样式估计很难实现,其实超级简单,这个就涉及到Markdown,SSE大神们都给我们封装好了。我们只需要拿来用就行了
下面就是效果图


步骤一:安装SEE第三包
AI对话后台都是流式返回就是一个字一个字返回的 不然就实现不了打字机效果
这个后台实现非常简单因为对接第三方大模型都提供了一个属性 填写上去就是流式返回


安装依赖 uniapp和Vue项目都可以安装  都亲测了 全部兼容

npm i @microsoft/fetch-event-source 

步骤二:封装SSE  弄个工具文件导出就可以直接用了
注意:要根据你个人的项目结构Token位置

/**
 * SSE实时流请求方法
 * @param {Object} url			请求地址
 * @param {Object} data			请求参数
 * @param {Object} collMsg		回调消息接收
 * @param {Object} collClose	回调关闭连接
 * @param {Object} collErr		回调异常
 * @param {Object} method		请求方式
 */
function eventSource(url, data, collOpen, collMsg, collClose, collErr, token, method = $constant.post) {
	var ctrl = new AbortController()
	fetchEventSource(handleUrl(url), {
		method: method,
		headers: handleHeader('application/json', method, token),
		body: JSON.stringify(data),
		signal: ctrl.signal,
		openWhenHidden: true,
		onopen: open => {
			collOpen(open)
		},
		onmessage: msg => {
			collMsg(msg)
		},
		onclose: close => {
			collClose(close)
		},
		onerror: err => {
			collErr(err)
		}
	})
	return ctrl
}

举个使用栗子
打字机效果实现:SSE流式每返回一次就会触发一次msg 我们只需要进行拼接字符串展示就可以实现打字效果

// eventCtrl :SSE会返回一个实例 可以做中断回复操作
// 第一个参数就是API地址,第二个参数就是入参
// open 连接建立成功就会触发
// msg 后台流式开始返回就会触发
// close 断开连接就会触发
// err 请求报错就会触发

this.eventCtrl = this.$http.eventSource(this.$api.chatGPTStream, data,
					open => {
						
					}, msg => {
						
					}, close => {

					}, err => {
					
					})

 // 先更新一半 后续有时间再更新完整的 
ua-markdown 用个第三方库 后续再更新

 


http://www.kler.cn/a/582321.html

相关文章:

  • Excel多级联动下拉菜单设置
  • C盘清理技巧分享:释放空间,提升电脑性能
  • Networking Based ISAC Hardware Testbed and Performance Evaluation
  • [动手学习深度学习]13.丢弃法 Dropout
  • 修改jupyter notebook的工作空间
  • 二级Python通关秘籍:字符串操作符/函数/方法全解析与实战演练
  • Spike RISC-V ISA 模拟器
  • 三级嵌入式学习ing 考点25、26
  • python-leetcode-解决智力问题
  • 常见的死锁情况分析
  • JDBC编程六步详解:从注册驱动到释放资源
  • C++学习笔记(十七)——类之封装
  • LETTERS(dfs)
  • Spring 的三种注入方式?
  • Vue3 + Spring Boot前后端分离项目跨域问题完整解决方案
  • C++编程:进阶阶段—4.2对象
  • Spring MVC 工作原理和流程
  • ubuntu中用docker下载opengauss
  • 大语言模型中Token的输出过程
  • git设置本地仓库和远程仓库