【vLLM 学习】API 客户端

vLLM OpenAI API Server 参数详解 vLLM服务器提供了丰富的配置参数,主要包括服务器设置、模型加载、性能优化等方面。可通过vllm serve --help查看完整参数列表。针对DeepSeek-R1模型使用时可能出现的格式解析问题,可通过添加--enable-reasoning和--reasoning-parser deepseek_r1参数解决推理内容提取和标签泄露问题。 阅读详情

vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/

源代码:vllm-project/vllm

"""Example Python client for `vllm.entrypoints.api_server`
NOTE: The API server is used only for demonstration and simple performance
benchmarks. It is not intended for production use.
For production use, we recommend `vllm serve` and the OpenAI client API.
"""
"""用于 `vllm.entrypoints.api_server` 的 Python 客户端示例


注意:API 服务器仅用于演示和简单的性能基准测试。它并不适合用于生产环境。
对于生产环境,我们推荐使用 `vllm serve` 和 OpenAI 客户端 API。
"""


import argparse
import json
from typing import Iterable, List

import requests


def clear_line(n: int = 1) -> None:
    LINE_UP = '\033[1A'
    LINE_CLEAR = '\x1b[2K'
 for _ in range(n):
 print(LINE_UP, end=LINE_CLEAR, flush=True)


def post_http_request(prompt: str,
                      api_url: str,
                      n: int = 1,
                      stream: bool = False) -> requests.Response:
    headers = {"User-Agent": "Test Client"}
    pload = {
 "prompt": prompt,
 "n": n,
 "use_beam_search": True,
 "temperature": 0.0,
 "max_tokens": 16,
 "stream": stream,
 }
    response = requests.post(api_url,
                             headers=headers,
                             json=pload,
                             stream=stream)
 return response


def get_streaming_response(response: requests.Response) -> Iterable[List[str]]:
 for chunk in response.iter_lines(chunk_size=8192,
                                     decode_unicode=False,
                                     delimiter=b"\0"):
 if chunk:
            data = json.loads(chunk.decode("utf-8"))
            output = data["text"]
 yield output


def get_response(response: requests.Response) -> List[str]:
    data = json.loads(response.content)
    output = data["text"]
 return output


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--host", type=str, default="localhost")
    parser.add_argument("--port", type=int, default=8000)
    parser.add_argument("--n", type=int, default=4)
    parser.add_argument("--prompt", type=str, default="San Francisco is a")
    parser.add_argument("--stream", action="store_true")
    args = parser.parse_args()
    prompt = args.prompt
    api_url = f"http://{args.host}:{args.port}/generate"
    n = args.n
    stream = args.stream

 print(f"Prompt: {prompt!r}\n", flush=True)
    response = post_http_request(prompt, api_url, n, stream)

 if stream:
        num_printed_lines = 0
 for h in get_streaming_response(response):
            clear_line(num_printed_lines)
            num_printed_lines = 0
 for i, line in enumerate(h):
                num_printed_lines += 1
 print(f"Beam candidate {i}: {line!r}", flush=True)
 else:
        output = get_response(response)
 for i, line in enumerate(output):
 print(f"Beam candidate {i}: {line!r}", flush=True)源代码:vllm-project/vllm
"""Example Python client for `vllm.entrypoints.api_server`
NOTE: The API server is used only for demonstration and simple performance
benchmarks. It is not intended for production use.
For production use, we recommend `vllm serve` and the OpenAI client API.
"""
"""用于 `vllm.entrypoints.api_server` 的 Python 客户端示例


注意:API 服务器仅用于演示和简单的性能基准测试。它并不适合用于生产环境。
对于生产环境,我们推荐使用 `vllm serve` 和 OpenAI 客户端 API。
"""


import argparse
import json
from typing import Iterable, List

import requests


def clear_line(n: int = 1) -> None:
    LINE_UP = '\033[1A'
    LINE_CLEAR = '\x1b[2K'
 for _ in range(n):
 print(LINE_UP, end=LINE_CLEAR, flush=True)


def post_http_request(prompt: str,
                      api_url: str,
                      n: int = 1,
                      stream: bool = False) -> requests.Response:
    headers = {"User-Agent": "Test Client"}
    pload = {
 "prompt": prompt,
 "n": n,
 "use_beam_search": True,
 "temperature": 0.0,
 "max_tokens": 16,
 "stream": stream,
 }
    response = requests.post(api_url,
                             headers=headers,
                             json=pload,
                             stream=stream)
 return response


def get_streaming_response(response: requests.Response) -> Iterable[List[str]]:
 for chunk in response.iter_lines(chunk_size=8192,
                                     decode_unicode=False,
                                     delimiter=b"\0"):
 if chunk:
            data = json.loads(chunk.decode("utf-8"))
            output = data["text"]
 yield output


def get_response(response: requests.Response) -> List[str]:
    data = json.loads(response.content)
    output = data["text"]
 return output


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--host", type=str, default="localhost")
    parser.add_argument("--port", type=int, default=8000)
    parser.add_argument("--n", type=int, default=4)
    parser.add_argument("--prompt", type=str, default="San Francisco is a")
    parser.add_argument("--stream", action="store_true")
    args = parser.parse_args()
    prompt = args.prompt
    api_url = f"http://{args.host}:{args.port}/generate"
    n = args.n
    stream = args.stream

 print(f"Prompt: {prompt!r}\n", flush=True)
    response = post_http_request(prompt, api_url, n, stream)

 if stream:
        num_printed_lines = 0
 for h in get_streaming_response(response):
            clear_line(num_printed_lines)
            num_printed_lines = 0
 for i, line in enumerate(h):
                num_printed_lines += 1
 print(f"Beam candidate {i}: {line!r}", flush=True)
 else:
        output = get_response(response)
 for i, line in enumerate(output):
 print(f"Beam candidate {i}: {line!r}", flush=True)
vllm0.5.0的api_server参数说明 API 中使用的模型名称。--max-context-len-to-capture (已废弃): 替换为 --max-seq-len-to-capture,表示由 CUDA 图覆盖的最大上下文长度或序列长度。--ngram-prompt-lookup-max, --ngram-prompt-lookup-min: 在推测解码中 ngram 提示查找窗口的最大和最小尺寸。--worker-use-ray: 已废弃,建议使用 --distributed-executor-backend=ray。 阅读详情

相关推荐

chatglm3 vllm部署推理;api访问使用

用fastchat部署暂时有各种问题,参考:https://github.com/lm-sys/FastChat/pull/2622这里用vllm运行测试可以使用。

weixin_42357472的博客 2574

vllm大模型部署

在 vLLM 中,python -m vllm.entrypoints.api_server 是用于启动基于 FastAPI 的 RESTful API 服务的命令。通过这个服务,用户可以方便地与部署的大语言模型(LLM)交互

欧米伽 2653

vllm推理服务兼容openai服务API

vLLM 提供了一个实现了 OpenAI 的 Completions 和 Chat API 的 HTTP 服务器。要调用服务器,您可以使用官方的 OpenAI Python 客户端库或其他任何 HTTP 客户端。

洛阳泰山的博客 6258

vLLM部署Yuan2.0:高吞吐、更便捷

使用vLLM部署源2.0大模型,加速推理服务

2401_82700030的博客 2013

vllm:如何查看vllm正在运行的模型

通过以上方法,你应该能快速确认 vLLM 当前运行的模型。如果是生产环境,建议通过 API 或日志进行自动化监控。vLLM 提供了 OpenAI 兼容的 API,你可以发送一个简单的请求来检查服务状态或模型信息。这是模型在服务器上的本地路径,实际模型可能是一个 Hugging Face 模型(如。如果 vLLM 正在 GPU 上运行模型,会显示相关进程和显存占用。这是通过 API 暴露的模型名称(客户端调用时使用的名称)。),但被下载或软链接到了。会包含模型元数据(如。,说明服务正常运行。

Ven%的博客 2878

【笔记】2022.6.7 数据分析概论

已完结

SpriteNym的博客 1373

vLLM 大模型本地推理库

vLLM 是一个开源项目,允许你进行 LLM 推理和服务。本文介绍如何配置和运行 vLLM 以在生产中提供开源大模型的推理服务。

xx_nm98的博客 2098

ESP32-S3双模CMSIS-DAP调试器:USB+WiFi无线调试方案

CMSIS-DAP是ARM生态中标准化的嵌入式调试协议接口,广泛用于Keil、IAR、STM32CubeIDE等开发环境。其核心原理是通过SWD/JTAG物理层实现目标芯片寄存器访问、内存读写与断点控制,依赖确定性时序和低延迟通信。传统DAPLink调试器受限于USB线缆束缚,而WiFi-USB-DAPLink项目将完整CMSIS-DAP v2协议栈移植至ESP32-S3平台,同时支持USB CDC直连与WiFi TCP远程通道,兼顾实时性与网络化部署能力。该方案无需主机驱动、兼容主流IDE,并支持多机并发

weixin_31185473的博客 369

VLLM 部署大模型加速推理

本文介绍了使用VLLM服务部署Qwen3-32B大模型的配置方法。提供了两种启动方式:通过YAML配置文件或直接命令行参数,指定了模型路径、端口8088、最大token长度8192等关键参数。同时给出了curl和Python客户端两种调用示例,展示了如何设置temperature、top_p等生成参数进行对话请求。Python示例支持流式和非流式两种响应处理方式,完整呈现了从服务部署到客户端调用的全流程。

日常分享模型调优、Data Agent 搭建实操案例与行业技术思考,记录从数据预处理到智能体迭代的完整实践。沉心打磨可落地的算法方案,输出干货向技术内容,与同好一同探索数据智能与大模型进阶路径。 349

智能枕头

睡觉和吃饭是一样重要的,一个人想要健康的体魄,不仅要饮食得当,更需要有一个好的睡眠质量。随着人们生活品质的提高,人们对于睡眠的要求越来越高,那么就非常需要一款舒适的枕头。为了适应市场的需求,我爱物联网推出了智能枕头。因为智能枕头可以给头部及颈椎一个良好的承托力,舒适、柔软、放松,让人更好的进入睡眠。 目录 一、智能枕头方案介绍 二、智能枕头的优点 三、智能枕头功能介绍 四、智能枕头APP开发 五、...

6108我爱物联网方案开发优快云博客 3660

pycharm添加Anaconda解释器显示不出来

因为我之前下载的是pycharm最新版本2024.1的,所以我抱着试一试的心态卸载重装了2021.3.3的,创建新文件的时候立刻就自己识别好了conda环境。就是图中画圈的地方,之前一直显示为python的图标,但是再Python Interpreter后面跟的路径确实是我下载anaconda的地方。另外一种方法就是使用Virtualenv Environment方式配置,但是我的pycharm还是没有识别出conda的图标。首先是这位的方法,先添加系统解释器,再重启,但是我的图标还是python。

2202_75803271的博客 4006

vLLM零基础学习教程

有些仓库含等自定义 Python 文件,并要求。开启它意味着允许执行仓库里的代码。只对可信仓库使用,最好固定--revision到明确 commit,并先审查代码。模型权重也属于外部输入,不要把未知仓库当成绝对安全。学习 AI 和编程不是智力测验,而是把大问题拆成小步骤、运行、观察、修改、再运行。装好环境 → 启动小模型 → 发出一个请求 → 看懂三个参数不用和别人比速度。把每个报错当成一条线索,把每次成功的命令记下来,你就正在用程序员真正的方式学习。

Taletubbies的博客 524

MATPOWER的安装详细教程

MATPOWER的安装包实际为一个程序包,安装教程很简单,详见本文。

半个月亮Zz的博客 3万+

基于vLLM部署paddleOCR-VL过程记录

ubuntu22RTX3090显卡miniconda。

langbin10的博客 718

CPU进程调度算法【FCFS、SJF、优先级、RR、多级队列、多级反馈队列调度】

目录 一、先到先服务调度: 二、最短作业优先调度: 三、优先级调度: 四、轮转调度: 五、多级队列调度: 六、多级反馈队列调度: CPU调度算法处理的问题是:从就绪队列中选择进程以便为其分配CPU。 一、先到先服务调度: First Come,First Served(FCFS) 定义:先请求CPU的进程首先分配到CPU。FCFS策略可以通过FIFO队列轻松实现。 护航效果:其他所有进程会等待一个大进程释放CPU 非抢占式:一旦CPU分配给了一个进程,该进程就会使用CPU知道释.

马小超 3921

“傻瓜”stata入门——熟悉操作界面

小白开始学习stata和matlab,零基础上手

nnpersistent的博客 4457

通过vllm部署qwen3大模型以及基于 vLLM 的 OpenAI 兼容 API 接口调用方法总结

该报错说明KV缓存所需的内存超过了可用的显存,KV缓存的计算涉及模型层数、序列长度和批次大小等因素,模型默认设置的max_seq_len是40960,这大大超过了服务器的负载上限,应该降低通过调整–max_model_len参数以减少KV缓存需求。接口必须确认实际加载的模型名称,避免因名称不匹配导致404错误。适用场景:非对话式文本生成(如问答、续写)适用场景:多轮对话(如聊天机器人)

m0_69966537的博客 1万+

【本地部署实战】LM Studio深度使用指南:从环境搭建到模型调优

LM Studio通过极简的操作流程和强大的生态兼容性,让本地部署大模型成为可能。随着M4芯片的发布和CUDA 12.0的优化,未来本地化AI开发将迎来新的爆发点。建议开发者关注官方Discord社区(https://discord.gg/lmstudio)获取最新模型支持信息。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 8751

vLLM学习1

只要理解了。

xnuscd的博客 4778

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

vLLM-v0.17.1代码实例:Python客户端调用vLLM API生成文本

本文介绍了如何在星图GPU平台上自动化部署vLLM-v0.17.1镜像,实现高效的大语言模型文本生成。通过Python客户端调用vLLM API,用户可以快速构建智能文本生成应用,如自动生成文章摘要、多语言翻译等,显著提升内容创作效率。

SilvermistOwl67的博客 548

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

qwen vllm function_call

vLLM 是一个高效、易于使用的大型语言模型推理和部署库。自vLLM v0.6.0版本起,它支持工具调用(Tools Calling),允许模型在适当情况下自动解析和调用工具。本文将通过使用Qwen2.5模型的示例,介绍如何利用vLLM实现工具调用,并使用OpenAI兼容API与客户端交互。本教程涵盖了使用vLLM API实现Qwen模型的工具调用功能。通过OpenAI兼容API和Hermes风格工具解析,您可以轻松实现Qwen模型在实际场景中的功能扩展和自动工具调用。

xnuscd的博客 8025

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

vLLM 用于 LLM 推理服务和客户端的访问方式 2 - 非openai

flyfish

二分掌柜的 2393

【vLLM 学习】Api Client

LLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

HyperAI超神经 62

Qwen2.5-72B-GPTQ-Int4快速上手:Python客户端调用vLLM API完整示例

本文介绍了如何在星图GPU平台上自动化部署Qwen2.5-72B-Instruct-GPTQ-Int4镜像,并详细演示了通过Python客户端调用vLLM API的完整流程。用户可快速上手,利用该模型强大的代码生成与指令理解能力,轻松实现如自动化代码编写、智能问答等应用场景,显著提升开发效率。

weixin_42573757的博客 1387
上一篇: 【Triton 教程】triton_language.cat
下一篇: 酶动力学参数预测,瓶颈识别……中科院深圳先进技术研究院罗小舟分享AI在酶领域的创新应用
HyperAI超神经
博客等级 码龄7年 8872粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值