brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 09. 2024

AI 5탄-2. 그라디오,챗봇,허깅 페이스

생성형 AI 활용 앱 만들어줘-2/5


<4> 그라디오(Gradio)는 사용자가 UI를 빠르게 사용할수 있게하는 파이썬 오픈소스

<5> 챗봇 구현하기 - 상담봇,번역복,소설봇 구현 하기

<6> 앱 만들기 - 외부에 노출 하기 - 허깅페이스 이용




그라디오(Gradio)는 사용자가 UI를 빠르게 사용할수 있게하는 파이썬 오픈소스

챗GPT를 활용하여 챗봇을 제작해보자.

챗봇앱을 웹에서 구현해보자.

파이썬은 웹앱을 개발할수 있는 오픈 소스를  제공한다.

그라디오(Gradio)와 스트림릿(Streamlit)

짧은 시간에 웹앱을 만들수 있다.

코랩을 사용해 실습한다.






<4> 그라디오(Gradio)는 사용자가 UI를 빠르게 사용할수 있게하는 파이썬 오픈소스


1


https://www.gradio.app/



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)



그라디오 

텍스트, 버튼, 이미지, 음성등 모두 만들어 볼수 있도록 하는 예제이다.


https://github.com/heypythonai/heypythonai/blob/main/Part2%20-%20%E1%84%8F%E1%85%A9%E1%84%83%E1%85%B3/%ED%97%A4%EC%9D%B4%ED%8C%8C%EC%9D%B4%EC%8D%AC%204%20Gradio.ipynb



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()

















<5> 챗봇 구현하기 - 상담봇,번역복,소설봇 구현 하기



1

소스 코드 


https://github.com/heypythonai/heypythonai/blob/main/Part2%20-%20%E1%84%8F%E1%85%A9%E1%84%83%E1%85%B3/%ED%97%A4%EC%9D%B4%ED%8C%8C%EC%9D%B4%EC%8D%AC%205%20%EA%B7%B8%EB%9D%BC%EB%94%94%EC%98%A4%EB%A1%9C%20%EC%B1%97%EB%B4%87%20%EC%A0%9C%EC%9E%91.ipynb




2


//  상담봇, 번역복, 소설봇 3개가 동작함.


5-3 챗봇 기능 추가



1

상담봇




2

번역봇



3

소설봇










<6> 앱 만들기 - 외부에 노출 하기 - 허깅페이스 이용


# 구글 코랩에서 작성한 코드를 허깅페이스 Space에 업로드해보자




1

코랩에서 만든 앱에 코드 추가하기




https://github.com/heypythonai/heypythonai/blob/main/Part2%20-%20%E1%84%8F%E1%85%A9%E1%84%83%E1%85%B3/%ED%97%A4%EC%9D%B4%ED%8C%8C%EC%9D%B4%EC%8D%AC%206%20%ED%97%88%EA%B9%85%ED%8E%98%EC%9D%B4%EC%8A%A4%EC%97%90%20%EC%97%85%EB%A1%9C%EB%93%9C%ED%95%98%EA%B8%B0.ipynb



2

# 참고 -  직접 openapi 키 설정하기


import os

os.environ["OPENAI_API_KEY"] = "sk-proj-gmLnswflnrO"

from openai import OpenAI

client = OpenAI()



3

허깅페이스(Hugging Face)에 업로드하여 전 세계 사람들과 공유하자.

허깅페이스는 인공지능 커뮤니티와 머신러닝 모델을 공유하는 플랫폼.


4

# 허깅페이스 가입


https://huggingface.co/


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


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari