o
    ॵi                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 e Z
e
deddigd	fd
edefddZe
dd
efddZdS )    )	APIRouterBody)	BaseModel)Request)(pipeline_output_to_service_base64_output)call_pipeline_with_jsonz/callusagezcopy body from describe)examplesrequestbodyc                    sB   | j jj}| j jj}|  I dH }t|||}t|d |}|S )a%  Inference general interface.

    For image, video, audio etc binary data, need encoded with base64.

    Args:
        request (Request): The request object.
        request_info (ModelScopeRequest): The post body.

    Returns:
        ApiResponse: For binary field, encoded with base64
    N	task_name)appstatepipelinepipeline_infojsonr   r   )r
   r   pipeline_servicer   request_jsonresultoutput r   ^/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/server/api/routers/model_router.py	inference   s   

r   z	/describec                    s&   i }| j jj|d< | j jj|d< |S )Nschemasample)r   r   r   pipeline_sample)r
   infor   r   r   describe(   s
   r   N)fastapir   r   pydanticr   starlette.requestsr   modelscope.utils.input_outputr   r   routerpostr   getr   r   r   r   r   <module>   s"    