shiyebushihua blog site

基于ChatGptNextWeb二开,构建属于自己的ai问答工具

Apr 11, 2025
0
0

介绍

NextChat是一款轻量级的人工智能助手,支持网页,ios,macos,android,linux以及windows

 

代码拉取

首先点击fork,即可获取一份代码到你的github仓库中

这一项目是基于nextjs+ts开发的,启动轻量,且可以通过webdav进行数据同步

 

配置,应用二开

市面上有很多魔改版本 无一例外,因nextjs与vercel的天然兼容,该项目对docker使用的人不太友好,作者甚至没有兼容很多配置,因此我们需要将docker部分的配置补齐

 

配置的文件在config/server.ts中,可以看到很多配置是通过读取外部配置进行加载的 如果使用vercel配置大概率是没问题的,但是使用docker或docker-compose文件就会出问题,因此需要对比配置,将自己需要的或者缺少的全部加上

这里看见docker启动项 docker-compose文件是少很多配置的;

新增模型兼容,这个开发量较大,主要是几个文件的改动,简单列举一下

比如新增华为的api

Update

/api/[provider]/route.ts

.env.template

/client/api.ts

/components/settings.tsx

/config/server.ts

/locales/*

/store/access.ts

constant.ts

docker-compose.yml

add

/client/platforms/huawei.ts

/api/huawei.ts

这也是基于nextweb做的一款新模型兼容的比较标准的流程;

代码修改完可以自行提交,有想法的话也可以将代码贡献到主仓库,项目方会进行代码审查并给你发一些必要的建议与参考

构建,启动

完事之后我们进入挂载磁盘,下面的目录就是我们刚才fork项目然后下代码到本地的目录

cd /mnt/d/study/fork/NextChat

docker buildx build . --tag wangjianhua/chatgpt-next-web:1.0.24

 

构建过程大概长这样

 

构建完成后

docker run -d -p 3000:3000 \

   -e OPENAI_API_KEY=sk-xxxx \

   -e CODE=your-password \

   wangjianhua/chatgpt-next-web

即可启动成功 后续有什么配置可以添加配置并根据镜像重新启动容器

启动完成后 内存占用大概在80m左右

 

这里是各种模型,像gpt这种可以找镜像站使用api

 

刚才添加的huawei 已经出现了

聊天

调用日志:

 

绘画

 

 

题外

这个在日常个人使用中是足够了,但是对于一些企业级应用来讲,比如说商用,是需要大型业务系统构建的,不太建议聊天记录跟一些配置参数放在文件里,尽量与数据库对接,那么对于java构建系统来讲,最合适的就是使用spring-ai或者其它框架,进行mcp应用以及rag矢量库上传,减少幻觉,模型使用自建的模型;

上班族没有服务器的,开发想使用也可以通过wsl+docker搭建本地的nextchat,同样很好用

Java构建流式推送,建议使用ResponseBodyEmitter进行流式推送,这样在前端可以看到思考过程,对话是逐字出现,可以增强用户体验