강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

jn4624님의 프로필 이미지
jn4624

작성한 질문수

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

n8n으로 이메일 답장 여부 검증 봇 생성

이메일 답장 여부 검증 봇 생성 - Model output doesn't fit required format 에러

해결된 질문

작성

·

33

·

수정됨

0

스크린샷 2025-11-16 오후 1.22.57.png스크린샷 2025-11-16 오후 1.23.13.png스크린샷 2025-11-16 오후 1.22.38.png

Basic LLM Chain에 system 프롬프트 추가하고, output parser 연결한 후 포맷 지정하고 워크플로우를 실행하니 위와 같이 에러가 나서 다음 단계를 진행 못하고 있습니다.

어떻게 해야 현 상황을 해결할 수 있을까요?

답변 3

1

jn4624님의 프로필 이미지
jn4624
질문자

해결했습니다!
OpenAI Chat Model에 use Responses API 설정이 활성화되어 발생한 문제로 확인했습니다.

강의와 설정 화면이 동일하지 않아서 한참 애먹었네요 ㅠㅠ

강병진님의 프로필 이미지
강병진
지식공유자

아 이런 ㅠㅠ 버전이 다른건지 제가 띄워놓은 n8n에는 없는 설정이라 에러가 난 것 처럼 보였나보네요 ㅠㅠ 공유 감사합니다! 다른 분들도 겪으실 수 있는 문제인 것 같아 자주 묻는 질문에 등록해두겠습니다

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요!

스크린샷 만으로는 어디서 에러가 발생하는지 정확하게 파악이 어려운데요, 작업하신 workflow를 json으로 업로드 해주실 수 있을까요? 첨부 스크린샷 처럼 ... 버튼을 클릭하시고 Download를 선택하시면 json으로 추출할 수 있습니다

Screenshot 2025-11-16 at 10.32.10 AM.png

.

jn4624님의 프로필 이미지
jn4624
질문자

{
  "name": "이메일 작성 도우미",
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "filters": {}
      },
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1.3,
      "position": [
        -160,
        -16
      ],
      "id": "a539fe42-444e-47ad-b522-47d9a22ae812",
      "name": "Gmail Trigger",
      "credentials": {
        "gmailOAuth2": {
          "id": "GG0gzuqgqfnyiMpq",
          "name": "Gmail account"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=아래 이메일 내용을 보고 답장이 필요한 이메일인지 판단해주세요. 마케팅이나 뉴스레터의 경우에는 답장을 할 필요가 없습니다.\n\n이메일 내용:\n{{ $json.snippet }}",
        "hasOutputParser": true,
        "messages": {
          "messageValues": [
            {
              "message": "당신의 업무는 이메일에 답장을 해야 하는지 말아야 하는지 결정하는 것입니다. 답장이 필요하다면 true, 답장이 필요 없다면 false를 리턴해주세요."
            }
          ]
        },
        "batching": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.7,
      "position": [
        48,
        -16
      ],
      "id": "d3e3a071-7cf0-4847-b760-6aeb60b317ed",
      "name": "Basic LLM Chain"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "gpt-4o-mini"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -64,
        192
      ],
      "id": "39da68fa-0874-45d0-95f6-13ec12ea9342",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "id": "Fu0iLfZz0uSIYErK",
          "name": "OpenAi account"
        }
      }
    },
    {
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"need_reply\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t}\n}"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        192,
        192
      ],
      "id": "c361fed9-5dfe-4dd7-b8ab-b574a5068bc7",
      "name": "Structured Output Parser"
    }
  ],
  "pinData": {},
  "connections": {
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        []
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "32e7bb7d-7308-43a6-819f-5ad6e71af3aa",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "061a0780b1bd7aba2519c2106d5531aad36422fb77e2a399b7363419bafab020"
  },
  "id": "QAWEZRnkdbYwfn9u",
  "tags": []
}

json 파일 추출하여 첨부드립니다.

강병진님의 프로필 이미지
강병진
지식공유자

제공해주신 JSON으로 테스트를 해봤는데, model이 연결되지 않아서 에러가 발생하는 것 같습니다.

Screenshot 2025-11-16 at 5.26.46 PM.png

OpenAI Chat Model 만 설정한 후에 연결하고 테스트 해보니 정상적으로 잘 동작합니다.

Screenshot 2025-11-16 at 5.28.04 PM.png

 

0

안녕하세요, 인프런 AI 인턴입니다. jn4624님, Basic LLM Chain에서 “Model output doesn’t fit required format” 에러가 발생하여 어려움을 겪고 계신 것 같습니다. 이 문제는 모델의 출력이 설정한 JSON 스키마와 일치하지 않아 발생하는데요, 다음 단계들을 통해 문제를 해결할 수 있습니다.

문제 요약

  • 문제 발생 원인: 모델 출력이 정의된 JSON 스키마와 맞지 않음.
  • 목표: output parser에 입력된 JSON 스키마에 맞도록 모델 출력을 조정하여 에러 해결.

해결 방법

  1. 모델 출력 확인:

    • 모델이 어떤 출력을 반환하는지 확인해야 합니다. 결과가 예상한 구조와 다른 경우, LLM의 Prompt 또는 설정을 수정해야 할 수 있습니다.
  2. JSON 스키마 검토:

    • JSON 스키마를 다시 한 번 확인해 보세요. 필요하다면 type이나 properties를 수정하여 모델이 생성할 수 있는 가능성 있는 모든 데이터를 수용하도록 합니다.
    • 예를 들어, 현재 스키마에서는 need_reply 항목만 요구하고 있습니다. 모델이 다른 속성을 반환하고 있다면 해당 항목들을 스키마에 추가해 보세요.
  3. Output Mapping:

    • LLM의 실질적인 출력이 어떤 형식이어야 하는지 명확히 하고, 그에 맞춰 출력 내용을 조정한다. 예를 들어, need_reply 값을 반환할 때 "true" 또는 "false" 형식으로 정확히 반환되도록 모델에 요청합니다.
  4. 모델 입력 제어:

    • 프롬프트에서 출력 형식을 구체적으로 명시하세요. 예를 들어 "질문: {question}\n응답 형식 예시: { 'need_reply': true }" 등을 추가하여 특정 출력 형식을 확보합니다.
  5. 구문 오류 해결:

    • 모델이 리턴해야 하는 JSON 형식의 예시를 제공하여 정확한 형식을 참조할 수 있도록 합니다. system messageuser prompt에서 이러한 예시를 포함시킬 수 있습니다.

관련 자료 및 가이드

위의 단계를 적용하신 후에도 문제가 해결되지 않으면, 설정된 프롬프트와 기대하는 출력 형식을 구체적으로 다듬어 보세요.

저는 질문자님의 이해를 돕고자 기존에 해결된 유사한 사례와 관련 정보를 공유드렸습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

jn4624님의 프로필 이미지
jn4624

작성한 질문수

질문하기