benf2004 / ai-prompt-genius Goto Github PK
View Code? Open in Web Editor NEWCurate a custom library of AI Prompts
Home Page: https://aipromptgenius.app/
Curate a custom library of AI Prompts
Home Page: https://aipromptgenius.app/
ChatGPT's main page is getting beefy, and consequently, our main load delay just ain't cutting it anymore. In fact, on my lower end machine, it's causing quite a few hits and misses (like a new prompt being reset before it can be deployed) or the fact that some buttons just aren't added consistently.
I suspect the problem is that THEY are also bodging it on their end, loading THEIR chats dynamically. Which causes problems for us.
This has nothing to do with the fact that our buttons get cleared when user clicks on a chat history button and their buttons get killed. That's another bug.
You guys should take a look, the official site is updated
This space is changing all the time
It might be good to consider which features to focus on
Let me know what you think!
Expected Behaviour:
In the main ChatGPT proper, you can pick off where you left off.
Ie, if you generated 5 responses, and decided one of the middle responses were best, ChatGPT opens to the same page.
Behaviour:
Thread viewer always opens up to last response. Ie, if your tree is as follows, where the first response is a dead end, the second response is a huge tree, and the third response is also dead end, thread viewer opens up to the third response, every time.
Workarounds:
Flicking < and > to match, although that gets quite annoying.
Solution:
Save currentLeafIndex as well, either that, or have a parallel array called "currentLeafIndices" or something like that.
Should put the stuff before the network error happens. I am working on fixing this right now.
Thanks for the recent update
This extension is so underrated (in star count)
I get an "operation insecure" message and it seems to break the page when any of the buttons are clicked.
Behaviour:
Expected Behaviour:
Steps to Reproduce:
No idea.
These bugs are most prevalent when there is an error on the main chat page itself, but that's just anecdotal for now.
Wait a long time (ie, go take a nap) and see what happens in the morning, because that usually causes weirdness.
Notes
For some reason, the scraper has kind of bugged out. I regret not saving any logs initially, but I just noticed it. The following are logs from when I opened it again. And now, it is still refusing to save the old logs.
There are probably at least two bugs here.
PS: Oh, and whitespace for humans are still wrong. Tabs and indents are not displayed correctly, ugh.
See #12
If a user clicks on a prompt and then clicks elsewhere rather than typing in the textarea box, the text gets erased. I think this is something to do with React, which I have zero experience with. I just thought of a way to fix this brb...
Search bar looks out of place, would be better to add an icon and be able to click into in order to type your search query.
As you know, many times, we ask for a new response, and many times we go back and change an old request in the current thread
Therese a lot of data there
please have it so that in the history, i will be able to see on which branch i am on (like 3/3 etc) same as the chatgpt site
I hope this is clear enough :)
Thanks a lot (hope you like getting flooded with Issues and Feature Requests haha)
Have a good one!
Hi there,
this is honestly not a high priority for me, but just for the backlog,
it would be really nice to be able to change the theme, of both your history page, and the original chatgpt site
to take it a step further, when you load bookmarks, you can choose a color palette to them,
then when you load them , its like a personalized familar scope.
for example ill have a dark-terminal inspired theme for when loading the "linux machine" prepormpt
and use the warm pallete for my fined tuned pyschologist
and so on
this would be coupled great with live/continues threads (i'll write about it in another Feature Request)
now that i wrote it down it suddenly feels like this has potential
hope you like the idea
thanks a lot and have a good one!
Putting this here before I forget, the export function doesn't export all data.
Ie, it doesn't save settings or prompts.
Ditto for the import function.
In the end, probably should move export and import to settings (manage your data) and export EVERYTHING in the extension itself (add another button just to export and import old threads to placate old users though).
Also, probably add an export all threads function as a zip (like google drive download folder as zip [and now I know why they have to do that instead of allowing you to just download 40 different files]).
So just a quick summary for future reference, when you click on the edit button, the text becomes a TEXTBOX.
This means that the .innerText function returns nothing, cause <textarea>.innerText is empty, you have to query its VALUE.
Writing a naive workaround now. If innerText is "Save & Submit\nCancel" then query textarea instead.
Normally, this isn't a problem... unless the user leaves the page before they click save and submit. However with the new branch scraping algorithm, this breaks that.
If we're continuing to use content scraper, we should at least make it scrape the new titles as well.
Of course, this issue is moot if we don't.
Similar extensions like ChatGPT-pdf inject buttons to save the conversation on the original page itself. This is much more convenient when one wants to save only one conversation.
This extension still has unique value in that it is the only one that allows the user to save their bookmark within the browser itself, and it does so silently and automatically.
Therefore, it would make sense to add those features in order to keep the project alive.
If we're being honest, the buttons on the main page are probably much more important now.
They're taking up a lot of space though (I know I cheated by zooming in, but that's the point. We'll have more buttons are screensizes get smaller).
Plus, the buttons get autodeleted whenever the user is scrolling on a new page, so it has to be moved somewhere else at least for that reason. Maybe a popup menu if we get desperate?
Behaviour
When partial data (ie, as part of a historical convo) is scraped, the viewer in thread.js can't handle it.
Expected Behaviour
Upon unexpected nulls, it should infer as best as it can.
Ie, say that leaves are like this [null, null, data]. The < > arrows must work. The user should be able to navigate to saved branches, but otherwise, the leaf should say "Data not found" in a similar way to the content warning, only blue, from the main chat site.
Obviously, the leaf viewer can't infer future branches.
Workarounds
Only viewing fully saved branches and or new chats.
Solutions
Implementing expected behaviour.
Before I forget, export to MD is broken again because of context. get_current_chat_text() is not available within its main function (we should really factor out a utility.js for content scripts as well)
However, I'm planning on migrating export.js to injected js instead to see if that can slay the beast called CORS and make it work for images again.
If the user has no prompts, JSON.parse gets cranky and throws an error.
Behaviour:
When you edit a title using searches, the title that is loaded is wrong, and I suspect when it saves, it'll save to the wrong thread as well.
Expected Behaviour:
Editing the title of that specific title in searches.
Workarounds:
Don't use search for now?
Solutions:
all functions in the do_something(i, row)
has to be refactored, most likely.
The way that I've done it in the past is adding the data directly to the DOM, ie,let thread = createThreadElement()
, thread.insertMyDataHere = UUID
, and the onclick takes target.UUID. It's a messy solution but it works unless there's namespace overlap, though that can be solved by naming the variable something specific (ChatGTP_history_uuid
, for example).
I suggest we refactor [i] to .getObjectByID whereever possible; even if more computationally expensive, it's more robust and performance in that particular area is no concern for now (as it's DOM which is slow, as usual).
Notes
Probably also breaks with bookmarks as well, or anything that doesn't load every thread in the right sequence.
Double check if this thing breaks the delete button as well.
After a week of continuous, yet somewhat conservative usage (I'm mostly only using to generate short stories), explorer.js is starting to chug with noticeable lag when I open the page, though it is not so serious for now.
I'm pretty sure that this is due to loading all the HTML for the new page. While that's perfectly normal, perhaps there's no need to load everything all at once. We might want to introduce pages, or at most, a simple "load 20 most recent threads, and a load more button that loads everything else".
The most recent AI response is not saved.
However, if Human makes a new prompt, then it saves everything perfectly, up and until the last prompt again.
This seems to be most prevalent if I step away from the page for a while (say to file a GitHub issue). I'm suspecting stop_saving
is doing something weird. I doubt performance is an issue and having autosave continue is the safer bet.
The easiest way to do it, I think, is to have a main loop, and then to have a secondary flag; something like "isDOMTreeModifiedFlag".
Behaviour:
Buttons disappear.
Expected Behaviour:
That they do not.
Workarounds:
Refreshing every time, though that gets quite annoying.
I'm refreshing so often that cloudflare thinks I'm DDoSing them, lol.
Solutions:
Something to detect when its URL changes, it completely reloads the page (and yet does not reload content.js), do not affect the main scraper until that is fixed, and then add the buttons.
Hello :)
Not really sure how easy it will be to do,
but just a wish, I would love if if all my history was always in a Side Panel to the Right of the chat
This will really save me alot of going back and forth between the chat and history ( and we can always minimize the panel when we like)
in this mode, loading or importing , chats or files, will be sent in the same chat thread that we're currently in (instead of a new tab)
Hope you like it, I really think this can supercharge the chatgpt experience (which you're in the business of ๐ )
Thank you guys so so much and have a wonderful week !
Current Behaviour:
It appears that the content warning message is being scraped along with everything else if it's displayed as a warning for humans. However, there is no such problem for AI responses which are flagged.
Expected Behaviour:
Content warning should be ignored for humans as well, or at the very least, be kept and made visually distinct from the rest of the box.
Steps to Reproduce:
Generate a flagged prompt, optionally receive a flagged response, and read the results using the extension.
Behaviour:
The scraper has returned an object with one leaf being null. This is not normal.
This is a symptom of the bug. Paranoid checking lets us detect that somehow, not every branch is picked up by the scraper. Something has gone terribly wrong.
Most of the branches however, are clearly scraped. Cursory testing and I can't tell what's missing. Most of the branch data is fine, it's only being triggered in one thread out of like ten.
Expected Behaviour:
Under normal circumstances, there should be NO cases with a null object.
There is an undetected edge case in the branch scraper.
Workarounds:
convo
still works. And to be honest, branch scraper still mostly works. This is more about a leak that seems to be happening.
Solutions:
I'm suspecting the 2000ms delay belay saving might be a culprit, though I'm not sure. Further testing is needed. I am putting this issue here as a heads up.
I'm also wondering if the JSON is tripping up to .toJSON, since this was a continued conversation.
For many different reasons, it is desirable to sync our IDs with that of ChatGPT.
(On a related unrelated note, currently working on loading user prompts. Note that the way that EnhancedGPT works is that it literally intercepts the fetch request and splices the new prompt into the message like a CRISPR. Anyways, so I'm working on replicating this from a content script.
(On an unrelated note, I think it is somewhat undesirable to do this because it's hiding the real prompt from the user, but that's anther story).).
So, these are the intercepted requests for reference, and as you can see, there is the text and the ID right there. I think we may have also obsoleted the scraper possibly...
Hi there,
I'd love it if you add a button in the side panel to open the history
I have enabled ctrl+shift+H to open ChatGPT-History (setup in chrome://extensions/shortcuts )
But i still would like a button to open you guys,
The icons in my extensions are already too packed,
Please have your nice green logo on that button ๐ ๐
Thanks! :)
Hi,
When I open my thread, the page is just empty. In the console, I see the following error:
thread.js:35 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'convo')
at thread.js:35:19
Here's the file with the thread:
chatgpt_thread.txt
The thread was saved on December 14th.
I think the data structure might be corrupted since all other threads created after this thread are displayed without problems.
Thanks
Problem:
There is weird stuff going on since content.js and explorer.js will sometimes overwrite each other.
Expected Behaviour:
It shouldn't.
Workarounds:
The way I've been working around this is never editing stuff on explorer.js (ie, importing) when I have ChatGPT opened. Possibly warn users that they shouldn't do that for now?
Solutions:
Well, now we get into multi-threading and race conditions. I honestly don't know how to fix this, considering that there is no "global" locking file tracking both scripts.
At the very least though, the following line probably needs to be rewritten to take advantage of UUIDs and dynamically find the thread again from local storage (or simply pushing if it cannot find it) since this causes weird behaviour if you delete from explorer.html while you're also on the chat page (like I often absentmindedly do)
Hi!
I was wondering if would be possible to have some sort of tracking for continues threads,
i see alot of duplications in my history, most of them started from the same prompts
maybe this has more to do with the branching feature (which i will open soon)
but just to be specific, when that is available (branches), then id like you to make sure that when we hit the replay button
and load a chat from history, you will recognize that and continue the same thread in your history
basically i mean to exclude the preprompt that helps resume the conversation, and attach the current thread history to the tail end of the one that i pressed play/continue on :)
thanks a lot!
Current Behaviour:
Right now, our scraper only scrapes the current branch. Ie, using the < or > buttons will cause the old prompt/response to be overwritten.
Expected Behaviour:
However, ideally it should scrape every branch and save for further use.
Proposed Solution:
Mirroring state using a non-binary tree.
Every tree will have its data text, and leaf nodes, which adequately represents how the state looks in practice.
At present, I propose this be introduced gradually. The data structure in local storage threads
will look something like this:
{id, date, time, favourite, convo, conversation_tree}
With conversation_tree being a tree that looks something like this:
{ data: "<p>...</p>", children: [ { data: "<p>...</p>", children:[] ] }
I am working on this right now.
Notes:
Notes on how nodes work: it looks like the tree is automatically rebuilt whenever the < or > buttons are pressed. It's not stateful in that way, but that doesn't written matter for our purposes.
Ie, say in the middle of such a tree, you click the < and the > button successively, which brings you back to where you started.
All of the subsequent nodes will say something like 1/2 or 1/n.
The only things that change state seems to be the Try Again button, entering a new prompt, and Save and Submit.
Hi there,
Just wanted to say that i came here to ask for a searchbar, didn't even see it
luckily i searched the issues before opening one, so i saw some mentions of it moving to the side panel, so i check and found it
not sure if i'm the only one, but i think the searchbar should be more apparent at the top center
if you guys think otherwise, atleast consider having an option for this in the settings
Also, it would be cool if you can listen for key events, and move the focus to the search bar
for example I would love "q" to be my shortcut, to go fast to the searchbar
in the current form even one key (no ctrl shift etc) because there's not another bar
Come to think of it, Since This is the only input bar, I think just directly typing should go straight to the searchbar
That just means that you put the focus there on page load, and if some clicks were happening and it lost focus, typing again will move the focus to the searchbar
I really like that the search is already instant (no pressing enter)
but if you can change the place holder text to a bit grayer, and not have it dissapear when in focus, only after first letter, that would be nice :)
Thank you so much
Keep up your amazing work
I'm not sure how or why you guys aren't already super well known
im sure more people will catch on real soon
All the best!
Imagine just above the Export Chat button,
You'll have an Import Button
This button can import various things, such as,
Generally this will empower chatgpt greatly,
If you can, please just start with loading a file, that by itself will be incredible, (the others can be added later on)
hope you like it :)
PS - Congradulations on the recent update, really shows how much effort you put in this, i think this is the best extension i've seen yet, much love and support
Behaviour:
Selecting a category while editing causes the prompt text to be deselected without saving
Expected Behaviour:
Either save the prompt text when it deselects,
or don't deselect the prompt text.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.