기능 설명:
discourse.getUser 함수가 반환하는 객체에 사용자가 생성한 토픽의 수를 제공하는 키를 추가합니다.
현재 동작:
LLM이 활용할 수 있는 커스텀 "도구"를 생성하여 Discourse AI 페르소나에 추가적인 기능을 제공할 수 있습니다. Discourse는 도구 코드에서 사용할 수 있는 API를 제공합니다.
사용자 계정에 대한 데이터는 discourse.getUser 함수를 통해 얻을 수 있습니다.
해당 함수가 반환하는 객체에는 post_count 키가 있습니다. 사용자 통계 컨텍스트에서 "post"는 실제로 "reply"를 의미하는 것으로 나타났습니다. 따라서 이 키의 값에는 사용자가 생성한 토픽의 원글 수는 포함되지 않습니다.
이 두 가지 서로 다른 활동 유형에 대한 데이터를 두 개의 별도 키로 제공하는 것이 합리적일 것 같지만, 설명할 수 없는 이유로 이 함수는 사용자 주요 통계 중 하나인 토픽 수 데이터를 반환하지 않습니다.
discourse.getUser 함수를 통해 사용자 활동의 전체적인 그림을 얻을 수 없습니다. 다른 수단을 통해 이 정보를 얻는 것은 불편하거나 불가능할 것입니다.
재현 단계:
- 관리자 권한이 있는 포럼에 로그인합니다.
- Admin > Plugins > AI > Tools 페이지(
/admin/plugins/discourse-ai/ai-tools)로 이동합니다. - “+ New tool” 버튼을 클릭합니다.
메뉴가 열립니다. - 메뉴에서 "Start from blank…"를 선택합니다.
새 도구 설정 페이지가 열립니다. - 페이지의 다음 필드에 아무 값이나 입력합니다:
- Name
- Tool Name
- Description
- Summary
- “Script” 필드에 다음 코드를 입력합니다:
ⓘ 사용자 IDfunction invoke() { return discourse.getUser(-1); }-1은 모든 포럼에 존재할 가능성이 높으므로 임의로 선택되었습니다. 원하시는 경우 다른 사용자 ID나 사용자명을discourse.getUser에 전달할 수 있습니다. - 페이지 하단의 “Save” 버튼을 클릭합니다.
- 페이지 하단의 “Run test” 버튼을 클릭합니다.
“Test AI tool” 대화상자가 열립니다. - 대화상자에서 “Run test” 버튼을 클릭합니다.
테스트 결과에 사용자가 생성한 토픽 수가 제공되지 않습니다.
Discourse 버전:
f8f53ac5e8e4348ae308fcddc078766463d5e5f3
추가 컨텍스트:
Discourse API의 /user-badges/{username}/summary.json 엔드포인트에서 이 정보를 얻을 수 있으며, 도구 API의 http.get 함수를 통해 API 요청을 수행할 수 있다는 것을 알고 있습니다. 그러나 제가 관리하는 포럼에서 hide_new_user_profiles 사이트 설정이 활성화되어 있어 새 사용자의 경우 해당 엔드포인트가 인증된 요청에서만 접근 가능합니다. 따라서 API를 활용하려면 도구 코드에 API 키를 저장해야 합니다. 저는 그렇게 하지 않을 것입니다.