본문 바로가기
Programming/Python

[Python] gradio 웹앱 만들기

by 코딩하는 금융인 2024. 7. 21.

안녕하세요.

오늘은 간단하게 웹앱을 만들 수 있는 파이썬 라이브러리 gradio에 대해서 알아보겠습니다.

 

 파이썬으로 간단하게 나만의 웹앱 만들기

▣ 파이썬 gradio

머신러닝 모델, 데이터 과학 애플리케이션, 기타 파이썬 함수들을 웹 인터페이스로 쉽게 변환할 수 있게 해주는 라이브러리

 

 - 사용자는 복잡한 프론트엔드에 대한 코드 없이 URL을 통해서 간단한 웹 어플리케이션을 만들 수 있고 이를 통해 모델을 테스트하거나 데모를 공유할 수 있음

 - 특히 빠른 프로토타이핑과 간단한 사용자 피드백 수집에 유용함

 

▣ gradio 설치 및 사용법

 - 여타 라이브러리처럼 똑같이 설치해주면 됨

pip install gradio

 

 1) 제곱 계산 웹앱

import gradio as gr

def square(x):
    return x ** 2

iface = gr.Interface(fn=square, inputs="number", outputs="number")
iface.launch()

 

 - 위 코드를 실행시 로컬 서버가 실행되고 웹 브라우저에서 접근할 수 있는 인터페이스가 생성됨

 - 사용자는 숫자를 입력하고 "Submit" 버튼을 클릭하면 해당 숫자의 제곱을 결과로 확인할 수 있음

gradio 예시

 

 2) 텍스트 감정 분석 웹앱

 - 텍스트의 감정을 "Positive", "Negative", "Neutral"로 분류해주는 gradio 웹앱 생성

import gradio as gr
from textblob import TextBlob

def analyze_sentiment(text):
    blob = TextBlob(text)
    sentiment = blob.sentiment.polarity
    if sentiment > 0:
        return "Positive"
    elif sentiment < 0:
        return "Negative"
    else:
        return "Neutral"

iface = gr.Interface(
    fn=analyze_sentiment, 
    inputs="text", 
    outputs="text",
    title="Sentiment Analysis"
)
iface.launch()

 

 - "i love codingfinance" 텍스트 입력시 감정 분석 결과, "Positive"가 출력됨

 

3) Chatgpt 웹앱 만들기

 - Gradio를 사용하여 대형 언어 모델(LLM)과 같은 자연어 처리 모델도 웹 인터페이스로 만들 수 있음

 - OpenAI의 GPT API를 사용하여 GPT-3 모델을 탑재한 웹앱 생성 가능

import openai

# OpenAI API 키 설정
openai.api_key = 'YOUR_OPENAI_API_KEY'

import gradio as gr

# OpenAI GPT-4 API 호출 함수
def generate_response(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": prompt}
        ],
        max_tokens=150
    )
    return response.choices[0].message['content'].strip()

# Gradio 인터페이스 생성
iface = gr.Interface(
    fn=generate_response, 
    inputs="text", 
    outputs="text", 
    title="GPT-4 Chatbot",
    description="Ask anything and GPT-4 will respond."
)

# 인터페이스 실행
iface.launch()

 

 

 

반응형

댓글