콘텐츠로 이동

Blocks로 연동하기

필요한 모듈 설치하기

!pip install openai
!pip install gradio

Gradio Blocks 템플릿

import gradio as gr

# 응답 생성 함수
def generate_response(prompt_text):

    return prompt_text


with gr.Blocks() as demo:
    gr.Markdown("### 나의 ChatGPT")

    with gr.Row():
        with gr.Column():

            input_text = gr.Textbox(label="프롬프트:")          
            output_text = gr.Textbox(label="ChatGPT 결과", interactive=False)

            input_text.submit(generate_response, inputs=input_text, outputs=output_text)

demo.launch()

가장 기본적인 ChatGPT 호출

from openai import OpenAI

client = OpenAI()

completion = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "서울의 위도를 알려줘."}
    ],    
)

response = completion.choices[0].message;
print(response.content)

Gradio Blocks와 ChatGPT의 통합

import gradio as gr
from openai import OpenAI

client = OpenAI()

# 응답 생성 함수
def generate_response(prompt_text):

    completion = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "user", "content": prompt_text}
        ]
    )

    response = completion.choices[0].message;
    return response.content


with gr.Blocks() as demo:
    gr.Markdown("### 나의 ChatGPT")

    with gr.Row():
        with gr.Column():

            input_text = gr.Textbox(label="프롬프트:")
            output_text = gr.Textbox(label="ChatGPT 결과", interactive=False)

            input_text.submit(generate_response, inputs=input_text, outputs=output_text)

demo.launch()

제목과 설명 추가

import gradio as gr
from openai import OpenAI

client = OpenAI()

# 응답 생성 함수
def generate_response(prompt_text):

    completion = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "user", "content": prompt_text}
        ]
    )

    response = completion.choices[0].message;
    return response.content


with gr.Blocks() as demo:
    gr.Markdown(
    """
    # 홍길동의 AI 화학 전문가
    화학에 대해 궁금한 사항이 있으면 질문해 주세요.
    """)

    with gr.Row():
        with gr.Column():

            input_text = gr.Textbox(label="프롬프트:")
            output_text = gr.Textbox(label="ChatGPT 결과", interactive=False)

            input_text.submit(generate_response, inputs=input_text, outputs=output_text)

demo.launch()

응답 창 크기 조절 (10칸 크기)

import gradio as gr
from openai import OpenAI

client = OpenAI()

# 응답 생성 함수
def generate_response(prompt_text):

    completion = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "user", "content": prompt_text}
        ]
    )

    response = completion.choices[0].message;
    return response.content


with gr.Blocks() as demo:
    gr.Markdown(
    """
    # 홍길동의 AI 화학 전문가
    화학에 대해 궁금한 사항이 있으면 질문해 주세요.
    """)

    with gr.Row():
        with gr.Column():

            input_text = gr.Textbox(label="프롬프트:")
            output_text = gr.Textbox(label="ChatGPT 결과", interactive=False, lines=10)

            input_text.submit(generate_response, inputs=input_text, outputs=output_text)

demo.launch()