๊ฐ์
gradio๋ก ์ฌ๋ฆฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋ ์์๋๋ฐ~
์ ํ๋ฆฌ์ผ์ด์ ํ๋๋ ์ถ๊ฐํด์ 2๊ฐ ์ฌ๋ฆฌ๊ณ ,
{domain}/a
{domain}/b
์ด๋ ๊ฒ path parameter๋ก ๊ตฌ๋ถํด์ ์ฌ๋ฆฌ๊ณ ์ถ์ด์ ๋์ ~
ํ์ธ
๊ธฐ์กด์ ์ฝ๋๊ฐ ์ด๋ป๊ฒ ๋์ด์์๋๋ฉด,
def greet(name):
return f"Hello, {name}!"
gr_app = gr.Interface(fn=greet, inputs="text", outputs="text")
gr_app.launch(server_name="0.0.0.0", server_port=8003)
์ด๋ ๊ฒ ๋จ์ํ๊ฒ 8003 ํฌํธ๋ก ์ฌ๋ผ๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด์๋ค.
์์ํ ๋, ์ฑ์งํผํฐํํ ๋ฌผ์ด๋ณด๋
Gradio Blocks ๊ธฐ๋ฐ ์ฑ ์์ฑ ํ `path` ์ค์ ํ๊ณ
FastAPI ์ฑ์ ๋ง์ดํธํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ๋ค.
def greet(name):
return f"Hello, {name}!"
gr_app = gr.Interface(fn=greet, inputs="text", outputs="text")
gr_app_configured = gr_app.config(path="/a")
app = FastAPI()
app.mount("/clone", gr_app_configured)
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8003)
์์ ํ๊ณ ์คํํด๋ณด๋
Traceback (most recent call last):
File "gradio_main.py", line 65, in <module>
demo_configured = demo.config(path="/a")
^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'dict' object is not callable
Blocks ์ธ์คํด์ค๊ฐ ์๋๋ผ dict์ด ๋ค์ด๊ฐ๋ค.
ํน์๋ํ๊ณ ์ฐพ์๋ณด๋,
Gradio ๋ฒ์ 4.15.0 ์ด์์์ .config() ๋ฉ์๋๊ฐ ์ฌ๋ผ์ก๋ค๊ณ ํ๋ค ~ !!!!!!!
์ง๊ธ ๋ด๊ฐ ์ฌ์ฉํ๋ Gradio ๋ฒ์ ์ 5.31.0 ใ ใ ใ ใ ใ ใ ใ ใ
๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ฐพ์๋ณด๋,
.config() ์์ด gr.mount_gradio_app()์ ์ฌ์ฉํด์ผํ๋ค.
import gradio as gr
from fastapi import FastAPI
import uvicorn
from gradio.routes import mount_gradio_app # โ
์ฌ๊ธฐ ์ค์
def greet(name):
return f"Hello, {name}!"
gr_app = gr.Interface(fn=greet, inputs="text", outputs="text")
# FastAPI ์ฑ ์์ฑ
app = FastAPI()
# Gradio ์ฑ์ "/a" ๊ฒฝ๋ก์ mount
app = mount_gradio_app(app, gr_app, path="/a")
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8003)
--> ์ด๊ฑฐ ์คํํ๋๊น {domain}/a ์ผ๋ก ์ ๊ทผ ์๋๋ค ์ค์
๊ทผ๋ฐ ์ต์ข ๋ชฉํ๋ 2๊ฐ์ gradio ์ฑ์ /a, /b ๋ก ์คํํ ์์
def greet(name):
return f"Hello, {name}!"
gr_app = gr.Interface(fn=greet, inputs="text", outputs="text")
def second_greet(name):
return f"Hello again, {name}!"
second_gr_app = gr.Interface(fn=second_greet, inputs="text", outputs="text")
app = FastAPI()
app = mount_gradio_app(app, gr_app, path="/a")
app = mount_gradio_app(app, second_gr_app, path="/b")
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8003)
์ด๋ ๊ฒ ํ๋๊น~
path parameter๋ก ๊ตฌ๋ถํด์ ๊ฐ๊ฐ์ gradio app์ ์ ๊ทผ ๊ฐ๋ฅ !!!!
์ฑ๊ณต~