ChatGPTNextWeb / ChatGPT-Next-Web

A cross-platform ChatGPT/Gemini UI (Web / PWA / Linux / Win / MacOS). 一键拥有你自己的跨平台 ChatGPT/Gemini 应用。
https://app.nextchat.dev/
MIT License
75.22k stars 58.87k forks source link

[Feature]: 在基于该项目做定制化之后的一些思考! #2704

Closed 92hackers closed 1 year ago

92hackers commented 1 year ago

关注 ChatGPT-Next-Web 这个项目挺久了。

我自己也基于它开发了一个深度定制版出来: ai.breword.com

该产品包含完整的前后端,对 chatgpt-next-web 代码改动还是比较大的。前端还是 Next.js app router 框架,后端我是用 Strapi 来搭建的,整体这一套整个开发体验挺流畅的。

下面分为几个部分来谈谈自己定制化的体验。

代码方面

chatgpt-next-web 这个项目代码基于 Next.js 13 最新的 app router 框架,目前预设的运行环境是 Edge, 也就是边缘网络,而如果想要让它在 Node.js 上面运行,其实还是需要做一些工作的,特别是如果代码中后续用了一些 node.js 运行时相关的库,比如:fs ,具体两个运行时的差异,可以去看 Next.js 的文档,这里略过。

该项目整体的代码质量还算挺好的,有完整的 typescript 支持,基本没有滥用 any 。只是确实由于是开源项目,很多人协作,所以代码中显而易见的有不同风格的代码出现,不过影响不大。

该项目所有聊天数据都存储在用户浏览器的 localStorage, 使用了一个集中式的类似 Redux store 那样的方式来存取、更新聊天内容。这块逻辑比较多,要接入后端的 api 接口还是需要一定的功夫。

产品方面

就我目前接触的用户来看,普遍对它外观、布局、配色方面评价都不错,一句:UI 很好看 应该大家都懂。 整个产品的设计基调是不错的,配色柔和,我自己在做一些定制化的过程中,也是有参考这套设计逻辑,尽量简洁、简约。

此外,也有一些批评的声音:

比如,争议最大的是那个 面具 这个功能,我发现用的人不太多,还有很多人来问我这个面具是啥意思啊,不太会用啊!

所以如果是作为一款商业产品,给普通用户使用的话,可能 面具 这个概念需要更换一下,暂时这块我也在思考中。

再比如,就是整个产品缺乏一个用户指南,文档类似的东西,很多人反馈给我说不会用,目前可能尝鲜的人都是仅仅把它当做一个比百度更好的搜索引擎来使用。因为目前想要让 ChatGPT 返回比较好的结果,对于用户提问技巧方面有一些要求。

最后,设置里面的很多选项,对于不熟悉 chatgpt 的人来说,可能不太会用,所以我在处理这块的时候,把那些专业性较强的选项去掉了,留下了几个比较容易理解的设置项目。

总结

chatgpt-next-web 项目算是我做 Breword AI 这个产品的一个最大的帮手,帮我理清了最初的产品形态以及提供了最初的源代码,非常感谢!

然后,该项目本身个人的体会是确实还只是一个 "项目",距离一个能给用户用的产品有一定距离,用代码行话来说的话就是抽象层次还比较低,向上层使用者暴露了过多的细节。

大伙也可以去 Breword AI 试用体验一下,觉得哪些地方做得还不错的,我可以反哺到这个源项目中来。

当然我自己也会在持续运营的过程中,发现一些用户痛点,结合该项目的需求,反哺该项目。

最后,关于这个项目的定制化、后端数据层以及 Chatgpt-next-web 的源码方面的话题,大伙可以在下面留言一块讨论,助力 chatgpt-next-web 项目有一个更好的发展前景。

Issues-translate-bot commented 1 year ago

Bot detected the issue body's language is not English, translate it automatically.


Title: [Feature]: Some thoughts after customization based on this project!

I have been following the ChatGPT-Next-Web project for a long time.

I also developed a deeply customized version based on it: ai.breword.com

This product includes a complete front-end and back-end, and the changes to the chatgpt-next-web code are relatively large. The front end is still the Next.js app router framework, and I used Strapi to build the back end. The overall development experience of this set is quite smooth.

The following is divided into several parts to talk about your own customized experience.

Code aspects

The chatgpt-next-web project code is based on the latest app router framework of Next.js 13. The current default operating environment is Edge, that is, the edge network. If you want it to run on Node.js, it is actually Some work is required, especially if some node.js runtime-related libraries are used later in the code, such as fs. For the specific differences between the two runtimes, you can go to the Next.js documentation, which is skipped here .

The overall code quality of the project is quite good, with complete typescript support, and basically no abuse of any . It's just that because it is an open source project, many people collaborate, so there are obviously different styles of code in the code, but the impact is not great.

All the chat data of this project are stored in the localStorage of the user's browser, and a centralized method similar to the Redux store is used to access and update the chat content. There is a lot of logic in this piece, and it still takes a certain amount of effort to access the back-end API interface.

Product aspects

As far as the users I have contacted so far, they generally have good comments on its appearance, layout, and color matching. One sentence: The UI is very good-looking should be understood by everyone. The design tone of the whole product is good, with soft colors. When I am doing some customization, I also refer to this design logic to try to be as simple and simple as possible.

In addition, there are some critical voices:

For example, the most controversial thing is the mask function. I found that not many people use it, and many people ask me what this mask means, and I don’t know how to use it!

So if it is used as a commercial product for ordinary users, the concept of mask may need to be replaced, and I am thinking about it for the time being.

Another example is that the entire product lacks a user guide, documentation, and similar things. Many people told me that it would not work. At present, people who may be early adopters are only using it as a better search engine than Baidu. Because currently we want ChatGPT to return better results, there are some requirements for user questioning skills.

Finally, many options in the settings may not be very useful for people who are not familiar with chatgpt, so when I deal with this, I removed those more professional options, leaving a few easier Understand the setting items.

Summarize

The chatgpt-next-web project can be regarded as one of the biggest helpers for me to make the Breword AI product. It helped me sort out the initial product form and provided the original source code. Thank you very much!

Then, the personal experience of the project itself is that it is indeed just a "project", and there is a certain distance from a product that can be used by users. In code jargon, the level of abstraction is relatively low, and too much is exposed to upper-level users. details.

You can also go to Breword AI to try it out and experience it. If you think it is doing well, I can feed it back into this source project.

Of course, I myself will find some user pain points in the process of continuous operation, and combine the needs of the project to feed back the project.

Finally, regarding the customization of this project, the back-end data layer, and the source code of Chatgpt-next-web, you can leave a message below for discussion to help the chatgpt-next-web project have a better development prospect.

wrzszhaowei commented 1 year ago

我理解的面具其实就是一个情景模式,您可以参考下。

Issues-translate-bot commented 1 year ago

Bot detected the issue body's language is not English, translate it automatically.


The mask I understand is actually a scene mode, you can refer to it.

Yidadaa commented 1 year ago
  1. 我默认使用者有一定的 chatgpt 使用经验,并且有自行检索信息的能力,你说的“面具”和设置选项的术语解释,并不是本项目的重点,对于大多数用户,只需要一个聊天框就能做很多事情,当他需要高级能力时,会自行去搜索信息;
  2. 维护文档的工作量并不比写代码少,所以文档的优先级很低;
  3. 我在实现的时候会避免商业化功能,比如很多人都想要的数据库、用户管理、云同步等功能,这些功能都会让部署变得更复杂,你说得很有道理,我做的是一个工具,而不是商业产品,如果想商业化,二开的时候做针对性修改就行。
Issues-translate-bot commented 1 year ago

Bot detected the issue body's language is not English, translate it automatically.


  1. I assume that the user has some experience in using chatgpt and has the ability to retrieve information by himself. The "mask" you mentioned and the explanation of the terminology of the setting options are not the focus of this project. For most users, only one chat is needed The box can do many things, and when he needs advanced capabilities, he will search for information by himself;
  2. The workload of maintaining documentation is not less than writing code, so the priority of documentation is very low;
  3. I will avoid commercial functions when implementing them, such as database, user management, cloud synchronization and other functions that many people want. These functions will make the deployment more complicated. You are very reasonable, I did it It is a tool, not a commercial product. If you want to commercialize it, you can make targeted modifications during the second release.
kjwlegend commented 1 year ago

我看了楼主其实改的一点不多, 我已经改的 {{面目全非}} 了

img img 后端采用python django 搭建, 主要是为了以后对接其他 AI 应用. 全网找遍了都是 node, php 内核的. 于是自己从0开始写.

Yidadaa 这个项目, 我认为最核心的还是 对话的 zero shot , few shots 的预设配置. 这个是能提升对话质量的核心. 改UI 什么的只是最简单基础的变化而已.
其实原版不能说 '好看', 只能说是 '轻快' . 打包时候的极致大小主要也是为了个人快速易用. 并不是为了好看出发.

现在全网上有单纯对话和后端的开源其实不少,像chat-web 之类. 但Y大的这一块, 依旧是全网最佳, 没有之一. 因为这个核心优势, 其他我全部抛弃了. 但是前提也是要懂提示词工程的人来好好用.

楼主如果是想自己商业化, 很多细节点像Y大说的自己调整就行

Issues-translate-bot commented 1 year ago

Bot detected the issue body's language is not English, translate it automatically.


I saw that the host actually didn’t change much, I have already changed {{unrecognizable}} [https://xiaoguang.chat](hidden address) The backend is built with python django, mainly for connecting to other AI applications in the future. I searched all over the Internet for node and php kernels. So I started writing from scratch.

For the Yidadaa project, I think the core is the zero shot of the dialogue, the preset configuration of few shots. This is the core that can improve the quality of the dialogue. Changing the UI is just the simplest basic change. In fact, the original version cannot be said to be 'good-looking', but only to be said to be 'light and light'. The extreme size of the package is mainly for personal quick and easy use. It is not for the sake of good looks.

There are actually quite a few open sources for simple conversations and backends on the Internet now, such as chat-web. But the Y-big one is still the best in the entire Internet, not one of them. Because of this core advantage, I discarded all others. But the premise is that people who understand the prompt word project should use it well.

If the landlord wants to commercialize it himself, many details can be adjusted by himself as Y said.