/chatserver-api

基于OPENAI的ChatGPT API开发的AI助手系统 Chatserver-web 支持本地数据向量话提问 基于Golang语言的后端API服务

Primary LanguageGoMIT LicenseMIT

基于OPENAI的ChatGPT API开发的AI助手服务

更新

智能搜搜:支持OPENAI 函数调用、与16K模型,使用azureAPI时会使用自己实现的函数调用方式处理。 SQL:本次有更新

体验站

https://chat.wooveep.net

本仓库为后端API服务,依赖的前端仓库为wooveep/chatserver-web

实现功能

  • 支持Azure API,OpenAI API
  • 用户登录、注册、密码修改、密码重置、角色管理
  • 用户积分额度、会员权益管理
  • 后端云存储用户会话和聊天记录
  • 按照会话指定AI角色,并随意切换
  • 长回复功能,后端自动处理token截断回答
  • 支持结合本地知识库问答
  • 后端处理会话上下文逻辑
  • 支持流式回复打字机效果
  • 支持按照Token计费
  • 基于卡密方式的用户额度充值
  • 用户消费明细查询
  • 用户邀请控制
  • 联网的GPT

应用场景

我们 的AI助手适用于以下场景:

  • 企业用户:结合公开外发客户的产品手册,解答产品问题,优化客服成本。
  • 保险行业:结合保险条款内容,解答客户关于保险相关信息,推荐客户更合适保险产品。
  • 教育行业:结合常见题库、文本,作为私人家教。

目标群体

  • 个人部署
  • 商业部署
  • 企业部署
  • 团队部署

系统演示

操作演示

项目截图

用户登录

用户登录

用户注册

用户注册

主页面

主页面

会话上下文设置

会话上下文设置

会话角色控制

会话角色控制

用户充值与邀请

充值

邀请

基于本地知识库的问答

InceptorSQL调优

设备配置咨询

MBA课程案例分析

待实现列表

  • 系统后台日志管理
  • 系统后台管理界面
  • 用户系统设置模块
  • 自定义敏感词
  • 联网插件功能
  • 自定义AI角色页面
  • 文档上传问答
  • 语音问答

安装部署

前置条件

  1. 部署redis服务

部署安装带有pgvector插件的postgresql

可以参考 https://github.com/pgvector/pgvector#installation-notes 部分内容

加载项目所需的库表

项目还在测试阶段,每次更新都可能会修改数据库结构,建议更新时先更新SQL 位于项目 目录 script/sql目录下的 init.sql 文件

编译项目方式运行

编译项目

git clone https://github.com/wooveep/chatserver-api.git
#根据不同平台使用不同命令
cd chatserver-api
make mac

会打印如下信息:

for BIN_NAME in chatserver-api; do \
                [ -z "$BIN_NAME" ] && continue; \
                for GOARCH in amd64; do \
                        mkdir -p dist/mac_$GOARCH; \
                        GOOS=darwin GOARCH=$GOARCH CGO_ENABLED=1 \
                        go  build -ldflags \
                        "-X chatserver-api/utils/version.CommitId=b36e00604fa0ce12cf02cc8e6e3a13925b8e7409 \
                        -X chatserver-api/utils/version.BranchName=main \
                        -X chatserver-api/utils/version.BuildTime=2023-05-14_10:10:11 \
                        -X chatserver-api/utils/version.AppVersion=0.0.1-beta"  \
                        -o dist/mac_$GOARCH/$BIN_NAME cmd/main.go; \
                done \
        done

配置config文件

 cp configs/config.yml.template configs/config.yml 

启动项目

./dist/mac_amd64/chatserver-api  
控制台打印如下
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)
.....
2023-05-14 18:28:09.639 INFO    chatserver-api/server.go:62     server started success! port: :18080    {"appName": "chatserver-api"}

使用Docker方式运行

自构建docker镜像

git clone https://github.com/wooveep/chatserver-api.git
#根据不同平台使用不同命令
cd chatserver-api
docker build -t chatserver-api . 

直接拉取仓库镜像

docker pull wooveep/chatserver-api:latest

编辑配置文件

根据项目中的configs/config.yml.template配置您自己的配置文件 命名为 /config.yml

启动docker镜像

 sudo  docker run  --restart=always  -d   --name chatserver-api  -p 18080:18080 \ 
 -v /本地路径/configs:/app/chatserver-api/configs  \
 -v /本地路径/logs:/app/chatserver-api/logs \
 -v /本地路径/head_photo:/app/chatserver-api/head_photo \
 chatserver-api  

引用的社区仓库代码

OpenAI API SDK: sashabaranov/go-openai

OpenAIt Token 计算:pkoukk/tiktoken-go

向量存储库: pgvector/pgvector

Gin项目框架: xmgtony/apiserver-gin

关键词提取:yanyiwu/gojieba

License

MIT © Cloudyi Li