WSL模型配置.md 1.8 KB


notion-id: 23bca4d7-cb7b-806a-ac51-ffe5ae0865

安装torch

uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

uv add transformers

uv  pip install fastapi uvicorn pillow
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")

result = pipe("/home/zhensolid/sl/images.jpg")  # 替换为你的图片路径
print(result)

方法 1:使用 FastAPI 部署

from fastapi import FastAPI, UploadFile, File
from transformers import pipeline
import io
from PIL import Image

app = FastAPI()
pipe = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")

@app.post("/caption")
async def generate_caption(file: UploadFile = File(...)):
    image = Image.open(io.BytesIO(await file.read()))
    result = pipe(image)
    return {"caption": result[0]["generated_text"]}

运行:

uvicorn main:app --host 0.0.0.0 --port 8000

方法 2:使用 Flask(轻量级)

from flask import Flask, request, jsonify
from transformers import pipeline
import io
from PIL import Image

app = Flask(__name__)
pipe = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")

@app.route("/caption", methods=["POST"])
def caption_image():
    file = request.files["image"]
    image = Image.open(io.BytesIO(file.read()))
    result = pipe(image)
    return jsonify({"caption": result[0]["generated_text"]})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

运行:

python app.py

测试 API

curl -X POST -F "image=@test.jpg" http://localhost:8000/caption