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

GoChatIAI -Go语言AI应用服务平台(1)

项目描述

基于Go语言实现AI应用服务平台,使用Gin框架构建Web服务,实现了用户注册登录,AI助手聊天主要功能。

功能要点

采用Vue.js开发用户界面,实现登录注册、AI聊天、等功能,提升用户体验。
搭建基于Gin框架的高性能HTTP服务器,支持并发请求处理,提升系统响应速度和吞吐量。
集成OpenAI模型,接入阿里云百炼模型SDK调用,实现本地部署。
实现JWT令牌认证和会话管理,支持用户登录状态维护和权限控制。
集成MySQL数据库和Redis缓存,使用连接池和ORM简化数据操作,提高查询效率。
采用RabbitMQ实现异步消息队列,支持高并发场景下的消息存储和消费。
采用zap记录操作日志,方便调试排查问题。



阿里云百炼:大模型服务平台百炼控制台
进入此链接,获取自己本账号的api-key,后续会用到
大模型服务平台百炼控制台

功能模块

用户模块

package router import ( "GoChatAI/controller/user" "github.com/gin-gonic/gin" ) func InitUserRouter(r *gin.RouterGroup) { var userController = user.UserController{} // 注册 r.POST("/register", userController.Register) // 登录 r.POST("/login", userController.Login) // 发送邮箱验证码 r.POST("/captcha", userController.HandleCaptcha) }

AI模块

package router import ( "GoChatAI/controller/session" "github.com/gin-gonic/gin" ) func InitAIRouter(r *gin.RouterGroup) { var sessionController = session.SessionController{} { // 获取用户所有的会话id和标题 r.GET("/chat/sessions", sessionController.GetUserSessionsByUserName) // 创建会话 r.POST("/chat/send-new-session", sessionController.CreateSessionAndSendMessage) // 发送消息 r.POST("/chat/send", sessionController.ChatSend) // 同步历史消息 r.POST("/chat/history", sessionController.ChatHistory) // r.POST("/chat/tts", AI.ChatSpeech) // ChatSpeechHandler // 创建会话--流式响应 r.POST("/chat/send-stream-new-session", sessionController.CreateStreamSessionAndSendMessage) // 发送消息--流式响应 r.POST("/chat/send-stream", sessionController.ChatStreamSend) } }

项目部署

Docker安装

# 更新 yum update (1)yum 包更新到最新 > yum update (2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 > yum install -y yum-utils device-mapper-persistent-data lvm2 (3)设置yum源为阿里云 > yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (4)安装docker > yum install docker-ce -y (5)安装后查看docker版本 > docker -v # 启动docker: systemctl start docker # 停止docker: systemctl stop docker # 重启docker: systemctl restart docker # 查看docker状态: systemctl status docker # 开机启动: systemctl enable docker # 查看docker概要信息 docker info # 查看docker帮助文档 docker --help # 配置修改 sudo systemctl daemon-reexec # 重启docker sudo systemctl restart docker

Go项目打包到Linux服务器中

set CGO_ENABLED=0 set GOARCH=amd64 set GOOS=linux # go build main.go # 指定名字打包 go build -o build/GoChatAI main.go

文件传输到Linux服务器上

Linux服务器赋予可执行权限

chmod +x ./GoChatAI

编写Dockerfile

# 依赖环境 FROM alpine:latest # 安装bash和必要工具 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk update \ && apk add --no-cache \ bash \ vim \ nodejs \ npm \ curl \ # pnpm 需要通过 npm 安装 && npm install -g pnpm \ && rm -rf /var/cache/apk/* # 先创建目录结构 RUN mkdir -p /root/GoChatAI/conf # 复制执行文件到容器的根目录下 COPY GoChatAI ./root/GoChatAI/ COPY conf ./root/GoChatAI/conf/ COPY web ./root/GoChatAI/web # 置顶容器服务的端口 #EXPOSE 9090 # 赋予权限 RUN chmod +x /root/GoChatAI/GoChatAI # 安装前端依赖 WORKDIR /root/GoChatAI/web RUN pnpm install # 创建启动脚本(前端和后端 一起启动) RUN echo "#!/bin/sh" > /start.sh && \ echo "echo 'Starting GoChatAI backend...'" >> /start.sh && \ echo "/root/GoChatAI/GoChatAI &" >> /start.sh && \ echo "echo 'Starting frontend server...'" >> /start.sh && \ echo "cd /root/GoChatAI/web && npm run serve &" >> /start.sh && \ echo "echo 'Services started. Waiting...'" >> /start.sh && \ echo "wait" >> /start.sh && \ chmod +x /start.sh # 启动命令 WORKDIR /root/GoChatAI CMD ["/start.sh"]

生成镜像

http://www.gsyq.cn/news/1605158.html

相关文章:

  • IntelliJ IDEA 之工程模块管理
  • 全球高端健身房都在用什么跑步机?解析Precor必确的核心技术与产品优势
  • 电路板质量出问题,怎么查源头?全流程追溯体系给出答案
  • 服务网格——让微服务“自动驾驶“的黑科技
  • Playwright 自动化操控 X(Twitter) 发帖踩坑实录
  • 2026年适配维普降AI率软件横评:亲测8款工具,把AI率稳控在安全线内
  • SolidWorks_曲线与曲面设计19_曲面与实体混合建模
  • 3分钟快速上手:HS2-HF Patch终极安装与配置指南
  • ClickHouse:极速OLAP引擎解析
  • 2025轻松指南:零基础医疗会议转待办,包教包会避坑干货满满
  • 搞skill比搞向量库简单多了,要干的事全搞成skill就好了
  • 终极免费卡拉OK游戏指南:快速上手UltraStar Deluxe的完整教程 [特殊字符]
  • 分治策略在图像处理算法中的应用与优化的技术7
  • 变更管理化技术中的变更请求变更控制变更实施
  • 关于基于优先搜索的路径规划算法性能分析的技术7
  • 密码学h面试大法---h(自用版)更新中~(^v^)
  • (InputStream的源码、FilterInputStream源码、BufferedInputStream的源码解读前言)AtomicReferenceFieldUpdater.class和Sys
  • ingress-nginx
  • FanControl终极指南:如何在Windows上实现智能风扇控制,告别噪音烦恼
  • 在线教程丨32K上下文一次解析数十页文档,百度开源Unlimited OCR,重构长文档复杂场景
  • LPDDR5 ZQ校准实战:从背景校准到命令模式的深度解析
  • 从DCB到OSB:北斗多频多系统硬件延迟改正的演进与实践
  • 更新int count变量,fill()函数中getInIfOpen().read(buffer, pos, buffer.length - pos)这行代码的返回值为8192,
  • D3KeyHelper终极指南:暗黑3智能游戏自动化与按键管理解决方案
  • 量子LDPC码波束搜索解码器:原理、优化与应用
  • BGP路由反射器实战:从反射簇设计到防环机制的部署与验证
  • 考验AI的“自我“-AI对《红楼梦》后40回的改写(29)
  • OV SSL证书一年费用多少?单域名、多域名和通配符价格怎么选
  • 信号链路——从采样电阻到电流数值
  • 从调试失败到上线交付:一位资深架构师的ChatGPT API Python集成手记(含企业级重试/降级/监控完整链路)