Python請求庫發(fā)送HTTP POST請求的示例代碼
這段代碼使用了Python的requests
庫來發(fā)送HTTP POST請求,向本地服務(wù)器的API發(fā)送數(shù)據(jù),并處理響應(yīng)。接下來我會一步步解釋這個代碼,并用中文回答。
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": "天空為什么是黑色的?因為光線穿過大氣層時,會受到不同的散射現(xiàn)象影響。具體來說,大氣分子(如氮氣、氧氣等)和水蒸氣阻止了陽光中的大部分波長光線,導(dǎo)致太陽光中只有紅、橙、黃、綠、藍五顏六色的光線被散射;而藍色、紫色光線則被吸收并反射回去。結(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)入庫:
import requests import json
代碼首先導(dǎo)入了requests
庫用于發(fā)送HTTP請求,以及json
庫用于處理JSON數(shù)據(jù)。
定義URL和請求頭:
url = "http://localhost:11434/api/generate" headers = { "Content-Type": "application/json" }
這里定義了請求的目標(biāo)URL,即本地服務(wù)器上運行的API接口http://localhost:11434/api/generate
。同時,定義了請求頭,指定Content-Type
為application/json
,表示請求體中傳遞的數(shù)據(jù)格式為JSON。
創(chuàng)建請求體數(shù)據(jù):
data = { "model": "qwen2:0.5b", "prompt": "Why is the sky black? Answer in Chinese.", "stream": False }
data
字典包含三個鍵值對:
"model"
: 指定使用的模型,這里是qwen2:0.5b
。"prompt"
: 提供的提示問題,這里是“Why is the sky black? Answer in Chinese.”。"stream"
: 表示是否希望服務(wù)器以流式方式返回數(shù)據(jù),這里設(shè)為False
。
發(fā)送POST請求并獲取響應(yīng):
response = requests.post(url, headers=headers, data=json.dumps(data)) print(response.text)
使用requests.post()
方法發(fā)送POST請求,傳遞目標(biāo)URL、請求頭和請求體數(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(表示請求成功)。如果成功,解析響應(yīng)文本為JSON格式,并提取實際的回答內(nèi)容。否則,打印錯誤信息。
示例輸出:
如果服務(wù)器正常運行并能處理請求,輸出可能會是:
{ "response": "因為天空在沒有太陽的情況下沒有被光線照亮,所以看起來是黑色的。" }
程序會提取并打印 "因為天空在沒有太陽的情況下沒有被光線照亮,所以看起來是黑色的。"
。
相關(guān)文章
Windows下安裝python MySQLdb遇到的問題及解決方法
這篇文章主要介紹了Windows下安裝python MySQLdb遇到的問題及解決方法,需要的朋友可以參考下2017-03-03使用實現(xiàn)python連接hive數(shù)倉的示例代碼
這篇文章主要為大家詳細介紹了使用實現(xiàn)python連接hive數(shù)倉的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03python2 與 pyhton3的輸入語句寫法小結(jié)
這篇文章主要給大家介紹了關(guān)于python2 與 pyhton3的輸入語句寫法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09Python實現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫的方法示例
這篇文章主要介紹了Python實現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫的方法,涉及Python文件讀取及數(shù)據(jù)庫寫入相關(guān)操作技巧,需要的朋友可以參考下2018-04-04Python打印詳細報錯日志,獲取報錯信息位置行數(shù)方式
這篇文章主要介紹了Python打印詳細報錯日志,獲取報錯信息位置行數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09python使用urllib2實現(xiàn)發(fā)送帶cookie的請求
這篇文章主要介紹了python使用urllib2實現(xiàn)發(fā)送帶cookie的請求,涉及Python操作cookie的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04