日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

DeepSeek API圖像與文本分類調(diào)用實(shí)戰(zhàn):鑒權(quán)、上傳與排錯(cuò)

DeepSeek API圖像與文本分類調(diào)用實(shí)戰(zhàn):鑒權(quán)、上傳與排錯(cuò) 簡(jiǎn)介這份面向具備Python基礎(chǔ)的開發(fā)者與AI集成團(tuán)隊(duì)的實(shí)踐指南聚焦通過DeepSeek API完成圖像分類和文本分類的接入流程。壓縮包內(nèi)僅有1個(gè)docx文檔大小約17KB篇幅精煉便于快速查閱與隨項(xiàng)目歸檔。文檔圍繞requests發(fā)送HTTP請(qǐng)求、Pillow處理圖像、API密鑰鑒權(quán)、POST請(qǐng)求頭與請(qǐng)求體構(gòu)造展開并給出圖像上傳與文本分類兩套代碼示例同時(shí)說明成功響應(yīng)中標(biāo)簽與置信度的解析方式以及無效密鑰、負(fù)載格式異常等常見錯(cuò)誤的排查方向。已有2676人學(xué)習(xí)適合希望快速驗(yàn)證云端機(jī)器學(xué)習(xí)服務(wù)、搭建分類應(yīng)用原型的中級(jí)開發(fā)者參考。其價(jià)值在于將接口準(zhǔn)備、請(qǐng)求發(fā)送、結(jié)果處理與圖像尺寸預(yù)處理串成完整鏈路幫助讀者理解可復(fù)用的調(diào)用骨架并據(jù)官方文檔替換示例地址與參數(shù)減少接入初期的試錯(cuò)成本。1. 從一次 401 說起這份調(diào)用指南真正解決的是鏈路問題第一次把 DeepSeek 的圖像分類接口接進(jìn)項(xiàng)目報(bào)錯(cuò)不是模型分錯(cuò)而是 401——密鑰被拼進(jìn)了 URL 而不是請(qǐng)求頭。這份《DeepSeek API 調(diào)用指南》解決的正是這類問題它不講模型結(jié)構(gòu)只講怎么用 requests 發(fā)出一個(gè) HTTP 請(qǐng)求把一張圖或一段文字 POST 給云端機(jī)器學(xué)習(xí)服務(wù)再拿回 label 和 confidence 兩個(gè)字段。內(nèi)容覆蓋密鑰獲取、Pillow 裝環(huán)境、圖像上傳、文本分類復(fù)用同一套骨架以及狀態(tài)碼排查。適合已經(jīng)有 Python 基礎(chǔ)、手里有個(gè)原型要接分類能力的開發(fā)者如果你的場(chǎng)景是每天幾千張圖要打標(biāo)或者一批文本要自動(dòng)歸類跟著走一遍能跑通最小閉環(huán)。它也明確寫了端點(diǎn)只作示例真實(shí)地址要回查官方文檔這點(diǎn)比很多抄來抄去的教程靠譜。2. 請(qǐng)求鏈路拆開看Bearer 鑒權(quán)、multipart 上傳與 224×224 預(yù)處理把一次分類調(diào)用拆開其實(shí)只有四段拼請(qǐng)求頭、準(zhǔn)備 body、發(fā)出去、解析回來。四段里出錯(cuò)概率最高的是第二段因?yàn)閳D像和文本的 body 形態(tài)完全不同一個(gè)是二進(jìn)制表單一個(gè)是 JSON。選錯(cuò)形態(tài)服務(wù)端要么返回 415要么解析出一堆亂碼。這一章先把鏈路上每個(gè)零件的形狀說清楚后面寫代碼才不會(huì)靠試。2.1 密鑰與請(qǐng)求頭Bearer 的三種寫法與唯一推薦API 密鑰在原料里被描述成「注冊(cè)登錄后拿到的一串字符串」它在 HTTP 層的角色就是身份憑證。常見做法是放進(jìn)Authorization頭格式為Bearer key注意 Bearer 和 key 之間有一個(gè)空格少一個(gè)空格就是 401。有些人圖省事把 key 塞進(jìn) query 參數(shù)瀏覽器地址欄、Nginx access log、代理轉(zhuǎn)發(fā)記錄里都會(huì)留下明文等于把鑰匙貼在門上不建議。更穩(wěn)的習(xí)慣是從環(huán)境變量讀密鑰代碼里不出現(xiàn)字面量。下面這段用來做連通性自檢發(fā)一個(gè)輕量請(qǐng)求能拿到 200 就說明密鑰、網(wǎng)絡(luò)、DNS 三段都通再去調(diào)分類接口就不會(huì)把環(huán)境問題和業(yè)務(wù)問題混在一起排查。import os import requests # 密鑰從環(huán)境變量讀取不寫死在代碼和倉庫里 API_KEY os.environ[DEEPSEEK_API_KEY] headers { # Bearer 后面必須有一個(gè)空格這是最常見的 401 來源 Authorization: fBearer {API_KEY}, # JSON 請(qǐng)求體時(shí)手寫這一行上傳文件時(shí)千萬別手寫見 2.2 Content-Type: application/json, } # 端點(diǎn)僅作示例實(shí)際地址以官方文檔為準(zhǔn)換成任意輕量接口即可做連通性自檢 PROBE_URL https://api.deepseek.com/v1/models try: resp requests.get(PROBE_URL, headersheaders, timeout(3.05, 10)) print(resp.status_code) # 只打印前 200 字符避免日志被大響應(yīng)撐爆 print(resp.text[:200]) except requests.RequestException as e: print(網(wǎng)絡(luò)層就失敗了先查 DNS / 出口 / 超時(shí)設(shè)置, e)邏輯說明先做一次 GET 自檢把「認(rèn)證失敗」和「分類失敗」兩類問題隔離開。參數(shù)說明timeout(3.05, 10)是連接和讀取兩段超時(shí)連接段給 3 秒左右足夠覆蓋絕大多數(shù)機(jī)房到公網(wǎng)的首包時(shí)間讀取段按接口響應(yīng)速度給單寫一個(gè)數(shù)字的話requests 會(huì)把它同時(shí)當(dāng)作兩段超時(shí)讀大響應(yīng)時(shí)容易誤殺。headers里的Content-Type在 GET 上其實(shí)可以不帶保留是為了讓這段代碼和后面的 POST 保持同一份頭字典。還有一種寫法是用requests的auth參數(shù)那是 HTTP Basic 認(rèn)證用戶名密碼形式的和 Bearer Token 不是一回事套上去只會(huì)得到 401 或 403。這一點(diǎn)在原料里沒展開但它是新手最?;煜牡胤?。2.2 圖像為什么必須走 files 而不是 json原料給的示例用files上傳圖像而不是把圖像塞進(jìn) JSON這個(gè)選擇不是隨意的。二進(jìn)制數(shù)據(jù)進(jìn) JSON 必須先 base64 編碼體積會(huì)漲大約三分之一服務(wù)端還要多做一次解碼兩端都虧。業(yè)界常見三種上傳方式取舍如下方式體積開銷服務(wù)端處理成本適用場(chǎng)景multipart/form-datafiles幾乎無膨脹低流式解析單圖、小批量、原型驗(yàn)證base64 塞進(jìn) JSON約 33%需要解碼內(nèi)存峰值高網(wǎng)關(guān)只允許 JSON 的受限環(huán)境先傳對(duì)象存儲(chǔ)再傳 URL無最低可異步批量任務(wù)、大圖、需要留檔原圖選 multipart 之后有一個(gè)必須知道的細(xì)節(jié)requests會(huì)在檢測(cè)到files參數(shù)時(shí)自動(dòng)生成Content-Type: multipart/form-data; boundary----xxxx這個(gè) boundary 是分隔各字段的隨機(jī)字符串。如果你在headers里手寫了一個(gè)不帶 boundary 的Content-Type: multipart/form-datarequests 就不會(huì)再補(bǔ)服務(wù)端拿不到分隔符直接把整個(gè) body 當(dāng)成一個(gè)字段解析結(jié)果通常是 400 或解析出空文件。所以上傳圖像時(shí)頭字典里只留Authorization。import requests def upload_once(image_bytes: bytes, api_key: str, url: str): # 三元組順序是字段名、文件名、MIME 類型缺一不可 files {image: (image.jpg, image_bytes, image/jpeg)} # 附加的表單字段都只能是字符串?dāng)?shù)字要自己 str() 轉(zhuǎn)換 data {top_k: 3} headers {Authorization: fBearer {api_key}} # 不要加 Content-Type return requests.post( url, headersheaders, filesfiles, datadata, timeout(3.05, 60), # 圖像推理比文本慢讀取超時(shí)給寬一點(diǎn) )邏輯說明files的 value 用三元組而不是裸 bytes是為了讓服務(wù)端拿到正確的文件名和 MIME如果只傳{image: image_bytes}requests 會(huì)默認(rèn)按application/octet-stream發(fā)部分服務(wù)端會(huì)因此拒絕。參數(shù)說明top_k這類字段在 multipart 里一律是字符串傳3會(huì)被 requests 編碼成3但如果你自己用data{top_k: 3}再手動(dòng)拼 body就可能踩到類型錯(cuò)誤讀取超時(shí)給到 60 秒是因?yàn)閳D像接口往往要跑一次前向冷啟動(dòng)時(shí)更慢。2.3 Pillow 預(yù)處理尺寸、色彩模式與字節(jié)流復(fù)用原料里提到「模型可能要求 224×224」這是個(gè)假設(shè)值真實(shí)尺寸必須回查文檔。但無論目標(biāo)尺寸是多少預(yù)處理要做的事是固定的四件擺正方向、統(tǒng)一色彩模式、等比縮放加裁剪、控制編碼體積。方向這件事容易被忽略。手機(jī)拍的 JPEG 里帶 EXIF Orientation 標(biāo)記Image.open讀出來是原始像素方向直接縮放再上傳模型看到的是躺倒的貓。ImageOps.exif_transpose會(huì)按標(biāo)記旋轉(zhuǎn)并清掉這個(gè)標(biāo)記是一行就能解決的血淚經(jīng)驗(yàn)。色彩模式方面PNG 可能帶 alpha 通道灰度圖只有一個(gè)通道CMYK 的 JPEG 來自印刷物料這幾種直接送進(jìn)只接受三通道 RGB 的模型都會(huì)報(bào)錯(cuò)或得到詭異結(jié)果convert(RGB)統(tǒng)一掉。from PIL import Image, ImageOps import io def normalize_image(path: str, size(224, 224), quality: int 90) - bytes: with Image.open(path) as im: im ImageOps.exif_transpose(im) # 按 EXIF 擺正避免躺倒的貓 im im.convert(RGB) # 去 alpha、統(tǒng)一三通道 # fit 是等比縮放后居中裁剪resize 是硬拉伸后者會(huì)讓長(zhǎng)圖變形 im ImageOps.fit(im, size, methodImage.BICUBIC) buf io.BytesIO() im.save(buf, formatJPEG, qualityquality, optimizeTrue) return buf.getvalue() # 直接拿 bytes不落盤邏輯說明整個(gè)函數(shù)在內(nèi)存里完成返回 bytes 直接喂給 2.2 的上傳函數(shù)省掉一次臨時(shí)文件讀寫批量跑的時(shí)候差別很明顯。參數(shù)說明size按文檔改不要照抄 224quality90是體積和畫質(zhì)的折中點(diǎn)壓到 75 以下在細(xì)粒度分類任務(wù)上會(huì)掉點(diǎn)optimizeTrue讓 Pillow 多花一點(diǎn) CPU 換更小的文件對(duì)上傳耗時(shí)是正收益methodImage.BICUBIC比默認(rèn)的最近鄰更適合縮小邊緣不會(huì)出現(xiàn)鋸齒。還有一個(gè)常被忽略的點(diǎn)Image.open是惰性的文件句柄會(huì)一直掛著批量處理幾千張時(shí)不關(guān)會(huì)撞到文件描述符上限。上面用with包住就是為了這個(gè)getvalue()必須在with塊內(nèi)調(diào)用出了塊對(duì)象就關(guān)了。3. 圖像分類調(diào)用的完整實(shí)現(xiàn)從讀文件到解析 label 與 confidence第二章把零件備齊了這一章組裝成能跑的東西。判斷一段調(diào)用代碼合不合格不看它能不能出結(jié)果看它在出錯(cuò)時(shí)能不能告訴你錯(cuò)在哪。所以下面的實(shí)現(xiàn)里超時(shí)、狀態(tài)碼分支、響應(yīng)結(jié)構(gòu)校驗(yàn)三樣都要有缺一樣在批量場(chǎng)景里都會(huì)變成黑匣子。3.1 最小可運(yùn)行腳本與逐行參數(shù)說明原料給的主干是requests.post(url, headersheaders, filesfiles)加一個(gè)status_code 200的分支。這個(gè)骨架是對(duì)的但少了三樣?xùn)|西超時(shí)、非 200 分支的細(xì)分、JSON 解析的保護(hù)。網(wǎng)關(guān)返回 HTML 錯(cuò)誤頁時(shí)response.json()會(huì)拋JSONDecodeError異常信息里看不到狀態(tài)碼排查時(shí)非常難受。import os import requests from requests import Response API_KEY os.environ[DEEPSEEK_API_KEY] # 端點(diǎn)僅作示例請(qǐng)以官方文檔為準(zhǔn) CLASSIFY_URL https://api.deepseek.com/v1/classify def classify_image(image_bytes: bytes, top_k: int 3) - dict: files {image: (image.jpg, image_bytes, image/jpeg)} data {top_k: str(top_k)} headers {Authorization: fBearer {API_KEY}} try: resp: Response requests.post( CLASSIFY_URL, headersheaders, filesfiles, datadata, timeout(3.05, 60), ) except requests.Timeout: return {ok: False, code: TIMEOUT, msg: 請(qǐng)求超時(shí)考慮降分辨率或加重試} except requests.RequestException as e: return {ok: False, code: NETWORK, msg: str(e)} if resp.status_code ! 200: # 保留狀態(tài)碼和響應(yīng)體前 500 字符足夠定位大多數(shù)問題 return { ok: False, code: resp.status_code, msg: resp.text[:500], } try: body resp.json() except ValueError: return {ok: False, code: BAD_JSON, msg: resp.text[:500]} # 原料里的響應(yīng)形如 {status:success,data:{label:...,confidence:...}} if body.get(status) ! success: return {ok: False, code: API_ERROR, msg: body.get(message, )} data_obj body.get(data) or {} return { ok: True, label: data_obj.get(label), confidence: float(data_obj.get(confidence) or 0.0), raw: body, }邏輯說明返回統(tǒng)一成{ok: bool}的字典調(diào)用方只需要判斷ok不用在每個(gè)業(yè)務(wù)點(diǎn)重復(fù)寫 try/except失敗分支帶上code日志里聚合一下就能看出是密鑰問題還是超時(shí)問題占多數(shù)。參數(shù)說明top_k轉(zhuǎn)成字符串是因?yàn)?multipart 表單字段只接受字符串超時(shí)元組里讀取段給 60 秒圖像推理冷啟動(dòng)時(shí)可能十幾秒給太短會(huì)誤判成服務(wù)不可用float(... or 0.0)是防御式寫法萬一服務(wù)端返回字符串0.98也能轉(zhuǎn)換返回 null 時(shí)不會(huì)拋TypeError。提示原料里的響應(yīng)字段status、data.label、data.confidence是示例結(jié)構(gòu)接入前先用一次真實(shí)請(qǐng)求確認(rèn)字段路徑再把這幾個(gè) key 抽成模塊級(jí)常量別散落在業(yè)務(wù)代碼里。3.2 響應(yīng)結(jié)構(gòu)解析與置信度閾值的業(yè)務(wù)用法confidence這個(gè)字段很容易被誤用。它是模型對(duì)本次預(yù)測(cè)的打分不是「這張圖有 98% 概率是貓」這種校準(zhǔn)過的概率跨類別、跨批次直接比大小并不嚴(yán)謹(jǐn)。但它作為分流信號(hào)是夠用的高分區(qū)自動(dòng)落庫低分區(qū)轉(zhuǎn)人工復(fù)核中間灰區(qū)打標(biāo)記后置處理。置信度區(qū)間處理策略說明≥ 0.90自動(dòng)入庫抽檢 1% 做質(zhì)量監(jiān)控0.60 ~ 0.90入待復(fù)核隊(duì)列按天批量人工過一遍 0.60轉(zhuǎn)人工或丟棄重采往往是模糊圖、多主體圖或域外樣本def route(result: dict, high: float 0.90, low: float 0.60) - str: if not result.get(ok): return manual # 調(diào)用失敗一律進(jìn)人工不要靜默丟數(shù)據(jù) conf result[confidence] if conf high: return auto if conf low: return review return manual邏輯說明把閾值寫成函數(shù)參數(shù)而不是硬編碼是因?yàn)椴煌惸康姆植疾顒e很大做一次小樣本標(biāo)注就能把high和low調(diào)到位。參數(shù)說明high調(diào)高會(huì)減少誤判但增加人工量通常先從 0.90 起步low調(diào)低會(huì)讓灰區(qū)變窄適合人力緊張的團(tuán)隊(duì)。這三個(gè)檔位建議先在歷史數(shù)據(jù)上跑一遍分布看灰區(qū)占比再定拍腦袋定閾值是后面返工的主要原因。3.3 批量與并發(fā)Session 復(fù)用、超時(shí)與重試單張調(diào)用跑通之后下一步一定是批量。批量場(chǎng)景里兩個(gè)改動(dòng)收益最大復(fù)用連接、加受控重試。requests.post每次都是一次全新的 TCP 加 TLS 握手批量幾百張時(shí)握手開銷能占到總耗時(shí)的一半。用Session復(fù)用連接池配合HTTPAdapter設(shè)置池大小是標(biāo)準(zhǔn)做法。重試這塊有個(gè)真實(shí)的坑urllib3的Retry默認(rèn)allowed_methods不包含 POST所以你不顯式配置的話POST 請(qǐng)求根本不會(huì)重試代碼看起來加了重試其實(shí)沒生效。反過來如果你把 POST 加進(jìn)重試列表讀超時(shí)后重試又可能造成重復(fù)計(jì)費(fèi)或重復(fù)入庫。折中做法是只對(duì)連接類錯(cuò)誤和 429、5xx 重試讀超時(shí)不重試。import requests from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry def build_session(pool_size: int 16) - requests.Session: session requests.Session() retry Retry( total3, connect3, # 只重試連接階段 read0, # 讀超時(shí)不重試避免重復(fù)計(jì)費(fèi) status3, # 429 / 5xx 重試 status_forcelist[429, 500, 502, 503, 504], allowed_methodsfrozenset([POST]), # 默認(rèn)不含 POST必須顯式加 backoff_factor0.5, # 退避 0.5s、1s、2s raise_on_statusFalse, ) adapter HTTPAdapter(max_retriesretry, pool_connectionspool_size, pool_maxsizepool_size) session.mount(https://, adapter) return session邏輯說明connect和read分開配置是關(guān)鍵連接失敗重試是安全的讀超時(shí)重試則可能讓同一張圖被計(jì)費(fèi)兩次。參數(shù)說明pool_maxsize要和你開的并發(fā)線程數(shù)匹配線程數(shù)大于池大小時(shí)多出來的線程會(huì)等待連接表現(xiàn)為「并發(fā)上不去」backoff_factor0.5產(chǎn)生指數(shù)退避對(duì) 429 限流場(chǎng)景很有效raise_on_statusFalse讓重試耗盡后把原始響應(yīng)返回給你而不是拋異常方便統(tǒng)一處理。并發(fā)執(zhí)行用ThreadPoolExecutor就夠這類任務(wù)是 IO 密集的協(xié)程或線程都行線程寫起來簡(jiǎn)單。并發(fā)數(shù)別開太大先看賬號(hào)的限流配額從 4 到 8 起步撞到 429 就往下調(diào)。4. 文本分類與接口復(fù)用同一套骨架換 payload原料里給的文本分類示例和圖像分類的差別只有兩處URL 不同、body 從 multipart 換成 JSON。這說明兩個(gè)接口共享同一套 HTTP 骨架把它抽出來比復(fù)制兩份代碼劃算得多。抽的時(shí)候注意 JSON 和 multipart 在請(qǐng)求頭上的差異這是唯一不能共用的地方。4.1 文本接口的 JSON 載荷與編碼細(xì)節(jié)requests.post(url, jsondata)和requests.post(url, datajson.dumps(data))看起來一樣其實(shí)差兩點(diǎn)前者自動(dòng)設(shè)置Content-Type: application/json后者不會(huì)你需要自己在頭里寫前者遇到不可序列化的對(duì)象會(huì)直接拋TypeError后者要到dumps階段才報(bào)。統(tǒng)一用json參數(shù)更省心。import requests def classify_text(text: str, url: str, api_key: str, top_k: int 3) - dict: # 超長(zhǎng)文本先截?cái)嗪芏嘟涌趯?duì)長(zhǎng)度有硬限制超了直接 400 if len(text) 4000: text text[:4000] payload {text: text, top_k: top_k} headers { Authorization: fBearer {api_key}, Content-Type: application/json, # 用 json 時(shí) requests 也會(huì)自動(dòng)加 } resp requests.post(url, headersheaders, jsonpayload, timeout(3.05, 15)) resp.raise_for_status() return resp.json()邏輯說明jsonpayload讓 requests 用json.dumps序列化并自動(dòng)設(shè)頭中文會(huì)被轉(zhuǎn)成\uXXXX轉(zhuǎn)義這是合法的 JSON服務(wù)端能正確還原不需要加ensure_asciiFalse那個(gè)參數(shù)只在你自己dumps時(shí)有用。參數(shù)說明文本截?cái)嚅L(zhǎng)度按接口文檔調(diào)整不要照抄 4000raise_for_status()在原型階段很方便會(huì)讓異常帶上狀態(tài)碼但生產(chǎn)代碼里建議像第 3 章那樣手動(dòng)分支因?yàn)槟阆肽玫巾憫?yīng)體做診斷。還有一點(diǎn)如果文本來自網(wǎng)頁抓取先做一次清洗去掉零寬字符、全角空格、HTML 實(shí)體。這些字符在 JSON 里合法但會(huì)讓分類結(jié)果偏移屬于典型的「模型沒問題、數(shù)據(jù)有臟東西」。4.2 把圖像和文本兩類調(diào)用抽象成統(tǒng)一客戶端抽象的目標(biāo)不是少寫幾行而是讓重試、日志、錯(cuò)誤碼映射只寫一遍。下面的類把公共部分收在_post里兩個(gè)公開方法只負(fù)責(zé)準(zhǔn)備 body。import logging import requests log logging.getLogger(__name__) class ClassifyClient: def __init__(self, api_key: str, base_url: str, session: requests.Session): self.api_key api_key self.base_url base_url.rstrip(/) # session 從外部注入方便復(fù)用連接池和重試策略 self.session session def _headers(self, with_json: bool False) - dict: headers {Authorization: fBearer {self.api_key}} if with_json: headers[Content-Type] application/json return headers def _post(self, path: str, **kwargs) - dict: url f{self.base_url}/{path.lstrip(/)} resp self.session.post(url, **kwargs) # 統(tǒng)一把非 200 轉(zhuǎn)成帶狀態(tài)碼的字典調(diào)用方不用各自判斷 if resp.status_code ! 200: log.warning(classify failed status%s body%s, resp.status_code, resp.text[:300]) return {ok: False, code: resp.status_code, msg: resp.text[:300]} try: return {ok: True, **resp.json()} except ValueError: return {ok: False, code: BAD_JSON, msg: resp.text[:300]} def image(self, image_bytes: bytes, top_k: int 3) - dict: return self._post( /v1/classify, # 示例路徑以文檔為準(zhǔn) headersself._headers(with_jsonFalse), files{image: (image.jpg, image_bytes, image/jpeg)}, data{top_k: str(top_k)}, timeout(3.05, 60), ) def text(self, text: str, top_k: int 3) - dict: return self._post( /v1/text_classify, # 示例路徑以文檔為準(zhǔn) headersself._headers(with_jsonTrue), json{text: text[:4000], top_k: top_k}, timeout(3.05, 15), )邏輯說明session從構(gòu)造函數(shù)注入而不是在類里 new 一個(gè)這樣測(cè)試時(shí)可以換成 mock生產(chǎn)時(shí)可以復(fù)用第 3 章配好的連接池和重試策略。參數(shù)說明_headers的with_json開關(guān)是唯一區(qū)分兩類請(qǐng)求的地方multipart 請(qǐng)求不能帶Content-Type這是 2.2 講過的坑抽象的時(shí)候特別容易統(tǒng)一成「都帶上」然后圖像接口集體 415。base_url用rstrip(/)處理避免路徑拼出雙斜杠有些網(wǎng)關(guān)對(duì)//v1會(huì) 404。4.3 成本與延遲的取舍本地預(yù)處理還是服務(wù)端預(yù)處理圖像走的鏈路里預(yù)處理放哪邊是個(gè)真實(shí)的決策。放本地省帶寬、省服務(wù)端算力但吃客戶端 CPU放服務(wù)端省客戶端邏輯但上傳的是原圖體積可能大十倍。策略上傳體積客戶端 CPU結(jié)果一致性適用本地縮放到目標(biāo)尺寸小中高可控批量任務(wù)、移動(dòng)端上行本地只壓質(zhì)量不縮放中低中需要服務(wù)端統(tǒng)一裁切的場(chǎng)景原圖直傳大無取決于服務(wù)端實(shí)現(xiàn)需要保留細(xì)節(jié)的細(xì)粒度分類我一般會(huì)先在本地壓到長(zhǎng)邊 1024、質(zhì)量 85 上傳再拿一批樣本對(duì)比「原圖直傳」和「本地壓縮」的分類一致性。如果一致性差異在可接受范圍內(nèi)就固定用壓縮版本單張延遲能降下來一大截尤其是弱網(wǎng)環(huán)境。這個(gè)對(duì)比實(shí)驗(yàn)花不了多少時(shí)間但能省掉后面反復(fù)懷疑「是不是模型不行」的折騰。5. 避坑與排查401、415、413、超時(shí)重放這四類翻車現(xiàn)場(chǎng)前面幾章都是順著成功路徑寫的這一章反過來按我踩過的順序排。每條都按「現(xiàn)象、原因、解決」寫遇到類似的直接對(duì)號(hào)入座。5.1 401 Unauthorized密鑰對(duì)了但就是過不去現(xiàn)象密鑰確認(rèn)沒復(fù)制錯(cuò)用 curl 試也失敗響應(yīng)體里寫著 invalid api key 或 missing authorization。原因通常有三個(gè)。一是Bearer和密鑰之間的空格被編輯器吃掉或者中間混進(jìn)了全角空格二是密鑰從環(huán)境變量讀出來時(shí)帶了尾部的換行echo復(fù)制的時(shí)候最容易帶上三是用了另一個(gè)產(chǎn)品的密鑰格式看著像但不是同一個(gè)認(rèn)證域。解決先打印repr(API_KEY)看首尾字符把不可見字符暴露出來如果尾部是\n或者\(yùn)r在讀取時(shí).strip()。再用 curl 獨(dú)立驗(yàn)證一次排除代碼層的干擾# 用環(huán)境變量傳密鑰避免密鑰進(jìn)入 shell history curl -s -o /dev/null -w %{http_code}\n \ -H Authorization: Bearer ${DEEPSEEK_API_KEY} \ https://api.deepseek.com/v1/models返回 200 說明密鑰和網(wǎng)絡(luò)都沒問題回到代碼里查頭字典返回 401 就換密鑰或確認(rèn)賬號(hào)權(quán)限。這行命令里的-o /dev/null丟掉響應(yīng)體-w %{http_code}只打狀態(tài)碼輸出干凈。5.2 415 / 400multipart 的 boundary 被自己弄丟了現(xiàn)象圖像上傳返回 415 Unsupported Media Type或者 400 說缺少 file 字段但字段名明明寫了image。原因頭字典里手寫了Content-Type: multipart/form-data。requests 看到你已經(jīng)設(shè)了這個(gè)頭就不再補(bǔ) boundary服務(wù)端拿不到分隔符把整個(gè) body 解析成一個(gè)空字段。這個(gè)坑在把文本和圖像調(diào)用合并成同一個(gè)客戶端時(shí)特別容易犯因?yàn)槟銜?huì)下意識(shí)地給兩類請(qǐng)求都加上Content-Type。解決multipart 請(qǐng)求的頭里只留Authorization讓 requests 自己生成帶 boundary 的完整頭。排查時(shí)打印resp.request.headers看Content-Type里有沒有boundary這個(gè)參數(shù)沒有就是這個(gè)問題。5.3 413 Payload Too Large圖像沒壓或者壓了但格式不對(duì)現(xiàn)象小圖能過大圖報(bào) 413或者本地明明縮放過上傳后還是 413。原因一是縮放用的resize保留了原始編碼格式PNG 截圖縮到 224 之后體積仍然不小二是只改了尺寸沒改質(zhì)量JPEG 以 quality100 保存一張 224×224 也能到幾百 KB三是服務(wù)端限制的是字節(jié)數(shù)不是像素?cái)?shù)你盯著尺寸看沒用。解決統(tǒng)一走 2.3 的normalize_image輸出固定為 JPEG、quality 可控、帶optimizeTrue并在發(fā)送前加一道體積閘門def guard(image_bytes: bytes, max_bytes: int 1_500_000) - bytes: # 超過閾值就降質(zhì)量重壓最多降三檔避免無限循環(huán) for q in (85, 70, 55): if len(image_bytes) max_bytes: break from PIL import Image import io buf io.BytesIO() Image.open(io.BytesIO(image_bytes)).save( buf, formatJPEG, qualityq, optimizeTrue) image_bytes buf.getvalue() return image_bytes參數(shù)說明max_bytes按接口文檔給1.5 MB 只是個(gè)保守起點(diǎn)三檔質(zhì)量是經(jīng)驗(yàn)值再往下壓細(xì)粒度分類就會(huì)掉點(diǎn)。5.4 超時(shí)后重試導(dǎo)致重復(fù)計(jì)費(fèi)現(xiàn)象賬單上的調(diào)用次數(shù)比實(shí)際圖片數(shù)多或者結(jié)果表里出現(xiàn)重復(fù)記錄且這些記錄的耗時(shí)都集中在某個(gè)時(shí)間窗口。原因讀超時(shí)被算進(jìn)了重試條件。服務(wù)端其實(shí)已經(jīng)處理完了只是響應(yīng)在路上慢了一點(diǎn)客戶端等不及重發(fā)于是同一張圖被處理兩次。原料里的示例沒有涉及重試但一旦你按 3.3 加了HTTPAdapter這個(gè)問題就會(huì)出現(xiàn)。解決Retry里把read設(shè)為 0只對(duì)連接錯(cuò)誤和 429、5xx 重試如果業(yè)務(wù)要求嚴(yán)格冪等就在請(qǐng)求里帶一個(gè)自己生成的request_id落庫時(shí)用它做唯一鍵重復(fù)的寫入直接忽略。這個(gè)字段在服務(wù)端不支持透?jìng)鲿r(shí)也沒關(guān)系客戶端側(cè)做去重同樣有效。5.5 排查順序從外到內(nèi)別一上來就懷疑模型遇到分類結(jié)果不對(duì)先別改代碼。按這個(gè)順序走一遍八成問題能在前三步定位先用 curl 驗(yàn)證密鑰和端點(diǎn)是否可達(dá)再用固定的一張樣本圖跑一次看響應(yīng)體的原始 JSON 長(zhǎng)什么樣然后比對(duì)預(yù)處理后的圖和原圖確認(rèn)沒被裁掉主體最后才看 label 和 confidence 的分布。把順序固定下來之后排查時(shí)間能從半小時(shí)壓到幾分鐘這個(gè)習(xí)慣比任何技巧都值錢。6. 進(jìn)階把分類調(diào)用做成可觀測(cè)的小服務(wù)跑通腳本和能上線之間差的是可觀測(cè)性。分類調(diào)用是個(gè)外部依賴失敗是常態(tài)沒有埋點(diǎn)的話你只能看到「今天結(jié)果少了」這種結(jié)論看不到是哪一類錯(cuò)誤在漲。我一般會(huì)在客戶端外面再包一層記錄四個(gè)字段請(qǐng)求 ID、端點(diǎn)、狀態(tài)碼、耗時(shí)。加上 label 和 confidence就能回答絕大多數(shù)運(yùn)營(yíng)問題比如「昨天的低置信度占比為什么翻倍」。表結(jié)構(gòu)大概是這樣字段類型用途request_idstring客戶端生成的 UUID重試時(shí)復(fù)用用于去重endpointstringimage 或 text區(qū)分兩條鏈路status_codeintHTTP 狀態(tài)碼0 表示網(wǎng)絡(luò)層失敗latency_msint端到端耗時(shí)含重試labelstring分類結(jié)果失敗時(shí)為空confidencefloat置信度用于閾值分布監(jiān)控埋點(diǎn)代碼不用復(fù)雜一個(gè)裝飾器就夠import time import uuid import logging log logging.getLogger(classify) def traced(endpoint: str): def deco(fn): def wrapper(*args, **kwargs): rid kwargs.pop(request_id, None) or str(uuid.uuid4()) start time.perf_counter() status 0 try: result fn(*args, **kwargs) status result.get(code, 200) if result.get(ok) else result.get(code, -1) return result finally: cost int((time.perf_counter() - start) * 1000) # 一行 JSON 日志方便直接被采集器解析 log.info({rid:%s,ep:%s,status:%s,ms:%d}, rid, endpoint, status, cost) return wrapper return deco邏輯說明request_id從外部傳入時(shí)復(fù)用重試鏈路里就能對(duì)齊同一次業(yè)務(wù)請(qǐng)求finally保證異常路徑也打點(diǎn)否則失敗樣本全丟監(jiān)控就成了只報(bào)喜不報(bào)憂。參數(shù)說明耗時(shí)用perf_counter而不是time.time避免系統(tǒng)時(shí)間調(diào)整帶來的負(fù)數(shù)狀態(tài)碼在業(yè)務(wù)失敗時(shí)取自定義 code網(wǎng)絡(luò)層失敗統(tǒng)一記 0方便聚合。這套東西的另一個(gè)用法是回歸驗(yàn)證。接口或模型更新后拿一批固定樣本跑一遍比對(duì) label 變化率和置信度均值偏移比肉眼看幾個(gè)案例靠譜得多。我吃過一次虧換了預(yù)處理里的resize為ImageOps.fit忘了看長(zhǎng)圖樣本結(jié)果一批豎版商品圖被裁掉了底部文字分類整體偏了一檔兩天后才發(fā)現(xiàn)。從那以后我每次改動(dòng)預(yù)處理參數(shù)都強(qiáng)制走一遍固定樣本回歸比對(duì) label 和 confidence 的分布再發(fā)布。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
96国产污污污丝袜| 亚码激情| 日日干男人的天堂| 国产在线视频二区| 四虎视频在线观看| 91精品人妻电影| 加勒比少妇AV婷婷六月天超碰超碰| 欧美在线永久天堂| 久久乐| 色淫网站优优视频| 色哟哟-国产专区| 九月激情婷婷| 天天爽入口| 丁香五月久久| 国精精品无码一二三区水多多| 99久在线精品99re8热视频在线| 干婷婷综合网| 狠狠爱大香蕉| 情侣操 逼视频99| 欧美第一页性| 亚洲一区二区精品福利| 91精品人妻一品二品三品| 狠狠干狠狠色| 国产精品亚洲无码| 久久夜夜| 国产精品粉嫩福利在线| 欧美久久婷| 99热18这里只有精品| 国产精品91一样| 欧 美 自 拍 偷 拍| 九九九九九九九九九国产精品| 77777亚洲蜜臀精品久久综合蜜臀| 搞中出久久| 国产三级资源在线观看| 欧美亚洲特P| 中文字幕视频免费| 91精品人妻一区二区三区蜜桃臀 | 久久久久亚洲精品| 99久热| 国产无吗在线播放| 综合五月天| 青青操视频在线| 九七毛片九九毛片| 欧美色图私拍91| 色综合色欲色综合色综合色综合| 亚洲国产精品成人久久蜜臀| 9精品久久久久| 欧美情色贴图| 青娱乐av在线| 日日夜夜天天| 亚洲 图片 综合91| 日韩一级二级三级在线不卡观看完整| 欧洲乱码一区二区| 国产福利夜| 天天天肏屄欧美| 天天干天天日天天射黄色片| 九九九九免费高| 97免费在线视频在线观看| 大香蕉97久久| 十八禁啪啦拍视频无遮挡| 91人人臊| 新版天堂中文资源8在线| 欧洲一级性爱视频在线观看| 曰韩欧美国产传媒麻豆第一区| 91久热这里只有精品| 久久精品天美| 亚州操操穴网| 日韩天天本| 91精品久久久久久| 亚洲综人网| 国产福利夜| 韩日精品福利视频一区不卡在线免| 97热视频在线观看| 91丝袜视频在线观看| 五月天AV资源| 狠狠久久手机视频精品| 亚州熟女乱伦| 黄片在线免费在线观看| 久久久久国产无av| 老熟妇综合| 男人的天堂无码| 97在线欧洲| 天操天操夜操夜月月年年操操| 丰满少妇一区二区三区四区观看| 夜夜国自区| a亚洲欧美色欲| 影音先锋国产精品| 欧美日韩色图片| 成人一区二区三区四区| 大屁股人妻女教师撅着屁股| 久热伊人| 天天综合网亚洲综合网| 欧美精品成人一区二区在线观看| 大香蕉乱伦视频网| 91男同| 一区二区三区免费视频入口| 亚洲不卡AV在线| 青青草玖玖爱| 四虎午夜影院| 亚洲精品蜜桃久久久一区二区三区| 噜噜噜亚洲精品| 91综合在线| 久久香蕉国产线看观看猫咪av| 久久手机视直播| 精品乱码在线观看| 夜夜高潮夜夜爽夜夜爱爱一区| 91av一区二区在线观看| 96免费视频在线| 亚洲熟女av中文字幕| 国产一区自拍欧美日韩| 欧美亚洲影视| 欧美午夜视频免费观看| 岛国AV一区二区电影| 欧美亚洲日韩16色| 国产理论视频在线播放| 欧美一区91大爱| 成人情色综合网| 一本一道vs波多野结衣| 一区二区视频你懂的| 久久精品人妻一区| 乱伦日本色图AⅤ| 欧美激情片一区二区| 国产真实子伦对白| 韩国一级婬片A片AAAAA| 91AV国产精品| 九九热精品在线| 精品亚州18| 男女激烈网站最新| 久久99精品九九久久久婷婷| 国产宅男宅女在线观看| 久草精品热视| 亚洲精品一二牛牛| 久草男人天堂| 欧美疯狂做爰xxxx| 超碰免费人妻在线| 91九九九小逼| 美国精品国产精品| 青草视频人妻在线观看| 国模少妇一区二区三区| 日本 情色 1区| 大屁股xxxxx| 欧美手机在线综合| 狠狠穞A片一區二區三區| 夜夜操夜夜高潮夜夜爽国产精品区| 欧美一区二区观看在线| 97香蕉网| 97在线资源| 强奸乱伦av电影| 天操天操夜操夜月操月年年操操| 亚洲综合成人网| 中国熟女网站| 久悠悠av| 久久精品三级影视| 中文字幕欧美丝袜07资源| 狼天天狼天天大香蕉| 亚洲综合999| 欧美亚洲一区二区久久久婷精品大包诱| 91综合在线| 欧美78| 国产成人无码网站在线视频| 手机看片91人妻| 一区,二区,三区网站| 免费亚洲黄色视频在线观看| 日韩啪啪视频| 欧美肥臀在线| 97国伦国色| 久久精品国产亚洲AV嘿嘿| 久久一二三四不卡 | 五月情色天| 青青草日本中文字幕| 日本护士高潮| 精品亚洲一区在线观看| 好爽视频在线观看| 91精品久久久久久77777| 中文字幕一区日韩精| 亚洲一区二区在线观看91| 亚洲 另类 丝袜 自拍 动漫| 夜夜操狠狠操| 思思热在线| jk白丝没脱就开始啪啪| 成人欧美日超碰| 亚洲av乱伦色图网站| 日韩兔费看黄片| 加勒比综合a∨| 亚洲 中文 女同| 5月婷婷6月六月丁香| AV乱伦专区| 三及片网站| 欧美色综合图片| 久久的网站啊啊啊啊啊| 有码免费观看| 超碰 97国产熟女| 欧美日韩性爱无码| 久久草草亚洲蜜桃臀| 国产精品白丝AV| 日韩人妻精品中文字幕| 久久久性爱视频| 盗摄 精品 另类 一区| 探花熟女,姿勢到位,體驗感也到位| 大肥女高潮bbwbbwhd视频| 中文字幕av一区二区三区人妻少妇| 精品国产72| 亚洲欧美国产其他二区| 日韩激情啪啪| 国产精品蜜乳AV| 一区二区三区亚洲| 人人操人人色人人摸| 色眯眯av| 国产后入清纯| 大但人体久久久久| 欧美韩日精品99综合| 校园春色亚洲欧洲| 欧美熟妇视频| 久久9久9久99久9久9| www99热| 婷婷午夜| 欧美久久毛片基地| 欧美日韩国产男人| 农村妇女精品一区二区| 欧美色一二三| 人人噜夜夜操| 蜜桃臀久久| 久久人妻一区二区三区高清| 老熟女综合网 | 新亚洲无码| 婷婷超| 一本色道无码DVD中文字幕| 高清无码久操视频| 欧美亚洲一级在线观看| 婷婷五月天激情网| 国产五码丝袜屁眼| 人妻 欧美亚洲| 9 1超碰九色| 丰满少妇精品一区二区| 大色综合| 又大又长又粗又爽又黄| 再深点灬舒服灬太大了好硬好爽| 91丨国产丨白浆| 操操操操网黑人| 亚洲天堂另类| 91精品人妻偷情| 韩国一级婬片A片无码天美| 日本日逼高清| 99亚洲天堂| 日韩一999精品| 久久精品天美| 丝袜足交视频| 99自拍视频在线观看| 欧亚洲精品有视频| 久久久禁| 久久东京热久久| 岛国免费视频在线| 91黑人无码激情在线| 口爆综合网| 搡老女人老91妇女熟女| 大香蕉久久| 97精品一区二区三区免费| 亚洲熟伦熟妇AV无码春色| 国产特级毛片AAAAAA高潮流水 | 十八禁av无码免费网站APP| 日本性爱不卡视频| 清纯唯美激情四射| 极品美女嘿咻| 九色精品视频导航1| 日韩精品一二三四| 一区 欧美 日韩 麻豆| 欧美极品少妇| 国产午夜福利专区综合| 日韩无码嘿咻黑热久| 欧美在线色| 亚洲天天在线| 五月婷婷AV| 目产99999久久999| 69av一区二区三区| 色丁香五月婷婷| 91男人天堂网| 啪啪视频亚洲第一| av久日| 99久久久无码国产精品性啊聊| 色五月综合网| 久久华人网| 无遮挡一级毛片视频免费的| 亚州色交| 男人的天堂va| 97人人射| 国产综合久| 亚洲超碰AV| 天天日天天操VV| 97色伦97色伦国产欧美| 精品超碰中文在线| 91在线视频国产网站| 天天弄天天操| 国产又粗又长又大的视频| 欧美顶级黄色大片免费| 伦在线97| 色天使亚洲综合在线观看| 免费农村成人少妇人妻Aa一区二区视频 | julia中文字幕在线观看| 无码天堂| 人妻密肉在线观看| 欧美真人抽搐一进一出gif| 精品久久視頻在线| 日日操夜夜操天天操免费观看麻豆| 91强奸乱轮| 久久 久久国内精品亚洲| 亚洲囯产精品女人久久久| 极品后入免费视频| 99精品欧美一区二区三区桃色| 精品小视频在线| 色综合国产在线观看| 精品人人| 八戒午夜福利理论片| 偷拍在线观看视频| 欧日a| 麻豆天天躁天天揉揉AV| 偷窥自拍亚洲色图| www.99中文字幕| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 色色99| 久久伊人最新网址视频| 四虎在线观看网站| 99久久网站| 嗯嗯不要视频| 狠狠干精品一二三四五六2022| 一级日本牲交大片好爽在线看| 在线观看午夜婷婷久久久久清性观看| HEYZO高无码国产精品227| 人乳av| 人妻激情偷乱视频一区二区三区 | 无码乱人伦中文视频| 国产av色网| 欧美性猛交美女自慰91| WWW操逼| 中文字幕诱惑制服人妻丝袜美丝袜美 | 97亚洲国产影视| 又粗又长又爽在线观看| 欧美96精品在线| 69人妻精品丰满熟女区| 国产精品熟女丝袜一区二区| 国产精品美女视频诱惑| 日本高清视频在线观看黄已三辽| 99999久久久久9国产精品| 免费福利视频中文字幕| 色图综合网| 久久久久久久9最新免费视频观看| 九九色图| 久久久久久日韩| 蜜臀99久久国产| 久久精品老司| 七久久久| 色爱三区| 国产精品69久久久久久久| 九九九九九九九九九九九九九九九女| 五月丁香综合| 久久毛卡| 亚洲天堂五月天国产| 997色在线| 曰本精品久久久| 色色色欧美| 操操吧亚洲乱伦视频| 91丰满| 粉嫩久久久久| 老汉网| 欧美少妇熟女| 精品国产肉丝袜在线拍国语| 日本性爰一道本| 2021国产成人精品久久| 男人的天堂99| 欧美后入式| 精品无码久久久久| 欧美日韩人人早| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 欧美日韩人妻精品一区二区三区| 久久99草| 东北老女人的激情视频| 国产老熟女| 麻豆精品久久久久久久| 婷婷丁香六月| 丁香六月婷婷综合| 99在线观看| 欧美精品久久久久久久久88| 国产网红精品| 国产一区二区a毛片| 久久精品国产精品一区 | 国产精品亚洲一区二区三区四区| 日韩免费看黄片| 嫩草影院在线观看精品| 久草国产在线视频| 韩国成人精品久久久免费看| 日韩无码三级影院| 国产 亚洲 丝袜 制服| 欧美成人A√在线一区二区| 精品一区二区三区国产| 熟女激情综合网| J?P?NESEHD熟女熟妇伦| 国产一区二区成人av在线播放| 中文字幕97| 国产成人拍国产亚洲精品| 成人性爱免费播放| 家庭乱伦性爱av| www.99中文字幕| 久久香蕉国产线看观看猫咪av| 手机看片1025| 天天日天天舔天天喷天天射| 99.色网| 午夜精品久久久久久久99热影院| 精品国产久久乱码| julia国产在线| 亚欧成人一级片在线播放| 99热在线观看| 黄色av片三级三级三级免费看| 97国产高清视频在线观看| 97香蕉碰碰人妻国产欧美| 成功精品影院| 人妻丝袜肏逼| 青青久草| 亚洲无线码欧洲精品区别| 国内精品a| 国产综合操逼高清| 亚洲 se图 欧美电影| 91欧美丨精品丨入口| 欧美97av| 中文字幕第9页萱萱影音先锋| 丰满人妻一区二区三区性色| 色婷婷综合网站| 另类亚洲图色| 欧美色干| 无码日韩人妻av一| 久久免费老司机精品| 啊操爽品善一区二区三区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 亚洲国产精品99久久久| 亚洲九九夜夜| 欧美亚洲高清不卡| 人妻一区二区三区熟女| 欧美大香蕉同搞| 97国产色综合| 蜜桃传媒视频第一区入口在线看| 欧美色www亚洲国产阿娇要播| yellow网站免费观看日韩高清无码| 色综合久| 久久人妻无码毛片A片麻豆| 淫荡网址| 精品久久久亚洲AV成人网站| 秋霞鲁丝午夜无码一区二区三| 亚洲 在线| 男人高清无码一区二区| 婷婷色香| 亚洲欧美色图| 思思热在线| 综合大香蕉美。| 三级特黄60分钟播放| 亚洲熟妇极品| 九九九九九九精品| 肉嘟嘟www视频在线观看高清| 人妻精品综合中文字幕在线| 美女91网| 柠檬AV导航| 欧美大片天天看| 欧美AAAA黄片| 青娱乐亚洲热| 青娱乐淫乱1314| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 男生女生啊啊啊啊| 亚洲福利影院一区久久| 久久人人妻| 亚洲av资源| 日韩无码成人电影| 久久在肏| 亚洲精品丝袜-不卡成人免费……| 97射欧美| 成人电影一区| 超碰色图| 97九色人妻| 97超碰欧美中文字幕| 99热这里只有精品8| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 91久久免费视频互動交流| 久久久啊啊啊| 爱做久久久久久| 婷婷探花久久精品一区| 九九久久99| 欧美国产婷婷久久| 1024亚洲中文字幕久在线看片你懂的| 国产精品直播在线观看直播| 自拍二页| 欧美一区二区观看在线| 天天碰久久入| 天天色香欲综合网| 91人妻最真实刺激绿帽| 色眯眯av| 曰韩无码777| 美女久久久| 一区麻豆 高清中文字幕| 国产乱伦性爱区| 日本中文字幕熟妇| 狼天天狼天天大香蕉| 98人妻精品一区二区色欲| 欧美暴力猛交| 国产成人综合网| 玖草在线视频| 天天操天天谢| 精品女人999| 最新av网站在线观看| 骚女高跟AV在线| 欧美精品999| 日韩成人无码| 日韩淫色网| 久久久无码国精品无码三区三区| 国产无吗在线播放| 日本高清视频在线观看黄已三辽| 97精品一二区| 国产超碰人人爽人人做| 国产毛片片精品天天看视频| 91超碰在线播放| 操狠狠| 久久精品国产亚洲AV片多多 | 亚洲成人福利电影免费 | 精品一区二区三区蜜桃臀赵总 | 中国的操老妇女| 色色色综合网| 超碰成人最新最好看| 欧州91高潮| 啊啊啊啊啊好舒服视频| 岛国小电影| 自拍鲍鱼一区在线高清观看免费| 2018天天日天天日| 黄色交缠性感爆操91国产精品免费一区二区三区 | 动漫av中文| 亚码激情| 一级黄色影片| 日韩午夜精品一区二区三区电影| 亚洲黄色视频在线观看视频| 麻豆av一区二区| 日韩不卡一二三四| 99蜜桃臀亚洲成人在线观看| 又黑又大又粗| 99欧美| 操逼网站地址| 盗摄女人妻在线| 自拍偷拍草一草| 美女久久久久久久久久久| 十八禁电影伊人网| 色www精品视频在线观看| 国产夜夜艹| 欧美图片偷拍| 一本道综合色图| 3p国产色噜噜一区| 亚洲人妻中文高清| 午夜福利精品| 黄色网址在线免费观看| 天天操夜夜操狠很操| 日本视频在线中文字幕| 亚洲色图超碰在线| 久久久草成人网站久久久草成人久久久草久久久| 国产欧美岛国精品一区| 影音先锋视频在线| 天天摸夜夜添无码小视频| 91大神精品长腿在线观看网站| 一区二区不卡视| 99在线精品视频| 97天天操| 日韩性爱啪啪视频| 日韩欧洲操屄视频| 黄色激情电影在线观看| 操逼片国产| 精品亚洲国产成人精品| 强奸乱伦动态污图免费| 97人人模人人爽人人| 六月丁香久久| 久久麻豆一区二区| 欧美日本久久精品一区 | 一二三区操逼国产91| 国产一区二区三区高清视频| 91一区二区三区蜜桃| 久久av无码| 丁香六月激情| 一区二区三区精品久久| 日本一级黄色电影| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产精品久久久吖| 人人艹亚洲| 手机在线中文字幕国产| 久久久国产成人一区二区三区在线| 国产伦乱91| 亚洲色五月| JULIA人妻风俗店中出电影| 97精品久久久久久久| 97精品综合久久网| 天天综合~91| 日韩熟女三十乱伦| 性在久久久久久| 色婷婷色99国产综合精品| 日本三级久| 日本黄色裸日本黄色裸体| 丰满熟女人妻一区二区三五十一路| 蜜屁av| 在线播放成人高清免费视频 | 丰满精品人妻少妇久久字幕| 啊啊啊男女| 亚洲色图91| 国产精品久久久久亚洲av| 99热综合| 久久噜| 91精片| 天天干天天操天天干天天操| 久热69九色熟妇97| yazhouzaixian| 国产精品久久久 | 三级网站超变态精品| 午夜九九| 少妇一级婬片免费放一级a性色.| 99热这里| 欧亚韩国999| 日本潮催一卡操| 丁香六月激情综合| www被窝色com| 人妻二区| 夜夜操天| 天堂性色| 亚洲操人| 97超色| 草莓精品视频在线免费观看| 校园春色 男人天堂 | 国产精品久久久久av| 亚洲 欧美 小说| 精品福利| 激情婷婷五月天| 国产三级中文字幕粉嫩| 人人操人人摸人人看人人插| 九九热九九热| 搡老女人老91二区| 欧美精品999| 青青草影视蜜久久| 成人免费福利网站国产| 欧美伦乱爱| 网站A V在线| 久久理论字幕视频| 女人综合网| 久久乐| 中文字幕AV中出| 欧美视频在线视频免费va| 欧美日韩人妻婷婷一区| 无码人妻精品一区二区中文| 1二区9| 激情黄色片在线观看| 九九九网页| 亚洲色图亚洲| 欧美性爱97超碰| 黄片www视频免费| 欧美黄页在线| 伊人影院日本| 国产a级精品| 无码一区免费在线不卡| 日韩二三区| heyZO天然素人无码AⅤ专区| 二对二中文字幕。| 亚洲成人性爱网站在线播放| 东北女人操比视频| 91快色色色色色| 色99久草| 九九伊人网| 91综合色噜噜| 污污污8888| 大香网站| 欧美色综合网| 久久久久久性爱片| 波多野结衣一级视频| 97视频在线免费播放| 欧美日韩中文亚洲v在线综合| 99在线观看视频在线高清| 天天流夜夜操| 日本三级A片网站com| 999熟女精品| www.五月天| 欧美十八禁视频| 成人久久久精品| 97电影院超碰| 中文字幕日韩精品久久| 免看60秒涩涩视频| 天天欧美色| 亚洲色图欧美色图日韩色图| 亚洲风情综合网| 欧美性天天影视| 国产一区在线观看无码AV| 亚洲另类色综合网站| 丰满欧美少妇| av午夜影院在线播放| 国产97亚洲| 97超碰在线资源网站| 一起草AV| av天堂精品久久| 天天躁日日躁狠狠狠躁| 久久有碼| 99在线免费观看| 先锋激情∨在线视频播放| 日本 情色 1区| 日本99一区二区| 99婷婷| 日本欧美一区二区三区免费| 91性感在线| 免费亚洲国产精品久久一区| 玖玖97综合| 国产三级日产三级韩国三级| 日本人妻最新在线中| 欧美日韩亚洲国产中文永久天天看| 蜜臀久久99精品久久久老,,| 色哟哟511老熟女| 欧美黄色手机在线观看| 97久久超碰日韩精品| 久噜噜| 97操97色| 九九内射在线| 91精品国产麻豆国产自产在| 国产亚洲精品美女久久久| 欧美乱欲| 久久久999国产精品| 欧美大片天天看| 亚洲综合影视| 美腿色图| 中文字暮97| 五月天婷婷基地| 亚洲无线码一区国产欧美国| 手机在线播放国产福利| 国产精品久久aV| 无码人妻1727| 欧美激情精品| 东北女人性交| 91男女| 91国产伊人大香蕉| 九九九精品色乱九九九| 久久精品夜色国产亚洲AV| 国产农村妇女精品一| 又黑又大又粗 | 97AV在线观看| 色臀AV| 亚洲美女精品九九视频| 久操频道免费在线呗看| 亚洲校园激情| 欧美色蜜桃97| 日本道人妻久久久在线不卡色视频| 屁股久久久久久久久| 国产精品久久久久久久久久久久久久久| 亚洲美欧999| 亚洲黄日韩无码专区| 亚洲中文字幕乱码无码一区二区| 一区二区三区 丝袜 高跟 美腿| 亚洲91极品| 丰满人妻一区二区三区在线| 色哟哟-国产专区| 日韩av色图综合| 日夜干射色啊| 欧洲精品欧洲精品| 久久亚洲日韩国产欧| 蜜桃AV天堂| 久操视频这里只有精品| 精品国产乱码久久久A| 最近二区三区视频大全| 人人摸人人入| 日本三级一区二区 在线| 99re公开精品免费视频| 欧美性爱系列| 懂色AV一区二区三区| 亚洲AO在线| 狠狠亚洲| 秘书高跟黑色丝袜国产91在线| 精品国产乱子伦一区二区三区,精品一| 少妇的嫩逼图片| 亚洲精品久久久久毛片A片拉屎| 凹凸视频在线一区二区| 人人操人人摸人人看人人干| 岛国精品视频在线观看| 你操综合| 欧美色自拍| 上床啊啊啊| 欧美性爱日韩高清| 欧美亚洲日本视频久久久 | 亚洲欧美洲综合| 人人么人人操| 在线精品福利免费播放| 超碰 97国产熟女| 亚洲视频二区| 欧美AB在线| 日韩人妻制服丝袜av| 色噜噜狠狠色综合日日| 久插不卡| 国产精品丝袜在线| 人人看人人爰人人操| 激情色色| 大香蕉啪啪啪啪在线| 人妻激情视频| 91深夜夜| 麻豆蜜桃视频在线观看| 天美麻豆黄色录像| 日韩免费a级毛片无码a∨| 秋霞无码av鲁丝片一区| 日韩另类色图| 熟女熟妇一区二区三区视频| 精品久久久av无码免费| 人人考人人摸人人干| 久久精品72| 麻豆AV一区二区天美传媒| 密乳无码| 97欧美精品综合| 欧美se综合| 丝袜剧情| 青青草国产盗摄一二三区| 亚洲se91| 色5月婷婷| 制服丝袜第二页| 黑人精品XXX一区一二区| 色婷五月天| 中出20p| av在线免费一区二区| av在线人气| 人妻欧美| 无码又爽又硬又激情免费视频| 噜噜噜亚洲精品| 久久精品 六十路 熟女 欧美| 97色色网| 日韩一卡二卡三卡| 制服乱伦| 人妻喷水| 中文自拍欧美影视| 蜜臀av中文字幕| 亚洲 自拍偷拍 欧美| 色第一页| 美女裸体无遮挡永久免费观看网站| 99无码视频| 伊人性在线视频| 国产精品一区二区 尿失禁| 熟妇高潮精品一区二区三区下载| 91人精品妻入口| 亚州成人A√| aaa亚无码专区| 久视频在线观看| 又粗又长又大国产不卡| 日本熟妇熟色97一本在线观看| 精品日韩| 亚洲天堂人妻一区二区| 久久夜夜| 粘花网06av视频| 999精品国产高清一区二区| 玖玖综合色| 伊人专区一区二区三区| 中文字幕97色| 日本操逼视频导航| 国产AB视频| 国产福利精品最新在线| 九t超碰| 精品妇女一区二区三区| 97在线免费观看视频| 精品人妻夜夜草| 51久久夜色精品国产麻豆| 在线观看视频91| 日韩在线观看字幕精品| 国产三级中文字幕粉嫩| 五月激情小说| 伊人网免费视频| 好舒服视频| 国产精品99久久久www| 9 1果冻精品视频| 日韩成人色图| 精品国产91av一区二区三区 | 综合av社区| 91精品久久久久久久久久| 久久99精品视频| 久草成人| 亚洲一二三| 91一起操| 日本黄大片在线观看视频| 久久久专区| 狠狠狠狠狠狠| 亚洲春色欧美激情自拍| 91伊人久久在线| 吉川爱美亚洲二区在线| 九九热五区| 骚日日av| 天天躁日日躁xxxxx| 大香蕉日亚洲日本亚大 | 香蕉免费一区二区三区不读 | 青青草啪啪网| 激情四射五月天| 黄片视频观看| 少妇丝袜在线观看AV| 天天影视色香色欲| 色就色综合| 九九热av| 高清肉丝中文无码| 女优视频第10页| 91在线超高颜值国产| 色淫网站优优视频| 91日产欧美| 校园春色 男人天堂 | 日日夜夜草草草| 婷婷大香蕉| 啪啪AV导航| 91欧美大片| 亚洲性刺激| 97在线青| 蜜桃精久三区| 口爆综合网| 亚洲色诱惑| 乱欲一区二区| 亚洲图片色图欧美另类| 69精品| 婷婷久久久精品| 久久99精品九九久久久婷婷| 久久久工口| 天天日天天插| 一区二区娱乐网站| 中文字幕91页| 99久久精品无码一区二区毛片免费| 麻豆av一区二区| 啊啊啊啊啊啊啊在线| A啊啊在线观看| a男人的天堂| 91亚州日韩高清| www色色色com| 高清无码国产亚洲| 午夜电影在线观看无码专区| 中文字幕一区二区免费在线| 国产在线观看一区二区三区| 欧美姓爱综合网| 婷婷20月天青娱乐| 天操天操夜操夜月月年年操操| 亚洲欧美一区二区不卡视频播放 | 强奸乱伦AV一天堂网| 久久久人妻| 欧美综合网在线| 狠狠爱大香蕉| 性色A∨91| 九九九九亚洲| 91日产桃蜜| 日韩精品亚洲一二三| 欧美,日韩,中文,另类| 天天干夜夜肏| 白嫩妹子国产骚| 亚洲欧美啪啪| 日韩欧美三级| v91av| 97精品网| 日韩免费中文字幕视频| 五月丁香黄色网| 人人干黄色| 乱伦图av| 91精品无码人妻系列| www.久久久久| 午夜精品一区二区三区三上悠亚| 精品久久視頻在线| 日本三级人妻a人妻一在线| 国产有码一区| 久久超碰网| 91天天综合日韩欧美| 男人久久天堂| 日日操免费视频| 久久国产热视频97电影| www.av在线观看| 国产九月婷婷| 综合久欧洲| 日韩精品电影| 日韩无码第3页| 无码国产精品96久久久久孕妇| 久久成年片色大黄全免费网站| 国产女s强制榨精视频| 91九色蝌蚪在线观看| 日本肏逼视频在线观看| 色性综合| 淫乱图区 | 色情婷婷| 操我啊啊啊啊啊| 国产丸一视频| 色悠久| 综合久久久久久久综合网| 欧美日韩性爱视屏免费看了| 女优免费一区二区永久| 99999精品成人| 精品二区三四区五电影| 天天综合~91| 亚州免费啪啪视频| 97精品综合久久| 国产性刺激| 东京男人天堂| 欧洲黄色网| 久久久婷婷婷| 九九九久久久久| 操熟女91| 日韩美女操b| 亚洲老熟妇xxx| 成人片视频| 国产后入| 国产精品熟女丝袜一区二区| 99国产在线绯色一区| 亚洲少妇自拍中文字幕懂色| 麻豆国产精品午夜视频| 丰满的三级少妇欧美久久久| 麻豆天美制片厂网站视频| 亚洲天在线| 久久东京伊人一本到鬼色| 亚洲91极品| 欧美亚洲清纯| 中文字幕,人妻,日韩| www.狠狠| 久草老司机| 高清国产精品无码| 欧美极品女人的天堂| 超碰到97情色| 7777奇米影视久久| 人妻久热在线| 欧美色九九| 天天草天天干天天日| 日本一天色道久久久精品视频| 欧美综合网A| 无码自拍SM| 亚欧美综合网。| 国产一区二区三区白丝| 日韩三四五区| 97亚洲在线| 久草五月| 亚洲做性| 亚洲女毛多水多21P| 亚洲精品国产av天美传媒| 日韩成人高清一区二区| 亚洲色五月| 欧美 色 亚洲| 婷婷五月激情综合| 好爽要喷了| 搡老人老9丨女老熟人| oumeizonghese,www| 色哟哟 日韩精品| 看看小穴| 免费精品无码一级毛片牛牛影视 | 91n免费处女| 国产精品自拍xxxx| 嗯嗯啊啊好大好爽| 亚洲欧美自拍偷拍| 日韩美女高潮喷水视频| 日韩av不卡在线看| 欧美国产有色电影| 日本三级一区二区 在线| 欧美中文狠| 草草网站影院白丝内射| 久久综合av| 日韩精品 视频一区二区| 天天看高清麻豆| 国产野战露脸在线播放| 欧美视频激情久久久久久| av网站在线观看了| 欧美天天综合站| 亚洲超碰AV| 亚洲成人在线乱码色午夜| 激情五月天丁香| 97免费在线| 欧亚第一综合网| 免费的很黄很污的全部视频| 久草久日| 操91| 思思久热在线精品66| 亚州色图狠狠干| 五月婷网站| 成人情色综合网| 久久国产三区| 欧洲亚洲国产综合在线| 99精品人人爽| 91色婷婷综合久久中文字幕二区| 热热色91| 天天看人人操屄犊摸阴| 狠狠色狠狠色狠狠五月| 亚洲精品蜜桃久久久| 欧美极品女人的天堂| 人人操人人色人人摸| 久久超碰av在线| 69人妻精品一区二区绯色| 另类图片欧美激情综合| 久草精品视频| 天天干天天插| 99这里只有精品国产| 另类老少妇| 97综合在线观看| 国产熟女免费观看久久| 精品人妻一区二区三区免费视频| 日本免费不卡二区| 强奸乱伦Av网| 91春色| 一区二区三区四区在线不卡| 国产高清1234区| 美国日韩黄色片| 狠狠婷婷亚洲中文综合久久| 日韩97视频| 九九久久一区二区三区| 伊人久操| 国内偷拍精品一区二区| 中出20p| 日韩激情视频| 色色色网站| 亚洲色图尤物视频| 久久二| 精品人妻一二三四区视频| 亚洲av夫妻操穴网| 操逼逼福利视频| 99久久无码| 色欧美在线| 中文字幕女同在线| 婷婷香蕉欧美在线一区二区三区| 免费观看国产不卡av| 国产91 丝袜在线播放00-百度| 激情五月天校园春色网| 白丝1区2区3区| 激情综合婷婷| 成人aⅴ一区二区三区| 亚洲无码com| 992大香蕉| 智利AV在线网| 一区二区三区 丝袜高跟| 欧美日不卡| 五月丁香综合啪啪| 国产大学生口爆吞精合集| 日韩在线观看三级电影| 日韩BBN| 久久久久婷婷精品av电影| 10000部十八禁看电影| 国模限制级电影| 亚洲丁香花色| 色综合网1| 国产精品无码在线| 性久久| 国产成人精品必看 | http://qxhbdz.com| 99无码视频| 日本午夜久久电影| 久久久久国产精品喷潮免费观看臀 | 91欧美网| www.久久最新地址| 精品三级在线专区| 美女黄网| 久久久久久九九九| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 欧美日韩性爱精品| 伊人黄色视频免费观看| 脫衣舞一区二区三区| 在线色导航| 91碰超| 十八岁啪啪视频免费看| 日韩操逼HD| 温婉少妇玩3p| 人妻中文字幕日韩电影| 亚洲 国产 精品一区| a级成人毛片免费视频高清| 天天视频综合在线观看视频| 色色香蕉| 国产男女无套视频免费观看| 抽插无码高清一区| 丁香九月激情啪| 婷婷久久五月天| 麻豆久久视频在线地址| 99热超碰| 亚洲限制级| 大香蕉92| 97亚洲色图| 91色色网站|