---
title: VLM-Auto-Insurance
canonical_url: "https://www.modelscope.cn/models/Liquor1208/VLM-Auto-Insurance"
md_url: "https://www.modelscope.cn/models/Liquor1208/VLM-Auto-Insurance.md"
repository: Liquor1208/VLM-Auto-Insurance
chinese_name: "VLM：车险场景视觉语言模型应用"
last_updated: 2026-09-20
license: apache-2.0
pipeline_tag: visual-question-answering
tasks:
  - visual-question-answering
base_model_relation: finetune
library_name:
  - pytorch
downloads: 0
stars: 0
---

# VLM-Auto-Insurance

> VLM-Auto-Insurance - Liquor1208 在 ModelScope 开源的模型。CASE-VLM：车险场景视觉语言模型应用

Liquor1208/VLM-Auto-Insurance 是 ModelScope 魔搭社区上的visual-question-answering模型，采用 apache-2.0 许可。

- **Repository**: Liquor1208/VLM-Auto-Insurance
- **License**: apache-2.0
- **Tasks**: visual-question-answering
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-09-20

Source: https://www.modelscope.cn/models/Liquor1208/VLM-Auto-Insurance

---

# CASE-VLM：车险场景视觉语言模型应用

## 模型概述

CASE-VLM（Car Insurance Scenario VLM）是基于通义千问视觉语言模型（Qwen-VL 系列，API 调用 `qwen-vl-max-2025-04-08`）构建的车险全流程智能分析解决方案演示仓库。它将视觉语言大模型应用于汽车保险的**承保、风险监控、理赔、反欺诈**四大业务环节，覆盖 6 大类、12 个具体任务，展示 VLM 在保险垂直场景中"以图问数"的落地方式。

本仓库为应用案例型仓库（Application Case），包含：提示词模板（中/英文）、批量推理脚本、12 组车险业务图片、以及推理结果样例。

## 模型介绍

### 覆盖的车险业务任务

| 序号 | 业务环节 | 任务 | 输入图片 | 输出形式 |
| ---- | -------- | ---- | -------- | -------- |
| 1-2 | 承保 | 车辆里程表关键信息提取 | 仪表盘照片 | 结构化文本（总里程/速度/时间/档位等） |
| 3 | 承保 | 多角度车辆照片承保信息分析 | 5 张多角度车辆照片 | 车型/品牌/车辆状况分析 |
| 4 | 风险监控 | 车内摄像头危险行为检测 | 车内照片 | 危险行为判断（如驾驶使用手机） |
| 5-6 | 风险监控 | 行车记录仪危险驾驶行为分析 | 行车记录仪片段（抽帧图片） | 驾驶行为风险评估 |
| 7-8 | 理赔 | 车祸现场损坏评估 | 事故现场照片 | 损坏部位/程度评估 |
| 9-10 | 理赔 | 事故要素结构化提取 | 事故现场照片 | **JSON 结构化输出**（道路/天气/照明/受损部位/损害分类/预估费用等 10 个字段） |
| 11-12 | 反欺诈 | 事故前后车辆同一性验证 | 事故前/后各 1 张照片 | 是否同一车辆的判断及依据 |

### 提示词工程要点

- 采用**角色设定 + 任务描述 + 输出格式约束**的三段式提示词模式（如"你是一名汽车保险理赔处理专家……请以 JSON 格式提取以下信息……如果无法提取，请使用 N/A"）。
- 支持单图与多图输入：多图任务以 `[img1, img2, ...]` 列表形式传入，脚本自动拆分为多个 `image_url` 内容块。
- 提供中/英双语模板（`prompt_template_cn.xlsx` / `prompt_template_en.xlsx`），便于对比模型的多语言能力。

## 模型训练

本案例为**免训练（Training-free）的提示词工程应用**，直接调用 `qwen-vl-max-2025-04-08` 商用 API 完成推理，未进行参数微调。

如需将本案例扩展为微调模型（例如基于 Qwen2.5-VL-3B-Instruct + LoRA，让小模型学会稳定输出第 9-10 任务的 JSON 结构化字段），可参考如下路线：

- 训练数据：以本仓库的 12 组任务图片 + 提示词 + 期望输出构造指令微调样本；
- 微调方法：LoRA（rank=16, alpha=32, dropout=0），3 epochs，batch_size=1，gradient_accumulation=4，learning_rate=2e-4；
- 训练框架：Unsloth 加速 + transformers 原生 Trainer + UnslothVisionDataCollator（视觉模型建议避免使用 SFTTrainer 的 `formatting_func` 路径）。

## 模型推理

### 方式一：DashScope OpenAI 兼容接口（推荐，开箱即用）

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

def get_response(user_prompt, image_url):
    # 支持多图：image_url 形如 "[img1, img2]" 或单图 "img1"
    if image_url.startswith('[') and ',' in image_url:
        image_url_list = [u.strip() for u in image_url.strip()[1:-1].split(',')]
    else:
        image_url_list = [image_url]
    content = [{"type": "text", "text": user_prompt}]
    for temp_url in image_url_list:
        url = f"https://vl-image.oss-cn-shanghai.aliyuncs.com/{temp_url}.jpg"
        content.append({"type": "image_url", "image_url": {"url": url}})
    completion = client.chat.completions.create(
        model="qwen-vl-max-2025-04-08",
        messages=[{"role": "user", "content": content}],
    )
    return completion.choices[0].message.content

print(get_response(
    "你是一名汽车保险承保专家。这里有一张车辆里程表的图片。请从中提取关键信息。",
    "1-vehicle-odometer-reading",
))
```

### 方式二：ModelScope 本地部署推理

```python
from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import Qwen2VLForConditionalGeneration, AutoProcessor
from PIL import Image
import torch

model_dir = "Qwen/Qwen2.5-VL-3B-Instruct"  # 或本地微调后模型路径
model = Qwen2VLForConditionalGeneration.from_pretrained(
    model_dir, torch_dtype=torch.bfloat16, device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_dir)

messages = [{
    "role": "user",
    "content": [
        {"type": "image", "image": "file:///path/to/9-extraction-of-auto-accident-elements.jpg"},
        {"type": "text", "text": "你是一名汽车保险理赔处理专家。请以JSON格式提取：道路状况、天气状况、照明条件、事故估计原因、受损部位、车辆品牌型号、损害程度、损害分类、预估费用。无法提取请使用N/A。"},
    ],
}]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=[text], images=None, padding=True, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)[0])
```

### 批量推理

仓库根目录运行：

```bash
pip install openai pandas openpyxl
export DASHSCOPE_API_KEY=sk-xxxx
python inference_demo.py            # 中文模板批量推理
python inference_demo.py --lang en  # 英文模板批量推理
```

## 模型效果

以下为 `qwen-vl-max-2025-04-08` 在部分任务上的真实推理结果摘录（完整结果见 `prompt_template_cn_result.xlsx`）：

**任务 2：里程表信息提取（英文表盘）**

> 总里程 37,756 英里；当前速度 56.6 英里/小时；时间 11:14；温度 10.5°C；档位 D 档。

**任务 9：事故要素结构化提取（JSON 输出）**

```json
{
  "道路状况": "湿滑",
  "天气状况": "阴天",
  "照明条件": "白天",
  "事故估计原因": "路面湿滑导致失控",
  "受损部位": ["前部"],
  "车辆品牌型号": "N/A",
  "损害程度": "严重",
  "损害分类": ["保险杠凹陷", "车门凹陷", "大灯破损"],
  "预估费用": "N/A"
}
```

**任务 11：车辆同一性验证（反欺诈）**

> 第一张为特斯拉 Model X（前部严重损毁），第二张为特斯拉 Model Y（外观完好），车型不同，**判定不是同一辆车**。

### 效果小结

- 里程表读数、危险行为检测等感知类任务准确率高，中英文仪表盘均可识别；
- JSON 结构化提取任务在明确列出字段清单 + N/A 兜底策略后输出稳定，可直接进入下游核赔系统；
- 车辆同一性验证能综合车型、前脸设计、车身尺寸等多维度特征给出结论与依据；
- 局限：预估费用等需要业务规则/区域定价知识的字段，模型通常返回 N/A，需结合规则引擎或检索增强。

## 引用与许可

- 本仓库内容基于阿里云百炼（DashScope）Qwen-VL 系列模型的 API 调用实践整理，图片素材仅用于教学演示；
- 代码与文档采用 Apache License 2.0 许可。
