enricoros / big-AGI

Generative AI suite powered by state-of-the-art models and providing advanced AI/AGI functions. It features AI personas, AGI functions, multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.

Home Page:https://big-agi.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Side | Side Chat windows

enricoros opened this issue · comments

Enable splitting the current Chat window in left/right (desktop) or top/bottom (mobile).

While AppChat shall still keep a single Composer, there should be an option to send the same output to both (or 3,4..) chats, as well as selecting which chat receives the input (an outline, dedicated buttons, or something).

Requirements:

  • #233
  • Side-by-side window rendering (can start with just that split)
  • per-pane history #207
  • Easy way to close the split

Stretch goals:

  • #388
  • #389 (in the context of #162 #222 <- shall we show multiple windows/outlines?)
  • Any creative tool ideas?
    • e.g. copy from one side to the other?
    • Overwrite one assistant with the other's message?
    • Make the splits cross-chat or part of a "chat room"?

See #126, for an example use case for this.

Any ideas of creative tools? copy from one side to the other? Overwrite one assistant with the other's message?

You're asking for other usage cases for such a feature besides #126 ?

Maybe something along the lines of Professor Synapse ChatGPT prompt https://gist.github.com/centminmod/21fb1d2f097ebfc6a8cb3e82e3a02796 where /save command saves and summarizes the chat progress so far in attempts at extending the context length accuracy a bit further?

So you could have left window split for the current chat progress and have an option to save a summary of the current chat and have it output to right window split chat. Then have left window split support on command or automatically reading the right window split summary to extend the context of left window split discussion.

Doing it this way also gives you a history of all summaries neatly organized on the right window split chat which you can reference back to and/or give you a more mature fleshed out starting point if you have to revisit the same chat discussion again and not have to go through the already discussed left window split chat from scratch again :)

@centminmod this is genious - do you have more about this prompt? I love this use case that you mention.

It's exactly one of the directions I want to go towards: higher level controllers that can control lower level. Large parallel with how organizations of humans scale - you keep adding leaves to the org and splitting the control/execution responsibility.

This is a great input because allows me to conceive cross-chat communication and synchronization mechanisms.
A+ for your contib here, and if you have more on this example, please share.

Professor Synapse prompt has a few Youtube videos you can watch. It seems to have a Github repo too https://github.com/ProfSynapse/Synapse_CoR and web site https://www.synapticlabs.ai/

I was asking myself whether there should be an explicit communication protocol between the 2 (or more) windows, or whether just loading the Professor on the left side, and a worker on the Right side, and letting them chat, would work.

In that case, the UX could have a big "🔁" button that when pressed makes the left side chat to the right and vice versa, becoming one the assistant of the other (and removing half of the space).

  • Split window: [ assistant1 <> user ] | [ assistant2 <> user ]
  • Assistant vs Assistant 🔁: [ assistant1 <> assistant 2 ]

But I'm curious if this is enough (e.g. "text" is the interface between the 2 windows), or if more structured state shall be exposed between the windows.

For instance a "hierarchical" controller where Window1 controls Window 2 controls Window 3, could also be fascinating.

The technical or coding aspects would be outside of my wheelhouse. But my first thought would be what about beyond 'text' i.e. images since OpenAI has DALLE-E and vision GPT as well.

a "hierarchical" controller would be interesting for more than 2 windows, i.e. ask a question in main chat which has an A/B if/else narrative and have A/if on window 2 and B/else on window 3

Great ideas, thanks

@centminmod done, and includes a "multicast mode" to chat with multi-chats at once. No intertwined modes for chat.

Bit late but thanks @enricoros working nicely on my end :)

Definitely useful when you have a tangential thought and need to branch split the current chat :D