Go的ai对话网页详解-第一天

lkpalu Lv3

Go ai对话网页

本项目初期采用Gin框架,现在开源的项目中已采用了我自己写的Gwe框架,仿照了Gin的方法名称,可以一键切换。

项目目录采用GitHub开源的https://github.com/golang-standards/project-layout/blob/master/README_zh.md

项目目录

ai问答网页 其实就是一个比较简单的后端服务,前端传过来的消息经过后端处理成模型需要的输入格式再传给模型,接收模型返回的对话,前端显示即可。

前置条件

采用ollama部署大模型模型,请提前下载ollama以及工具链langchaingo

1
go install github.com/tmc/langchaingo/llms@latest

前置操作需要安装gin框架,后续不用,也可使用原生的net/http进行操作

最后的main.go文件中其实只有短短几行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import (
"ai_web/internal/middleware"
//"github.com/gin-gonic/gin"
gin "ai_web/Gwe/Gwe"
)

func main() {
r := gin.New()

//r.Use(middleware.Cors())
r.Use(middleware.Router(r))
err := r.Run(":8080")
if err != nil {
panic(err)
}
}

这里使用gin初始化了一个不带log和recovery的引擎,之后加入两个中间件,跨域和路由,最后开启服务即可,我这里把跨越中间件注释掉主要是因为我是在本地测试的,好像是不需要这个,不是很懂。

internal目录结构如下

internal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package middleware

import (
gin "ai_web/Gwe/Gwe"
"ai_web/internal/controller"
)

func Router(r *gin.Engine) gin.HandlerFunc {

chat := controller.Chat{}
mainGroup := r.Group("/")
return func(c *gin.Context) {
mainGroup.POST("/chat", chat.Dochat)
//mainGroup.POST("/login", Nuser.Login)
}
}

路由的逻辑很简单,就是在/chat路径上起个路由就好了,这里遵循Restful API的风格,使用POST请求,具体Dochat的细节等第二天的文章吧。

  • 标题: Go的ai对话网页详解-第一天
  • 作者: lkpalu
  • 创建于 : 2024-11-04 17:09:00
  • 更新于 : 2024-11-05 17:52:02
  • 链接: https://redefine.ohevan.com/2024/11/04/Go的ai对话网页详解-第一天/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
Go的ai对话网页详解-第一天