abielzulio / chatgpt-raycast

ChatGPT raycast extension
https://www.raycast.com/abielzulio/chatgpt
MIT License
563 stars 48 forks source link

Merge history and ask commands, simplify code using the @raycast/utils package #7

Closed pomdtr closed 1 year ago

abielzulio commented 1 year ago

The codebase looks cleaner now, but the history view shouldn't be merged with the conversation view because both have different primary actions. The user's primary action in the history view is to copy the answer only, while in the conversation view user's primary action is asking.

The best use case for this is Templates (as requested here). The template feature allows user to save their frequent question but has different objects/subjects every time they ask, so users don't need to retype the whole question again in the future. Here's my initial proposal:

https://user-images.githubusercontent.com/7030944/206626746-097d0cd6-1fe8-4d4f-b516-d3084bb98c0a.mp4

But there are some bugs (don't know if this is some Raycast limitations or not):

  1. Unable to control the search bar (in case users want to change some kind of their words in the question)
  2. Can't display the templates in the initial ask view command
abielzulio commented 1 year ago

You can try my proposal live here

https://github.com/abielzulio/chatgpt-raycast/tree/wip/templates

pomdtr commented 1 year ago

Why do you feel like templates makes more sense here ?

I kind of think the opposite (history merged with ask, templates in a separate view).

abielzulio commented 1 year ago

Why do you feel like templates makes more sense here ?

I kind of think the opposite (history merged with ask, templates in a separate view).

I think I got a better proposal for this. Let's keep the active conversational view clean (not merged with anything) to make users stay in their context (focused on their conversational flow)

There are two types of history that we need to define:

  1. All the answered questions and the question itself history
  2. Recent initial question history

The first one needs to be placed in a standalone view not under the active conversational list view because with the ongoing convo that keeps coming, this list will be on the bottom getting out of user sight making it useless and looks duplicated.

The best place that fits the second case is in the initial ask command view as users can start a new convo again with the recently asked initial question, but maybe this time they want to ask a different question in the middle of the convo flow.

For the template feature, I'm thinking that we can place it under the same view as the second case. So people are either able to reask the same recent initial question again or just use a quick question snippet that the users already saved. Here's a quick preview of how it looks (but don't know how to make it work as I can't control the search bar text value)

image

What do you think? @pomdtr

pomdtr commented 1 year ago

This is a really smart design, il love it !

abielzulio commented 1 year ago

This is a really smart design, il love it !

Glad you loved it!

Could you open a new PR that contains only your clean-up commit only? Will take a look at it and if it's good then we could start working from there

abielzulio commented 1 year ago

This is a really smart design, il love it !

Just shipped the recent initial question history feature! You can check the commit here: 598e628496f81ce7094b6d2b398b9532395b1ec8

Live demo (pardon for the slow response):

https://user-images.githubusercontent.com/7030944/206827645-74408d0c-a17f-4fe4-b7d4-9d74e7f6c002.mp4

I can't figure out the template feature but overall I think it has enough basic features that everyone can use. I'll submit it to Raycast ASAP. If you need to open a PR, I suggest you open it in the official Raycast repo once I submitted.

abielzulio commented 1 year ago

Sorry, mentioned wrong commit. Here's the right commit: c341eb2fd2588d9985952b9c309acfa51aee6f27