Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加了图片生成和图片识别功能 #443

Open
Fugitive844 opened this issue Feb 26, 2024 · 13 comments
Open

增加了图片生成和图片识别功能 #443

Fugitive844 opened this issue Feb 26, 2024 · 13 comments

Comments

@Fugitive844
Copy link

git地址:https://github.com/Fugitive844/chatgpt-web.git
改动:
1、增加图片上传识别功能,上传图片时会强制使用gpt-4-vision-preview模型,如果想要基于图片进行连续上下文对话的话,对话模型也要选择gpt-4-vision-preview。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】
2、增加画图功能,以“/”开头会触发画图功能,基于dall-e-3模型。生成的图片不支持连续对话上下文。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】
3、增加登陆长时间不操作强制token失效功能。【【.env文件需要加入LOGOUT_MIN=5表示为5分钟不操作则登出,不填取默认值30分钟】
4、增加限制多设备登陆功能,一个账户只能在一个设备登陆,多设备登陆会把之前的设备踢下线。

存在的问题:
1、因为我不懂前端,只是加了个按钮,但是对话框中的发送框不支持markdown,所以图片图片传识别时上传图片回显我放在了回答框,有懂前端的人帮忙合作改下就完美了。

实现图片上传的做法:
1、我记得大佬说是因为引用了chatgpt这个底层包不支持所以没法做,事实的确如此,所以我去把chatgpt这个包的源码直接下载下来,全部放到service/src/openai这个目录下进行修改的。
2、我主修语言java,写这玩意也是边学边写可能不规范,如果大佬同意在发起合并请求
chat-shot (3)

@opsxff
Copy link

opsxff commented Feb 27, 2024

可以打个容器包吗

@Fugitive844
Copy link
Author

可以打个容器包吗

我找个网盘把挂着吧。

@Fugitive844
Copy link
Author

可以打个容器包吗

晚一点,晚上弄

@BobDu
Copy link
Member

BobDu commented Feb 27, 2024

ping @Kerwin1202 期待您做出评论。

@Fugitive844
Copy link
Author

阿里云盘限制分享,弄不了,自己dockerfile打包下就行,

docker build -t chatgpt-web0226-01 .

docker run --name chatgpt-web0226-01 -d -p 3002:3002 -e TZ=Asia/Shanghai
--env OPENAI_API_KEY=sk-ddddddddddddddddddddddddddddd
--env MONGODB_URL='mongodb://chatgpt:password@host:port/chatgpt'
--env OPENAI_API_MODEL=gpt-3.5-turbo
--env AUTH_SECRET_KEY=2222222
--env REGISTER_ENABLED=true
--env PASSWORD_MD5_SALT=anysalt
--env ROOT_USER=xxxx@qq.com
--env SITE_DOMAIN=https://www.xxxx.com
--env SMTP_HOST=smtp.qq.com
--env SMTP_PORT=465
--env SMTP_TSL=true
--env SMTP_USERNAME=xxxxx@qq.com
--env SITE_TITLE=SZChat
--env TIMEOUT_MS=60000
--env REGISTER_MAILS=''
--env SMTP_PASSWORD=xxxxxxxxx
--env LOGOUT_MIN=300
--env FILE_PATH=/root/chatgpt/files
-v /root/chatgpt/files/:/root/chatgpt/files/
chatgpt-web0226-01

@BobDu
Copy link
Member

BobDu commented Mar 5, 2024

增加登陆长时间不操作强制token失效功能。
增加限制多设备登陆功能

main...Fugitive844:chatgpt-web:main#diff-61ad89f63777bd1fc3d7a3723ed711a062b9e8a82c3a1a3a39bdf6b42e3dd4a5R7

这块修改后服务变成有状态的了? 而且是内存状态。那岂不是只要出现应用重启。就会导致所有用户需要全部重新登录?
能否有更优雅的方式去实现?

@BobDu
Copy link
Member

BobDu commented Mar 5, 2024

增加图片上传识别功能
增加画图功能

抱歉。这两个功能一定是属于本项目的 roadmap 的。
但是目前的这个实现代码确实需要优化到更 完美 一些~~~~。才能更好的合并。

把chatgpt这个包的源码直接下载下来

是否去做一个单独的仓库去 fork https://github.com/transitive-bullshit/chatgpt-api
并发布为一个独立的 npm 包作为上游项目 再被本项目依赖会更合理一些?

@magicdmer
Copy link

magicdmer commented Mar 6, 2024

我也实现了一个图片生成的功能,我有个建议,就是画图不要用 "/" 因为这个已经是提示词触发快捷键了。我一开始有两个思路:

  1. 模型选择左边加个按钮,开启AI绘图,然后右边选择3.5就是dall-e-2,要是4就是dall-e-3
  2. 模型选择就加入 dall-e-2和dall-e-3,根据选择来生成,基本融入原本的流程

我选择的2,我本身是c/c++开发,也是靠临时学习+chatgpt来编写代码的,所以之前实现了不少功能也没pull,我的代码修改主要是custom分支,release也有修改日志,发现好多功能现在主干也有了,哈哈,有需要可以参考,另外我有制作docker

@Fugitive844
Copy link
Author

我只能提供一个想法,我对这个语言不熟,其实这个功能我自己用很久了,只要是解决自己能用的问题。至于登陆状态是基于内存缓存的,重启的确会失效,但是这个不影响,谁没事动不动重启项目呢?更优雅的方式一般就得用redis之类的缓存了

@wshze
Copy link

wshze commented Mar 19, 2024

我看2.16版本已经增加了图片上传和识别功能。(文生图走DALL-E 3 )图片生成这个方便实现下吗?

@xdl5566
Copy link

xdl5566 commented Mar 20, 2024

git地址:https://github.com/Fugitive844/chatgpt-web.git 改动: 1、增加图片上传识别功能,上传图片时会强制使用gpt-4-vision-preview模型,如果想要基于图片进行连续上下文对话的话,对话模型也要选择gpt-4-vision-preview。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】 2、增加画图功能,以“/”开头会触发画图功能,基于dall-e-3模型。生成的图片不支持连续对话上下文。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】 3、增加登陆长时间不操作强制token失效功能。【【.env文件需要加入LOGOUT_MIN=5表示为5分钟不操作则登出,不填取默认值30分钟】 4、增加限制多设备登陆功能,一个账户只能在一个设备登陆,多设备登陆会把之前的设备踢下线。

存在的问题: 1、因为我不懂前端,只是加了个按钮,但是对话框中的发送框不支持markdown,所以图片图片传识别时上传图片回显我放在了回答框,有懂前端的人帮忙合作改下就完美了。

实现图片上传的做法: 1、我记得大佬说是因为引用了chatgpt这个底层包不支持所以没法做,事实的确如此,所以我去把chatgpt这个包的源码直接下载下来,全部放到service/src/openai这个目录下进行修改的。 2、我主修语言java,写这玩意也是边学边写可能不规范,如果大佬同意在发起合并请求 chat-shot (3)

前端大佬们,本人是node.js小白,请问一下文生图DALL-E 3, 如果配置"response_format":"url", 返回图片链接这种方式,非b64_json格式的,要如何处理代码?

@magicdmer
Copy link

git地址:https://github.com/Fugitive844/chatgpt-web.git 改动: 1、增加图片上传识别功能,上传图片时会强制使用gpt-4-vision-preview模型,如果想要基于图片进行连续上下文对话的话,对话模型也要选择gpt-4-vision-preview。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】 2、增加画图功能,以“/”开头会触发画图功能,基于dall-e-3模型。生成的图片不支持连续对话上下文。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】 3、增加登陆长时间不操作强制token失效功能。【【.env文件需要加入LOGOUT_MIN=5表示为5分钟不操作则登出,不填取默认值30分钟】 4、增加限制多设备登陆功能,一个账户只能在一个设备登陆,多设备登陆会把之前的设备踢下线。
存在的问题: 1、因为我不懂前端,只是加了个按钮,但是对话框中的发送框不支持markdown,所以图片图片传识别时上传图片回显我放在了回答框,有懂前端的人帮忙合作改下就完美了。
实现图片上传的做法: 1、我记得大佬说是因为引用了chatgpt这个底层包不支持所以没法做,事实的确如此,所以我去把chatgpt这个包的源码直接下载下来,全部放到service/src/openai这个目录下进行修改的。 2、我主修语言java,写这玩意也是边学边写可能不规范,如果大佬同意在发起合并请求 chat-shot (3)

前端大佬们,本人是node.js小白,请问一下文生图DALL-E 3, 如果配置"response_format":"url", 返回图片链接这种方式,非b64_json格式的,要如何处理代码?

可以参考我的仓库custom分支代码,直接返回markdown的图片链接就能显示了,当然这个链接貌似是有时限的

@xdl5566
Copy link

xdl5566 commented Mar 20, 2024

git地址:https://github.com/Fugitive844/chatgpt-web.git 改动: 1、增加图片上传识别功能,上传图片时会强制使用gpt-4-vision-preview模型,如果想要基于图片进行连续上下文对话的话,对话模型也要选择gpt-4-vision-preview。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】 2、增加画图功能,以“/”开头会触发画图功能,基于dall-e-3模型。生成的图片不支持连续对话上下文。【.env文件需要加入FILE_PATH=/root/chatgpt/files指定图片存储路径。】 3、增加登陆长时间不操作强制token失效功能。【【.env文件需要加入LOGOUT_MIN=5表示为5分钟不操作则登出,不填取默认值30分钟】 4、增加限制多设备登陆功能,一个账户只能在一个设备登陆,多设备登陆会把之前的设备踢下线。
存在的问题: 1、因为我不懂前端,只是加了个按钮,但是对话框中的发送框不支持markdown,所以图片图片传识别时上传图片回显我放在了回答框,有懂前端的人帮忙合作改下就完美了。
实现图片上传的做法: 1、我记得大佬说是因为引用了chatgpt这个底层包不支持所以没法做,事实的确如此,所以我去把chatgpt这个包的源码直接下载下来,全部放到service/src/openai这个目录下进行修改的。 2、我主修语言java,写这玩意也是边学边写可能不规范,如果大佬同意在发起合并请求 chat-shot (3)

前端大佬们,本人是node.js小白,请问一下文生图DALL-E 3, 如果配置"response_format":"url", 返回图片链接这种方式,非b64_json格式的,要如何处理代码?

可以参考我的仓库custom分支代码,直接返回markdown的图片链接就能显示了,当然这个链接貌似是有时限的

好的,感谢大佬。是的,这个链接是有时限的,可能“b64_json“方式更佳友好

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants