如何使用VLLM進行openai/gpt-oss系列推理與支持工具調用

OpenAI時隔6年再次推出開源模型gpt-oss系列,本次gpt-oss系列包含兩個模型gpt-oss-120b與gpt-oss-20b。由于模型原生支持一種新的量化技術MXFP4,所以模型的部署所需的顯存也顯著的降低。

  • openai/gpt-oss-20b 只需要大概16GB的顯存
  • openai/gpt-oss-120b 需要大概>=60GB的顯存

這讓本地部署成為可能,接下來跟著我一起看一下如何在本地使用vllm對gpt-oss-20b進行推理并且支持工具調用吧!

顯卡信息

NVIDIA?H20 96G VRAM

環境準備

安裝uv

pip install uv

創建虛擬環境

uv venv --python 3.12 --seed
source .venv/bin/activate

安裝依賴

uv pip install --pre vllm==0.10.1+gptoss \--extra-index-url https://wheels.vllm.ai/gpt-oss/ \--extra-index-url https://download.pytorch.org/whl/nightly/cu128 \--index-strategy unsafe-best-match

下載模型

安裝modelscope

pip install modelscope

下載gpt-oss-20b

modelscope download --model 'openai-mirror/gpt-oss-20b' --exclude 'metal/*'

vllm服務

準備vllm 服務配置

model:  /data/.cache/modelscope/models/openai-mirror/gpt-oss-20b
served_model_name: gpt-oss
host: 0.0.0.0
port: 8000
tensor-parallel-size: 1
gpu-memory-utilization: 0.9
api-key: yor-api-key
disable-fastapi-docs: true

注意model這一行需要找到你自己的modelscope模型下載到本機的地址,或者在下載模型時使用--local_dir 指定下載路徑。

你可以使用以下命令找到你的模型地址

modelscope scan-cache

api-key改成你想要設置的api-key

將文件保存成 gpt-oss-config.yml

啟動服務

vllm serve --config gpt-oss-config.yml

工具調用

工具調用可以使用openai python sdk調用

使用openai python sdk

pip install openai
import json
from openai import OpenAI
from openai.types.responses import ResponseFunctionToolCallclient = OpenAI(base_url="http://{你的vllm服務器地址}/v1",api_key="{vllm服務設置的api-key}",
)# 定義工具
tools = [{"type": "function","name": "get_weather","description": "Get current weather in a given city","parameters": {"type": "object","properties": {"city": {"type": "string"}},"required": ["city"],},}
]messages = [{"role": "user", "content": "上海現在天氣怎么樣?"}]def fetch_response(messages):response = client.responses.create(model="gpt-oss",input=messages,tools=tools,)return response# 工具函數
def get_weather(city: str):return f"The weather in {city} is sunny."response = fetch_response(messages)
for item in response.output:if isinstance(item, ResponseFunctionToolCall):print(f"正在調用工具: `{item.name}` 參數 {item.arguments}")messages.append(item.model_dump())tool_result = get_weather(**json.loads(item.arguments))messages.append({"type": "function_call_output","call_id": item.call_id,"output": tool_result,})response = fetch_response(messages)print(response.output_text)

將以上的python代碼保存成tool_use.py文件并運行:

uv run tool_use.py

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93025.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SVN 查看歷史信息

SVN 查看歷史信息 引言 Subversion(簡稱SVN)是一個開源的版本控制系統,廣泛應用于軟件開發中。查看SVN的歷史信息對于了解代碼變更、追蹤問題來源以及理解項目發展歷程具有重要意義。本文將詳細介紹如何在SVN中查看歷史信息。 SVN歷史信息概述…

vue+flask山西非遺文化遺產圖譜可視化系統

文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站,有好處!編號:F068 項目介紹: 本系統主要實現了以下功能: 非遺項目知識圖譜可視化 非遺項目可視化關鍵詞分析 …

Jetson NX Python環境搭建:使用APT輕松安裝NumPy, scikit-learn, OpenCV

引言 在NVIDIA Jetson NX等ARM架構的嵌入式AI板子上搭建Python開發環境,特別是安裝像NumPy、OpenCV這樣包含C/C底層代碼的科學計算庫時,經常會遇到編譯失敗、耗時過長或依賴沖突等問題。這些問題尤其在通過pip從源代碼編譯安裝時更為突出,例如…

Spring Boot項目中線程池的全面教程

一、線程池基礎概念與重要性1.1 為什么需要線程池在Spring Boot應用中,線程池是一種至關重要的并發編程工具,它通過??復用線程資源??顯著提升系統性能。主要優勢包括:??減少開銷??:避免頻繁創建和銷毀線程帶來的性能損耗?…

機器學習第八課之K-means聚類算法

目錄 簡介 一、K-means 的核心思想 二、K-means 聚類的工作流程 1. 確定聚類數量 K 2.初始化 K 個簇中心 3.簇分配:將數據點分配到最近的簇 4.更新簇中心:重新計算每個簇的中心 5.判斷是否收斂 6.輸出聚類結果 三、聚類效果評價方式 四、k-…

【P21】OpenCV Python——RGB和BGR,HSV和HSL顏色空間,及VScode中報錯問題解決

P21 1 RGB和BGR2 HSV和HSL,YUV2.1 HSV2.1. 色調H2.1.2 飽和度S2.1.3 明度V2.2 HSL2.3 YUV3 顏色空間轉換實戰4 VScode中報錯問題5 Windows 下 VScode 路徑格式(VScode很強大,路徑格式寫法自由多樣)RGB/BGR人眼識別的顏色 &#xf…

.NET 應用程序 Linux下守護進程腳本編寫

下面的腳本是生產可用,可靠的sh腳本,用于監控 .NET 應用程序并自動重啟。假如你打包發布到Linux的程序名稱為MyAspDemo;推薦打包模式為框架依賴:需要在Linux上安裝對應的donet版本;1.在Linux下新建一個文件&#xff0c…

圖論理論部分

旅游完回來繼續學習。 先來看一下圖論的理論部分,然后稍微做一下DFS的題目。 圖的基本概念 二維坐標中,兩點可以連成線,多個點連成的線就構成了圖。 當然圖也可以就一個節點,甚至沒有節點(空圖) 圖的種…

WebSocket集群方案解析與實現

一、WebSocket集群核心挑戰 1.1 關鍵問題分析 #mermaid-svg-gzRCTMr7wiVCokct {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gzRCTMr7wiVCokct .error-icon{fill:#552222;}#mermaid-svg-gzRCTMr7wiVCokct .error-t…

使用dify搭建hr簡歷助手-上傳簡歷-對接飛書ai表格

一、需求背景 hr在招聘平臺獲取簡歷后,想整理到簡歷庫,在線管理和維護,及其不方便,所以用dify搭建一個簡歷上傳助手,并且能保存到線上表格,方便維護和查看。 先看下最終的效果我們的工作流即可自動獲取文件…

《算法導論》第 22 章 - 基本的圖算法

大家好!今天我們來深入學習《算法導論》第 22 章的基本圖算法。圖論是計算機科學中的重要基礎,這些基本算法是解決很多復雜問題的基石。本文將結合代碼實現,幫助大家更好地理解和應用這些算法。思維導圖22.1 圖的表示在計算機中,圖…

基于PROFINET的西門子PLC通訊:S7-200與S7-1200在自動化倉儲中的協同應用

一.行業痛點與解決方案傳統倉儲物流系統中,采用西門子SMARTS7-200PLC(如CPUSR20、SR30等型號)的設備往往面臨三大通訊難題:一是無法直接接入以太網網絡,導致多PLC間的數據交互需要通過復雜的串口級聯實現,響…

redis實現秒殺超賣問題的解決方案:(僅限于單體項目)

秒殺實現通過樂觀鎖控制超賣問題通過悲觀鎖控制每個用戶只能下一單,避免用戶多次點擊,發送的多次下單請求(即多個線程)都成功,避免惡意攻擊每個請求訪問Tomcat時,就會分配一個線程處理請求業務邏輯:注*以下邏輯中報錯也…

Go與Python爬蟲實戰對比:從開發效率到性能瓶頸的深度解析

目錄 引言:兩種語言,兩種哲學 開發效率對比:從框架設計看易用性 Python的"開箱即用" Go的"手動組裝" 性能對比:從并發模型看效率差異 理論性能對比 實際測試數據 錯誤處理對比:從編程范式…

初識c語言————排序方法

今天我們學習的是c語言中的排序方法目錄:一.冒泡排序法二.選擇排序法下面我們正式學習c語言中的排序方法一.冒泡排序法1.冒泡排序法的過程:將無序的數組通過數組之間的大小比較,排成有序的樣子2.例如:5,3,4…

爬蟲與數據分析結合案例:中國大學排名爬取與分析全流程

爬蟲與數據分析結合案例:中國大學排名爬取與分析全流程 一、案例背景與目標 本案例以高三網中國大學排名(網址:2021中國的大學排名一覽表_高三網)為數據源,完成從數據爬取到分析可視化的全流程實踐。主要目標包括&am…

行業分享丨SimSolid 在汽車零部件開發中應用的可行性調研及實踐

*本文源自汽車行業用戶范會超投稿1、背景車型短周期開發背景下,高效的仿真技術顯得尤為重要。Altair 推出了多款加速設計/仿真的軟件,其中無網格軟件 SimSolid 與業務有一定的契合度,有必要論證其在汽車零部件結構分析領域的可行性。2、目標評…

MacOS字體看起來比在 Windows 上更好?

字體控們注意啦!🎉你們有沒有發現,同樣一段文字,在Mac和Windows上看起來就是不一樣?Mac上的字仿佛自帶柔光濾鏡,圓潤又舒適;而Windows上的字則像是精心雕琢的刀鋒,銳利且清晰。這背后…

Torch -- 卷積學習day1 -- 卷積層,池化層

目錄 一、CNN概述 二、卷積層 1、卷積核 2、卷積計算 3、邊緣填充 4、步長 5、多通道卷積計算 6、多卷積核卷積計算 7、特征圖大小 8、卷積參數共享 9、局部特征提取 10、卷積層API 三、池化層 1、池化層概述 1.池化層的作用 2.池化層類型 2、池化層計算 3、步…

藍橋杯---第六屆省賽單片機組真題

先出手寫的代碼&#xff0c;代碼分析還需要一段時間&#xff0c;不難&#xff0c;大家認真寫。#include <STC15F2K60S2.H> #include "Seg.h" #include "LED.h" #include "Key.h" #include "DS1302.h" #include "DS18B20.h&…