생성형 AI 활용 앱 만들어줘-2/5
그라디오(Gradio)는 사용자가 UI를 빠르게 사용할수 있게하는 파이썬 오픈소스
챗GPT를 활용하여 챗봇을 제작해보자.
챗봇앱을 웹에서 구현해보자.
파이썬은 웹앱을 개발할수 있는 오픈 소스를 제공한다.
그라디오(Gradio)와 스트림릿(Streamlit)
짧은 시간에 웹앱을 만들수 있다.
코랩을 사용해 실습한다.
1
2
https://colab.research.google.com/?hl=ko
3
!pip install gradio
4
import gradio as gr
def user_greeting(name):
return "안녕하세요! " + name + "고객님 헤이마트에 오신걸 환영합니다."
app = gr.Interface(fn = user_greeting, inputs="text", outputs="text")
app.launch()
5줄로 간단히 화면을 만들수 있다!
이름을 입력하고 Sumit을 누르면
바로 output에 표시 된다.
5
# 나오는 링크를 클릭하면 브라우저로 열린다~~
Colab notebook detected. To show errors in colab notebook, set debug=True in launch() * Running on public URL: https://4031a3a84a66c6dd43.gradio.live
그라디오가 만들어주는 사이트이다.
3일정도 유지된다.
6
소스
4-2 그라디오 사용하기 (Gradio)
그라디오
텍스트, 버튼, 이미지, 음성등 모두 만들어 볼수 있도록 하는 예제이다.
7
# Single 입력 , Slgle 출력
import gradio as gr
def display(name):
return name
app = gr.Interface(fn = display, inputs = "text", outputs = "text")
app.launch()
8
# 멀티 입력
import gradio as gr
def display(text1, text2, image):
return text1 + text2, image
app = gr.Interface(fn = display,
inputs = ["text", "text", gr.Image(height = 200, width = 200)],
outputs = ["text", gr.Image(height = 200, width = 200)]
)
app.launch()
9
# 마트 - 제미나이 수정본
import gradio as gr
def display(message, history, additional_input_info):
return message
app = gr.ChatInterface(
fn=display,
textbox=gr.Textbox(placeholder="대화를 입력해주세요", scale=7),
title="헤이마트 챗봇",
description="마트이용에 대한 모든것을 알려드립니다.",
theme="soft",
examples=[["세일물품"], ["물건위치"], ["XX 가격알려줘"]],
# The retry_btn, undo_btn, and clear_btn are no longer supported in ChatInterface.
# These buttons are now built-in and cannot be customized directly.
# See: https://github.com/gradio-app/gradio/issues/9722
additional_inputs=[
gr.Textbox("관리자 호출", label="긴급시사용하세요")
]
)
app.launch()
1
소스 코드
2
// 상담봇, 번역복, 소설봇 3개가 동작함.
5-3 챗봇 기능 추가
1
상담봇
2
번역봇
3
소설봇
# 구글 코랩에서 작성한 코드를 허깅페이스 Space에 업로드해보자
1
코랩에서 만든 앱에 코드 추가하기
2
# 참고 - 직접 openapi 키 설정하기
import os
os.environ["OPENAI_API_KEY"] = "sk-proj-gmLnswflnrO"
from openai import OpenAI
client = OpenAI()
3
허깅페이스(Hugging Face)에 업로드하여 전 세계 사람들과 공유하자.
허깅페이스는 인공지능 커뮤니티와 머신러닝 모델을 공유하는 플랫폼.
4
2차 인증 설정하기
구글 auth 사용
5
# Space 만들기
우측 상단에 프로필 이미지 New Space
space name
my1
License - 선택하지 않아도 된다.
select the space SDK = Gradio 클릭
공개시 Public (디폴트)로 한다.
[Create Space]
6
# 코드 업로드
우측 Files 클릭
Add file
Create a new file
app.py
Space에 그라디오에서 만든 코드 추가
import gradio as gr
from openai import OpenAI
import os
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
Commit new file to main 클릭
7
# requirements.txt 업로드
허깅 페이스에 openai는 기본 모듈이 아니라 모듈이 없다는 에러 발생
create
requirements.txt 만들어 openai 추가한다.
commit change
ai.png 업로드
8
# 오른쪽 위 settings에 api 키 설정함.
아래
Variables and secrets
New Secret
OPENAI_API_KEY
8
app
10
APP 실행 결과
https://huggingface.co/spaces/topasvga/my1
상담봇
11
번역봇
2
소설봇
다음
https://brunch.co.kr/@topasvga/3929