vLLM 是一个快速易用的 LLM 推理和服务库,专为高吞吐量和内存高效的 LLM 服务设计。

先决条件

安装 vLLM 并开始服务模型:

install vLLM
pip install vllm
start vLLM server
vllm serve Qwen/Qwen2.5-7B-Instruct \
    --enable-auto-tool-choice \
    --tool-call-parser hermes \
    --dtype float16 \
    --max-model-len 8192 \
    --gpu-memory-utilization 0.9

这将启动一个具有 OpenAI 兼容 API 的 vLLM 服务器。

默认的 vLLM 服务器 URL 是 http://localhost:8000/

示例

基本 Agent

from agno.agent import Agent
from agno.models.vllm import vLLM

agent = Agent(
    model=vLLM(
        id="meta-llama/Llama-3.1-8B-Instruct", 
        base_url="http://localhost:8000/",
    ),
    markdown=True
)

agent.print_response("Share a 2 sentence horror story.")

高级用法

使用工具

vLLM 模型可与 Agno 工具无缝协同工作:

with_tools.py
from agno.agent import Agent
from agno.models.vllm import vLLM
from agno.tools.duckduckgo import DuckDuckGoTools

agent = Agent(
    model=vLLM(id="meta-llama/Llama-3.1-8B-Instruct"),
    tools=[DuckDuckGoTools()],
    show_tool_calls=True,
    markdown=True
)

agent.print_response("What's the latest news about AI?")
在此处查看更多示例:here

支持模型的完整列表,请参阅 vLLM 文档

参数

参数类型默认值描述
idstr必填要使用的模型的 ID (例如 "Qwen/Qwen2.5-7B-Instruct")。
namestr"vLLM"此模型实例的名称。
providerstr"vLLM"提供商名称。
api_keyOptional[str]"EMPTY"API 密钥 (为符合 OpenAI 的兼容性而发送;通常不需要)。
base_urlstr"http://localhost:8000/v1/"vLLM 服务器的 URL (兼容 OpenAI 的端点)。
max_tokensOptional[int]None要生成的最大 token 数。
temperaturefloat0.7采样温度。
top_pfloat0.8核心采样概率。
top_kOptional[int]None将采样限制为前 K 个 token。
frequency_penaltyOptional[float]None根据 token 在文本中出现的频率对新 token 进行惩罚。
presence_penaltyfloat1.5重复惩罚。
stopOptional[Union[str, List[str]]]None最多 4 个序列,达到这些序列时 API 将停止生成后续 token。
seedOptional[int]None用于确定性采样的种子。
request_paramsOptional[Dict[str, Any]]None合并到请求中的额外关键字参数。
client_paramsOptional[Dict[str, Any]]None要传递给客户端的其他参数。
timeoutOptional[float]NoneHTTP 请求的超时时间。
max_retriesOptional[int]None请求最大重试次数。
enable_thinkingOptional[bool]None启用 vLLM 的“思考”模式 (在 chat_template_kwargs 中传递 enable_thinking)。

vLLM 还支持 OpenAI 的参数。

vLLMModel 类的子类,可以访问相同的参数。