亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python調(diào)用DeepSeek?API的完整操作指南

 更新時間:2025年02月07日 09:21:01   作者:老大白菜  
本文將詳細介紹如何使用?Python?調(diào)用?DeepSeek?API,實現(xiàn)流式對話并保存對話記錄,相比?Go?版本,Python?實現(xiàn)更加簡潔優(yōu)雅,適合快速開發(fā)和原型驗證,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下

簡介

本文將詳細介紹如何使用 Python 調(diào)用 DeepSeek API,實現(xiàn)流式對話并保存對話記錄。相比 Go 版本,Python 實現(xiàn)更加簡潔優(yōu)雅,適合快速開發(fā)和原型驗證。https://cloud.siliconflow.cn/i/vnCCfVaQ

1. 環(huán)境準備

1.1 依賴安裝

pip install requests

1.2 項目結(jié)構(gòu)

deepseek-project/
├── main.py           # 主程序
└── conversation.txt  # 對話記錄文件

2. 完整代碼實現(xiàn)

import os
import json
import time
import requests
from datetime import datetime

def save_to_file(file, content, is_question=False):
    """保存對話內(nèi)容到文件"""
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    if is_question:
        file.write(f"\n[{timestamp}] Question:\n{content}\n\n[{timestamp}] Answer:\n")
    else:
        file.write(content)

def main():
    # 配置
    url = "https://api.siliconflow.cn/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY"  # 替換為你的 API Key
    }

    # 打開文件用于保存對話
    with open("conversation.txt", "a", encoding="utf-8") as file:
        while True:
            # 獲取用戶輸入
            question = input("\n請輸入您的問題 (輸入 q 退出): ").strip()
            
            if question.lower() == 'q':
                print("程序已退出")
                break

            # 保存問題
            save_to_file(file, question, is_question=True)

            # 準備請求數(shù)據(jù)
            data = {
                "model": "deepseek-ai/DeepSeek-V3",
                "messages": [
                    {
                        "role": "user",
                        "content": question
                    }
                ],
                "stream": True,
                "max_tokens": 2048,
                "temperature": 0.7,
                "top_p": 0.7,
                "top_k": 50,
                "frequency_penalty": 0.5,
                "n": 1,
                "response_format": {
                    "type": "text"
                }
            }

            try:
                # 發(fā)送流式請求
                response = requests.post(url, json=data, headers=headers, stream=True)
                response.raise_for_status()  # 檢查響應(yīng)狀態(tài)

                # 處理流式響應(yīng)
                for line in response.iter_lines():
                    if line:
                        line = line.decode('utf-8')
                        if line.startswith('data: '):
                            if line == 'data: [DONE]':
                                continue
                            
                            try:
                                content = json.loads(line[6:])  # 去掉 'data: ' 前綴
                                if content['choices'][0]['delta'].get('content'):
                                    chunk = content['choices'][0]['delta']['content']
                                    print(chunk, end='', flush=True)
                                    file.write(chunk)
                                    file.flush()
                            except json.JSONDecodeError:
                                continue

                # 添加分隔符
                print("\n----------------------------------------")
                file.write("\n----------------------------------------\n")
                file.flush()

            except requests.RequestException as e:
                error_msg = f"請求錯誤: {str(e)}\n"
                print(error_msg)
                file.write(error_msg)
                file.flush()

if __name__ == "__main__":
    main()

3. 代碼詳解

3.1 核心功能

文件記錄功能

save_to_file 函數(shù)負責(zé):

  • 生成時間戳
  • 格式化保存問題和答案
  • 自動刷新文件緩沖區(qū)

API 配置

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"  # 替換為你的 API Key
}

流式請求處理

程序使用 requests 庫的流式處理功能:

  • 使用 stream=True 啟用流式傳輸
  • 逐行處理響應(yīng)數(shù)據(jù)
  • 實時顯示和保存內(nèi)容

3.2 配置參數(shù)說明

API 請求參數(shù):

  • model: 使用的模型名稱
  • stream: 啟用流式輸出
  • max_tokens: 最大輸出長度 (2048)
  • temperature: 控制隨機性 (0.7)
  • top_ptop_k: 采樣參數(shù)
  • frequency_penalty: 重復(fù)懲罰系數(shù)

4. 錯誤處理

代碼包含完整的錯誤處理機制:

  • 檢查 HTTP 響應(yīng)狀態(tài)
  • 捕獲網(wǎng)絡(luò)異常
  • 處理 JSON 解析錯誤
  • 文件操作錯誤處理

5. 使用方法

5.1 修改配置

在代碼中替換 YOUR_API_KEY 為你的實際 API Key。

5.2 運行程序

python main.py

5.3 交互方式

  • 輸入問題進行對話
  • 輸入 ‘q’ 退出程序
  • 查看 conversation.txt 獲取對話記錄

6. 性能優(yōu)化建議

  1. 文件操作

    • 使用適當(dāng)?shù)木彌_區(qū)大小
    • 定期刷新文件緩沖
    • 正確關(guān)閉文件句柄
  2. 網(wǎng)絡(luò)請求

    • 設(shè)置適當(dāng)?shù)某瑫r
    • 使用會話(Session)復(fù)用連接
    • 處理網(wǎng)絡(luò)異常
  3. 內(nèi)存管理

    • 及時釋放資源
    • 避免大量數(shù)據(jù)積累
    • 使用生成器處理流式數(shù)據(jù)

總結(jié)

Python 版本的 DeepSeek API 調(diào)用實現(xiàn)簡單直觀,適合快速開發(fā)和測試。通過流式處理和文件記錄,提供了完整的對話體驗。

到此這篇關(guān)于Python調(diào)用DeepSeek API的完整操作指南的文章就介紹到這了,更多相關(guān)Python調(diào)用DeepSeek API內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pyqt5 實現(xiàn)在別的窗口彈出進度條

    pyqt5 實現(xiàn)在別的窗口彈出進度條

    今天小編就為大家分享一篇pyqt5 實現(xiàn)在別的窗口彈出進度條,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 十行Python代碼制作一個視頻倒放神器

    十行Python代碼制作一個視頻倒放神器

    這篇文章主要介紹了如何通過十行代碼實現(xiàn)視頻倒放神器,輕松實現(xiàn)視頻倒放功能。文中的示例代碼簡潔易懂,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-02-02
  • Python pandas遍歷行數(shù)據(jù)的2種方法小結(jié)

    Python pandas遍歷行數(shù)據(jù)的2種方法小結(jié)

    pandas在數(shù)據(jù)處理過程中,除了對整列字段進行處理之外,有時還需求對每一行進行遍歷,本文就來介紹Python pandas遍歷行數(shù)據(jù)的2種方法小結(jié),感興趣的可以了解一下
    2024-03-03
  • python 命名規(guī)范知識點匯總

    python 命名規(guī)范知識點匯總

    這里給大家分享的是在python開發(fā)過程中需要注意的命名的規(guī)范的知識匯總,有需要的小伙伴可以查看下
    2020-02-02
  • 瘋狂上漲的Python 開發(fā)者應(yīng)從2.x還是3.x著手?

    瘋狂上漲的Python 開發(fā)者應(yīng)從2.x還是3.x著手?

    熱度瘋漲的 Python,開發(fā)者應(yīng)從 2.x 還是 3.x 著手?這篇文章就為大家分析一下了Python開發(fā)者應(yīng)從2.x還是3.x學(xué)起,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Python 3.6 讀取并操作文件內(nèi)容的實例

    Python 3.6 讀取并操作文件內(nèi)容的實例

    下面小編就為大家分享一篇Python 3.6 讀取并操作文件內(nèi)容的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python運行異常管理解決方案

    Python運行異常管理解決方案

    這篇文章主要介紹了Python運行異常管理解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python并發(fā)concurrent.futures和asyncio實例

    Python并發(fā)concurrent.futures和asyncio實例

    這篇文章主要介紹了Python并發(fā)concurrent.futures和asyncio實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python使用pip成功導(dǎo)入庫后還是報錯的解決方法(針對vscode)

    python使用pip成功導(dǎo)入庫后還是報錯的解決方法(針對vscode)

    最近在學(xué)爬蟲,但在使用Scrapy包時,在終端通過pip裝好包以后,在pycharm中導(dǎo)入包時,依然會報錯,下面這篇文章主要給大家介紹了關(guān)于python使用pip成功導(dǎo)入庫后還是報錯的解決方法,需要的朋友可以參考下
    2022-07-07
  • Python下使用Trackbar實現(xiàn)繪圖板

    Python下使用Trackbar實現(xiàn)繪圖板

    這篇文章主要為大家詳細介紹了Python下使用Trackbar實現(xiàn)繪圖板,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評論