这个ChatGPT项目有了重大更新,可以直接打包成桌面应用

Posted didiplus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这个ChatGPT项目有了重大更新,可以直接打包成桌面应用相关的知识,希望对你有一定的参考价值。

在之前的文章中介绍过一个国内大神开放的ChatGPT项目,最近这个仓库有了重大的更新,可以把web的应用打包成桌面的应用。外观上也作出了改变,把界面做的更加简洁。

通过查看源码,是采用electron进行桌面应用的构建,目前,国内也不能直接调用OpenAI的接口,需要魔法上网才可以,所以,构建了桌面应用后,我们需要进行魔法上网才可以正常使用。

好了,废话不多说,下面简单介绍一下部署方法

采用docker方式进行部署

检查docker环境

采用docker方式部署,前提是服务器的环境已经正确的安全了docker环境,执行如下命令检查是否正确安装

docker version

拉取项目

在服务器的home目录下,拉取项目,执行如下命令:

git clone git@github.com:202252197/ChatGPT_JCM.git

修改配置

进入项目的根目录,在.env.serve中添加代码OPENAI_API_KEY

VUE_APP_OPENAI_API_KEY='你的openai api key'

/src/store/mutation-types.js可以在此文件中设置AI头像+用户头像+用户名称

构建镜像

使用以下命令构建镜像,其中jcm-chatgpt是您想要给镜像取的名称,“.” 表示Dockerfile在当前目录中。

docker build -t jcm-chatgpt .

运行镜像

构建完成后,可以使用以下命令运行镜像,其中 “my-container” 是您想要给容器取的名称。该命令会将容器端口9090映射到本地机器的端口80

docker run --name my-chatgpt -p 9090:80 jcm-chatgpt

会话

模型

微调模型列表

文件

总结

该项目已经在github上开源,并获得1.2k start。在部署过程中遇到什么问题欢迎留言讨论。
项目地址是:https://github.com/202252197/ChatGPT_JCM.git。

vue-webpack项目自动打包压缩成zip文件批处理

为什么需要这个?

使用vue框架开发项目,npm run build这个命令会一直用到,如果需要给后端发包,那你还要打包成zip格式的压缩包,特别是项目提测的时候,一天可能要执行重复好几次,所以才有了写这个批处理的冲动。

虽然说以前没写过,但至少用过。找了份批处理命令的文章了解了下,按自己预先想好的思路,百度了关键的执行命令,然后就自己不断的修改调试,最终完成了这个集webpack打包、压缩成zip格式文件、打开当前文件夹这三个功能的批处理。

怎么用?

只需要把这个批处理文件放在项目根目录下,轻松一点,等命令自行运行完毕打开文件夹,就可以直接复制打包后的压缩包给后端人员了。

完整代码:

title 项目自动打包压缩批处理工具
cls
@echo off
echo  ┌────────────────────────────────────┐
echo.   
echo   vue+webpack 项目自动打包压缩批处理工具     
echo.   
echo   author:cuichunhua@qq.com            
echo.         
echo   功能说明:
echo.   
echo   1.vue+webpack项目自动打包
echo.   
echo   2.打包完成之后会自动压缩为zip文件,自定义名称
echo.   
echo   3.压缩完成,在资源管理器中自动打开当前文件夹
echo.   
echo  └────────────────────────────────────┘
echo.

rem 1. vue项目打包
echo  即将进行打包处理,请稍后。。。
echo.  
call npm run build

rem 返回代码为>=1就跳至标题1处执行压缩,>=0就跳至标题exit处执行终止

IF ERRORLEVEL 1 (
    echo  项目打包出错了,快去看看怎么回事吧!!!
    echo.  
    goto exit
)
IF ERRORLEVEL 0 (
    echo  打包完成,自动压缩中。。。
    echo.  
    goto zip
)

rem 2. 自动压缩成zip文件,并以code_yyMMddhhmmss格式
:zip
echo  开始压缩文件。。。
echo. 
cd /d dist
rem 打包成zip格式文件就需要WinRAR.exe,不然会报"未知选项:afzip"
set rar=%ProgramFiles%WinRARWinRAR.exe 
set name=code_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
(echo static    
echo index.html)>R.lst
"%rar%" a -afzip "%name%.zip" -ep1 -rr -av -ao -m5 @R.lst -ibck -xR.lst 
del R.lst
goto 2

rem 3. 自动打开当前文件夹
:2
echo  压缩完成,自动打开当前文件夹。。。
echo.  
explorer %cd%
goto exit

rem 4. 终止命令继续执行
:exit
pause

代码说明:

这个批处理主要有三个处理过程:

1. vue项目打包;

1)使用call来执行npm run build,这样打包处理之后就不会自动退出命令行窗口,后续命令才能执行,切记切记。

2)处理结果处理:

IF ERRORLEVEL 1 (
    echo  项目打包出错了,快去看看怎么回事吧!!!
    echo.  
    goto exit
)
IF ERRORLEVEL 0 (
    echo  打包完成,自动压缩中。。。
    echo.  
    goto zip
)

去除多余代码,上边代码可以精简为:

IF ERRORLEVEL 1 goto exit

IF ERRORLEVEL 0 goto zip

这段代码的意思是:如果上一步命令执行失败,则执行exit命令块,成功则执行zip命令块。

其中:

  • ERRORLEVEL 为上一个命令执行结果,成功返回0,失败默认返回1;
  • IF ERRORLEVEL 1  的意思是 如果 ERRORLEVEL >= 1,所以判断失败的命令要放在判断成功的命令之前,不可颠倒,切记!
  • exit、zip可以理解为命令块,类似js中的函数代码块,这个命令块是以:开头定义的,如 :exit ,这就是一个简单的命令块;
rem 4. 终止命令继续执行
:exit
pause

2. 压缩成zip文件;

   这里的关键代码如下:

cd /d dist
set
rar=%ProgramFiles%WinRARWinRAR.exe set name=code_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% (echo static echo index.html)>R.lst "%rar%" a -afzip "%name%.zip" -ep1 -rr -av -ao -m5 @R.lst -ibck -xR.lst del R.lst

其中:

  • set rar=%ProgramFiles%WinRARWinRAR.exe  很明显,这行代码是定义压缩程序变量;
  • set name=code_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%  这一行是定义压缩文件名称,默认code_yyyyMMddhhmmss格式,可以根据需要自行修改,%date:~0,4%为截取本机日期的年份,%time:~0,2%为截取本机时间的小时,记住写法,可以用js的截取字符串辅助理解;
  • 下面这行是指定导报目录或文件:
  • (echo static echo index.html)>R.lst
  • -afzip  是压缩成zip格式文件(配合rar变量要指向WinRAR.exe才生效)
  • "%name%.zip"  以变量name命名的 

3. 打开当前文件夹(dist)

   explorer %cd%  在资源管理器中打开当前文件夹,方便将压缩后的打包文件发送给其他开发人员


以上是关于这个ChatGPT项目有了重大更新,可以直接打包成桌面应用的主要内容,如果未能解决你的问题,请参考以下文章

vue-webpack项目自动打包压缩成zip文件批处理

小松教你手游开发unity系统模块开发Unity Assetbundle打包笔记

IDEA SpringBoot 项目打包成jar包

java中的b\s能打包成exe文件吗 我做好了一个BS项目 想打包让用户直接安装就能用的那种 求各位大神帮帮我!

VS2015要ApacheCordova项目如何打包apk和ipa

如何将springboot项目打包成jar包并部署到服务器上