使用Python快速接入DeepSeek API的步驟指南
1. 前期準備
-
注冊DeepSeek賬號
-
訪問DeepSeek官網注冊賬號
-
完成郵箱驗證等認證流程
-
-
獲取API密鑰
-
登錄后進入控制臺 → API管理
-
創建新的API Key并妥善保存
-
-
安裝必要庫
pip install requests # 可選:處理復雜場景 pip install python-dotenv # 管理環境變量
2. 快速接入示例代碼
import requestsdef deepseek_chat(prompt):api_key = "your_api_key_here" # 替換真實API密鑰endpoint = "https://api.deepseek.com/v1/chat/completions" # 確認最新端點headers = {"Authorization": f"Bearer {api_key}","Content-Type": "application/json"}payload = {"model": "deepseek-chat", # 根據文檔選擇模型"messages": [{"role": "user", "content": prompt}],"temperature": 0.7}try:response = requests.post(endpoint, json=payload, headers=headers)response.raise_for_status() # 自動處理HTTP錯誤return response.json()['choices'][0]['message']['content']except requests.exceptions.RequestException as e:print(f"請求失敗: {e}")return None# 使用示例
if __name__ == "__main__":result = deepseek_chat("如何做番茄炒蛋?")print("API返回結果:", result)
3. 進階實踐建議
-
環境變量管理
創建.env
文件:DEEPSEEK_API_KEY=your_actual_key
修改代碼:
from dotenv import load_dotenv import osload_dotenv() api_key = os.getenv("DEEPSEEK_API_KEY")
-
流式響應處理
def stream_response(prompt):payload.update({"stream": True})with requests.post(endpoint, json=payload, headers=headers, stream=True) as res:for chunk in res.iter_lines():if chunk:print(chunk.decode()) # 實際需解析JSON
-
錯誤處理增強
except requests.HTTPError as http_err:status_code = http_err.response.status_codeif status_code == 429:print("請求過于頻繁,請稍后重試")elif status_code == 401:print("API密鑰無效,請檢查驗證信息")else:print(f"HTTP錯誤 {status_code}: {http_err}")
4. 關鍵注意事項
-
速率限制
-
免費套餐通常限制5-10次/分鐘
-
重要操作建議添加重試邏輯:
from time import sleepretries = 3 for _ in range(retries):try:# 執行請求breakexcept requests.exceptions.HTTPError as e:if e.response.status_code == 429:sleep(2 ** _) # 指數退避else:raise
-
-
計費方式
-
通常按token計費(輸入+輸出)
-
可在請求中添加:
payload["max_tokens"] = 500 # 控制最大輸出長度
-
-
文檔參考
-
務必查閱官方最新文檔:
-
模型列表更新
-
參數說明(temperature, top_p等)
-
特殊功能(函數調用、JSON模式等)
-
推薦實踐路線:
-
先用簡單示例驗證接口連通性
-
添加基礎錯誤處理
-
根據需求逐步增加:
-
對話歷史管理
-
流式輸出處理
-
復雜參數調優
-
-
生產環境建議使用官方SDK(如果有)
遇到問題排查順序:
-
API密鑰是否正確且未過期
-
網絡連接是否正常(特別是國內訪問)
-
請求格式是否符合文檔要求
-
查看返回的錯誤信息
-
聯系官方技術支持(如文檔中提供)