TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 Gen AI>

[Gen AI] 그라디오로 제작한 챗봇 허깅 페이스에 업로드하기

by 기록자_Recordian 2024. 12. 13.
728x90
반응형
이전 내용
 

[Gen AI] 그라디오로 챗봇 제작하기 - 3 (소설봇)

이전 내용 [Gen AI] 그라디오로 챗봇 제작하기 - 1 (상담봇)이전 내용 [Gen AI] 그라디오(Gradio)이전 내용 [Gen AI] OpenAI API 사용해보기 (로컬, 주피터노트북)이전 내용 [Gen AI] OpenAI API 키 발급하기Open AI

puppy-foot-it.tistory.com


허깅 페이스란?

 

허깅 페이스는 자연어 처리(NLP)를 중심으로 한 인공지능 커뮤니티와 머신러닝 모델을 공유하는 플랫폼이다.

 

[AI 플랫폼] 허깅페이스: AI와 머신러닝의 새로운 지평

허깅페이스란? 허깅페이스(Hugging Face)는 자연어 처리(NLP)와 머신러닝(ML) 커뮤니티에서 가장 혁신적이고 중요한 플랫폼 중 하나로 자리 잡고 있다. 허깅페이스는 주로 Transformer 모델을 중심으로

puppy-foot-it.tistory.com


허깅 페이스 가입하기

 

허깅 페이스의 Spaces는 사용자가 만든 프로그램 또는 AI 모델을 웹에서 직접 실행하고 시연할 수 있는 환경을 제공한다. 사용자는 그라디오(Gradio)를 통해 간단한 웹 인터페이스를 만들어 프로그램을 빠르게 시연하고 서비스할 수 있다.

https://huggingface.co/

 

Hugging Face – The AI community building the future.

 

huggingface.co

 

먼저, Spaces에 자신의 프로그램을 업로드하기 위해 허깅 페이스에 접속하여 계정을 만들어야 한다.

(허깅 페이스에서 Spaces를 이용만 할거라면 별도의 가입을 하지 않아도 된다.)

허깅 페이스에 접속하여 가입하기(Sign Up) 버튼을 누르고 가입하려는 이메일 주소 및 비밀번호를 입력한 뒤, 아래의 프로필을 완성해 주면 된다.

 

아바타의 경우, 하단에 특정 단어나 문장을 입력하면 그에 맞는 아바타를 생성해준다.

(만약 생성된 아바타를 다시 만들고 싶으면 주사위 버튼을 누르면 된다.)

 

그리고 가입한 메일 주소로 확인 메일이 오는데, 빨간색 음영 부분(링크)을 클릭하면 이메일 주소 인증이 완료되며, 가입이 완료된다.

 


Space 만들기

 

계정 생성 완료 및 로그인 후, 오른쪽 상단의 Spaces를 클릭한 후, Create new Spaces 클릭

 

그리고나서 Spaces를 생성하는 데 필요한 정보를 입력하면 된다.

[필요한 옵션에 대한 설명]

  • Space name: 해당 프로젝트의 이름. (알아서 자유롭게 입력)
  • Short description: 짧은 설명
  • License: 저작권 보호나 재사용 명확성 등 사용 조건 설정 (선택 사항)
  • Select the Space SDK: Space를 구성한 인터페이스 선택.
  • Space hardware: Space에 업로드한 코드를 계산해 줄 하드웨어. 기본 사양인 SPU basic · 2vCPU · 16GB · FREE 를 제외한 다른 옵션은 사용 시간에 비례해 비용 지불
  • Public / Private: 개인의 Space를 개인 또는 본인이 속한 그룹을 제외한 다른 사람들에게 공개할 것인지의 여부 (공개-Public / 비공개 - Private)

필자의 경우, 위의 옵션을 입력 및 선택한 후에 Gradio (그라디오)를 선택하니, 하단의 Choose a Gradio template이 나와서 chatbot을 선택한 후 Create Space를 클릭하였다.

 

Create Space를 클릭한 후, 하단의 페이지가 나온다면 Space 생성이 완료된 것이다.

 


Spaces에 업로드하기

 

앞서 작성한 상담봇, 번역봇, 소설봇 코드를 허깅 페이스의 Space에 업로드한다. 상단 오른쪽에 [Files] 버튼을 눌러 페이지를 이동한다.

이제 그라디오로 작성했던 코드를 Space에 업로드해 본다.

위 화면 오른쪽에 [+ Add file] 버튼을 클릭한 후, [Create a new file] 버튼을 클릭한다.

Name your file에는 반드시 app.py를 적어줘야 Spaces에서 해당 파일을 그라디오 인터페이스로 인식하여 실행할 수 있다.

또한, [Edit]에는 이전에 그라디오로 작성한 코드를 붙여넣기 한다.

 

코드를 붙여넣기 한 후, 하단의 [Commit new file to new file to main] 버튼을 클릭해 저장한다.


requirements.txt 수정하기

 

OpenAI 패키지는 그라이도와 달리 허깅 페이스에 기본적으로 설치된 모듈이 아니므로, Space가 실행되면 openai 모듈이 없다는 에러가 발생한다.

따라서 Space에 requirements.txt 파일에 설치가 필요한 패키지 이름을 작성한다. 이렇게 하면 Space가 실행될 때 자동으로 requirements.txt에 적힌 패키지를 설치하여 Space가 정상적으로 작동한다.

(※ 책에서는 requirements.txt 파일을 생성하라고 되어 있었으나, Space를 생성할 때 자동으로 생성되어 있다.)

requirements.txt 를 클릭한 후, Edit에 필요한 패키지 목록을 작성해주고, 하단의 [Commit changes to main] 버튼을 클릭해 준다.

 


Secrets 키 등록

 

requirements.txt 에 openai를 등록했음에도, [App] 버튼 클릭 시 에러가 발생하는 데, 이는 OpenAI API 키가 Space의 환경 변수에 등록되어 있지 않기 때문이다. (코드에 키 값을 직접 쓰는 것은 노출 및 보안 이유가 있기 때문에 지양하는 게 좋다.)

따라서 [Settings]에서 [Secret Key]를 등록해 이와 같은 에러를 해결한다. 오른쪽 상단의 [Settings] 버튼을 누르고 스크롤을 내리면

[ Variables and secrets] 가 나오는 데, 여기서 [New secret]을 클릭

 

Name에 OPENAI_API_KEY를 적고, Description(설명)은 선택 사항이므로 자유롭게 하고, value에 본인의 OpenAI API 키를 붙여넣기 하고 [Save] 버튼을 누르면 된다.

 

 

이렇게 하면 OpenAI API 키가 등록된 것을 확인할 수 있다.

만약 해당 키를 수정해야 한다면 [Replace] 버튼을, 삭제해야 한다면 [Delete] 키를 눌러 관리할 수 있다.

 

그리고나서 스크롤을 올려 [App] 버튼을 눌러 챗봇 프로그램이 정상적으로 작동하는지 확인해 본다.


에러 수정

 

◆ 에러1: When localhost is not accessible~

만약 [App] 버튼을 눌렀을 경우, 하단의 에러가 발생한다면

ValueError: When localhost is not accessible, 
a shareable link must be created. Please set share=True 
or check your proxy settings to allow access to localhost.

 

[Files] 버튼을 클릭하고, app.py 파일을 누른 뒤, [edit] 버튼을 눌러,

코드의 가장 마지막 부분 app.launch() 를 하단과 같이 바꾸고 나서

app.launch(share=True)

 

[Commit changes to main] 버튼을 눌러 업데이트 한다.

※ 그런데, 해당 코드를 넣으면 넣었다고, 안 넣으면 안 넣었다고 에러가 뜬다. 그래서 다시 삭제했다. 최종 app.launch()

 

◆ 에러2: You have not specified a value for the 'type' parameter.

/usr/local/lib/python3.10/site-packages/gradio/components/chatbot.py:222:
UserWarning: You have not specified a value for the `type` parameter. 
Defaulting to the 'tuples' format for chatbot messages, 
but this is deprecated and will be removed in a future version of Gradio. 
Please set type='messages' instead, which uses openai-style 'role' and 'content' keys.

해당 경고 메시지는 Gradio 라이브러리에서 chatbot 컴포넌트의 type 매개변수를 명시하지 않아서 발생하는 경고이다. 이 메시지는 앞으로 해당 라이브러리의 기능이 tuples 형식에서 messages 형식으로 전환될 예정임을 알리고 있다. 이를 해결하기 위해 다음과 같이 type 매개변수를 설정해 주면 된다.

※ 이것 역시, 넣으면 넣었다고, 안 넣으면 안 넣었다고 에러가 뜬다.

 

◆ 에러3: 500 Internal Error

허깅 페이스(Hugging Face)에서 "500 Internal Server Error"가 발생한 경우, 이는 서버 자체의 문제로 인해 발생하는 일반적인 에러이므로, 이러한 문제는 사용자가 직접 해결하기 어려울 수 있다.

 

이러한 경우 사용자가 취해볼 수 있는 조치는 다음과 같다

1. 잠시 기다렸다가 다시 시도:
서버 문제는 일시적일 수 있으므로 몇 분 후에 다시 시도해 본다.

2. 허깅 페이스 상태 페이지 확인:
Hugging Face의 상태 페이지나 공식 트위터 계정을 통해 현재 서버 상태와 관련된 공지사항이 있는지 확인해 본다.

https://status.huggingface.co/

3. Hugging Face 고객 지원팀에 문의:
문제가 지속되는 경우, Hugging Face의 고객 지원 팀에 직접 문의하여 도움을 요청해 본다.
https://huggingface.co/contact

4. 로그 파일 확인:
만약 특정 작업을 수행하는 도중에 오류가 발생했다면, 해당 작업의 로그 파일을 확인하여 더 구체적인 에러 메시지를 확인해 본다.

5. 코드 및 설정 점검:
자체 코드나 설정에 문제가 없음을 확인하는 것도 중요하므로, 코드 예제가 있다면 다시 한 번 확인해 본다.

 

짐작하건데, 현재 허깅 페이스 자체 서버에 문제가 있는 것으로 판단되어 여기까지 하고 마무리 하도록 한다.


다음 내용

 


[출처]

Hey, 파이썬! 생성형 AI 활용 앱 만들어줘

허깅 페이스 홈페이지

728x90
반응형