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

Folders #75

Open
wants to merge 30 commits into
base: main
Choose a base branch
from
Open

Folders #75

wants to merge 30 commits into from

Conversation

EvolvingSoftware
Copy link

Folders:

image

I've expanded the data model to introduce folders. The folders can be nested. Conversations can be moved in and out of folders. Folders and Sub Folders with Conversations can be deleted. Folders and Conversations can be renamed via context menu.

image

As this took me a bit longer than I originally anticipated, I also updated the LLaMA.cpp server at some point to a newer version.

The battle with SwiftUI for hierarchies in a list view is real..

Evolving Software added 30 commits July 7, 2024 11:31
… of blue for selected chat and is the full row width
…ren't passed through when running a context menu at the top most elements
…me, delete functionality, drag drop for folders, conversations, dub folders and the conversation selection happening.
Copy link

vercel bot commented Aug 5, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
free-chat ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 5, 2024 8:24am

@EvolvingSoftware
Copy link
Author

@psugihara Hey, not sure if you saw this?

@psugihara
Copy link
Owner

Hey, I think my notifications are messed up sorry. Just taking a look.

@psugihara
Copy link
Owner

Hey @EvolvingSoftware, I tried to run this but I get these errors:

Screenshot 2024-08-18 at 4 11 23 PM

The code looks clean and just going off your screenshots this looks very cool.

But as I mentioned in #43 I'd really prefer a folder UI that didn't interfere with the default time sorted list... that's how I like to use FreeChat: popping in for a quick question and often copying the result in a different program. If I'm going back for something, it's almost always in the latest 3 chats. Beyond my own use cases, I have some extra confidence that this is the right UI because the most popular chat clients do this too (GPT, claude).

Any chance you'd want to adapt this to do more what Notes does with folders? I think we'd add a 3rd default-hidden "Folder" column to the NavigationSplitView that lets you do folder stuff. The nice thing about the Notes implementation is that it lets you opt-in to the complexity of folders if you want to get organized, but it defaults to the simple time sort.

@EvolvingSoftware
Copy link
Author

Hey @EvolvingSoftware, I tried to run this but I get these errors:

It's because I don't check in FreeChat.xcodeproj

If I did, it would over write your developer settings? You just need to add that one file in to the build and exclude the other. I swapped the files over during the development due to some of the complexities I was having with the structures and the debugging.

If that doesn't matter, I can just check it in next time but from my experience of taking your version of this file, there's normally 10 or so steps I need to go through to change things just to get it configured for my environment to build? (I haven't looked in to the best way to do this either).

The code looks clean and just going off your screenshots this looks very cool.

But as I mentioned in #43 I'd really prefer a folder UI that didn't interfere with the default time sorted list... that's how I like to use FreeChat: popping in for a quick question and often copying the result in a different program. If I'm going back for something, it's almost always in the latest 3 chats. Beyond my own use cases, I have some extra confidence that this is the right UI because the most popular chat clients do this too (GPT, claude).

Any chance you'd want to adapt this to do more what Notes does with folders? I think we'd add a 3rd default-hidden "Folder" column to the NavigationSplitView that lets you do folder stuff. The nice thing about the Notes implementation is that it lets you opt-in to the complexity of folders if you want to get organized, but it defaults to the simple time sort.

I could, but also consider that the folders don't prevent you from using it the way you describe today. A new chat still just goes in chronological order on the left side and you don't need to create a folder at all. If you create a folder it's at the top but the default behaviour (unless your in a folder or have it highlighted) is for a chat to be created as it is now and just go in the existing timeline.

It's probably a bit of sunk cost fallacy on my end for how long it took me to get them all working together, playing nice and looking good, so I probably just think it's a nice use case because of this.

What I really want to do with the folders though, is have each folder be able to override the default agent behaviour/custom instructions.

As an example, with Chat GPT, I use a custom instruction of "If I just paste text in that doesn’t make any sense in English, assume that it’s informal Indonesian texting between friends and translate it to English. Then after the translation of the sentence, translate each word individually so I can learn Indonesian." - This works great because I can just copy messages from WhatsApp in to ChatGPT and paste and get the exact result I want. But I can only have one of these instructions, so if I want to use it for coding, I keep providing context or writing articles etc etc.

So what I was thinking is these folders are the jumping off point to hang this extra functionality off, which to your point ChatGPT doesn't do, as they've tackled it with Custom GPT's instead, but in a similar way, they sit at the top of the timeline view too.

Anyway, let me know if that makes sense and if adding that one file in to your build and excluding the other works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants