Qwen-Image-Edit / app.py
dangthr's picture
Create app.py
e77cf47 verified
import subprocess
import inferless
from pydantic import BaseModel, Field
from typing import Optional
@inferless.request
class RequestObjects(BaseModel):
command: str = Field(default="echo Hello, Inferless!")
@inferless.response
class ResponseObjects(BaseModel):
stdout: str = Field(default="")
stderr: str = Field(default="")
returncode: int = Field(default=0)
app = inferless.Cls(gpu="A100") # 这里可以选择实际需要的 GPU 类型,或省略 GPU 参数
class TerminalController:
@app.load
def initialize(self):
# 初始化时可以做环境准备等操作
pass
@app.infer
def infer(self, request: RequestObjects) -> ResponseObjects:
# 运行用户传入的终端命令
process = subprocess.Popen(
request.command,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
stdout, stderr = process.communicate()
# 返回执行结果和日志
return ResponseObjects(
stdout=stdout.decode("utf-8"),
stderr=stderr.decode("utf-8"),
returncode=process.returncode
)
def finalize(self):
# 清理资源
pass
@inferless.local_entry_point
def my_local_entry(dynamic_params):
controller = TerminalController()
request_obj = RequestObjects(**dynamic_params)
return controller.infer(request_obj)