vLLM 离线客户端
创建模型
from_vllm_offline 需要传入 vllm.LLM 实例。
from vllm import LLM
from gimkit import from_vllm_offline
llm = LLM(model="Qwen/Qwen2.5-7B-Instruct")
model = from_vllm_offline(llm)
Note
请先安装扩展依赖:pip install gimkit[vllm](Linux)。
提示词建议
对于 GIM 训练的本地模型,建议保持 use_gim_prompt=False。 对于非 GIM 训练模型,可额外开启 use_gim_prompt=True。
查询示例:
from gimkit import guide as g
query = f"""
Event: {g(name="event", desc="event type")}
Date: {g.datetime(name="date")}
"""
# GIM 训练模型路径
result = model(query)
# 非 GIM 训练模型路径
result_non_gim = model(query, use_gim_prompt=True)
批量推理
model.batch(...) 会包装 Outlines 的 vLLM offline batch API。 每条 query 都可以使用各自从 GIM 推导出的结构化输出 schema。
batch_results = model.batch([query, query])
first_result = batch_results[0][0]
使用 error_mode="collect" 时,batch 始终返回二维 list[list[GenerationResult]]:外层对应 query,内层对应候选。
generation_groups = model.batch(queries, error_mode="collect")
for generation_group in generation_groups:
for generation in generation_group:
if generation.ok:
print(generation.result)
else:
print(generation.error_type, generation.error_message)
print(generation.raw_response)
单个候选的解析失败不会影响同一 query 的其他候选或其他 query。默认 error_mode="raise" 的返回类型和快速失败行为保持不变。模型生成失败、batch 形状错误和无效参数仍会作为整个调用异常抛出。
输出类型
output_type="cfg"(默认)
result = model(query, output_type="cfg")
output_type="json"
result = model(query, output_type="json", use_gim_prompt=True)
说明
- GIMKit 会确保在 vLLM 采样参数中包含
RESPONSE_SUFFIX的 stop 条件。 - 可通过
sampling_params=和其他**inference_kwargs传递 vLLM 生成参数。