внутренняя модель перестроена вокруг аудиозаписи

- audiorecords вместо transcribe_jobs: приложения (texts, structures,
  recognitions, record_events, topics) живут своими коллекциями, ссылки на
  исходник и на приведённую копию перестали переставляться
- рубеж называет достигнутое, отказ стал признаком остановки с причиной, а
  сторожей стало двое: число отказов и время в рубеже
- воркеры потеряли специализацию, их число задаётся [pipeline] workers, шаг
  выбирается по рубежу, а захват отдаёт идентификатор и признак захвата
This commit is contained in:
av
2026-08-14 20:20:33 +03:00
parent d079f03350
commit 1576d06735
84 changed files with 8973 additions and 2865 deletions
+22
View File
@@ -0,0 +1,22 @@
package entity
// MaxTopicsPerRecord — потолок числа тем у одной записи. Без него часовой
// разговор даёт два десятка тем, и словарь распухает за неделю; это же число
// уезжает в запрос к языковой модели.
const MaxTopicsPerRecord = 5
// Topic — тема из словаря одного человека. Пара «владелец и название»
// уникальна: словарь тем свой у каждого.
//
// Коллекцией, а не набором строк в записи, потому что перечень тем человека
// нужен целиком перед каждым обращением к модели, а собрать его из наборов строк
// можно только перебором всех его записей.
//
// Ни один шаг этой работы тем не пишет и не читает: место заведено вперёд, чтобы
// задача, считающая темы языковой моделью, не платила вторым необратимым шагом
// схемы.
type Topic struct {
Id string
OwnerID string
Name string
}