最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

手把手教你Python如何調(diào)用API做個聊天機(jī)器人

 更新時間:2026年01月15日 08:29:22   作者:易辰君  
這篇文章主要為大家詳細(xì)介紹了Python如何調(diào)用API編寫一個簡單的聊天機(jī)器人,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

嘿,還在羨慕別人做的AI應(yīng)用嗎?其實(shí)調(diào)用AI大模型的API,比你想象的簡單太多了。今天咱們就從零開始,做一個命令行聊天機(jī)器人。

先給你看看最終效果:

你:今天天氣怎么樣?
AI:我無法獲取實(shí)時天氣信息,建議你查看天氣預(yù)報(bào)應(yīng)用...
你:給我講個笑話
AI:好的!為什么程序員喜歡深夜工作?因?yàn)閎ug在白天睡覺??

看起來還不錯吧?整個項(xiàng)目核心代碼不到30行,新手1小時就能搞定。

一、準(zhǔn)備工作:三件小事搞定

1.1 獲取API密鑰(就像拿快遞需要取件碼)

你需要先注冊一個AI平臺賬號。2026年主流選擇有:

  • 國外平臺:OpenAI
  • 國產(chǎn)平臺:阿里通義千問、智譜AI、百度文心

以智譜AI為例:

  • 訪問官網(wǎng)注冊賬號
  • 進(jìn)入控制臺創(chuàng)建API Key
  • 復(fù)制保存好(這個密鑰千萬別泄露

小貼士:大部分平臺都有免費(fèi)額度,夠你練手了。

1.2 安裝requests庫

打開命令行(Windows按Win+R輸入cmd,Mac按Command+空格搜Terminal),輸入:

pip install requests

等它跑完就行。requests庫就是專門用來發(fā)網(wǎng)絡(luò)請求的工具,想象成你的快遞員。

1.3 理解API請求結(jié)構(gòu)(寄快遞類比)

調(diào)用API就像寄快遞:

  • 收件地址:API的URL(https://xxxxx)
  • 快遞單:你的問題+配置參數(shù)
  • 取件碼:你的API密鑰
  • 收貨:AI的回答

記住這個邏輯,后面代碼你就秒懂了。

二、代碼實(shí)現(xiàn):一步步來,別慌

第一步:發(fā)送最簡單的請求

先新建一個chatbot.py文件,寫下這幾行:

import requests

# 你的API密鑰(記得替換成自己的)
API_KEY = "your_api_key_here"
API_URL = "https://open.bigmodel.cn/api/paas/v4/chat/completions"  # 智譜AI的接口

# 準(zhǔn)備要發(fā)送的數(shù)據(jù)
headers = {
    "Authorization": f"Bearer {API_KEY}",  # 這行是證明你的身份
    "Content-Type": "application/json"     # 告訴服務(wù)器我發(fā)的是JSON格式
}

data = {
    "model": "glm-4",           # 選擇模型版本
    "messages": [               # 你的對話內(nèi)容
        {"role": "user", "content": "你好,介紹一下自己"}
    ]
}

# 發(fā)送請求(就像按下寄快遞的按鈕)
response = requests.post(API_URL, headers=headers, json=data)
print(response.json())  # 打印原始返回結(jié)果

運(yùn)行試試:在命令行輸入python chatbot.py

你會看到一大堆JSON數(shù)據(jù),別怕,這就是AI的回答混在一堆信息里。

第二步:提取AI的回答

剛才那堆數(shù)據(jù)太亂了,我們只要回答內(nèi)容。改一下最后兩行

response = requests.post(API_URL, headers=headers, json=data)
result = response.json()

# 從返回結(jié)果里挖出AI的回答
ai_message = result['choices'][0]['message']['content']
print(f"AI:{ai_message}")

再運(yùn)行,這次就清爽多了:

AI:你好!我是智譜AI助手,基于GLM-4模型...

這行代碼在干嘛?

  • result['choices'][0]:返回結(jié)果里可能有多個回答,我們?nèi)〉谝粋€
  • ['message']['content']:從消息里提取純文本內(nèi)容

第三步:加上循環(huán),實(shí)現(xiàn)多輪對話

現(xiàn)在只能問一次,咱們改成能一直聊的:

import requests

API_KEY = "your_api_key_here"
API_URL = "https://open.bigmodel.cn/api/paas/v4/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# 用列表記錄對話歷史
messages = []

print("聊天機(jī)器人已啟動!輸入'退出'結(jié)束對話\n")

while True:
    user_input = input("你:")
    
    if user_input == "退出":
        print("再見!")
        break
    
    # 把用戶的話加到歷史記錄
    messages.append({"role": "user", "content": user_input})
    
    data = {
        "model": "glm-4",
        "messages": messages  # 發(fā)送整個對話歷史
    }
    
    response = requests.post(API_URL, headers=headers, json=data)
    ai_message = response.json()['choices'][0]['message']['content']
    
    # 把AI的回答也記錄下來
    messages.append({"role": "assistant", "content": ai_message})
    
    print(f"AI:{ai_message}\n")

重點(diǎn)看這里

  • messages列表保存了所有對話,這樣AI能記住你之前說了啥
  • while True讓程序一直循環(huán),直到你輸入"退出"

現(xiàn)在運(yùn)行,你就能和AI多輪聊天了!

第四步:加點(diǎn)細(xì)節(jié)優(yōu)化

真實(shí)使用時可能遇到網(wǎng)絡(luò)錯誤、API調(diào)用失敗等問題,咱們加個錯誤處理

import requests

API_KEY = "your_api_key_here"
API_URL = "https://open.bigmodel.cn/api/paas/v4/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

messages = []

print("聊天機(jī)器人已啟動!輸入'退出'結(jié)束對話\n")

while True:
    user_input = input("你:")
    
    if user_input == "退出":
        print("再見!")
        break
    
    messages.append({"role": "user", "content": user_input})
    
    data = {
        "model": "glm-4",
        "messages": messages
    }
    
    try:
        response = requests.post(API_URL, headers=headers, json=data, timeout=30)
        
        # 檢查請求是否成功
        if response.status_code != 200:
            print(f"請求失敗,錯誤碼:{response.status_code}")
            messages.pop()  # 移除剛才添加的用戶消息
            continue
        
        ai_message = response.json()['choices'][0]['message']['content']
        messages.append({"role": "assistant", "content": ai_message})
        print(f"AI:{ai_message}\n")
        
    except requests.exceptions.RequestException as e:
        print(f"網(wǎng)絡(luò)錯誤:{e}")
        messages.pop()  # 出錯了就撤回這條消息

新增的保護(hù)機(jī)制

  • timeout=30:30秒沒響應(yīng)就報(bào)錯,別傻等
  • try...except:捕獲網(wǎng)絡(luò)異常
  • messages.pop():出錯時刪掉剛加的消息,避免對話記錄亂掉

三、完整代碼(直接復(fù)制能用)

import requests

# ========== 配置區(qū) ==========
API_KEY = "your_api_key_here"  # 替換成你的密鑰
API_URL = "https://open.bigmodel.cn/api/paas/v4/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

messages = []  # 對話歷史

# ========== 主程序 ==========
print("聊天機(jī)器人已啟動!輸入'退出'結(jié)束對話\n")

while True:
    user_input = input("你:")
    if user_input == "退出":
        break
    
    messages.append({"role": "user", "content": user_input})
    
    try:
        response = requests.post(
            API_URL, 
            headers=headers, 
            json={"model": "glm-4", "messages": messages},
            timeout=30
        )
        
        if response.status_code == 200:
            ai_message = response.json()['choices'][0]['message']['content']
            messages.append({"role": "assistant", "content": ai_message})
            print(f"AI:{ai_message}\n")
        else:
            print(f"請求失?。簕response.status_code}")
            messages.pop()
    
    except Exception as e:
        print(f"出錯了:{e}")
        messages.pop()

print("再見!")

總共27行,是不是很簡單?

四、進(jìn)階方向:可以玩出什么花樣

掌握了API調(diào)用,你就解鎖了無限可能:

  • 接入微信:用itchat庫,讓AI自動回復(fù)好友消息
  • 做個網(wǎng)頁版:用Flask框架搭個聊天界面
  • 語音助手:結(jié)合語音識別,做個能說話的AI
  • 專屬知識庫:在prompt里加上你的資料,讓AI變成專家

五、常見問題急救站

1.報(bào)錯:401 Unauthorized

原因:API密鑰錯誤或過期

解決:檢查密鑰是否復(fù)制完整,去平臺重新生成一個

2.報(bào)錯:timeout

原因:網(wǎng)絡(luò)太把timeout=30改大一點(diǎn),或者檢查網(wǎng)絡(luò)

3.返回結(jié)果是空的

原因:可能觸發(fā)了內(nèi)容審核

解決:換個問法,避免敏感詞匯

4.超出額度限制

原因:免費(fèi)額度用完了

解決:充值或等下個月重置(大部分平臺每月送免費(fèi)額度)

總結(jié)

看到這里,你已經(jīng)掌握了AI應(yīng)用開發(fā)的核心技能——API調(diào)用。這個技術(shù)不僅能做聊天機(jī)器人,還能用在翻譯、寫作、數(shù)據(jù)分析等各種場景。

到此這篇關(guān)于手把手教你Python如何調(diào)用API做個聊天機(jī)器人的文章就介紹到這了,更多相關(guān)Python聊天機(jī)器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)自動清理電腦垃圾文件詳解

    Python實(shí)現(xiàn)自動清理電腦垃圾文件詳解

    經(jīng)常存在在我們的電腦中的垃圾文件主要是指系統(tǒng)在運(yùn)行過程中產(chǎn)生的tmp臨時文件、日志文件、臨時備份文件等。本文將利用Python實(shí)現(xiàn)自動清理這些垃圾文件,需要的可以參考一下
    2022-03-03
  • Python神器之Pampy模式匹配庫的用法詳解

    Python神器之Pampy模式匹配庫的用法詳解

    Pampy是Python的一個模式匹配類庫,一個只有150行的類庫,該庫優(yōu)雅、高效值得廣大Python的碼農(nóng)加入自己基本開發(fā)棧中。本文就來講講Pampy的用法,需要的可以參考一下
    2022-07-07
  • opencv?canny邊緣檢測算法詳解

    opencv?canny邊緣檢測算法詳解

    本文主要介紹了opencv?canny邊緣檢測算法詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Anaconda2 5.2.0安裝使用圖文教程

    Anaconda2 5.2.0安裝使用圖文教程

    這篇文章主要為大家詳細(xì)介紹了Anaconda2 5.2.0安裝使用圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python3.6+selenium2.53.6自動化測試_讀取excel文件的方法

    Python3.6+selenium2.53.6自動化測試_讀取excel文件的方法

    這篇文章主要介紹了Python3.6+selenium2.53.6自動化測試_讀取excel文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python中使用tkFileDialog實(shí)現(xiàn)文件選擇、保存和路徑選擇

    Python中使用tkFileDialog實(shí)現(xiàn)文件選擇、保存和路徑選擇

    這篇文章主要介紹了Python中使用tkFileDialog實(shí)現(xiàn)文件選擇、保存和路徑選擇,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 在Ubuntu系統(tǒng)中運(yùn)行python代碼的幾個步驟

    在Ubuntu系統(tǒng)中運(yùn)行python代碼的幾個步驟

    項(xiàng)目中需要在Linux上運(yùn)行自己寫的python腳本,特此記錄一下操作流程,整個流程比較簡單,下面這篇文章主要給大家介紹了關(guān)于在Ubuntu系統(tǒng)中運(yùn)行python代碼的幾個步驟,需要的朋友可以參考下
    2023-12-12
  • python csv實(shí)時一條一條插入且表頭不重復(fù)問題

    python csv實(shí)時一條一條插入且表頭不重復(fù)問題

    這篇文章主要介紹了python csv實(shí)時一條一條插入且表頭不重復(fù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 基于Python繪制520表白代碼

    基于Python繪制520表白代碼

    這周五就是520,大家都準(zhǔn)備好送給女朋友的禮物了嗎?快來利用Python編寫個表白代碼送給她吧!文中示例代碼講解詳細(xì),跟隨小編一起動手試一試吧
    2022-05-05
  • Python的Bottle框架中獲取制定cookie的教程

    Python的Bottle框架中獲取制定cookie的教程

    這篇文章主要介紹了Python的Bottle框架中獲取制定cookie的教程,主要是針對別的路徑而不是當(dāng)前頁面的cookie,需要的朋友可以參考下
    2015-04-04

最新評論

湟源县| 重庆市| 博乐市| 綦江县| 祁连县| 文成县| 丹东市| 禹城市| 彰化市| 新余市| 衡阳县| 清原| 克拉玛依市| 乌拉特中旗| 开江县| 通山县| 那坡县| 垣曲县| 彰武县| 满城县| 蒙城县| 定陶县| 湖口县| 黄浦区| 凌海市| 宣威市| 潍坊市| 商丘市| 东方市| 石楼县| 石河子市| 包头市| 兴义市| 沽源县| 吐鲁番市| 红原县| 永仁县| 荃湾区| 绥江县| 南丹县| 个旧市|