Jump to content

CLOVA Studio 운영자9

Members
  • 게시글

    79
  • 첫 방문

  • 최근 방문

  • Days Won

    10

CLOVA Studio 운영자9 last won the day on September 8

CLOVA Studio 운영자9 had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

CLOVA Studio 운영자9's Achievements

Enthusiast

Enthusiast (6/14)

  • One Year In Rare
  • Reacting Well Rare
  • Dedicated Rare
  • Collaborator Rare
  • One Month Later

Recent Badges

15

Reputation

  1. 안녕하세요 @sang님, 해당 에러는 정상적인 서비스 API 키를 이용하고 계시지만 이용하시고자 하는 모델로 서비스 앱이 없을 때 발생하는데요. 동일한 계정으로 발급받은 서비스 API 키와 등록된 서비스 앱 이용하고 계시는 게 맞는지 한번 확인 부탁드리며, 맞는데도 불구하고 에러가 발생하는 경우 서비스 문의하기를 통해 계정 정보를 공유해주시면 상세 확인 도와드리겠습니다. 감사합니다.
  2. 안녕하세요 @hyejeongjo님, 말씀드린대로 현재 CLOVA Studio의 HCX-005 모델로는 이미지 입력과 Function calling을 동시에 이용하실 수 없는데요. 이미지 URL을 포함하는 메시지가 있는 상태에서 tool 메시지를 입력할 경우 이미지에 기반한 Function calling 기능을 활용하는 요청으로 간주되어 에러가 발생할 것으로 보입니다. 해당 제약사항을 감안하되 최대한 이미지에 기반한 Function calling을 구현하는 방법을 찾고 계신 것으로 이해하였습니다. 아래와 같이 두 단계로 나누어 API를 호출하는 방법을 고려해보실 수 있을 것으로 보입니다. 다만 각 단계별로 적절한 시스템 및 유저 프롬프트 작성이 필요할 것으로 보입니다: 1) 이미지 속 정보 추출, 2) 추출된 정보(text) 기반 Function calling image_url 관련 내용을 삭제했을 때 정상 작동하는 케이스를 아래와 같이 알려드립니다. 40009 에러의 경우 보통 이미지 입력 지원을 하지 않는 모델에서 이미지 입력을 했을 때 발생하는 에러인 점 참고 부탁드립니다. # 라이브러리 로드, API 키 설정 등은 완료된 것으로 간주 hcx = ChatClovaX(model="HCX-005", max_tokens=1025) 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 이거 어떻게 풀어'}], 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={}) ] res = hcx.invoke(msg) print(res.content) 위 코드 실행 결과 아래와 같은 출력을 얻을 수 있는 것으로 보입니다: ```json { "result": { "정답": "정답 내용 입력", "풀이과정": "해설 내용 입력" } } ``` 감사합니다.
  3. 안녕하세요 @hyejeongjo님, 해당 에러는 HCX-005에서 이미지 입력(Vision)과 Function calling 기능을 동시에 이용하고자 하셔서 발생하는 에러로 보입니다. type=image_url로 작성된 HumanMessage 내 content 일부를 삭제하면 정상 작동합니다. 가이드에 명시된 바와 같이 두 기능은 함께 사용하실 수 없는 점 참고 부탁드립니다. 관련하여 에러 코드 및 메시지는 개선할 수 있도록 하겠습니다. 첨언드리자면 말씀주신 것과 같이 이용하실 경우 모델이 사용 가능한 도구 목록에 대한 정의가 되지 않기 때문에 성능이 떨어지는 이슈가 있을 수 있습니다. (CLOVA Studio만의 문제는 아니고, OpenAI 등 타 서비스에서도 마찬가지일 것으로 보입니다.) 따라서 LangChain에서의 일반적인 Tool use 방식으로 사용하실 것을 권장드립니다. 감사합니다.
  4. 안녕하세요 @프란군님, HCX-007 모델의 추론 기능을 켜고 이용했을 때 시스템 프롬프트의 지시사항을 따르지 않는 경향성이 있다고 제보주신 것으로 이해했습니다. 맞을까요? 일반적으로 HCX-007 모델은 추론 기능 이용 여부와 무관하게 이전 모델들보다 지시사항 수행 능력이 향상되었으나, 경우에 따라 추론 길이가 길어지는 등의 사유로 인해 지시사항 일부를 누락할 수는 있을 것 같은데요. 혹시 프롬프트를 공유해주실 수 있다면 보다 자세히 살펴보고 말씀드릴 수 있도록 하겠습니다. 포럼을 통해 공유주시기 어렵다면 이용문의를 통해 전달주시면 됩니다. (문의 유형에서 AI Services > CLOVA Studio 선택) 감사합니다.
  5. 안녕하세요 @jhkim2님, 최대 10개까지 발급받을 수 있는 서비스 API 키는 삭제하지 않는 이상 계속해서 유효하게 이용하실 수 있습니다. 즉, 이미 서비스 API 키가 있는 상태에서 새로운 서비스 API 키를 발급받는다고 기존 서비스 API 키가 무효가 되거나, 이용 중지되지 않으므로 추가 발급받으셔도 되겠습니다. 10개의 서비스 API 키 각각을 특정 서비스 앱에 지정하는 기능은 따로 제공하지 않고 있으나, 사용자께서 직접 그렇게 관리하여 운영하시는 데에 문제는 없습니다. 감사합니다.
  6. 안녕하세요 @탱구탱구님, 말씀주셨던 이슈 어제 배포된 langchain-naver v0.1.1부터는 발생하지 않는 것으로 보이는데요. 패키지 업데이트 후에도 재현이 된다면 말씀 부탁드립니다. 자세한 내용은 아래 문서를 확인 부탁드립니다. 사용해보시고 궁금한 점이나 개선 의견이 있으시면 편히 말씀주세요. 감사합니다. https://python.langchain.com/docs/integrations/chat/naver/
  7. 안녕하세요 @hyejeongjo님, HCX-007를 통해 제공하는 structured outputs 기능을 정식 지원하는 langchain-naver v0.1.1이 배포되어 안내드립니다. 패키지 업데이트 후 이용하실 수 있을 것으로 보입니다. 자세한 내용은 아래 가이드 문서 참고 부탁드리며, 궁금하신 점이나 개선 의견 있으시면 언제든 편히 말씀주십시오. 감사합니다. https://python.langchain.com/docs/integrations/chat/naver/#structured-outputs
  8. 안녕하세요 @천세현님, 어제 배포된 langchain-naver v0.1.1부터 추론(thinking) 모델을 정식 지원합니다. 패키지 업데이트 후 이용하실 수 있을 것으로 보입니다. 자세한 내용은 아래 문서를 확인 부탁드립니다. 사용해보시고 궁금한 점이나 개선 의견이 있으시면 편히 말씀주세요. 감사합니다. https://python.langchain.com/docs/integrations/chat/naver/#thinking
  9. 안녕하세요 @choi.wb님, 어제 배포된 langchain-naver v0.1.1부터 추론(thinking) 모델을 정식 지원합니다. 패키지 업데이트 후 이용하실 수 있을 것으로 보입니다. 자세한 내용은 아래 문서를 확인 부탁드립니다. 사용해보시고 궁금한 점이나 개선 의견이 있으시면 편히 말씀주세요. 감사합니다. https://python.langchain.com/docs/integrations/chat/naver/#thinking
  10. 안녕하세요 @choi.wb님, 해당 기능 지원을 위해 langchain-naver 패키지 업데이트가 예정되어 있습니다. 업데이트 후 안내드리도록 하겠습니다.
  11. 안녕하세요 @hyejeongjo님, 앞서 작성해주신 내용 중 아래 사항에 대해 부연해주실 수 있을까요? 혹시 프롬프트 또는 변경사항이 나타나도록 응답 예시를 공유해주신다면 원인 파악에 큰 도움이 될 것 같습니다.
  12. 안녕하세요 @naduhale님, 아래와 같이 1번 Raw data 처리 과정에서 user agent를 정의하면 에러 발생을 방지할 수 있습니다. txt → html 변환 및 원본 사이트 주소 mapping url_to_filename_map = {} with open("clovastudiourl.txt", "r") as file: urls = [url.strip() for url in file.readlines()] folder_path = "clovastudioguide" if not os.path.exists(folder_path): os.makedirs(folder_path) for url in urls: filename = url.split("/")[-1] + ".html" file_path = os.path.join(folder_path, filename) subprocess.run(["wget", "--user-agent=RAGCookbook-Crawler/1.0", "-O", file_path, url], check=True) # Added agent name url_to_filename_map[url] = filename with open("url_to_filename_map.json", "w") as map_file: json.dump(url_to_filename_map, map_file)
  13. 안녕하세요 @탱구탱구님, 답변이 늦어진 점 양해 부탁드립니다. 우선 앞서 아래 문의주신 내용과 관련해서 답변드립니다: -> 각 tool의 결과 값을 다음 tool의 매개변수로 잘 활용하기 위한 범용적인 프롬프트나 설명은 따로 없습니다. 다만 "이전 툴에서 온 결과를 특정 oo파라미터에 반드시 적용해야한다" 등의 프롬프트를 사용하면 조금 도움이 될 것으로 생각됩니다. 번거로우시겠지만 직접 변경하면서 최적의 프롬프트(설명)을 찾는 것을 권장드립니다. 또한 공유주신 코드에서 에러가 발생하는 것은 이용하시려는 함수에서 dummy라는 변수의 기본값을 "now"로 설정하는 부분 때문인 것으로 보입니다. 자세한 원인 파악 및 개선 진행중에 있으며, 현재로서는 해당 부분을 제외하면 정상 작동하는 점 참고 부탁드립니다. def get_current_datetime(dummy: str = "now") -> str: 해당 수정에도 불가하고 원하는 응답을 내려주지 않는 문제가 있는데, 이 부분은 품질상의 문제로, 함수 실행 결과의 "current_time" 필드가 현재 시간이라는 점을 프롬프트 또는 함수 설명에 추가하거나 함수 실행 결과 필드명을 "현재_시간" 등으로 변경하면 해소가 되는 것으로 보입니다. 확인 부탁드리며, 추가로 궁금하신 점이 있는 경우 편히 말씀주세요. 감사합니다.
  14. 안녕하세요 @jun님, 말씀주신 사항을 제가 잘 이해하지 못했는데요. 이전 60초 이내 요청이 없다는 가정하에, 첫 요청이 들어온 시점으로부터 1분(=60초) 이내 요청이 60개를 넘는 경우, 처음으로 초과하는 요청 시점부터 남은 시간동안 들어오는 요청이 전부 429 에러를 받게 됩니다. 해당 윈도우는 첫 요청이 들어온 시점에서 1분이 지나면 리셋되며, 다시 그 이후 첫 요청이 들어온 시점부터 계산됩니다. 참고차 말씀드리면, 아래 링크에서 fixed window with user-defined start 방식으로 보시면 되겠습니다. https://smudge.ai/blog/ratelimit-algorithms#token-buckets 감사합니다.
  15. 안녕하세요 @jun님, CLOVA Studio의 이용량 제어는 사용자별 첫 요청을 시점으로 고정 윈도우 방식으로 이뤄지고 있습니다. 감사합니다.
×
×
  • Create New...