Повернення тих песимістичних ідентифікаторів ниток з зручною книжковою маркою 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 Ви можете завантажити нитку, якщо ви вже знаєте її ID ( ) 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. Але замість того, щоб побудувати якийсь дурно конкретний інструмент, використовуючи агента робочого процесу без голови, і багато іншого. Як ви правильно пам’ятаєте, у вас вже є ідеальний інструмент. Python Ваш браузер, і скромний JavaScript bookmarklet. Букмаркет - це просто закладка браузера, яка працює з JavaScript на сторінці, на якій ви знаходитесь.І якщо ви дивитеся на журнали відповідей API в браузері, у вас вже є всі ідентифікатори ниток, які вам потрібні - вони просто поховані в тексті. Але найкраще те, що букмекер не дбає про те, чи є сторінка форматирована або красива. Це найближча річ до "кінцевої точки списку бідних чоловіків". 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-адресу закладки браузера, натисніть на нього на будь-якій сторінці, де з'являються ідентифікатори ниток, і бум: кожен Шрифт збирається, дедуплікується і копіюється на ваш кліпборд. 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 залишити список ниток відчувається як темний зразок, що ускладнює нам бачити, що накопичується на тлі. Незалежно від того, зберігають вони ці дані чи ні, це поза точкою - важливо, що Ми не можемо перевірити це самі. Якщо ви будуєте регульований продукт, де важлива аудитоспроможність, ви буквально не можете довести, які нитки ви зламали. Якщо ви експериментуєте, ви гарантовано створюєте безлад, якого ви не бачите. Книжкова марка є способом повернути ту видимість. Вона не виправляє відсутній API, але дає вам агентство. За один клік, ви можете побачити кожен ідентифікатор нитки, видимий у ваших журналах, вимкнути їх, і прокачати їх у потік масового видалення. Це також переосмислює відносини: розробникам не слід покладатися на хаки, щоб отримати інформацію про свої власні ресурси.Це сигнал, що платформа не обслуговує своїх користувачів так добре, як це могло б. Книжкова марка працює, але саме її існування підкреслює дисбаланс. Що робити, коли у вас є ідентифікатори ниток Вставити їх в текстовий файл, Google Sheet, що завгодно. зберігати їх для посилання, сортувати і дедупірувати при необхідності. Використовуйте запит HTTP, щоб прокрутити кожен ідентифікатор і викликати 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 не тільки корисні, вони необхідні.