How to automatically name ChatGPT and Gemini conversations

This is an interesting topic, and I’d like to cease lurking and introduce myself in order to discuss. I suppose I’m a somewhat long-time, basic-level user of TiddlyWiki. Deciding on how to handle titles and captions is one point where I often get stuck.

For instance, right now my focus is on importing transcripts of conversations from ChatGPT and Gemini. It’s definitely possible to get a linear path through tiddlers representing the user’s prompts and the chatbot’s responses–perhaps using “next” and “previous” buttons that utilize timestamp data or generated identifiers. However, I also want unambiguous titles clearly showing the sequence to appear in the story river.

The default automation of importing these transcripts into TiddlyWiki titles the tiddlers with a UUID, and this is really difficult for me to work with. I’d like to explore deeper methods of hypertextualizing these conversations, but I find that I personally struggle to implement anything practical, partly because the titles are unappealing and hard to work with.

I’m trying to figure out a consistent titling scheme. I have to assume that I can’t necessarily reference the content of the tiddlers in the titles, but I should be able to reference the sequence. (I probably could reference the content, but it would be hard to work with as well as hard to automate, so I’m assuming that I won’t be able to do so.)

Welcome to the community. That’s a very interesting question. – So I did move it to its own thread.

Using a UUID as a title is definitely not very user friendly.

I personally would use

  • a timestamp based naming schema,
  • starting with q for question and a for answer
  • then a separator eg: .
  • c … chatGPT and g … Gemini / It’s possible to have other suffixes for other “bots”
  • separator /
  • timestamp is next YYYY-0MM-0DD/0hh:0mm:0ss eg: 2024-06-10/12:15:25
  • separator /
  • human readable key-words

So the full thing would look like this: q.c/2024-06-10/12:15:25/build-house
An answer would look like: a.c/2024-06-10/12:15:25/build-house

Depending on your preference or usecase the order of the elements can be changed. eg: from

<bot-ID>/<tiemstamp>/<key-words> to <tiemstamp>/<bot-ID>/<key-words> so the titles form above will look like this:

Q: 2024-06-10/12:15:25/q.c/build-house
A: 2024-06-10/12:15:25/a.c/build-house

As you can see, a title like this one is very similar to a UUID, but is much more user friendly. eg:

  • Search for a question would look like this:
    • q.c … question for ChatGPT
    • q.g … question for Gemini
    • q. - q-dot-space … Questions in general
    • .con … full conversation in 1 tiddler (edited)

Since TW starts to list elements if you type 3 characters that’s an easy to type search with a lot of “value”

  • Search for “chats” in June will look like this

    • -06 … June any year
    • 2024-06 … June in 2024
    • 2024-05-10 – I think you get it
  • Search for key-words

    • build-house … Will give me the whole conversation about build-house
    • a. build … Will give me all answers for key-word “build”

Can you see the pattern?

I did use “slash” / as a separator which makes it possible to use the split operator to easily separate a title into it’s elements using TW-filters

In combination with the search-replace operator it should be possible to “batch process” the titles later, if it turns out the “order” of the elements has to be changed.

– But –

This will break existing - [[TW links]] – So after some experimenting you should settle on a format and then stay with it.

Optional <base 62 ID> probably not needed in the title

The <key-words> have potential to be “expanded” build-house-<base 62 ID>

<base 62 ID> a random number eg: 7 chars using 0z [0-9,a-z,A-Z] as possible characters eg: 0zCxb2a … just in case you need a random element in your names for whatever reason.

All IDs would be “forced” to start with 0z so they can be easily identified and processed using TW filter syntax.

I think that’s enough for the start

1 Like

Then I would have some additional tiddler fields

key-words … space separated list of additional key words for improved search-ability
aliases … to be used for TW-links

By default the tiddlers do not have an aliases field

The aliases field will be created whenever I need to create a TW link using my uni-link plugin, which makes it possible to link tiddlers using the alias instead of the title.

This makes it possible to have links, that are independent from the title. So they will not break if you change the title of a tiddler.

This gives us much more freedom with wiki-links

1 Like

The idea of ​​letting AI automatically generate a title is cool, similar to how chatgpt automatically generates a title for each conversation.

You mean each q and a be a tiddler? That will be a lot. Why not add to a single tiddler, and split with h2 title.

Also, I’m creating some ai action string in GitHub - tiddly-gittly/ai-actionstring: AI actions for TiddlyWiki CommandPalette , that can be triggered by Command palette plugin v1.0 , powerful context search bar, search under filter, etc. See I18n Document about actionString’s input variable #8230 for the blocking issue.

After resolve, we can use ai to generate title for titleless tiddlers - What’s the standard way to not writing Title

It depends on the usecase and how the conversations are created.

  • If a conversation tiddler is created by hand I would start with 1 conversation in 1 tiddler.
  • If conversation tiddlers are created using scripts in external batch processing I would have them separated

Using a <bot-ID> eg: .con for “full conversation” in 1 tiddler would keep you going, without the need to split it. eg: 2024-06-10/12:15:25/.con/build-house

If you search for .con it will give you all of them. – no “wizardry” needed

In a second step it can be easily converted to separate tiddlers.

For my knowledge repository source from llms I use the first question as the title then past the result into the text of a markdown tiddler.

Subsequent question and answers are appended to the text field.

I then utilise search and free links and a custom toc to explore the content further.

I can the leverage any other method to explore or research based on the content.

I personally try to stay away from 3rd party plugins as long as I can. I start to use plugins, if there is no other way to solve a problem with the standard TiddlyWiki functionality.

I think if we put some effort into “how we create human readable” and “easy to search” titles it goes a very long way.

The format I proposed has only 3 elements: <timestamp>/<bot-ID>/<key-words> and all of them are human readable and easily searchable but they create a UID.

They can easily be switched around for experimenting. eg: <timestamp>/<key-words>/<bot-ID> would be OK too.

Having the <timestamp> section in the front will create automatically “sorted” lists if the <<list-links>> macro is used to list them.

The standard search will also go a long way as described in my first post.

I only keep the answers that are useful and valid. For me most of the time the first 3 answers from the bots are crap and have no value at all.

So I throw 80% away and keep “the good parts” (5%) that I can verify and that actually work.

I too throw away content but I work hard to compose questions that give me useful first results. However in technical or coding questions the later answers are usually the best.

I find when questions fail to give good answers it is an opportunity to learn how to ask better questions

It would be interesting to learn about the differentsways people use LLMs

1 Like

@pmario, Thanks for the welcome, and the intriguing suggestion. For some reason, I’ve been thinking that I need to have the sequential order of each message clearly identified in the title.

This is what my table of contents tiddler looks like:

02—User Message (Conversation fc89c6d4)
04—Assistant Message (Conversation fc89c6d4)
06—Assistant Message (Conversation fc89c6d4)
07—User Message (Conversation fc89c6d4)
09—Assistant Message (Conversation fc89c6d4)
10—User Message (Conversation fc89c6d4)
11—Assistant Message (Conversation fc89c6d4)

I retained a piece of the UUID from the internal metadata of the LLM. For some reason, my brain couldn’t make sense of it to try to work with it in TiddlyWiki without seeing the sequence in the river.

Yeah, they’re generated. I think having each prompt and each response as separate tiddlers is best, but corresponding prompts and responses should be easy to relate back to each other.

In fact, I might want to have message-response tiddlers that transclude both parts.

I think you are on a good way. Your titles do have a structure that is “auto-sorted” by TW using a zero-based numbering system.

It seems your titles are somewhat unique, since you kept a conversation ID.

But – For me personally the “human readability” is completely missing. If you start to have 1000+ tiddlers, the only differences will be the “Conversation ID”, which IMO is very abstract and not a good user experience.

If you do control the LLM export process, it should be straight forward to create similar titles to what I did suggest – Adjusted to your preference or requirements. I would also add some more key-word fields, for extra TW “filter ability”.

  • IMO the LLM should already be able to suggest 3-5 key-words that could be added as fields.
  • It should also be possible, that the LLM creates an “executive summary” eg: 50-100 words that summarize the whole conversation. This summary could be the “parent” tiddler that contains the summary and a list of related tiddlers

… and so on. – I’m already brainstorming :wink: