영어
pip install SwanAPI -i https://pypi.org/simple
1️⃣ predict.py
파일을 작성합니다. 여기서는 이미지를 흑백으로 변환하는 예를 사용합니다.
이전에 Gradio를 작성해 본 적이 있다면 이 작성 방법에 익숙할 것입니다. 이는
gr.Interface
정의하는 방법과 매우 유사합니다.
from SwanAPI import SwanInference
import cv2
# 这是一个简单的图像转黑白的任务
def predict ( im ):
result_image = cv2 . cvtColor ( im , cv2 . COLOR_BGR2GRAY )
return "success" , result_image
if __name__ == "__main__" :
api = SwanInference ()
api . inference ( predict ,
inputs = [ 'image' ],
outputs = [ 'text' , 'image' ],
description = "a simple test" )
api . launch ()
2⃣️ python predict.py
실행하여 localhost://127.0.0.1:8000/
$ python predict.py
* Serving Flask app " SwanAPI Server" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
3⃣️ 통화 API
from SwanAPI import SwanRequests , Files
response = SwanRequests (
url = "http://127.0.0.1:8000/predictions/" ,
inputs = { 'im' : Files ( "/path/to/image" )}) #填写图像文件的本地路径
print ( response )
curl
사용하여 요청을 보내는 경우:
curl --location ' http://127.0.0.1:8000/predictions/ '
--form ' im=@"path/to/image" '
출력이 'image'로 설정되면 base64로 인코딩된 바이트 스트림이 반환되고 Python에서 np.ndarray로 변환됩니다.
from SwanAPI import SwanRequests , Files
import base64
import numpy as np
import cv2
response = SwanRequests (
url = "http://127.0.0.1:8000/predictions/" ,
inputs = { 'im' : Files ( "../Feedback/assets/FeedBack.png" )}) #填写图像文件的本地路径
image_base64 = response [ str ( 1 )][ 'content' ]
nparr = np . frombuffer ( base64 . b64decode ( image_base64 ), np . uint8 )
img_restore = cv2 . imdecode ( nparr , cv2 . IMREAD_COLOR )
cv2 . imwrite ( "output.jpg" , img_restore )
predict.py
개발이 완료된 후:
1⃣️ 이미지 구성을 안내할 swan.yaml
파일을 만듭니다.
build :
gpu : false
system_packages :
- " libgl1-mesa-glx "
- " libglib2.0-0 "
python_version : " 3.10 "
python_packages :
- " numpy "
- " opencv-python "
predict :
port : 8000
짓다:
gpu
: GPU 모드를 활성화할지 여부입니다. true는 하드웨어 구성, python_version 및 딥 러닝 프레임워크를 기반으로 최고의 nvidia 지원을 자동으로 선택합니다.
system_packages
: Linux 시스템 기본 라이브러리는 apt-get install
.
python_version
: 이미지가 실행되는 기본 Python 버전은 3.8, 3.9 및 3.10을 지원합니다.
python_packages
: 모델이 의존하는 Python 라이브러리
- "torch==2.0.0 --index-url https://download.pytorch.org/whl/cpu"
와 같이 작성할 수 있습니다. python_source
: Python 라이브러리의 다운로드 소스를 지정합니다(선택 사항인 cn
및 us
. 기본값은 us
입니다. cn
다운로드 소스를 선택하면清华源
사용됩니다.
예측하다:
port
: 추론 서비스가 시작될 때의 포트 번호2⃣️이미지 구축
swan build -t my-dl-image
백조 빌드 선택적 매개변수:
-t
: 필수입니다. my-dl-image
와 같은 이미지 빌드 이름을 지정합니다.-r
: 선택 사항입니다. 이 매개변수를 추가하면 이미지가 빌드된 후 컨테이너가 실행되고 포트 매핑이 수행됩니다. swan build -r -t my-dl-image
-s
: 선택 사항입니다. 이 매개변수를 추가하면 이미지가 빌드된 후 해당 디렉터리에 Dokefile이 저장됩니다.3⃣️ 컨테이너 실행
docker run my-dl-image
GPU에서 실행하는 경우
docker run --gpus all my-dl-image