Я смиренно предлагаю внедрить настройку rails console, которая позволит администраторам включить возможность для артефактов ИИ хранить постоянные данные в одном JSON-файле. Конечно, это может непреднамеренно создать некоторые проблемы или риски, точно так же, как и настройка для включения постоянного удаления тем —
поэтому включение должно осуществляться через rails console.
Артефакты ИИ очень полезны и значительно повышают качество обсуждений, однако их полезность можно утроить, если они смогут постоянно хранить простые данные и манипулировать ими простыми способами ![]()
Мой личный случай использования
Мой экземпляр Discourse используется как LMS (для обучения английскому языку) и как виртуальная лаборатория для экспериментов в моих научных исследованиях в области ИИ. У каждого из моих клиентов/студентов есть своя приватная категория (доступ предоставляется через их приватную группу), где мы сохраняем и отслеживаем всё (учебные материалы и т. д.). Небольшая часть моих исследований заключается в том, чтобы понять, как спроектировать систему, которая сможет успешно и автономно создавать образовательный контент для обучающегося, исходя из его «Биографии обучающегося» (как показано на скриншотах ниже) и некоего графа знаний (остальное я пока оставлю в секрете).
Моя цель — использовать API Discourse для получения этих JSON-данных (биографии обучающегося из артефакта) из содержимого темы (вероятно, здесь понадобятся довольно сложные регулярные выражения), а затем передать их моей когнитивной архитектуре, построенной на FastAPI и работающей на том же сервере с обратным прокси. Когнитивная архитектура творит своё волшебство, затем создаёт новый контент для этого обучающегося и формирует новую тему с этим контентом в приватной категории обучающегося.
Вот быстрая и грубая визуализация того, о чём я говорю:
flowchart TD
A[Экземпляр Discourse<br/>LMS + Лаборатория исследований ИИ] --> B[Приватные категории студентов<br/>с контролем доступа через группы]
B --> C[Биография обучающегося<br/>хранится в содержимом темы<br/>в формате JSON]
C --> D[API Discourse<br/>Получение содержимого темы]
D --> E[Регулярное выражение<br/>Извлечение JSON-данных]
E --> F[Биография обучающегося<br/>Извлечённые данные]
F --> G[Когнитивная архитектура FastAPI<br/>Тот же сервер + Обратный прокси]
H[Граф знаний<br/>Конфиденциальные исследовательские данные] --> G
G --> I[Генерация контента ИИ<br/>Здесь происходит волшебство ✨]
I --> J[Новый образовательный контент<br/>Персонализированный для обучающегося]
J --> K[Создание новой темы<br/>через API Discourse]
K --> L[Контент опубликован в<br/>приватной категории студента]
L --> M[Учебные материалы<br/>Отслеживаются и сохраняются]
M --> N[Непрерывное обучение<br/>и исследовательский цикл]
N -.-> C
style A fill:#e1f5fe
style G fill:#f3e5f5
style I fill:#fff3e0
style L fill:#e8f5e8
Технически всего этого можно достичь (и даже более элегантно), разрешив HTTP в артефактах, но я подозреваю, что это даже рискованнее, чем хранение данных.
Я полностью намерен открыть исходный код этой технологии, как только всё заработает и будет тщательно протестировано.
Этот артефакт «Биография обучающегося» работает безупречно, за исключением того, что введённые данные исчезают после обновления страницы ![]()
Вот как выглядят поля данных в артефакте



