import base64 import mimetypes import os from pathlib import Path import httpx from openai import OpenAI BASE_DIR = Path(__file__).resolve().parent IMAGE_PATH = BASE_DIR / "03_43431636157.jpg" def image_to_data_url(path): if not path.exists(): raise FileNotFoundError("Image not found: {}".format(path)) mime_type = mimetypes.guess_type(str(path))[0] or "image/jpeg" image_base64 = base64.b64encode(path.read_bytes()).decode("ascii") return "data:{};base64,{}".format(mime_type, image_base64) client = OpenAI( base_url=os.environ.get("OPENAI_BASE_URL", "http://127.0.0.1:8080/v1"), api_key=os.environ.get("OPENAI_API_KEY", "pwd"), http_client=httpx.Client(trust_env=False), ) response = client.chat.completions.create( model=os.environ.get("OPENAI_MODEL", "gpt-5.5"), messages=[ { "role": "user", "content": [ { "type": "text", "text": ( "请观察这张图片中人物身上 T 恤胸前的印花。" "只回答印花是什么,包括图案形状、主要颜色、可能的文字或符号;" "如果文字看不清,请明确说明不要编造。" ), }, { "type": "image_url", "image_url": {"url": image_to_data_url(IMAGE_PATH)}, }, ], } ], ) print(response.choices[0].message.content)