Jump to content

hyejeongjo

Members
  • 게시글

    10
  • 첫 방문

  • 최근 방문

  • Days Won

    2

Everything posted by hyejeongjo

  1. @CLOVA Studio 운영자9 추가로 아래와 같이 image_url 관련 내용을 전체 삭제했을 경우에도 에러가 발생하는데, > type=image_url로 작성된 HumanMessage 내 content 일부를 삭제하면 정상 작동합니다. 이 부분을 어떻게 수정하셨는지 여쭤보아도 될까요 ? BadRequestError: Error code: 400 - {'error': {'message': 'Unsupported input format', 'code': '40009'}}
  2. @CLOVA Studio 운영자9 네, Function calling 기능이 없어 직접 구현하며 테스트해본 사례인데요. (HCX 내의 function calling이 아닌 여러 call들을 구성하여 이미지 내에서도 가능하도록 테스트 중에 있습니다.) HCX의 function calling 을 사용하지 않아도 메세지 (Image msg+tool message) 를 함께 포함할 수 없는걸까요?
  3. 안녕하세요, HCX-005를 활용해 아래 쿼리를 넣었을 때 BadRequestError가 나오는 것을 확인했는데요. 디버깅을 계속 해봐도 어떤 문제인지 알 수 없어서 문의 드립니다. 혹시 입력 값 중 어떤 것이 잘못되었을 까요? (gpt 는 동일 입력 시 정상 작동하여 문의 드립니다.) from langchain_core.messages import AIMessage, AIMessageChunk, HumanMessage, ToolMessage, SystemMessage from langchain_openai import ChatOpenAI from langchain_naver import ChatClovaX hcx = ChatClovaX(model="hcx-005", temperature=0, api_key="nv-xx") msg = [ SystemMessage(content='당신은 엄격한 JSON 생성기입니다. \n\nCORE RULES:\n- **반드시 JSON 형식으로만 응답하세요. 다른 형식은 절대 사용하지 마세요.**\n- 정확히 하나의 JSON 객체만 출력하세요.\n- 제공된 "spec" 스키마를 정확히 따르세요: 키, 타입, 중첩, 필수 필드, 허용 값.\n- 추가 키, 주석, 설명문, 코드 블록을 사용하지 마세요.\n- 문자열은 유효한 JSON 문자열이어야 합니다: \\" (따옴표), \\\\ (백슬래시), \\\\n (개행), \\\\t (탭).\n- 불린: true/false (소문자). Null: spec에서 허용하는 경우에만 null. 숫자: 유효한 JSON 숫자만.\n- spec에 제시된 키 순서를 존중하세요.\n- 일부 필드가 문서에 누락된 경우, spec과 일치하는 최소한의 유효한 placeholder를 생성하세요:\n * string → ""\n * number → 0\n * boolean → false\n * list → []\n * object → {}\n * Optional → null\n * enum → choose the safest or first allowed value\n- 출력 전에 항상 spec에 대해 출력을 검증하세요. 유효하지 않으면 조용히 재생성하세요.\n- **응답은 반드시 { 로 시작하고 } 로 끝나야 합니다.**\n- **JSON 객체만 출력하고, 다른 것은 출력하지 마세요.**\n- 사용자의 입력을 보고 **도구 목록**을 확인한 후, 아래 지침에 따라 응답하세요.\n\n## 도구 목록\n- get_weather: 날씨 정보를 얻는 도구\n- calculator: 문제를 풀 수 있는 도구. 사용자가 문제 풀이를 원하면 해당 도구를 선택하세요.\n\n### 1. 도구가 필요하다고 판단되는 경우\n- "도구가 필요하다"의 의미: 사용자의 요청이 **도구 목록에 있는 도구로 처리할 수 있는 경우**입니다. \n- 이때는 반드시 JSON 형식으로만 답변하세요. \n- 여러 개 도구를 동시에 선택할 수 있으며, 선택 시 도구 이름(`tool`)만 나열합니다. \n- JSON 외의 텍스트는 절대 포함하지 마세요. \n- 필요한 경우에만 적절한 도구를 선택하세요. \n\n출력 예시:\n{\n "calls": ["get_weather", "search"]\n}\n\n### 2. 도구가 필요하지 않다고 판단되는 경우\n- 도구를 선택하지 않습니다.\n- 아래와 같이 리스트 응답을 비워둡니다.\n\n출력 예시:\n{\n "calls": []\n}\n', additional_kwargs={}, response_metadata={}), HumanMessage(content=[{'type': 'text', 'text': 'x^2-4x+4 = 0 이거 어떻게 풀어'}, {'type': 'image_url', 'image_url': {'url': 'https://dimg.donga.com/wps/NEWS/IMAGE/2014/11/17/67941705.3.jpg'}}], additional_kwargs={}, response_metadata={}, id='ee827eb5-344d-4f98-81da-8ae61a09ca4a'), HumanMessage(content='사진을 보고 system prompt의 규칙에 따라 JSON 응답을 생성합니다.', additional_kwargs={}, response_metadata={}, id='972df05c-9911-4ce1-b506-765e6c998efb'), AIMessage(content='', additional_kwargs={'tool_calls': [{'id': 'call_0-1a8a8d6a', 'type': 'function', 'function': {'name': 'calculator', 'arguments': {'problem': '문제 내용 입력', 'explanation': '해설 내용 입력', 'answer': '정답 내용 입력'}}}], 'refusal': None}, response_metadata={'token_usage': {'input_tokens': 1923, 'output_tokens': 10, 'total_tokens': 4335, 'input_token_details': {}, 'output_token_details': {}}}, id='060d1daa-1a6e-43b1-90f9-48223b8b00ba', tool_calls=[{'name': 'calculator', 'args': {'problem': '문제 내용 입력', 'explanation': '해설 내용 입력', 'answer': '정답 내용 입력'}, 'id': 'call_0-1a8a8d6a', 'type': 'tool_call'}]), ToolMessage(content='문제 정답은 정답 내용 입력 이고, 풀이과정은 해설 내용 입력 입니다.', name='calculator', id='2d358e4a-5ad9-4185-96ce-8a61936b0ec7', tool_call_id='call_0-1a8a8d6a'), HumanMessage(content='사진을 보고 system prompt의 규칙에 따라 JSON 응답을 생성합니다.', additional_kwargs={}, response_metadata={}) ] hcx.invoke(msg) 결과: File ~/Desktop/WORKS/edu-max-model/.venv/lib/python3.11/site-packages/openai/_base_client.py:1047, in SyncAPIClient.request(self, cast_to, options, stream, stream_cls) 1044 err.response.read() 1046 log.debug("Re-raising status error") -> 1047 raise self._make_status_error_from_response(err.response) from None 1049 break 1051 assert response is not None, "could not resolve response (should never happen)" BadRequestError: Error code: 400 - {'error': {'message': 'Bad request', 'code': '40000'}}
  4. @CLOVA Studio 운영자 네, 계속해서 해당 이슈가 발생하고 있어 system/user prompt 및 model parameter 해당 링크로 공유 드렸습니다. 번거로우실텐데 감사드립니다.
  5. > User 인풋에도 prefix나 후행 문구를 붙여 출력 양식을 유도하는 것이 효과적인 경우가 많습니다. 이부분은 모르고 있었네요, 프롬프팅 + 가이드 주셔서 감사드립니다. 🙇‍♀️
  6. 넵, 빠른 답변 주셔서 감사드립니다. @clovastudio 님. 답변주신 호출 예시로 정상 동작하는 점 확인했습니다. 그리고 이미지 입력에 대한 프롬프팅은 말씀 주신 케이스 포함하여 (user prompt 제외, CoT 접근, few-shot 시도 등) 여러 전략을 시도해보았으나, 해당 이미지를 포함하여 개선이 되지 않았습니다. (관련 이미지 중 30%는 fail하고 있습니다./fail 기준: json으로 응답이 나오고 있지 않음) 일반적인 전략 외에 HCX 이미지 정보 추출을 위한 별도 가이드 라인이 있는지 궁금합니다. + 추가로 HCX-005에서도 structured output을 지원을 고려하고 계신지 궁금합니다.
  7. 추가로 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}$
  8. 안녕하세요 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은 이미지 입력이 불가한 모델로 알고 있는데 가이드 상에 설명으로는 이미지 입력도 가능한 것으로 보여 가능한 것인지 추가 문의 드립니다.
  9. 네, 예시 프롬프트는 아래와 같습니다. system prompt 사용자 요청을 분석하여 아래 정보를 추출하세요.~~ 예시) 사용자 요청 2+3이 뭐야? 답변 subject: 수학 unit: 덧셈과 뺄셈 section: 한자리수의 덧셈 위의 형식으로 된 프롬프트에 feature 값들이 \n 구분자로 잘 나오고 있었는데요. (마지막 확인일: 6/16일) 프롬프트, 파라메터 변경 없이 6/16이후 테스트 해보니 \n 구분 없이 응답이 출력되고 있습니다. 이전 출력 (6/16이전) subject: 수학\nunit: 0-0. 기타\nsection: \ntopic: 두 자연수의 합 구하기 이후 출력 (6/16이후) subject: 수학unit: 0-0. 기타section: \ntopic: 두 자연수의 합 구하기 \n을 기준으로 feature를 뽑아내는 llm들이 \n구분 없이 출력되고 있어, 모델 체크포인트가 변경된 것인지 여쭤보고 싶습니다.
  10. 안녕하세요, HCX-005 응답이 기존과 다르게 나오는 것 같아 업데이트가 된 것인지 여부를 여쭤보고자 합니다. 코드는 어제와 동일한데, 오늘자로 실험해보니 \n 구분자로 나와야 하는 feature 값들이 구분 없이 나오고 있습니다. param 등 다 동일해서, hcx-005 의 출력이 갑자기 다르게 나오는 것 같아 문의 드립니다.
×
×
  • Create New...