hyejeongjo Posted Monday at 08:57 오전 공유하기 Posted Monday at 08:57 오전 안녕하세요 hcx-007 모델을 테스트 중에 잇는데요 아래 형식으로 응답 보낼 시에 에러 응답이 오고 있는데, 공식 문서와 동일하게 보낸 것이어서요 --header 'Content-Type: application/json' \ --header 'Accept: text/event-stream' \ --data '{ "messages": [ { "role": "system", "content": "- 친절하게 답변하는 AI 어시스턴트입니다." }, { "role": "user", "content": "오늘의 최고 기온은 32도, 최저 기온은 15도, 강수확률은 30%입니다." } ], "topP": 0.8, "topK": 0, "temperature": 0.5, "repetitionPenalty": 1.1, "stop": [], "responseFormat": { "type" : "json", "schema": { "type": "object", "properties": { "temp_high_c": { "type": "number", "description": "최고기온(섭씨)" }, "temp_low_c": { "type": "number", "description": "최저기온(섭씨)" }, "precipitation_percent": { "type": "number", "description": "강수확률(%)", "minimum": 0, "maximum": 100 } }, "required": [ "temp_high_c", "temp_low_c", "precipitation_percent" ] } } }' id:9b793959adbc4c9abf61b7b8e866a35c event:error data:{"status":{"code":"40001","message":"Invalid parameter: thinking, responseFormat"}} 혹시 어떤 부분이 문제일까요? thinking param은 애초에 optional이고 structured_output과 동시 사용이 불가한데 왜 해당 응답이 발생하는지 궁금합니다. 또 hcx-007은 이미지 입력이 불가한 모델로 알고 있는데 가이드 상에 설명으로는 이미지 입력도 가능한 것으로 보여 가능한 것인지 추가 문의 드립니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
hyejeongjo Posted Monday at 09:09 오전 Author 공유하기 Posted Monday at 09:09 오전 추가로 hcx-005 이미지 입력시 instruction following 이 잘 안되는 현상도 있는데요, 아래 예제에 대해 json format으로 오지 않는데 혹시 이미지 입력 시에 instruction following 을 잘 할 수 있는 프롬프팅 전략이 있는지 궁금합니다. from langchain_core.messages import HumanMessage, SystemMessage from langchain_naver import ChatClovaX system_prompt = """ - AI 언어모델은 사용자를 위해 이미지에서 정보를 추출하는 어시스턴트입니다. - 사용자 요청을 수행하기 위해 필요한 정보를 이미지에서 추출합니다. - 문제를 푸는 것이 아니라, OCR처럼 이미지에 담긴 텍스트를 추출합니다. - 반드시 이미지에서 정보를 **추출**합니다. 이미지 속 질문에 대한 답변을 작성하는 것이 아닙니다. - json 형식으로 응답합니다. - json 응답 구조는 아래와 같습니다. ## 출력 형식 (json) ```json { "image_description": "2x+3=5 일때, x의 값은?", } ``` - 반드시 json 형태로 응답합니다. - 문제를 푸는 것이 아니라, OCR처럼 이미지에 담긴 텍스트를 추출합니다. - 문제를 풀지마세요. AI 언어모델의 임무는 이미지에서 문항 정보를 추출하는 것이지 문제를 푸는것이 아닙니다. """ user_msg_1 = """ 이 문제 풀어줘 """ sys = SystemMessage(content=system_prompt) image_1 = HumanMessage(content=[{"type": "image_url", "image_url": {"url": "https://samtoring.com/qstn/gF9N2iHRY58JuJ3ZHRU3.png"}}]) user_1 = HumanMessage(content=user_msg_1) llm = ChatClovaX(model="HCX-005", api_key="xx") response = llm.invoke(messages) print(response.content) 결과: $ \dfrac { \sqrt { 3 } } { 3 } > 0$ 이므로 $θ = \dfrac { \pi } { 6 } $ 이다. $\therefore\:$$\text{sin} θ = \dfrac { \sqrt { 3 } } { 3 } , \quad \text{cos} θ = \dfrac { \sqrt { 2 } } { 2 } $ $ ∴ 2\text{sin}\left(θ-\dfrac{\pi}{6}\right) + \text{cos} θ$ $=2\text{sin}\dfrac{\pi}{6}-\text{cos}\dfrac{\pi}{6}+\dfrac{\sqrt{2}}{2}$ $=\dfrac{2\times\dfrac{1}{2}}{\dfrac{\sqrt{2}}{2}}+\dfrac{\sqrt{2}}{2}=\dfrac{\sqrt{3}}{3}+\dfrac{\sqrt{2}}{2}$ 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자 Posted Tuesday at 06:04 오전 공유하기 Posted Tuesday at 06:04 오전 안녕하세요, @hyejeongjo님, 이용에 불편을 드려 죄송합니다. 현재 가이드 문서 일부가 잘못되어 수정 작업을 진행 중입니다. 가이드 상의 설명드린 바와 같이, thinking 기능과 Structured Output 기능은 동시에 사용이 불가능합니다. 다만, thinking parameter를 입력하지 않으면 기본적으로 "low"값이 적용 되어, Structured Output 기능과 충돌이 발생합니다. 따라서, Structured Output 기능을 사용할 때는 반드시 thinking.effot를 "none"으로 사용하여야 합니다. 또한, HCX-007 모델은 이미지 입력을 지원하지 않으므로, Structured Output 기능에서도 이미지 입력이 불가능함을 안내드립니다. 수정된 호출 예시는 아래와 같이 전달 드립니다. curl --location --request POST 'https://clovastudio.stream.ntruss.com/v3/chat-completions/HCX-007' \ --header 'Authorization: Bearer {CLOVA Studio API Key}' \ --header 'X-NCP-CLOVASTUDIO-REQUEST-ID: {Request ID}' \ --header 'Content-Type: application/json' \ --data '{ "messages": [ { "role": "system", "content": "- 미리 정의한 JSON Schema 형식에 맞춰 답변하는 AI 어시스턴트입니다." }, { "role": "user", "content": "오늘의 최고 기온은 32도, 최저 기온은 15도, 강수 확률은 30%입니다." } ], "topP": 0.8, "topK": 0, "maxCompletionTokens": 100, "temperature": 0.5, "repetitionPenalty": 1.1, "thinking": {"effort": "none"}, "stop": [], "responseFormat": { "type" : "json", "schema": { "type": "object", "properties": { "temp_high_c": { "type": "number", "description": "최고 기온(섭씨)" }, "temp_low_c": { "type": "number", "description": "최저 기온(섭씨)" }, "precipitation_percent": { "type": "number", "description": "강수 확률(%)", "minimum": 0, "maximum": 100 } }, "required": [ "temp_high_c", "temp_low_c", "precipitation_percent" ] } } }' 추가로 문의주신 HCX-005의 경우, system prompt에는 "정보를 추출하는 것이지 문제를 푸는 것이 아닙니다."라고 되어 있는 반면, 사용자 요청은 "문제 풀어줘"처럼 맥락이 충돌하는 부분이 있어, 이런 부분을 보완해보는 것도 좋을 것 같습니다. 또는, few-shot prompting이나 CoT 방식으로 접근해보는 것도 하나의 방법일 수 있습니다. 감사합니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
hyejeongjo Posted Tuesday at 07:49 오전 Author 공유하기 Posted Tuesday at 07:49 오전 넵, 빠른 답변 주셔서 감사드립니다. @clovastudio 님. 답변주신 호출 예시로 정상 동작하는 점 확인했습니다. 그리고 이미지 입력에 대한 프롬프팅은 말씀 주신 케이스 포함하여 (user prompt 제외, CoT 접근, few-shot 시도 등) 여러 전략을 시도해보았으나, 해당 이미지를 포함하여 개선이 되지 않았습니다. (관련 이미지 중 30%는 fail하고 있습니다./fail 기준: json으로 응답이 나오고 있지 않음) 일반적인 전략 외에 HCX 이미지 정보 추출을 위한 별도 가이드 라인이 있는지 궁금합니다. + 추가로 HCX-005에서도 structured output을 지원을 고려하고 계신지 궁금합니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자 Posted Tuesday at 12:14 오후 공유하기 Posted Tuesday at 12:14 오후 @hyejeongjo님, 아래와 같이 프롬프트를 구성하시고, User 쿼리의 경우에도 "JSON 형식으로 출력:"처럼 목적에 맞게 요청하시면 될 듯 합니다. User 인풋에도 prefix나 후행 문구를 붙여 출력 양식을 유도하는 것이 효과적인 경우가 많습니다. HCX-005 모델은 structured output을 고려하고 있지 않습니다. 감사합니다. Quote 당신은 사용자가 제공한 이미지를 분석하여, 이미지 속에 포함된 모든 텍스트 정보를 정확히 추출하는 OCR 어시스턴트입니다. 당신의 역할은 이미지의 텍스트 정보를 복원하는 것이며, 문제를 풀이하거나 해석하거나 정답을 제시하는 것이 아닙니다. 이미지에는 수식, 문장, 선택지 등이 포함될 수 있으며, 사용자는 단순히 시각 정보를 JSON 형식의 텍스트로 변환해주길 원합니다. --- ## 출력 형식 (JSON) ```json { "image_description": "[이미지에서 추출한 모든 텍스트를 여기에, 하나의 문자열로 넣으세요]" } ``` --- ## 작성 규칙 - 이미지에서 보이는 텍스트 전체를 빠짐없이 추출합니다. 수식, 괄호, 기호, 선택지, 문장 등 모든 구성요소를 포함하세요. - 텍스트는 사람이 읽는 그대로 추출해야 합니다. 줄바꿈(\n), 공백, 수식 기호(π, √, θ 등)도 유지합니다. - 선택지가 있는 경우 번호와 보기를 정확히 기입합니다. - 문제 풀이, 정답 작성, 의미 해석은 절대 금지입니다. - 출력은 JSON 한 개 객체만 반환합니다. 그 외의 텍스트는 출력하지 않습니다. --- ## 예시 ### 예시 1 입력 이미지 내용: 2x + 3 = 5일 때, x의 값은? ```json { "image_description": "2x + 3 = 5일 때, x의 값은?" } ``` --- ### 예시 2 입력 이미지 내용: 8. sinθ = √3/3일 때, 2sin(θ - π/6) + cosθ의 값은? (단, 0 < θ < π/2) [3점] ① 1/2 ② √3/3 ③ 1 ④ √3 ⑤ 2 ```json { "image_description": "8. sinθ = √3/3일 때, 2sin(θ - π/6) + cosθ의 값은?\n(단, 0 < θ < π/2) [3점]\n① 1/2 ② √3/3 ③ 1 ④ √3 ⑤ 2" } ``` --- ## 중요 사항 정리 - 문제를 풀거나 해설하지 않습니다. 단지 이미지에 보이는 텍스트를 그대로 추출합니다. - 줄바꿈, 기호, 선택지 번호 등 형식을 유지하여 작성합니다. - 출력은 오직 하나의 JSON 객체만 포함되어야 합니다. - 이미지에 텍스트가 없거나 일부만 있는 경우, 해당 내용만 복원하거나 빈 문자열을 반환합니다. 1 링크 복사 다른 사이트에 공유하기 More sharing options...
hyejeongjo Posted Tuesday at 01:14 오후 Author 공유하기 Posted Tuesday at 01:14 오후 > User 인풋에도 prefix나 후행 문구를 붙여 출력 양식을 유도하는 것이 효과적인 경우가 많습니다. 이부분은 모르고 있었네요, 프롬프팅 + 가이드 주셔서 감사드립니다. 🙇♀️ 1 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자9 Posted 8 hours ago 공유하기 Posted 8 hours ago 안녕하세요 @hyejeongjo님, HCX-007를 통해 제공하는 structured outputs 기능을 정식 지원하는 langchain-naver v0.1.1이 배포되어 안내드립니다. 패키지 업데이트 후 이용하실 수 있을 것으로 보입니다. 자세한 내용은 아래 가이드 문서 참고 부탁드리며, 궁금하신 점이나 개선 의견 있으시면 언제든 편히 말씀주십시오. 감사합니다. https://python.langchain.com/docs/integrations/chat/naver/#structured-outputs 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인