writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
vision-languageUse LMDeploy vision-language and multimodal APIs for media loading, VLM prompt formats, OpenAI-style multimodal payloads, image token placement, and no-download media validation.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the task involves LMDeploy VLM or multimodal inputs: images, videos, audio, time series, OpenAI content lists, tuple prompts such as (prompt, image), or VisionConfig.
references/input-formats.md for tuple prompts, OpenAI-style content blocks, media URL/data URL formats, batch shapes, multi-turn image chat, IMAGE_TOKEN, and modality support.references/workflows.md for copy-ready offline VLM pipeline patterns, API payload construction, base64/local media handling, VisionConfig, mm_processor_kwargs, and payload preflight.references/troubleshooting.md for optional dependency failures, blocked URLs, fetch timeouts, image token placement, session length, batch media mismatches, chat-template issues, and chemistry/media gaps.scripts/check_vl_media_inputs.py for a no-download smoke check that creates a tiny local image, validates base64/data URLs, and rejects unsafe URL examples.Own these tasks:
lmdeploy.pipeline, including (prompt, image), (prompt, [image1, image2]), batch prompt lists, and OpenAI-style message lists.lmdeploy.vl.load_image, load_video, load_audio, load_time_series, and the encode_*_base64 helpers.text, image_url, video_url, audio_url, and time_series_url content blocks.VisionConfig(max_batch_size=...), media_io_kwargs, mm_processor_kwargs, and manual IMAGE_TOKEN placement where model docs require it.Route elsewhere:
GenerationConfig basics, streaming, logits, PPL, and lmdeploy chat: pipeline-inference.serving-apis.quantization.backend-extension.from lmdeploy import TurbomindEngineConfig, VisionConfig, pipeline
from lmdeploy.vl import load_image
backend_config = TurbomindEngineConfig(session_len=8192)
vision_config = VisionConfig(max_batch_size=4)
with pipeline("org/vlm-or-local-folder", backend_config=backend_config, vision_config=vision_config) as pipe:
image = load_image("/path/to/image.jpg")
response = pipe(("Describe this image.", image))
print(response.text if hasattr(response, "text") else response)
For custom local VLM folder names that LMDeploy cannot map to a built-in template, pass chat_template_config=ChatTemplateConfig(model_name="template-name") when creating the pipeline.
Run the bundled check before recommending a VLM media workflow:
python sub-skills/vision-language/scripts/check_vl_media_inputs.py --print-examples
This check does not download models or fetch remote media. Model execution still requires the user’s selected VLM weights, backend dependencies, accelerator memory, and any model-specific optional packages.