Enhancement: Switching between Chat View and MindMap View #1655
Replies: 2 comments 10 replies
-
Wow, incredible work, thank you for sharing! This is one of the most comprehensive forks I've seen. Thank you for taking the time to dig into the code and making something truly unique. I will like to try it out and maybe make a video about it on YouTube, so others are aware and can provide feedback on what you've made. There is a lot to digest here, and I hope to address all your points. For now, these points stand out to me:
When I refactored a lot of the frontend code to the "new" (11/06/23) style of ChatGPT, I changed a lot of the conversation/submission logic for the very purpose of multiple streams/responses at once. I apologize that I haven't gotten around to multiple streams yet, as I think this could've simplified your approach and had some of your desired effects already. In other words, streaming multiple responses should be more than possible without much introduction of code or addition of files anywhere in the current codebase. This is made possible by the recoil atom families the app now uses which allows many of the states to be handled on an index basis. A way to handle multiple server-sent events in one view is yet to be implemented but is one example of something that would need to be introduced. In conclusion, the mind map feature should be tackled when I've added multiple response streaming. The work you've done so far can mostly be used as reference when the update is in place, because I foresee under 20 files worth of changes for adding multiple response streaming on my end (and this is a conservative estimate, as could be lower). I can't merge your current work without a considerable amount of testing, and even then, the redundant code would bloat the frontend bundle size more than I can allow. Due to my limited time and current focus on the project, this is not currently feasible for me to address personally. My last point is that the core use case for LibreChat is for the user accustomed to a simpler, familiar interface. As an AI enthusiast, I am open to features like MindMap, and integrating more knowledge-graph-like features is a strong personal desire, but it would need to be far more segmented than it currently is. In an upcoming update, I am introducing an optional "side panel", maybe enabling of the feature can live there. I highly recommend you join the discord channel so we can communicate in real-time, this is highly encouraged for anyone making significant contributions: https://discord.librechat.ai |
Beta Was this translation helpful? Give feedback.
-
@danny-avila It's great news for me that the ability to handle multiple streams/responses is already in place. I'm not well-versed in React and Recoil, which made it challenging for me to understand this multi-stream/response feature. I thought the 'index' within useChatHelpers might be the key, but lacking confidence, I decided to introduce an additional parameter 'nodeId' for my implementation. (So far, my coding experience has predominantly been with C, Python, and TypeScript(but Angular)) I understand that integrating the current code with the original code poses significant challenges, and I have no intention of complicating the project's roadmap. Therefore, I agree with your decision to prioritize the original direction of the project. I would be very pleased if there's an opportunity to incorporate my suggestions into the "side panel" in the future. Thank you for inviting me to the Discord channel! |
Beta Was this translation helpful? Give feedback.
-
What features would you like to see added?
The concept of Enhancement in this project is great and I really like it.
I hope that my proposal in below is in line with the concept and will contribute to further enhancement of the project.
When using AI chat tools like ChatGPT for brainstorming new content ideas (such as novel or comic storylines), I've encountered some inconveniences:
Personally, I think "MindMap" are well-suited to address these issues. Therefore, I suggest adding a MindMap view.
More details
These features are already implemented in a branch of the forked repository below.
https://github.com/ryohei-kamiya/LibreChat/tree/feat-mindmap
For the implementation of MindMap, ReactFlow (https://reactflow.dev/) was used.
Remaining Issues
Which components are impacted by your request?
UI
Pictures
mindmap-view_short.mp4
↓ Long version
https://drive.google.com/file/d/1fbcVebsAGbZpgwUy3Ledyfubx6GtoWa0/view?usp=sharing
Code of Conduct
Beta Was this translation helpful? Give feedback.
All reactions