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

Roadmap for chat components #6291

Open
ahuang11 opened this issue Jan 31, 2024 · 6 comments
Open

Roadmap for chat components #6291

ahuang11 opened this issue Jan 31, 2024 · 6 comments
Labels
type: feature A major new feature

Comments

@ahuang11
Copy link
Contributor

ahuang11 commented Jan 31, 2024

Highest priority:

  1. Integrate a custom ChatInput Custom ChatAreaInput #6115
image
  1. Make it possible to customize styling of chat components Bug/Feature Req: ChatMessage misaligning avatar and message when timestamp or user tag disabled - No ability to remedy using stylesheets due to nesting of multiple Shadow DOMs #6235

  2. Migrate and integrate Status component that streams agents' intermediate steps or context from RAG (better naming, like CardUpdates TBD?)

Nice to haves:

  1. Ability to edit sent messages and rerun (and maybe deprecate the undo/rerun buttons)
image
  1. ChatSuggestion buttons (a list of suggestions to input)
image
  1. Improved control over placeholder (right now it's not-configurable and disappears upon stream)
  2. Default Help user for instructions for user, and gets ignored upon instance.serialize Add a default Help avatar to ChatFeed #5984
  3. Built-in export chat history button Add download/upload chat messages to ChatInterface #5567
  4. Custom callback exception handlers Allow custom callback_exception callable in ChatFeed #6047
@ahuang11 ahuang11 added the type: feature A major new feature label Jan 31, 2024
@MarcSkovMadsen
Copy link
Collaborator

MarcSkovMadsen commented Feb 1, 2024

Notes

2 in 1 Fileupload + input

2 in 1 Fileupload + input is something we lack in general not only for text. But for tables, images,video,Audio and maybe more. Gradio provides components like that which makes model testing apps easy to create for their users.

You can also think about it as drag and drop support. For non-chat use cases having a DragAndDropArea you could place a pane or (Tabulator) widget inside for display would be awesome.

ChatSuggestions

ChatSuggestions can also be generalized to a general ExamplesInput. Again Gradio provides something like that which makes it super easy to pick example texts, images, audio or videos.

@ahuang11
Copy link
Contributor Author

ahuang11 commented Feb 2, 2024

For non-chat use cases having a DragAndDropArea you could place a pane or (Tabulator) widget inside for display would be awesome.

I can't wrap my head around this. Can you elaborate?

ChatSuggestions

Actually I'm not sure if it should be a component, or just a param of ChatFeed. What would this component add beyond being a button if it's not linked to anything?

@MarcSkovMadsen
Copy link
Collaborator

MarcSkovMadsen commented Feb 2, 2024

For non-chat use cases having a DragAndDropArea you could place a pane or (Tabulator) widget inside for display would be awesome.

I can't wrap my head around this. Can you elaborate?

Yes. DragAndDropArea is a layout that takes a pane or widget as input. It understand what types of objects the given pane or widget can accept. When something valid is drag and dropped in its area its converted into something the pane or object can take as input.

DragAndDropArea(Image("some_image.png"))

If you drag an image into the above area it replaces "some_image.png" in the Image pane.

@ahuang11
Copy link
Contributor Author

ahuang11 commented Feb 2, 2024

Sounds awesome!

@MarcSkovMadsen
Copy link
Collaborator

MarcSkovMadsen commented Feb 2, 2024

ChatSuggestions

Actually I'm not sure if it should be a component, or just a param of ChatFeed. What would this component add beyond being a button if it's not linked to anything?

Composability. It would be a lego brick that could be used with the ChatFeed. But also just with any widget that takes text as argument. Gradio often have apps with a TextInput that the user can click some examples to quickly test things out.

@ahuang11
Copy link
Contributor Author

ahuang11 commented Feb 2, 2024

Can you sketch out a param class for it? I still can't wrap my head around its benefit over using vanilla pn.widgets.Button.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feature A major new feature
Projects
None yet
Development

No branches or pull requests

2 participants