강의

멘토링

커뮤니티

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

juengwoo kang님의 프로필 이미지
juengwoo kang

작성한 질문수

코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

텔레그램으로 구현하는 음성 기반 AI 비서: 메일 확인부터 회신까지 자동화하기

17강 ai agent 출력시 json 형태를 따르지 않음

해결된 질문

작성

·

22

0

  • 어떤 강의에 대한 질문인지 자세하게 알려주시면 답변을 드리는데 도움이 됩니다.

     

  • 스크린샷윈도우키 + 쉬프트키 + S(윈도우)을 자세히 첨부하시면 답변 드리는데 많은 도움이 됩니다.

     

  • 동영상 재생 관련 같은 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요.

  •  

    image.pngimage.pngimage.png

     

  • ai agent에서 json 형태로 출력 형식을 지정햇는데 output을 보면 text에 다 포함해서 작성하는 것 같습니다. 이런경우 파서를 사용해서 지정해줘야 하는건가요?

  • 만약 파서를 사용해야 한다면 status :, type을 어떻게 써줘야 한느지 문의드립니다.

 

답변 2

0

남박사님의 프로필 이미지
남박사
지식공유자

안녕하세요, juengwoo kang님.

그런 증상이 대부분 제미나이 사용시에 나타나는 특징중 하나인데 그러므로 아마 사용하신 AI 가 제미나이가 아닐까 추측해봅니다. 이를 해결 하기 위해서는 여러가지 아이디어가 있을 수 있습니다.

일단 가장 간단한 방법은 AI를 다른 모델, 예를 들어 제미나이의 버전을 올려보던가 아니면 ChatGPT 나 클로드 같은 다른 모델을 사용하는 방법이 있습니다.

또 다른 방법은 추가 지침을 좀 더 강력하게 요구하는 방법이 있습니다. 현재 강의에서는 "※ 반드시 위 JSON만 반환하고 추가 설명은 포함하지 마십시오." 게만 작성되어있는데 예를 들어 "### 출력은 반드시 JSON 형태여야 하고 다른 일반 text는 포함하지 않습니다. ###" 과 같이 추가 지침을 몇줄 늘려보는 방법입니다. 이때 마크다운 문법인 ### 문자 사이의 글자를 중요한 내용을 인식하는 경향이 있으니 이런것도 도움이 될 수 있습니다.

 

image.png

또 다른 방법으로는 위 이미지에서 보이는 Require Specific Output Format 옵션을 사용하여 AI Agent의 출력 형태를 지정하는 방법입니다. 물론 이 경우에는 강의 내용에서처럼 문제가 없다면 status 값이 출력되고 그렇지 않을 경우 error 값이 출력되는 형태로 운영하기는 좀 애매한 부분이 있고 status 변수는 고정한채 문제가 없으면 success, 오류가 생기면 error 처럼 변수의 값으로 상태처리를 하는 방식으로 강의 내용과 좀 다르게 응용해야 될 듯 합니다. 그런데 이 방법 역시 제미나이 같은 모델에서는 AI의 특성으로 인해 무시 되어 오류가 발생하는 경우도 있었는데 현재 n8n 1.123.7 버전에서는 auto fix 옵션을 제공하여 최종 출력을 위한 AI 를 또 붙일 수 있는 기능도 추가되어있으니 이런 기능도 활용해보시는 것도 좋을듯 합니다.

이런 대부분의 방법으로도 쉽게 해결되지 않을때 말씀하신 파싱을 하는 방법도 사용하기도 했으나 AI 의 결과는 코딩에서 처럼 항상 동일한 결과가 나오는게 아니기 때문에 요즘은 그닥 추천드리진 않습니다.

여러가지 방안이 있으니 하나씩 테스트 해보시면서 결과를 비교 참조 해보시는게 좋을듯 합니다. 사실 이 과정이 가장 공부가 많이 되는 구간들이라 생각되기도 합니다.

0

안녕하세요, 인프런 AI 인턴입니다. juengwoo kang님.

AI Agent에서 JSON 형태의 출력 형식을 지정했지만, 모든 데이터가 텍스트 형식으로 포함되어 나오는 문제를 겪고 계신 것 같습니다. 이를 해결하기 위한 몇 가지 방법을 안내드리겠습니다.

해결 방안

  1. AI Agent의 설정 재확인:

    • AI Agent 노드에서 설정한 출력 형식이 정확한지 다시 한 번 확인해주세요. 특히, JSON 형태로 지정할 때 값이 올바르게 배치되어 있어야 합니다.
  2. 출력 결과의 형식 확인:

    • AI 에이전트가 JSON 출력을 하지 않는 경우, 응답 데이터의 구조가 예상했던 JSON 형식과 일치하는지 확인해야 합니다.
  3. 파서 사용 필요성:

    • 출력 데이터를 별도의 파서를 통해 처리하고자 하신다면, n8n에서 JavaScript 코드 노드를 사용하여 데이터를 원하는 구조로 변환할 수 있습니다. 예를 들어, 받은 텍스트 응답을 JavaScript로 파싱하여 JSON 객체로 변환할 수 있습니다.
  4. 파서 구현 예시:

    • 만약 파서를 사용하여 JSON 형태를 구현해야 한다면, 아래와 같은 JavaScript 코드를 참고하세요:
      ”`javascript
      const response = $json[“responseText”];
      let jsonResponse;

    try {
    jsonResponse = JSON.parse(response);
    } catch (error) {
    throw new Error(“JSON parsing error: ” + error.message);
    }

    return jsonResponse;
    “`
    - 이 코드는 응답 텍스트를 JSON 객체로 변환합니다. 파서가 제대로 작동하려면 입력 데이터의 구조가 예상과 일치하는지 확인해야 합니다.

  5. 파서의 status 및 type:

    • JSON 파서를 구현할 때 statustype 필드는 JSON 객체 내부에 원하는 형태로 삽입하면 됩니다. 예를 들어:
      
      {
      "status": "success",
      "type": "ai-response",
      "data": jsonResponse
      }
      

    • 위의 구조는 응답이 성공적으로 파싱되었을 때 사용하는 예시입니다.

관련된 유사한 문제와 그 해결 방안을 아래 링크에서 확인하실 수 있습니다:
- AI 응답 형식 문제 해결 사례
- JSON 데이터 파싱 및 처리 절차

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

juengwoo kang님의 프로필 이미지
juengwoo kang

작성한 질문수

질문하기