Връщане на тези зловещи ID-та на нишките с Handy Bookmarklet If you’ve been building on top of OpenAI’s shiny Assistants API, you’ve probably hit the same wall I did: There’s no API endpoint to list your thread IDs. None. Zero. Nada. Няма крайна точка на API, за да изброите вашите идентификатори на теми. Нищо – нищо – нищо Можете да създадете триъгълник ( ) на POST /v1/threads Можете да изтеглите нишка, ако вече знаете нейния идентификатор ( ) на GET /v1/threads/{id} Можете дори да изтриете един ( ) на DELETE /v1/threads/{id} Ако искате да направите прост да изброите всички нишки, които сте създали? Тя не съществува, а липсата на тази единна крайна точка променя всичко за това как изграждате на тази платформа. GET /v1/threads Forget it. Фактът, че такава основна част от цикъла на CRUD липсва, кара разработчиците да се чувстват така, сякаш работят сляпо. Този избор на дизайн се чувства преднамерено. OpenAI иска да натисне упоритостта обратно върху вас: "Вашата отговорност е да съхранявате идентификаторите на нишките." But half the time we’re just prototyping so: Нямаме таблица с бази данни за нишки. Ние не искаме да изграждаме тръбопровод за съхранение на данни само за да тестваме една идея. Ние просто искаме да изстреляме куп тестови нишки, да видим какво се случва и да продължим напред. И тогава идва денят, когато осъзнавате, че сте генерирали стотици (или десетки хиляди в зависимост от мащаба) нишки, а сега трябва да ги почистите, да ги одитирате или просто да потвърдите какво съществува. Колкото повече мислите за това, толкова повече осъзнавате, че това е проблем с видимостта, който засяга всичко от дебютирането до съответствието. The Gap OpenAI оставя широко отворени Every sane API platform in the known universe usually has a list endpoint. Това е най-основният жизнен цикъл на CRUD – създаване, четене, актуализиране, изтриване. „R“ не е само за извличане на един запис, а и за изброяване. Разработчиците очакват да могат да питат, Като го оставите, OpenAI ефективно ви принуждава да влизате и съхранявате идентификатори от първия ден - или рискувате напълно да загубите проследяване. „Какво съществува?“ From a developer’s perspective, that’s a liability. From a data management perspective, it’s a bloody mess. From a security standpoint? A fucking nightmare. По-малко списъчни крайни точки означават по-малко отговорност за това какви данни все още съществуват на тяхна страна. Без крайната точка на списъка не можете да одитирате използването. Не можете лесно да почистите стайните експерименти. Не можете да автоматизирате управлението на жизнения цикъл. Вие сте оставени в тъмнината, очаквайки да се доверите на собствените си дневници и никога да не питате какво седи там. Независимо дали става дума за сигурност, поверителност или просто поддържане на по-малка повърхност на API, резултатът е същият: Това отсъствие не само причинява неудобства – то създава недоверие.Това кара разработчиците да гадаят дали всъщност имат контрол над това, което създават. we can’t list our own threads. Откраднете списъка на крайните точки от OpenAI с вашия браузър и моя прост JavaScript Bookmarklet If OpenAI won’t give us a list endpoint, well, we’ll just have to pull up our pants and scrape the goddamn thing. Но вместо да се изгради някакъв глупаво специфичен инструмент с помощта на агент за работен поток без глава, и повече Отколкото можете правилно да си спомните... Вие вече имате перфектния инструмент. Пийтън Вашият браузър и смирен JavaScript bookmarklet. Bookmarklet е просто браузър за отметки, който изпълнява JavaScript срещу страницата, на която се намирате.И ако погледнете в API отговори дневници в браузъра, вече имате всички ID нишките, от които се нуждаете - те са просто погребани в текста. Но най-хубавото е, че букмейкъра не се интересува дали страницата е форматирана или красива. Това е най-близкото нещо до „крайната точка на бедния човек“. thread_... Here’s the magic snippet: javascript:(function(){ const ids = [...document.body.innerText.matchAll(/thread_[A-Za-z0-9]+/g)] .map(m => m[0]); if (!ids.length) { alert("No thread IDs found on this page."); return; } navigator.clipboard.writeText([...new Set(ids)].join("\n")) .then(() => alert("Copied " + ids.length + " thread IDs to clipboard!")); })(); Добавете го като URL на бележник на браузър, кликнете върху него на всяка страница, където се появяват идентификатори на нишки, и бум: всеки string се изтрива, deduplicated, и копирани на вашия клипборд. thread_... Няма плъгини. Няма разширения. Няма инструменти за разработване на гимнастика. Само едно кликване. So yes, it takes a little time… Скрийн Заредете повече Скрийн Заредете повече Но след като стигнете до края (или желаната от вас дължина), можете просто да кликнете върху записания отметка по-горе ... и бум един добре копиран списък с идентификатори на нишки, за да направите това, което искате. Защо това има значение This isn’t only a neat, functional hack. It’s a reminder of the gap between developer needs and API design. Решението на OpenAI да изключи списъка на нишките се чувства като тъмен модел, което ни затруднява да видим какво се натрупва на заден план. Независимо дали те запазват тези данни или не е отвъд точката - това, което има значение е, че Не можем да го проверим сами. Ако изграждате регулиран продукт, където одиторската годност е от значение, буквално не можете да докажете кои нишки сте разпръснали. Ако експериментирате, гарантирано ще създадете бъркотия, която не можете да видите. Bookmarklet е начин да върнете тази видимост. Той не поправя липсващия API, но ви дава агенция. С едно кликване можете да видите всеки ID на нишка, който е видим в вашите дневници, да ги кликнете и да ги тръбите в поток за масово изтриване. Той също така преосмисля връзката: разработчиците не трябва да разчитат на хакове, за да получат информация за собствените си ресурси.Това е сигнал, че платформата не обслужва потребителите си толкова добре, колкото би могла. Какво да направите, след като имате вашия Thread IDs Вмъкнете ги в текстов файл, Google Sheet, каквото и да е. Дръжте ги за справка, сортиране и дедупиране, ако е необходимо. Използвайте HTTP Запитване, за да преминавате през всеки ID и да извикате DELETE /v1/threads/{id}. Добавете обработка на грешки, за да уловите грешки. Ако вече не ви трябват тези нишки, избършете ги и спите по-добре, знаейки, че са изчезнали. Добавете план за жизнения цикъл.Напред, решавайте дали искате да регистрирате идентификаторите постоянно, да ги изчистите веднага след употреба или временно да ги съхранявате с TTL. Не ги натрупвайте отново. Автоматизирайте почистването. Настройте повтаряща се задача или работен поток, който автоматично премахва старите идентификатори. Комбинирайте с предупреждения, за да знаете кога нишките са оставени да висят. Проверявайте периодично.Дори ако използвате книжарницата, направете навик да проверявате какво има там по график. По-голямата картина OpenAI може да реши това с една глупаво проста крайна точка: GET /v1/threads Разработчиците няма да се налага да изстъргват, bookmarklet или spelunk през n8n дневници.Докато те не го направят, обаче, bookmarklets като това са тръбопровод лента, която държи нещата в движение. That’s it. Абсурдно е, че се нуждаем от браузърни хакове, за да управляваме собствените си ресурси. Това нарушава доверието, което разработчиците имат в API, когато липсва такава основна функционалност.Ние не трябва да бъдем принудени да измисляме работни срещи за това, което трябва да бъде залог на масата. Това е повече от неудобство за разработчиците – това е проблем с видимостта.Видимостта е отчетност.Без нея потребителите не могат да докажат какви данни съществуват, не могат да изтриват с увереност и не могат да изградят надеждна автоматизация. Книжната марка е умна превръзка, но раната е умишлено пропускане на OpenAI.Но на практика тя оставя всички разработчици постоянно на второ място: Какво съм създал? какво още седи там? наистина ли съм в контрол? Когато разчитаме на хакове, за да управляваме собственото си съдържание, ние подчертаваме колко власт има платформата над нас и колко малко средства имаме, когато функционалността е възпрепятствана. Да, API на помощниците е мощен, но захранването без стандартна проста видимост е опасно.Ако сте сериозни за използването му в производството, започнете да регистрирате идентификаторите на нишките си от първия ден. Но ако сте като останалите от нас – разбърквате се, бързо създавате прототипи и след това осъзнавате, че трябва да почистите – моят книжарница е вашият месия. Click, copy, paste, delete. Done. И може би, просто може би, OpenAI ще вземе намек и ще ни даде една точка, която всеки разработчик очаква: начин да изброим собствените си ресурси. Until then, hacks like this bookmarklet aren’t just useful. They’re essential. Дотогава хакове като този bookmarklet не са само полезни.