Python請(qǐng)求庫(kù)發(fā)送HTTP POST請(qǐng)求的示例代碼
這段代碼使用了Python的requests
庫(kù)來(lái)發(fā)送HTTP POST請(qǐng)求,向本地服務(wù)器的API發(fā)送數(shù)據(jù),并處理響應(yīng)。接下來(lái)我會(huì)一步步解釋這個(gè)代碼,并用中文回答。
import requests import json url = "http://localhost:11434/api/generate" headers = { "Content-Type": "application/json" } data = { "model": "qwen2:0.5b", "prompt": "Why is the sky black? Answer in Chinese.", "stream": False } response = requests.post(url, headers=headers, data=json.dumps(data)) print(response.text) if response.status_code == 200: response_text = response.text data = json.loads(response_text) actual_response = data["response"] print(actual_response) else: print("error:", response.status_code, response.text)
{ "model": "qwen2:0.5b", "created_at": "2024-08-22T06:20:16.768091631Z", "response": "天空為什么是黑色的?因?yàn)楣饩€穿過(guò)大氣層時(shí),會(huì)受到不同的散射現(xiàn)象影響。具體來(lái)說(shuō),大氣分子(如氮?dú)狻⒀鯕獾龋┖退魵庾柚沽岁?yáng)光中的大部分波長(zhǎng)光線,導(dǎo)致太陽(yáng)光中只有紅、橙、黃、綠、藍(lán)五顏六色的光線被散射;而藍(lán)色、紫色光線則被吸收并反射回去。結(jié)果就是天空呈現(xiàn)出黑色。", "done": true, "done_reason": "stop", "context": [ 151644,872,198,10234,374,279,12884,3691,30,21806,304,8453,13,151645,198,151644,77091,198,101916,100678,20412,104723,9370,11319,99519,109587,109239,105797,99371,13343,3837,36993,100683,101970,99632,99759,102060,99564,1773,100398,99883,3837,105797,102388,9909,29524,109958,99180,5373,115893,49567,7552,33108,52510,101494,99180,107345,34187,104166,101047,101212,99804,45861,109587,3837,100673,101281,99225,15946,101043,99425,5373,107678,5373,99789,5373,99679,5373,100400,75108,100847,99566,38035,9370,109587,99250,99632,99759,24968,68536,105681,5373,111413,109587,46448,99250,104460,62926,111192,104748,1773,59151,99486,101916,107433,104723,1773 ], "total_duration": 3086970885, "load_duration": 48652771, "prompt_eval_count": 18, "prompt_eval_duration": 53432000, "eval_count": 90, "eval_duration": 2943180000 }
導(dǎo)入庫(kù):
import requests import json
代碼首先導(dǎo)入了requests
庫(kù)用于發(fā)送HTTP請(qǐng)求,以及json
庫(kù)用于處理JSON數(shù)據(jù)。
定義URL和請(qǐng)求頭:
url = "http://localhost:11434/api/generate" headers = { "Content-Type": "application/json" }
這里定義了請(qǐng)求的目標(biāo)URL,即本地服務(wù)器上運(yùn)行的API接口http://localhost:11434/api/generate
。同時(shí),定義了請(qǐng)求頭,指定Content-Type
為application/json
,表示請(qǐng)求體中傳遞的數(shù)據(jù)格式為JSON。
創(chuàng)建請(qǐng)求體數(shù)據(jù):
data = { "model": "qwen2:0.5b", "prompt": "Why is the sky black? Answer in Chinese.", "stream": False }
data
字典包含三個(gè)鍵值對(duì):
"model"
: 指定使用的模型,這里是qwen2:0.5b
。"prompt"
: 提供的提示問(wèn)題,這里是“Why is the sky black? Answer in Chinese.”。"stream"
: 表示是否希望服務(wù)器以流式方式返回?cái)?shù)據(jù),這里設(shè)為False
。
發(fā)送POST請(qǐng)求并獲取響應(yīng):
response = requests.post(url, headers=headers, data=json.dumps(data)) print(response.text)
使用requests.post()
方法發(fā)送POST請(qǐng)求,傳遞目標(biāo)URL、請(qǐng)求頭和請(qǐng)求體數(shù)據(jù)。然后打印服務(wù)器的響應(yīng)內(nèi)容。
處理響應(yīng):
if response.status_code == 200: response_text = response.text data = json.loads(response_text) actual_response = data["response"] print(actual_response) else: print("error:", response.status_code, response.text)
首先檢查響應(yīng)的狀態(tài)碼是否為200(表示請(qǐng)求成功)。如果成功,解析響應(yīng)文本為JSON格式,并提取實(shí)際的回答內(nèi)容。否則,打印錯(cuò)誤信息。
示例輸出:
如果服務(wù)器正常運(yùn)行并能處理請(qǐng)求,輸出可能會(huì)是:
{ "response": "因?yàn)樘炜赵跊](méi)有太陽(yáng)的情況下沒(méi)有被光線照亮,所以看起來(lái)是黑色的。" }
程序會(huì)提取并打印 "因?yàn)樘炜赵跊](méi)有太陽(yáng)的情況下沒(méi)有被光線照亮,所以看起來(lái)是黑色的。"
。
相關(guān)文章
Windows下安裝python MySQLdb遇到的問(wèn)題及解決方法
這篇文章主要介紹了Windows下安裝python MySQLdb遇到的問(wèn)題及解決方法,需要的朋友可以參考下2017-03-03使用實(shí)現(xiàn)python連接hive數(shù)倉(cāng)的示例代碼
這篇文章主要為大家詳細(xì)介紹了使用實(shí)現(xiàn)python連接hive數(shù)倉(cāng)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03python2 與 pyhton3的輸入語(yǔ)句寫法小結(jié)
這篇文章主要給大家介紹了關(guān)于python2 與 pyhton3的輸入語(yǔ)句寫法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09Python實(shí)現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫(kù)的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫(kù)的方法,涉及Python文件讀取及數(shù)據(jù)庫(kù)寫入相關(guān)操作技巧,需要的朋友可以參考下2018-04-04Python打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式
這篇文章主要介紹了Python打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09python使用urllib2實(shí)現(xiàn)發(fā)送帶cookie的請(qǐng)求
這篇文章主要介紹了python使用urllib2實(shí)現(xiàn)發(fā)送帶cookie的請(qǐng)求,涉及Python操作cookie的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04