Python調(diào)用requests庫實(shí)現(xiàn)自動(dòng)化發(fā)牌功能
背景介紹
在游戲開發(fā)或自動(dòng)化測試中,快速生成隨機(jī)撲克牌是一個(gè)常見需求。本文通過 Python 的 requests
庫,向本地部署的大模型接口發(fā)送 HTTP 請求,實(shí)現(xiàn)自動(dòng)化發(fā)牌功能。代碼簡潔高效,適合初學(xué)者快速上手。
核心代碼解析
以下代碼展示了如何通過 POST 請求調(diào)用本地模型接口生成 5 張撲克牌:
import requests # 配置目標(biāo)地址和請求頭 url = "http://localhost:1234/v1/chat/completions" headers = { "Content-Type": "application/json" } # 定義請求體數(shù)據(jù) data = { "stream": False, "detail": False, "model": "qwen3-0.6b", "tool_choice": "auto", "tools": [ { "type": "function", "function": { "name": "get_poker_cards", "description": "生成指定數(shù)量的撲克牌", "parameters": { "type": "object", "properties": { "num": { "type": "integer", "description": "需要生成的撲克牌數(shù)量", "minimum": 1, "maximum": 52 } }, "required": ["num"] } } } ], "messages": [ { "role": "system", "content": "你是一個(gè)專業(yè)的發(fā)牌助手,必須使用get_poker_cards工具來處理發(fā)牌請求" }, { "role": "user", "content": "請發(fā)5張牌" } ] } # 發(fā)送請求并打印結(jié)果 response = requests.post(url, headers=headers, json=data) print("Status Code:", response.status_code) print("Response Body:", response.text)
代碼詳解
1.接口配置
url
: 本地模型服務(wù)的 API 地址(需提前部署)。headers
: 指定請求內(nèi)容類型為 JSON。
2.請求體參數(shù)
tools
: 定義可用工具get_poker_cards
,限制生成牌數(shù)范圍為 1~52。messages
: 模擬用戶對話,系統(tǒng)提示強(qiáng)制使用工具處理發(fā)牌請求。
3.發(fā)送請求
- 使用
requests.post()
發(fā)送 POST 請求,傳遞 JSON 格式的數(shù)據(jù)。 - 打印響應(yīng)狀態(tài)碼和結(jié)果(如生成的牌面信息)。
運(yùn)行結(jié)果示例
假設(shè)接口正常返回,輸出可能如下:
Status Code: 200
Response Body: {"cards": ["♠?8", "♥?Q", "♦?3", "♣?A", "♠?2"]}
擴(kuò)展應(yīng)用
1.動(dòng)態(tài)調(diào)整牌數(shù)
修改 data["messages"][1]["content"]
中的數(shù)字即可生成任意數(shù)量的牌(1~52)。
2.集成到游戲框架
將此代碼封裝為函數(shù),作為游戲初始化模塊的一部分,實(shí)現(xiàn)自動(dòng)洗牌、發(fā)牌流程。
3.錯(cuò)誤處理優(yōu)化
增加異常捕獲邏輯,應(yīng)對網(wǎng)絡(luò)中斷或接口異常:
try: response = requests.post(url, headers=headers, json=data, timeout=5) response.raise_for_status() # 拋出 HTTP 錯(cuò)誤 except requests.exceptions.RequestException as e: print("請求失敗:", e)
總結(jié)
通過 requests
庫與本地模型接口的交互,我們實(shí)現(xiàn)了高效的撲克牌生成邏輯。這種方法不僅適用于游戲開發(fā),還可拓展到自動(dòng)化測試、數(shù)據(jù)生成等領(lǐng)域。結(jié)合 requests
的簡潔性和 HTTP 接口的靈活性,開發(fā)者能快速構(gòu)建實(shí)用工具鏈。
到此這篇關(guān)于Python調(diào)用requests庫實(shí)現(xiàn)自動(dòng)化發(fā)牌功能的文章就介紹到這了,更多相關(guān)Python requests自動(dòng)化發(fā)牌內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中l(wèi)ogging模塊的一些簡單用法的使用
這篇文章主要介紹了python中l(wèi)ogging模塊的一些簡單用法的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Python快速實(shí)現(xiàn)簡易貪吃蛇小游戲的示例代碼
貪吃蛇(也叫做貪食蛇)游戲是一款休閑益智類游戲,有PC和手機(jī)等多平臺(tái)版本。既簡單又耐玩。本文將利用Python語言快速實(shí)現(xiàn)簡易貪吃蛇小游戲,感興趣的可以嘗試一下2022-10-10python?動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)模塊熱更新的方法
這篇文章主要介紹了python?動(dòng)態(tài)導(dǎo)入模塊,實(shí)現(xiàn)模塊熱更新,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08python GUI庫圖形界面開發(fā)之PyQt5打印控件QPrinter詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5打印控件QPrinter詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02Python 利用高德地圖api實(shí)現(xiàn)經(jīng)緯度與地址的批量轉(zhuǎn)換
這篇文章主要介紹了Python 利用高德地圖api實(shí)現(xiàn)經(jīng)緯度與地址的批量轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Flask框架實(shí)現(xiàn)debug模式下計(jì)算pin碼
pin碼也就是flask在開啟debug模式下,進(jìn)行代碼調(diào)試模式的進(jìn)入密碼。本文為大家整理了Flask框架在debug模式下計(jì)算pin碼的方法,需要的可以參考一下2023-02-02python實(shí)現(xiàn)保留小數(shù)位數(shù)的3種方法
本文主要介紹了python實(shí)現(xiàn)保留小數(shù)位數(shù)的3種方法,包括格式化字符串,format()函數(shù)和round()函數(shù),具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03