cmefly97 Posted May 15 공유하기 Posted May 15 안녕하세요. API 가이드(https://api.ncloud-docs.com/docs/clovastudio-openaicompatibility)에 있는 openAI 호환 코드를 테스중에 에러가 발생하고 있어서 문의 드립니다. OpenAI 의 경우 encoding_format : float. 값이라서요. clovastudio 의 openai 호환성 임베딩 API 호출시 encoding_format 값을 입력하지 않아도 동작하도록 수정부탁드립니다. # Open AI 호환 임베딩, 코드.. => 에러 발생 from openai import OpenAI client = OpenAI( api_key=f'{CLOVASTUDIO_API_KEY}', # CLOVA Studio API 키 base_url="https://clovastudio.stream.ntruss.com/v1/openai" # CLOVA Studio 오픈AI 호환 API ) response = client.embeddings.create( input="임베딩 변환할 텍스트", model="bge-m3" #encoding_format="float" ) print(response.data[0].embedding) ### 에러 내용-======= BadRequestError: Error code: 400 - {'error': {'message': 'Invalid parameter: encoding_format', 'code': '40001'}} 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자9 Posted May 15 공유하기 Posted May 15 안녕하세요 @cmefly97님, CLOVA Studio를 이용해주셔서 감사합니다. 현재 OpenAI 공식 API 및 Python SDK 기준으로 encoding format의 기본값이 서로 다른 것으로 확인됩니다. (전자는 float, 후자는 base64) CLOVA Studio의 오픈AI 호환 API는 OpenAI 공식 API Spec을 따르고 있으며, 이에 따라 curl 등을 통해 직접 이용하실 경우 encoding format을 별도로 정의하지 않아도 (float으로 처리하여) 정상 응답하고 있습니다. 이는 Python이 아닌 다른 언어의 SDK를 이용해도 마찬가지입니다. OpenAI의 Python SDK에서 임베딩을 이용할 경우 사용자가 별도로 정의하지 않으면 encoding_format="base64"로 설정되도록 되어 있고, CLOVA Studio의 임베딩 API는 해당 포맷을 지원하지 않기 때문에 에러를 출력하게 됩니다. 이는 OpenAI에서 Python에서는 API를 통해서 base64로 받아서 SDK에서 float으로 디코딩을 하는 것이 더 효율적이라고 판단했기 때문으로 보입니다 (관련 이슈: https://github.com/openai/openai-python/issues/1490) 때문에 제보주신 부분 인지하고 있으나, API 및 타 언어 기반 SDK와의 호환성을 위해 별도의 수정은 어려운 상황이며, 대신 API 가이드 상에 해당 부분을 유의사항으로 명시하고자 합니다. @cmefly97님께서도 OpenAI Python SDK로 임베딩 기능을 이용하실 때는 encoding_format을 float으로 정의하여 이용해주시면 감사하겠습니다. 그 외 추가로 궁금한 점이 있으시면 편히 말씀주세요. 감사합니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인