廢話少說,開干!
API申請和充值
下面是deepeek的API網站
https://platform.deepseek.com/
進去先注冊,是不是手機賬號密碼都不重要,都一樣,完事充值打米,主要是打米后左側API Keys里面創建一個API Keys,注意自己手抄一個Key,那個你自己完了也打不開而是一堆******,記不住只能重新生成
本地curl訪問代碼腳本
部分參數意義和選項在代碼里標注了
import subprocess
import json
import osdef call_deepseek_api(prompt,api_key="sk-0d83************f3a3461486",model="deepseek-chat",temperature=0.7,max_tokens=1000):"""使用cURL調用DeepSeek API參數:- prompt: 提示文本- api_key: DeepSeek API密鑰,如果未提供則從環境變量獲取- model: 要使用的模型名稱通過指定 model='deepseek-chat' 即可調用 DeepSeek-V3。通過指定 model='deepseek-reasoner',即可調用 DeepSeek-R1。- temperature: 控制隨機性的溫度參數(隨機性,越低越選擇概率高的答案,最高1,最低0,0.7時均衡,0.2時死板,1時靈活)- max_tokens: 生成的最大token數(計費是通過token,模型的分詞器(Tokenizer)決定,粗略的說,1 個單詞 ≈ 1.3 個 Token,1 個漢字 ≈ 1~1.5 個 Token,單次費用=輸入token*0.0001+輸出token*0.0003 返回:- API響應的JSON解析結果"""# 如果未提供API密鑰,則從環境變量獲取if api_key is None:api_key = os.environ.get("DEEPSEEK_API_KEY")if not api_key:raise ValueError("需要提供DeepSeek API密鑰")# 構建API請求的JSON數據request_data = {"model": model,"messages": [{"role": "user", "content": prompt}],"temperature": temperature,"max_tokens": max_tokens,"stream":False}# 構建cURL命令#這里可能存在一個問題,訪問地址可能是"https://api.deepseek.com/chat/completions"curl_cmd = ["curl","-X", "POST","https://api.deepseek.com/v1/chat/completions","-H", f"Authorization: Bearer {api_key}","-H", "Content-Type: application/json","-d", json.dumps(request_data)]try:# 執行cURL命令result = subprocess.run(curl_cmd,capture_output=True,text=True,encoding='utf-8', check=True)# 解析JSON響應response = json.loads(result.stdout)return responseexcept subprocess.CalledProcessError as e:print(f"API請求失敗: {e.stderr}")raiseexcept json.JSONDecodeError:print(f"無法解析API響應: {result.stdout}")raise# 使用示例
if __name__ == "__main__":# 方式1: 通過環境變量設置API密鑰# os.environ["DEEPSEEK_API_KEY"] = "your_api_key_here"# 方式2: 直接在函數調用中提供API密鑰api_key = "sk-0d8*******f3a3461486"# 調用APItry:response = call_deepseek_api(prompt="你好,請介紹一下你自己",api_key=api_key)# 打印API返回的內容if "choices" in response and len(response["choices"]) > 0:message = response["choices"][0]["message"]["content"]print("API響應:")print(message)else:print("API返回格式異常:", response)except Exception as e:print(f"發生錯誤: {e}")
這里是上面代碼嘗試跑起來的結果
API響應:
你好!我是 DeepSeek Chat,由深度求索(DeepSeek)公司研發的智能AI助手。我可以幫助你解答各種問題,包括學習、工作、編程、寫作、生活百科等,還能處理上傳的文檔(如PDF、Word、Excel等),并從中提取和分析信息。 ### 我的特點:
? 免費使用:目前無需付費,你可以隨時向我提問!
? 知識豐富:我的知識截至 2024年7月,可以為你提供較新的信息。
? 超長上下文:支持 128K 上下文記憶,能處理超長文本和復雜問題。
? 文件閱讀:可以解析 PDF、Word、Excel、PPT、TXT 等文件內容。
? 多語言支持:能用中文、英文等多種語言交流。 ### 我能幫你做什么?
📚 學習輔導:解題思路、論文潤色、知識點講解
💼 工作助手:寫郵件、做PPT、數據分析
💡 創意寫作:生成故事、廣告文案、詩歌
📊 編程支持:代碼調試、算法優化、技術問答
🔍 信息查詢:新聞、科技、歷史、生活小技巧
如果你有任何問題,盡管問我吧!😊