Предоставить количество тем через API инструмента Discourse AI функцию `discourse.getUser`

Описание функции:

Добавить ключ в объект, возвращаемый функцией discourse.getUser API инструмента Discourse AI, который предоставляет количество тем, созданных пользователем.

Текущее поведение:

Дополнительные возможности для персонажей Discourse AI можно предоставить, создав пользовательские «инструменты» для использования LLM. Discourse предоставляет API, которое можно использовать в коде инструмента.

Данные об учетной записи пользователя можно получить с помощью функции discourse.getUser.

Объект, возвращаемый функцией, содержит ключ post_count. Оказывается, что в контексте статистики пользователя «пост» на самом деле означает «ответ». Таким образом, значение этого ключа не включает количество оригинальных постов тем, созданных пользователем.

Было бы логично предоставить данные об этих двух различных типах активности через два отдельных ключа, но по непонятным причинам функция не возвращает данные о количестве тем, хотя это одна из основных статистических данных пользователя.

:slightly_frowning_face: Полную картину активности пользователя невозможно получить с помощью функции discourse.getUser. Получение этой информации другими способами будет неудобным или невозможным.

Шаги для воспроизведения:

  1. Войдите на форум, где у вас есть права администратора.
  2. Перейдите на страницу Администрирование > Плагины > AI > Инструменты (/admin/plugins/discourse-ai/ai-tools).
  3. Нажмите кнопку «+ Новый инструмент».
    Откроется меню.
  4. Выберите «Начать с нуля…» из меню.
    Откроется страница настройки нового инструмента.
  5. Введите любые значения в следующие поля на странице:
    • Название
    • Имя инструмента
    • Описание
    • Краткое содержание
  6. Введите следующий код в поле «Скрипт»:
    function invoke() {
      return discourse.getUser(-1);
    }
    
    ID пользователя -1 был выбран произвольно, так как он, скорее всего, присутствует на любом форуме. Вы можете передать discourse.getUser любой другой ID пользователя или имя пользователя, если предпочитаете.
  7. Нажмите кнопку «Сохранить» в нижней части страницы.
  8. Нажмите кнопку «Запустить тест» в нижней части страницы.
    Откроется диалоговое окно «Тест инструмента AI».
  9. Нажмите кнопку «Запустить тест» в диалоговом окне.

:slightly_frowning_face: Результат теста не предоставляет количество тем, созданных пользователем.

Версия Discourse:

f8f53ac5e8e4348ae308fcddc078766463d5e5f3

Дополнительная информация:

Я знаю, что могу получить эту информацию из конечной точки /user-badges/{username}/summary.json API Discourse, и что запросы к API можно выполнять с помощью функции http.get API инструмента. Однако это невозможно, так как на управляемом мной форуме включена настройка сайта hide_new_user_profiles, и поэтому конечная точка для новых пользователей доступна только для аутентифицированных запросов. Следовательно, для использования API необходимо было бы хранить ключ API в коде инструмента. Я не буду этого делать.

Кажется, мы упустили сериализацию topic_count в сериализаторе пользователя :thinking:

Это будет добавлено в

1 лайк

Эта тема была автоматически закрыта через 11 дней. Новые ответы больше не принимаются.