Discourse AI: 시맨틱 검색 등에서 Anthropic Sonnet 5를 사용하려면 JSON 응답을 제거해야 합니다

아마 제가 완전히 틀렸을 수도 있고, 이건 나 말고는 다 아는 상식일 수도 있습니다… 만약 그렇다면 죄송합니다. 하지만 제 설치 환경에서 몇 가지 기이한 오류가 발생했는데, 예를 들면 다음과 같습니다:

DiscourseAi::Completions::Endpoints::Anthropic: status: 400 - body: 
{
“type”:“error”,
“error”:{“type”:“invalid_request_error”,
“message”:“This model does not support assistant message prefill. The conversation must end with a user message.”},“request_id”:“req_011CcqMN6eswEfRHPmQmPLC4”
}

대부분의 다른 AI 관련 기능은 잘 작동했기 때문에 이는 기이한 일이었습니다. 이 문제는 주로 요약기(summarizer)와 검색 기능에서 발생했는데, 구체적으로는 다음과 같은 URL에서:

https://..../forum/discourse-ai/embeddings/semantic-search?q=search_term

여기서 500 ERROR가 반환되었습니다.

로그를 확인해 보니 다음과 같은 내용이 있었습니다:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "This model does not support assistant message prefill. The conversation must end with a user message."
  },
  "request_id": "req_011CcqQvXPAHSfvoUeu92gf9"
}

이 문제를 Content Create-persona까지 추적해 보았습니다.

오류의 원인으로 보이는 부분은 다음과 같습니다:

이 설정을 제거하면(해당 특정 페르소나에서는 직접 제거가 불가능했으므로) 클론을 생성하고 클론에 이 설정을 적용하여

시맨틱 검색이 작동하기 시작했습니다. 요약기 등 다른 곳에서도 비슷한 조치를 취해야 했습니다.

여러분도 이런 현상을 경험해 보셨나요?

귀하의 인스턴스에서 Sonnet 5가 어떻게 설정되어 있는지 보여주시겠어요?

혹시 Disable native structured output (use assistant message prefilling instead, required for Claude 3.x and older) 옵션이 활성화되어 있나요?

해당 포럼은 2026.1.5 ESR 버전을 실행 중이며, 이 옵션은 2026.1 이후에 추가되었으므로, 그곳에는 Claude 관련 로직의 상당 부분이 누락되어 있을 것으로 추정됩니다.

오, 공유해 주셔서 감사합니다!

새로운 모델을 구형 Discourse에서 사용하려는 것은 좋은 전략이 아닙니다 :smiley:.

제공업체들은 API 형식, 매개변수 등을 계속 변경하고 있습니다. 수천 개의 모델과의 호환성을 유지하기 위해 최선을 다하고 있지만, 이를 위해서는 지속적인 업데이트가 필요합니다. 특히 Discourse 버전보다 반년(인공지능 기준으로는 수백 년) 전에 출시된 모델을 따라가려는 경우라면 더욱 그렇습니다.