AI 페르소나 시스템 프롬프트에 {username}을(를) 템플릿 매개변수로 추가

처음 기여하는 것입니다. 실수한 부분이 있다면 죄송합니다. 더 나은 방법이 있다면 인내와 조언에 깊이 감사드립니다.

참고로 저는 Pro 고객입니다.

AI 에이전트와 상호작용하는 사용자를 파악하는 견고한 방법이 필요했습니다. 아래는 제가 생각해 낸 방법입니다. 검토해 주시고 조언해 주셔서 감사합니다.

AI 페르소나 시스템 프롬프트에 {username} 템플릿 매개변수를 추가합니다

BotContext::TEMPLATE_PARAMS{username}를 추가하는 PR #41446( FEATURE: Add {username} template param to BotContext - Pull Request #41446 - discourse/discourse - GitHub )을 제출했습니다.

사용 사례: 외부 서비스로 연결되는 페르소나는 LLM이 게시글 텍스트에서 추론하는 것이 아니라 서버 측에서 현재 사용자의 신원을 해석해야 합니다. 현재 이를 수행할 깔끔한 방법이 없습니다. {participants}는 개인 메시지만에 채워지며, LLM에게 토픽 메타데이터에서 사용자 이름을 파싱하도록 요구하는 것은 취약하고 주입(injection) 표면이 존재합니다.

변경 사항은 작습니다(새로운 메서드 1개, 허용 목록에 추가된 문자열 1개)이며 추가적인 것입니다. 기존 프롬프트는 이미 리터럴 {username}을 포함하고 있지 않는 한 영향을 받지 않습니다.

다시 한번 감사합니다!

6개의 좋아요

아, CLA도 완료했습니다. 모든 준비를 갖췄다고 생각합니다. 다시 한번 감사합니다.

2개의 좋아요

간단히 인사드립니다. 도움이 필요하신 부분이 있으시면 언제든 말씀해 주세요. 감사합니다 :purple_heart:

1개의 좋아요

PR 감사합니다!

지금 병합했습니다.

6개의 좋아요

엄청나요! 정말 감사합니다 :purple_heart:

3개의 좋아요

@falco와도 이 문제에 대해 논의했지만, 이 문제가 매우 예민하다는 점을 경고하고 싶습니다.

특히 “User” 메시지에는 이미 사용자 이름이 포함되어 있습니다:

이는 AI API 로그에서 확인할 수 있습니다.

시스템 프롬프트에 이름을 삽입하는 것의 위험성은, 체인 내에서 다중 사용자 상호작용이 발생하는 경우 시스템 프롬프트가 변경되어 캐시가 만료될 수 있다는 점입니다. 이는 이상적이지 않으며 성능 저하로 이어질 수 있습니다.

그런데 … vLLM 템플릿에서 이름을 버리는 것을 발견했습니다. 이것이 CDCK 호스팅 모델에서 이 기능이 누락된 이유를 설명해 줍니다. 이를 수정하기 위한 패치를 작성하고 있습니다.

3개의 좋아요