知识点 1:一句话讲透「requests 库到底是什么?」
大白话版:requests 就是 Python 里专门用来「让你的电脑和互联网服务器对话」的工具,相当于你电脑里的「微信 / 外卖 APP」。
你可以这么理解:
你的电脑 = 你本人
互联网上的服务器(比如通义千问的大模型服务器、百度的服务器)= 饭店 / 你的朋友
requests 库 = 你的手机微信 / 外卖 APP
你用微信给朋友发消息、等朋友回复 → 你用 requests 给服务器发请求、等服务器返回结果
你用外卖 APP 给饭店发订单、等饭店送餐 → 你用 requests 给大模型服务器发问题、等大模型返回答案
所有 AI 大模型的 API 调用,不管是通义千问、ChatGPT、豆包,还是其他任何 AI 模型,底层都是用 requests 库来实现「发问题、收答案」的,这是 AI 行业最通用、最核心的基础技能,没有之一。
知识点 2:2 个最核心的请求方法(记死,99% 的场景都用这两个)
requests 库有很多方法,但我们学 AI API 调用,只需要先掌握 2 个最核心的,其他的以后用到再学,完全不用记一堆没用的。
| 方法 | 大白话作用 | 适用场景 | 我们用它来干嘛 |
|---|---|---|---|
| requests.get() | 「从网上拿东西」,只需要告诉服务器你想要什么,服务器就会把内容给你 | 看网页、下载图片 / 视频、查公开数据 | 今天入门练习用,以后偶尔用来查公开数据 |
| requests.post() | 「给网上发东西 + 拿结果」,你把自己的内容发给服务器,服务器处理完再把结果给你 | 点外卖、发微信、登录账号、调用 AI 大模型 | 核心中的核心!以后所有大模型 API 调用,全用这个方法 |
手把手实操
步骤 1:安装 requests 库(必须先做,不安装写的代码全跑不通)
pip install requests步骤 2:用 get 方法,发送你的第一个网络请求(入门练习,5 分钟跑通)
# 第一步:导入我们安装好的requests库importrequests# 第二步:定义我们要请求的地址(百度首页的官方地址,固定不变)url="https://www.baidu.com"# 第三步:用get方法,发送请求,拿到服务器返回的结果# 大白话:告诉requests,我要去这个url地址,拿点东西回来response=requests.get(url)# 第四步:打印请求的结果,先看状态码,判断有没有成功print("✅ 请求状态码:",response.status_code)print("✅ 百度首页的内容(前500个字符):")# 只打印前500个字符,避免内容太多,看不过来print(response.text[:500])步骤 3:用 post 方法,发送带数据的请求(核心练习,直接对接大模型场景)
# 第一步:导入requests库,还有我们之前写的配置文件importrequestsfromconfigimportTONGYI_API_KEY,TONGYI_API_URL# 第一步:导入我们安装好的requests库# 第二步:构造请求头(headers),也就是我们给服务器的「自我介绍+通行证」headers={# 这里放我们的apiKey,告诉服务器我们是注册过的合法用户"Authorization":f"Bearer{TONGYI_API_KEY}",# 告诉服务器,我们发的内容是JSON格式的,让服务器正确解析"Content-type":"application/json"}# 第三步:构造请求体(data),也就是我们给大模型发的「核心内容」data={# 用免费的qwen-turbo模型,新手首选"model":"qwen-turbo",# 我们给大模型发的问题"input":{"messages":[{"role":"user","content":"你好,我是零基础学AI的,能给我打个招呼吗?"}]}}# 第四步:用post方法,发送请求,拿到大模型服务器返回的结果response=requests.post(url=TONGYI_API_URL,json=data,headers=headers)# 第五步:打印请求的结果,先看状态码,判断有没有成功print(" 请求状态码:",response.status_code)# 打印大模型返回的完整结果print(" 大模型返回的结果:")print(response.text)# 步骤 4:解析响应结果,拿到我们想要的内容# 把大模型返回的JSON文本,解析成Python的字典result=response.json()# 直接拿到大模型的回复内容,不用看其他格式ai_reply=result["output"]["text"]print(f"大模型的回复:{ai_reply}")