| | import gradio as gr
|
| | from transformers import pipeline
|
| | import random
|
| | from PIL import Image, ImageDraw, ImageFont
|
| | import io
|
| |
|
| |
|
| | try:
|
| | qa_pipeline = pipeline("question-answering")
|
| | except:
|
| | qa_pipeline = None
|
| |
|
| | def create_meme(template_choice, top_text, bottom_text):
|
| | """λ° μ΄λ―Έμ§ μμ±"""
|
| | try:
|
| |
|
| | width, height = 500, 400
|
| | img = Image.new('RGB', (width, height), color='lightblue')
|
| | draw = ImageDraw.Draw(img)
|
| |
|
| |
|
| | if top_text:
|
| | draw.text((50, 50), top_text, fill='black')
|
| | if bottom_text:
|
| | draw.text((50, 350), bottom_text, fill='black')
|
| |
|
| | return img
|
| | except Exception as e:
|
| | return f"μ€λ₯: {str(e)}"
|
| |
|
| | def chatbot_response(message, history):
|
| | """μ±λ΄ μλ΅"""
|
| | responses = [
|
| | "ν₯λ―Έλ‘μ΄ μ§λ¬Έμ΄λ€μ!",
|
| | "λ μμΈν λ§μν΄μ£ΌμΈμ.",
|
| | "κ·Έκ²μ λν΄ μκ°ν΄λ³΄κ² μ΅λλ€.",
|
| | "μ’μ μμ΄λμ΄μ
λλ€!"
|
| | ]
|
| | return random.choice(responses)
|
| |
|
| |
|
| | with gr.Blocks(title="λ° μμ± & μ±λ΄") as demo:
|
| | gr.Markdown("# π λ° μμ± & AI μ±λ΄ μλΉμ€")
|
| |
|
| | with gr.Tabs():
|
| |
|
| | with gr.TabItem("πΌοΈ λ° μμ±κΈ°"):
|
| | with gr.Row():
|
| | with gr.Column():
|
| | template_dropdown = gr.Dropdown(
|
| | choices=["λλ μ΄ν¬ λ°", "λμ€νΈλν°λ 보μ΄νλ λ", "μ λμ€ λ« μ¬ν리"],
|
| | label="λ° ν
νλ¦Ώ μ ν",
|
| | value="λλ μ΄ν¬ λ°"
|
| | )
|
| | top_text = gr.Textbox(label="μλ¨ ν
μ€νΈ", value="When you see a bug")
|
| | bottom_text = gr.Textbox(label="νλ¨ ν
μ€νΈ", value="But it works in production")
|
| | create_btn = gr.Button("λ° μμ±νκΈ°", variant="primary")
|
| |
|
| | with gr.Column():
|
| | meme_output = gr.Image(label="μμ±λ λ°")
|
| |
|
| | create_btn.click(create_meme, [template_dropdown, top_text, bottom_text], meme_output)
|
| |
|
| |
|
| | with gr.TabItem("π€ AI μ±λ΄"):
|
| | chatbot = gr.Chatbot(label="AI μ΄μμ€ν΄νΈ", height=400)
|
| | msg = gr.Textbox(label="λ©μμ§ μ
λ ₯", placeholder="κΆκΈν κ²μ λ¬Όμ΄λ³΄μΈμ...")
|
| |
|
| | def user_msg(message, history):
|
| | return "", history + [[message, None]]
|
| |
|
| | def bot_msg(history):
|
| | if history and history[-1][1] is None:
|
| | user_message = history[-1][0]
|
| | bot_response = chatbot_response(user_message, history)
|
| | history[-1][1] = bot_response
|
| | return history
|
| |
|
| | msg.submit(user_msg, [msg, chatbot], [msg, chatbot]).then(bot_msg, chatbot, chatbot)
|
| |
|
| | if __name__ == "__main__":
|
| | demo.launch()
|
| |
|