golang+vue3 开源IM在线聊天系统开发过程中的问题

联系作品地址

青梧IM_gitee地址

1、为什么要写这个Im系统

之前写一些其他东西希望用到一个聊天系统,用于公司内部的聊天之类的,还有一个是想学习下新技术,接入下AI聊天,所以接入了下qwen2的开源大模型,

2、这里主要讲解下接入AI的时候用到的技术和踩过的坑

(1)、如何实现类似百度文心一言和chat-gpt的打字回答系统

这里面其实用到了 SSE技术,具体SSE技术有什么优势:你可以把它想象成一个简陋的webscoket,当客户端和服务端建立联系后(或换种说法客户端订阅服务端后),服务端可以不断推送信息给客户端,和websocket不同的是他是单项的推送,不是双向的。

(2)、SSE只允许GET请求建立联系,如果我有许多参数填写,如果放url上会太长,怎么办?

这里我查了下资料,其中有说的什么 fetch伪造 之类的,我没仔细看,看上去很麻烦,我用的另外一个策略,
具体流程:
1、先get请求,后端创建一条令牌数据根据用户请求信息token关联,把这个令牌存储起来并设置生命周期,

在这里插入图片描述

2、再根据这个令牌去get请求sse,这样就不需要填更多的信息了,

在这里插入图片描述
(3)、gin中如何去发送eventStream,

// 这里的c  是 gin控制器中     c *gin.Context
// 返回false的时候表示这个 sse 推送结束
c.Stream(func(w io.Writer) bool {
	select {
	case taskMsg, ok := <-taskCh: // taskCh是ai推送过来的流数据
		if !ok {
			
			break
		}
		// 获取AI回答插入数据库
		if _, err := fmt.Fprintf(w, "data: %s\n\n", htmlMsg); err != nil {
			// 写入错误,结束流
			return false
		}
	case endMsg, ok := <-endCh: // 接收到endCh通道里面的数据时候表示AI回答已经结束了
		if !ok {
			break
		}
		if endMsg == "end" {
			return false
		}
	}
	return true
})

暂时没想到其他遇到的问题了,后面想到了补上。。。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wails 是一个使用 Go 编程语言创建跨平台本机应用程序的框架,它允许您使用 Go 编写前端和后端代码。Wails 提供了一个简单的方式来构建具有本机外观和感觉的应用程序,可以在所有主要平台上运行,包括 Windows、macOS 和 Linux。 要使用 Wails 开发 UI 窗口,可以遵循以下步骤: 1. 安装 Wails 首先,您需要安装 Wails。您可以访问官方网站 https://wails.app/ ,根据您的操作系统选择对应的安装包进行安装。 2. 创建新项目 使用 `wails init` 命令在您的工作目录创建新项目。该命令将生成一个基本的 Wails 项目结构。 3. 创建 UI 窗口 在项目的 `frontend` 目录下创建一个 HTML 文件,该文件将作为窗口的 UI 界面。您可以使用 HTML、CSS 和 JavaScript 来创建您的 UI 界面。Wails 使用 Go 的 Webview 库来呈现 UI 界面。 4. 连接前端和后端 在项目的 `backend` 目录下创建一个 Go 文件,该文件将作为窗口的后端处理逻辑。您可以使用 Go 编写您的业务逻辑,并将其与前端交互。Wails 提供了一些方便的方法来实现前后端之间的通信。 5. 构建应用程序 使用 `wails build` 命令构建您的应用程序。该命令将生成适用于您的操作系统和架构的二进制文件。 6. 运行应用程序 使用 `./<yourapp>` 命令运行您的应用程序。您将看到一个带有本机外观和感觉的 UI 界面,可以在其与您的后端进行交互。 以上是使用 Wails 开发 UI 窗口的基本步骤。您可以使用 Wails 提供的其他功能来扩展您的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值