inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한시간으로 끝내는 LangChain 기본기

답변의 형식을 컨트롤하는 방법

JsonOutputParser 질문입니다

해결된 질문

88

왐뫔뫄

작성한 질문수 5

0

4강에서 JsonOutputParser 예제를 따라하는 중입니다.

json_ai_message=llm.invoke(country_detail_prompt.invoke({"country": "France"}))
json_ai_message.content

이렇게 찍어보면

'{"Capital": "Seoul", "Population": 51966111, "Language": "Korean", "Currency": "South Korean Won (KRW)"}'


결과가 이렇게 나옵니다. 궁금한 것은 강의에서 ```json\ 이게 있을 수도 있고 없을 수도 있다고 하셨는데,

저의 결과처럼 저렇게 나올 수도 있고 강의에서 처럼 ```json\ 이게 붙은 형식으로 나올 수도 있다는 말인가요?

프롬프트엔지니어링 llm langchain 카카오공채-개발

답변 2

0

제이쓴

네 맞습니다. 모델에 따라 ```json\이 붙어서 나오는 경우가 종종 있습니다.

0

인프런 AI 인턴

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

왐뫔뫄님, 질문해 주신 내용은 JsonOutputParser의 동작 방식과 그 결과에 대한 궁금증으로 보입니다.

JsonOutputParser의 예제 및 결과 형식 차이

JsonOutputParser는 AI 모델이 JSON 형태로 파싱 될 수 있도록 돕는 유틸리티입니다. 일반적으로 JSON 형식의 문자열을 반환하는 목적을 가지고 있지만, AI 모델의 응답 방식에 따라 그 형식이 약간 달라질 수 있습니다.

결과 예시 및 가능성

  1. Clean JSON String: 예를 들어, {"Capital": "Seoul", "Population": 51966111, "Language": "Korean", "Currency": "South Korean Won (KRW)"} 과 같은 깔끔한 JSON 형식의 문자열을 얻을 수 있습니다. 이 경우 직접적으로 JSON으로 파싱하여 사용할 수 있습니다.

  2. Markdown 형식 포함: 경우에 따라 AI응답에서 json을 강조하기 위해, json\n{ ... }\n 형식으로 반환되기도 합니다. 이는 AI 응답이 코드 블록으로 인식되었을 때 나타날 수 있는 형식으로, 이런 경우 불필요한 문자열(”json)을 제거해야 실제 JSON 데이터로 사용할 수 있습니다.

해결 방법

만약 JSON 데이터의 형식에 따라 처리해야 한다면, 추가적인 문자열 전처리를 통해 불필요한 부분을 제거한 뒤 JSON으로 변환할 수 있도록 준비해 두는 것이 좋습니다. 예를 들어, 코드 블록 내 JSON을 파싱해야 할 경우, 정규표현식 등을 활용해 시작 및 끝의 불필요한 문자를 필터링할 수 있습니다.

참고로, 유사한 사례에 대한 JsonOutputParser 관련 토론을 확인하실 수 있습니다. 이는 다른 사용자가 유사한 문제를 겪었을 때 참고할 수 있는 토론을 담고 있습니다.

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

import 오류

0

3

0

명령팔레트에서 오류

0

12

3

온톨로지 활용

0

6

1

질문있는데요.. vLLM은 말씀하신 사양에 적용이되나요?

0

16

2

제공해주신 레포가 Windows 환경에 너무 비친화적입니다.

0

16

2

안녕하세요! 질문이 있습니다.

0

60

2

'팀 단위 AI 업무 혁신' 자문 관련하여 문의드리고자 합니다. (연락처 요청)

0

80

1

🚨 OpenAI 유료계정인데 할당량 초과인 경우!!

0

102

2

ollama 같은 모델 상이 답변

0

84

2

도서, 그리고 로드맵 강의 순서

0

94

2

RAG와 MCP의 차이가 조금 헷갈립니다

0

653

2

첫번째 강의 화면과 설명이 안 맞는 거 같아요

0

115

1

RAG 강의 안듣고 AGENT 강의 먼저 들어도 되나요?

0

165

1

openai 사용하면서부터 할당량 초과했다고 나오네요.

1

403

2

Safety 이해

0

86

1

input key가 여러개인 경우 RunnablePassThrough를 쓰는 이유가 궁금합니다.

0

82

1

가상환경 설정

-2

213

6

ram 용량

0

121

2

강의 순서 질문

0

165

1

Safety prompt에 대한 질문이 있습니다

0

127

2

딥시크

0

166

1

JsonOutputParser

0

148

1

vscode에서 환경 설정하는 데 어려움이 있습니다

0

380

2

Template 사용에 관해 질문 있습니다.

0

212

2