기술과 산업/AI

Gradio 실전 시리즈 2화 – Gradio 설치 및 첫 인터페이스 만들기

B컷개발자 2025. 5. 13. 16:06
728x90

Gradio를 활용해 AI 모델 인터페이스를 직접 만드는 첫 걸음. 본 글에서는 Gradio 설치 방법부터 Python 코드로 간단한 웹 앱을 만드는 전 과정을 상세하게 안내합니다.

AI 모델은 데이터를 입력하고 결과를 출력하는 과정을 누구나 쉽게 체험할 수 있어야 합니다.
오늘은 바로 그 시작, Gradio 환경 구축과 첫 번째 인터페이스 제작을 실습해보겠습니다.


Gradio 설치 방법

Gradio는 Python 기반이므로, Python 환경만 있다면 아주 간단하게 설치할 수 있습니다.

1. Python 환경 준비

권장 Python 버전: 3.8 이상

Anaconda 또는 venv로 별도의 가상환경을 만드는 것을 추천합니다.

python -m venv gradio_env
source gradio_env/bin/activate   # Mac/Linux
gradio_env\Scripts\activate      # Windows

2. Gradio 라이브러리 설치

pip 명령어로 한 줄이면 끝납니다.

pip install gradio

설치가 정상적으로 완료되었다면 다음 명령으로 버전을 확인할 수 있습니다.

python -c "import gradio as gr; print(gr.__version__)"

 

온라인 playground에서 바로 사용하기

https://www.gradio.app/playground

 

Gradio Playground

Play Around with Gradio Demos

www.gradio.app

 


첫 번째 Gradio 인터페이스 만들기

Gradio의 가장 강력한 매력은 단 몇 줄의 코드로 웹 인터페이스를 만들 수 있다는 점입니다.
아래 예제를 따라 직접 실행해보세요.

✔️ 예제: 텍스트 입력 → 텍스트 출력

import gradio as gr

def greet(name):
    return f"안녕하세요, {name}님!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()

실행 후 콘솔에서 URL이 생성되며, 웹 브라우저에서 접속하면 다음과 같은 화면을 볼 수 있습니다:

  • 텍스트 입력창
  • "Submit" 버튼
  • 결과 출력창

Gradio 인터페이스 작동 원리

  • fn=greet: 사용자가 입력한 데이터를 처리하는 핵심 함수
  • inputs="text": 사용자가 값을 입력할 UI 컴포넌트
  • outputs="text": 결과를 반환할 출력 컴포넌트
  • demo.launch(): 인터페이스를 로컬 서버로 실행

💡 참고:
실행 시 외부 IP로 공유 가능한 링크도 생성됩니다.
이를 통해 다른 사람과 바로 테스트 결과를 공유할 수 있습니다.


추가 실습: 이미지 입력 + 이미지 출력

Gradio는 이미지, 오디오, 비디오 등 다양한 데이터를 아주 손쉽게 다룰 수 있습니다.
이미지 예제도 다음처럼 간단합니다.

import gradio as gr
from PIL import ImageOps

def invert(image):
    return ImageOps.invert(image)

demo = gr.Interface(
    fn=invert,
    inputs=gr.Image(type="pil", label="이미지를 업로드하세요"),
    outputs=gr.Image(type="pil", label="반전된 이미지")
)

demo.launch()

이미지를 업로드하면 색상이 반전된 이미지를 바로 반환합니다.
이처럼 Gradio는 모델 실험UI 개발을 동시에 할 수 있는 강력한 도구입니다.


Gradio 앱 종료 방법

서버 실행 후 콘솔에서 Ctrl + C 를 누르면 인터페이스를 중지할 수 있습니다.


실전 팁: Jupyter Notebook에서도 사용 가능

Gradio는 Jupyter Notebook 환경에서도 매우 잘 작동합니다.
코드를 작성하고 바로 인터페이스를 띄워서 테스트할 수 있어, 연구용 프로토타입 제작 시 최적입니다.

import gradio as gr

def echo(text):
    return text

gr.Interface(fn=echo, inputs="text", outputs="text").launch(inline=True)

inline=True를 추가하면 Notebook 셀 안에서 바로 웹 UI가 뜹니다.


마무리

오늘은 Gradio 설치와 첫 인터페이스를 직접 만들어보았습니다.
아주 간단한 코드로 강력한 AI 인터페이스를 구축할 수 있음을 확인했습니다.

다음 화부터는 Gradio의 Interface vs Blocks 구조 차이를 본격적으로 다루며, 실전 개발에서 어떤 방식을 선택해야 하는지 비교 분석하겠습니다.

👉 Gradio 실전 시리즈 3화 – Interface vs Blocks: 무엇을 언제 쓸까?

728x90