色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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í)踐指南聚焦通過(guò)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í)說(shuō)明成功響應(yīng)中標(biāo)簽與置信度的解析方式以及無(wú)效密鑰、負(fù)載格式異常等常見(jiàn)錯(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 說(shuō)起這份調(diào)用指南真正解決的是鏈路問(wèn)題第一次把 DeepSeek 的圖像分類接口接進(jìn)項(xiàng)目報(bào)錯(cuò)不是模型分錯(cuò)而是 401——密鑰被拼進(jìn)了 URL 而不是請(qǐng)求頭。這份《DeepSeek API 調(diào)用指南》解決的正是這類問(wèn)題它不講模型結(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)比很多抄來(lái)抄去的教程靠譜。2. 請(qǐng)求鏈路拆開看Bearer 鑒權(quán)、multipart 上傳與 224×224 預(yù)處理把一次分類調(diào)用拆開其實(shí)只有四段拼請(qǐng)求頭、準(zhǔn)備 body、發(fā)出去、解析回來(lái)。四段里出錯(cuò)概率最高的是第二段因?yàn)閳D像和文本的 body 形態(tài)完全不同一個(gè)是二進(jìn)制表單一個(gè)是 JSON。選錯(cuò)形態(tài)服務(wù)端要么返回 415要么解析出一堆亂碼。這一章先把鏈路上每個(gè)零件的形狀說(shuō)清楚后面寫代碼才不會(huì)靠試。2.1 密鑰與請(qǐng)求頭Bearer 的三種寫法與唯一推薦API 密鑰在原料里被描述成「注冊(cè)登錄后拿到的一串字符串」它在 HTTP 層的角色就是身份憑證。常見(jiàn)做法是放進(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)字面量。下面這段用來(lái)做連通性自檢發(fā)一個(gè)輕量請(qǐng)求能拿到 200 就說(shuō)明密鑰、網(wǎng)絡(luò)、DNS 三段都通再去調(diào)分類接口就不會(huì)把環(huán)境問(wèn)題和業(yè)務(wù)問(wèn)題混在一起排查。import os import requests # 密鑰從環(huán)境變量讀取不寫死在代碼和倉(cāng)庫(kù)里 API_KEY os.environ[DEEPSEEK_API_KEY] headers { # Bearer 后面必須有一個(gè)空格這是最常見(jiàn)的 401 來(lái)源 Authorization: fBearer {API_KEY}, # JSON 請(qǐng)求體時(shí)手寫這一行上傳文件時(shí)千萬(wàn)別手寫見(jiàn) 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)邏輯說(shuō)明先做一次 GET 自檢把「認(rèn)證失敗」和「分類失敗」兩類問(wèn)題隔離開。參數(shù)說(shuō)明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)在原料里沒(méi)展開但它是新手最?;煜牡胤?。2.2 圖像為什么必須走 files 而不是 json原料給的示例用files上傳圖像而不是把圖像塞進(jìn) JSON這個(gè)選擇不是隨意的。二進(jìn)制數(shù)據(jù)進(jìn) JSON 必須先 base64 編碼體積會(huì)漲大約三分之一服務(wù)端還要多做一次解碼兩端都虧。業(yè)界常見(jiàn)三種上傳方式取舍如下方式體積開銷服務(wù)端處理成本適用場(chǎng)景multipart/form-datafiles幾乎無(wú)膨脹低流式解析單圖、小批量、原型驗(yàn)證base64 塞進(jìn) JSON約 33%需要解碼內(nèi)存峰值高網(wǎng)關(guān)只允許 JSON 的受限環(huán)境先傳對(duì)象存儲(chǔ)再傳 URL無(wú)最低可異步批量任務(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) )邏輯說(shuō)明files的 value 用三元組而不是裸 bytes是為了讓服務(wù)端拿到正確的文件名和 MIME如果只傳{image: image_bytes}requests 會(huì)默認(rèn)按application/octet-stream發(fā)部分服務(wù)端會(huì)因此拒絕。參數(shù)說(shuō)明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í)尺寸必須回查文檔。但無(wú)論目標(biāo)尺寸是多少預(yù)處理要做的事是固定的四件擺正方向、統(tǒng)一色彩模式、等比縮放加裁剪、控制編碼體積。方向這件事容易被忽略。手機(jī)拍的 JPEG 里帶 EXIF Orientation 標(biāo)記Image.open讀出來(lái)是原始像素方向直接縮放再上傳模型看到的是躺倒的貓。ImageOps.exif_transpose會(huì)按標(biāo)記旋轉(zhuǎn)并清掉這個(gè)標(biāo)記是一行就能解決的血淚經(jīng)驗(yàn)。色彩模式方面PNG 可能帶 alpha 通道灰度圖只有一個(gè)通道CMYK 的 JPEG 來(lái)自印刷物料這幾種直接送進(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不落盤邏輯說(shuō)明整個(gè)函數(shù)在內(nèi)存里完成返回 bytes 直接喂給 2.2 的上傳函數(shù)省掉一次臨時(shí)文件讀寫批量跑的時(shí)候差別很明顯。參數(shù)說(shuō)明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ù)說(shuō)明原料給的主干是requests.post(url, headersheaders, filesfiles)加一個(gè)status_code 200的分支。這個(gè)骨架是對(duì)的但少了三樣?xùn)|西超時(shí)、非 200 分支的細(xì)分、JSON 解析的保護(hù)。網(wǎng)關(guān)返回 HTML 錯(cuò)誤頁(yè)時(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ù)問(wèn)題 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, }邏輯說(shuō)明返回統(tǒng)一成{ok: bool}的字典調(diào)用方只需要判斷ok不用在每個(gè)業(yè)務(wù)點(diǎn)重復(fù)寫 try/except失敗分支帶上code日志里聚合一下就能看出是密鑰問(wèn)題還是超時(shí)問(wèn)題占多數(shù)。參數(shù)說(shuō)明top_k轉(zhuǎn)成字符串是因?yàn)?multipart 表單字段只接受字符串超時(shí)元組里讀取段給 60 秒圖像推理冷啟動(dòng)時(shí)可能十幾秒給太短會(huì)誤判成服務(wù)不可用float(... or 0.0)是防御式寫法萬(wàn)一服務(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)過(guò)的概率跨類別、跨批次直接比大小并不嚴(yán)謹(jǐn)。但它作為分流信號(hào)是夠用的高分區(qū)自動(dòng)落庫(kù)低分區(qū)轉(zhuǎn)人工復(fù)核中間灰區(qū)打標(biāo)記后置處理。置信度區(qū)間處理策略說(shuō)明≥ 0.90自動(dòng)入庫(kù)抽檢 1% 做質(zhì)量監(jiān)控0.60 ~ 0.90入待復(fù)核隊(duì)列按天批量人工過(guò)一遍 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邏輯說(shuō)明把閾值寫成函數(shù)參數(shù)而不是硬編碼是因?yàn)椴煌惸康姆植疾顒e很大做一次小樣本標(biāo)注就能把high和low調(diào)到位。參數(shù)說(shuō)明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 握手批量幾百?gòu)垥r(shí)握手開銷能占到總耗時(shí)的一半。用Session復(fù)用連接池配合HTTPAdapter設(shè)置池大小是標(biāo)準(zhǔn)做法。重試這塊有個(gè)真實(shí)的坑urllib3的Retry默認(rèn)allowed_methods不包含 POST所以你不顯式配置的話POST 請(qǐng)求根本不會(huì)重試代碼看起來(lái)加了重試其實(shí)沒(méi)生效。反過(guò)來(lái)如果你把 POST 加進(jìn)重試列表讀超時(shí)后重試又可能造成重復(fù)計(jì)費(fèi)或重復(fù)入庫(kù)。折中做法是只對(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邏輯說(shuō)明connect和read分開配置是關(guān)鍵連接失敗重試是安全的讀超時(shí)重試則可能讓同一張圖被計(jì)費(fèi)兩次。參數(shù)說(shuō)明pool_maxsize要和你開的并發(fā)線程數(shù)匹配線程數(shù)大于池大小時(shí)多出來(lái)的線程會(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é)程或線程都行線程寫起來(lái)簡(jiǎn)單。并發(fā)數(shù)別開太大先看賬號(hào)的限流配額從 4 到 8 起步撞到 429 就往下調(diào)。4. 文本分類與接口復(fù)用同一套骨架換 payload原料里給的文本分類示例和圖像分類的差別只有兩處URL 不同、body 從 multipart 換成 JSON。這說(shuō)明兩個(gè)接口共享同一套 HTTP 骨架把它抽出來(lái)比復(fù)制兩份代碼劃算得多。抽的時(shí)候注意 JSON 和 multipart 在請(qǐng)求頭上的差異這是唯一不能共用的地方。4.1 文本接口的 JSON 載荷與編碼細(xì)節(jié)requests.post(url, jsondata)和requests.post(url, datajson.dumps(data))看起來(lái)一樣其實(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()邏輯說(shuō)明jsonpayload讓 requests 用json.dumps序列化并自動(dòng)設(shè)頭中文會(huì)被轉(zhuǎn)成\uXXXX轉(zhuǎn)義這是合法的 JSON服務(wù)端能正確還原不需要加ensure_asciiFalse那個(gè)參數(shù)只在你自己dumps時(shí)有用。參數(shù)說(shuō)明文本截?cái)嚅L(zhǎng)度按接口文檔調(diào)整不要照抄 4000raise_for_status()在原型階段很方便會(huì)讓異常帶上狀態(tài)碼但生產(chǎn)代碼里建議像第 3 章那樣手動(dòng)分支因?yàn)槟阆肽玫巾憫?yīng)體做診斷。還有一點(diǎn)如果文本來(lái)自網(wǎng)頁(yè)抓取先做一次清洗去掉零寬字符、全角空格、HTML 實(shí)體。這些字符在 JSON 里合法但會(huì)讓分類結(jié)果偏移屬于典型的「模型沒(méi)問(wèn)題、數(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), )邏輯說(shuō)明session從構(gòu)造函數(shù)注入而不是在類里 new 一個(gè)這樣測(cè)試時(shí)可以換成 mock生產(chǎn)時(shí)可以復(fù)用第 3 章配好的連接池和重試策略。參數(shù)說(shuō)明_headers的with_json開關(guān)是唯一區(qū)分兩類請(qǐng)求的地方multipart 請(qǐng)求不能帶Content-Type這是 2.2 講過(guò)的坑抽象的時(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ú)取決于服務(wù)端實(shí)現(xiàn)需要保留細(xì)節(jié)的細(xì)粒度分類我一般會(huì)先在本地壓到長(zhǎng)邊 1024、質(zhì)量 85 上傳再拿一批樣本對(duì)比「原圖直傳」和「本地壓縮」的分類一致性。如果一致性差異在可接受范圍內(nèi)就固定用壓縮版本單張延遲能降下來(lái)一大截尤其是弱網(wǎng)環(huán)境。這個(gè)對(duì)比實(shí)驗(yàn)花不了多少時(shí)間但能省掉后面反復(fù)懷疑「是不是模型不行」的折騰。5. 避坑與排查401、415、413、超時(shí)重放這四類翻車現(xiàn)場(chǎng)前面幾章都是順著成功路徑寫的這一章反過(guò)來(lái)按我踩過(guò)的順序排。每條都按「現(xiàn)象、原因、解決」寫遇到類似的直接對(duì)號(hào)入座。5.1 401 Unauthorized密鑰對(duì)了但就是過(guò)不去現(xiàn)象密鑰確認(rèn)沒(méi)復(fù)制錯(cuò)用 curl 試也失敗響應(yīng)體里寫著 invalid api key 或 missing authorization。原因通常有三個(gè)。一是Bearer和密鑰之間的空格被編輯器吃掉或者中間混進(jìn)了全角空格二是密鑰從環(huán)境變量讀出來(lái)時(shí)帶了尾部的換行echo復(fù)制的時(shí)候最容易帶上三是用了另一個(gè)產(chǎn)品的密鑰格式看著像但不是同一個(gè)認(rèn)證域。解決先打印repr(API_KEY)看首尾字符把不可見(jiàn)字符暴露出來(lái)如果尾部是\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 說(shuō)明密鑰和網(wǎng)絡(luò)都沒(méi)問(wèn)題回到代碼里查頭字典返回 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 說(shuō)缺少 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里有沒(méi)有boundary這個(gè)參數(shù)沒(méi)有就是這個(gè)問(wèn)題。5.3 413 Payload Too Large圖像沒(méi)壓或者壓了但格式不對(duì)現(xiàn)象小圖能過(guò)大圖報(bào) 413或者本地明明縮放過(guò)上傳后還是 413。原因一是縮放用的resize保留了原始編碼格式PNG 截圖縮到 224 之后體積仍然不小二是只改了尺寸沒(méi)改質(zhì)量JPEG 以 quality100 保存一張 224×224 也能到幾百 KB三是服務(wù)端限制的是字節(jié)數(shù)不是像素?cái)?shù)你盯著尺寸看沒(méi)用。解決統(tǒng)一走 2.3 的normalize_image輸出固定為 JPEG、quality 可控、帶optimizeTrue并在發(fā)送前加一道體積閘門def guard(image_bytes: bytes, max_bytes: int 1_500_000) - bytes: # 超過(guò)閾值就降質(zhì)量重壓最多降三檔避免無(wú)限循環(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ù)說(shuō)明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ā)于是同一張圖被處理兩次。原料里的示例沒(méi)有涉及重試但一旦你按 3.3 加了HTTPAdapter這個(gè)問(wèn)題就會(huì)出現(xiàn)。解決Retry里把read設(shè)為 0只對(duì)連接錯(cuò)誤和 429、5xx 重試如果業(yè)務(wù)要求嚴(yán)格冪等就在請(qǐng)求里帶一個(gè)自己生成的request_id落庫(kù)時(shí)用它做唯一鍵重復(fù)的寫入直接忽略。這個(gè)字段在服務(wù)端不支持透?jìng)鲿r(shí)也沒(méi)關(guān)系客戶端側(cè)做去重同樣有效。5.5 排查順序從外到內(nèi)別一上來(lái)就懷疑模型遇到分類結(jié)果不對(duì)先別改代碼。按這個(gè)順序走一遍八成問(wèn)題能在前三步定位先用 curl 驗(yàn)證密鑰和端點(diǎn)是否可達(dá)再用固定的一張樣本圖跑一次看響應(yīng)體的原始 JSON 長(zhǎng)什么樣然后比對(duì)預(yù)處理后的圖和原圖確認(rèn)沒(méi)被裁掉主體最后才看 label 和 confidence 的分布。把順序固定下來(lái)之后排查時(shí)間能從半小時(shí)壓到幾分鐘這個(gè)習(xí)慣比任何技巧都值錢。6. 進(jìn)階把分類調(diào)用做成可觀測(cè)的小服務(wù)跑通腳本和能上線之間差的是可觀測(cè)性。分類調(diào)用是個(gè)外部依賴失敗是常態(tài)沒(méi)有埋點(diǎn)的話你只能看到「今天結(jié)果少了」這種結(jié)論看不到是哪一類錯(cuò)誤在漲。我一般會(huì)在客戶端外面再包一層記錄四個(gè)字段請(qǐng)求 ID、端點(diǎn)、狀態(tài)碼、耗時(shí)。加上 label 和 confidence就能回答絕大多數(shù)運(yùn)營(yíng)問(wèn)題比如「昨天的低置信度占比為什么翻倍」。表結(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邏輯說(shuō)明request_id從外部傳入時(shí)復(fù)用重試鏈路里就能對(duì)齊同一次業(yè)務(wù)請(qǐng)求finally保證異常路徑也打點(diǎn)否則失敗樣本全丟監(jiān)控就成了只報(bào)喜不報(bào)憂。參數(shù)說(shuō)明耗時(shí)用perf_counter而不是time.time避免系統(tǒng)時(shí)間調(diào)整帶來(lái)的負(fù)數(shù)狀態(tài)碼在業(yè)務(wù)失敗時(shí)取自定義 code網(wǎng)絡(luò)層失敗統(tǒng)一記 0方便聚合。這套東西的另一個(gè)用法是回歸驗(yàn)證。接口或模型更新后拿一批固定樣本跑一遍比對(duì) label 變化率和置信度均值偏移比肉眼看幾個(gè)案例靠譜得多。我吃過(guò)一次虧換了預(yù)處理里的resize為ImageOps.fit忘了看長(zhǎng)圖樣本結(jié)果一批豎版商品圖被裁掉了底部文字分類整體偏了一檔兩天后才發(fā)現(xiàn)。從那以后我每次改動(dòng)預(yù)處理參數(shù)都強(qiáng)制走一遍固定樣本回歸比對(duì) label 和 confidence 的分布再發(fā)布。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久久人| 婷婷激情五月综合| 日本中文字幕在线视频| 狠狠操,使劲操| 精品女同一区| 人妻少妇精品久久久| 久久久九97| 日本欧美韩国国产在线| 91色狼| 婷婷九月丁香| 久久精品六区| 天天干人人乐| 78m啪啪啪| 人妻少妇精品久久久| 综合影院亚洲| 色性荡荡荡荡视频| 极品色社| 婷婷激情四射| 97综合在线| 国语精品内射在线观看| 99热精品国产| 久久99国产综合精品女同| 亚洲成人久久美女| 大香蕉综合在线| 曰韩精品视频一区二区| 国产女人与拘做受视频免费| 亚洲无码超碰免费| 黄片国产精品一区二区| 黄片免费视频2019| 欧美精品23| 日韩欧美性爱电影在线观看| 日日操免费视频| 国产女人视频三四五区| 在线视频 亚洲精品| 亚洲 欧美 日本 国内 首页| www国产精品| 亚洲熟女av中文字幕| 天躁夜夜躁2021| 男女国产精品| 久久激情婷婷| 八戒无码国产午夜福利| 午夜无码精品免费看性色| 午夜亚洲国产理论秋霞| 久久曰曰| 国产精品久久久久绯色| 日日黄色三级网站| 久久超碰com| 91亚洲欧美| 久9久精品视频| 99re8免费高清在线| 超碰97资源大奶| 中文字幕在线观看网页| a人欧美综合天堂麻豆| 亚殴在线| 午夜天堂精品久久| 精品一级| 在线国产福利网址导航 | 91狼人| 秋霞影音一区二区三区| 五月天激情小说网| 欧美日韩天堂| 丝袜美腿av女优在线| 欧美呦呦性爱| 国产一区二区三区导航| 精品少妇一区二区三区免费观看| 国产二区三区粉嫩在线| 在线色资源| 躁躁躁日日躁2020| 国产大片精久久久久久| 欧美国产有色电影| 久艹免费| 亚洲高清无毛一区二区| 亚洲国产精品久久久久久久久久| 伊人国产视频| 日韩少妇无码| 91女在线观看| 国产丁香精品露脸视频| 眼镜人妻101.com| 日韩久久三区| 日本黄页视频在线观看| 中文字幕美女91| 免费在线观看国内色片网站网址| 亚洲天天艹| 在线免费试看60秒| 国产捆绑一区| av中文字幕在线熟女| 日日噜噜夜夜久久亚洲一区二区| www.男人的天堂| 影音先锋视频在线| 天天综合网91入口| 精品在线蜜臀| 日本片日本片祼观看网站在线看中文版网页在线看 | 男人的天堂啪啪| 日韩淫色网| 国产白丝av| 久久精品国产亚洲AV高级北京| 国产少妇肉丝在线观看| 亚欧美色图| 性久久久| 精久久久91| 亚洲国产97| 91干熟女| 成人AV在线网站| 欧美成人一级免费电影| 蜜臀AV成人精品蜜臀| 国产综合久久久麻桃个| 在线观看国产黄色| 色网综合网| 无码精品久久久久久亚洲| 五月丁香六月激情| 男人久久天堂| 91精品丝袜在线观看| 91色综| 熟女熟妇伦久久影院毛片一区二区| 天天看夜夜看日日干| 国产亚洲99久久精品| 男人的天堂三级| 夜间福利片1000无码| 国厂麻豆77q4| 国产精品免费视频人成| 国产少妇内射| 五月婷丁香| 97在线播放| www欧美性爱| 久欲AV| 性开放中文AV高清无码免费看| 久久久av爱| 亚洲伊人久久综合97| 日本三级久| 国产一区在线看| 裸体美女免费看网站青草| 久热热| 丁香五月影院| 日韩无码一级黄色av片| 五毛骚逼极品美女怕怕| 色情五月丁香| 亚洲日韩国产精品| 大香蕉色网| 强奸国产精品视频| 超碰色美女| 婷婷深爱五月| 日本αv| 精品少妇人妻| 丁香五月AV| 女性喷水高潮在线观看| 色色综合97| 亚洲导航深夜福利| 欧美 亚洲精品首页| 丝袜制服字幕在线| 手机在线视频国内精品| 91丨九色丨熟女高潮| 97这里有精品| 啊啊啊97视频| 90后性网国产欧美| 日韩亚洲欧美中文字幕| 国产91美女视频| 四虎永久在线精品免费网址| 91精品久久久久五月天精品| 全国男人天堂网| 男人兔费天堂| 一级黄色性爱A级片| 熟女91网| 色诱avtt| 亚洲成人av色网| 日韩精品字幕| 欧美丝袜中文字幕07在线| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 天天做天天爱天天爽AV| 精品黑人一区二区| 91操熟女| 亚洲高清视频在线免费观看| 欧美性爱超碰97| 精品97精品97| 快点操死我| 噜噜噜无码AV一级一级久久影院| 国产无码三级视频在线观看| 91丝袜| 自拍亚洲综合| 欧亚久久偷拍视频| 97色97好| 老师充足的奶水小说| 五月婷婷久久综合| 亚洲高清国产理伦片| 日本精品五区| 91人人| 98超碰日本| 夜夜夜夜爽| 色五月婷婷色| 久久久久久久91| www.99色| 少妇综合| 97色碰| 亚洲人精品久久久| 热的中文 热的有码 热的国产| 男人天堂一区二区| 99啪啪视频| 亚洲 欧美日韩 另类| 欧美一级美片在线观看免费| 亚洲欧美日韩激情不卡| 高清有码一区二区| 偷拍 欧美 日韩| 欧美色就是色| 性天堂| 亚洲欧美不卡线| 在线观看啊啊啊啊啊| 330dv亚洲成年视频网| 中文字幕在线观看AV| 激情五月婷婷综合| 精品 码产区一区二-1080P高清在线www-B029AV | 性在久久久久久| 久久久久久九九九九九| 国产精品爆乳懂色蜜乳| 欧美性爽xyxOOOO| 91人人| 亚洲成人ab| 亚洲久久久久| AV乱伦专区| 操操操五月天婷婷丁香影院| 日韩成人精品| 探花一区在线| 婷婷五月天激情小说| 任你草| 亚洲中文字幕97久久精品少妇| 丁香五月天激情| 天天爽天天操| 国产性感骚丝袜在线| 少妇国产不卡| 男人精品天堂一区| 欧美春色| 日本1区2区不卡视频| 福利操逼| 亚洲激情AV| 精品一区二区三区蜜桃臀赵总 | 欧美亚洲| 激情五月天色播| 亚洲 中文 女同| 99色婷婷中文字幕乱色| 亚洲成成熟女人综合一区二区| 人妻久久一区二区三区| 国产乱伦亚洲色图高清无码| 免费A V在线| 人人人人人人少妇| 久草线上视频免费看| 91热热色| 在线观看不卡一区二区三区| 丁香九月激情啪| 国产欧美第五页| 成人热久久精品| AV天黑人| 精品久久久久久AV无码| 能看的AV| 精品美女久久一二三| 玖玖爱视频网站| 国产精品4p在线观看| 男人a天堂手机在线版| 成人情色一区二区| 青青草久久在线| 啊啊啊啊啊在线| 中国大陆国产高清AⅤ毛片| 婷婷丁香久久| 福利天天都操| 吖在线不卡一区二区国产剧情| 亚洲人妻av| 青青三级视频| 精品国产人成在线| 大香伊人在线一区| 国产女同在线观看视频| 日韩在线视频1234| 久久久极品| 精品午夜福利国产一区二区在线观看| 欧州色图区| 久久久久幕乱码| 久久透逼视频| 国产精品久久久亚洲一区| 午夜福利一区二区三区四区五区色婷婷| 综合亚洲欧美精品日韩?v| 国产农村一一级特黄毛片| 中文字幕诱惑制服人妻丝袜美丝袜美 | 久久五十路熟女人妻| www久久久| 日日嗷| 入口操逼网站| 欧美另类天堂| 精品国产久热在线观看| 精品九九九九九九九九九| 污色区网站| 亚洲人成网www| 大逼色网站| A片 AV一级在线播放观看免费| 91精品丝袜久久久久久无码人妻| 26uuu成人影片| 极品五月天噜噜| 亚洲综合20p| 伊人亚洲国产一成人久久精品,久久| 91色堂| 91成人精品在线播放| 欧美人人天天网| 中国少妇XXXX做受| 福利天堂| 日本人人操人人操| 亚洲精品蜜桃久久久| 国产激情在线| 秋霞Av理论一级在线| 殴美性色a级欧美| 丝袜足交视频| 99re8超碰| 岛国1区2区3区在线观看| 日韩欧亚太美不卡| 国产女人与拘做受视频免费| 丝袜色综合| 丁香九月激情| 久久久久夜夜夜夜| 无码视频一区二区| 极品美女福利在线观看| 天天伊人| 性爱AV天堂| 奇米狠999| 人妻久久| 蜜臀色乳| 久久露脸国产老熟女| 奶水 人妻 哺乳 在线| 亚 欧 美 综合| 久久精品国产AV一区二区三区| 97精品第3页| 最新中文字幕在线亚洲| 欧美色图20p| 天堂日本亚洲欧美| 一区二区娱乐网站| 亚洲色性情三级| 国产激情在线| 热热热热日日漂亮永久永久国产日| 亚洲最新av无码成人精品区| 91人妻熟女| 啊啊啊啊操死我了| 久久久久精| av最新免费中文字幕| 91狠狠综合久久| 91网站18在线| 欧美色棕合| AAAAAAAAA黄片| 日韩欧美女求操每天更新| 久久9久9久99久9久9| 国产精品无码在线| 天堂v无码免费视频| 久久久九九| 97人人中文网| 欧美色五月| 亚洲中文字幕久久人妻| 翔田千里A片一区二区| 9久9久9久9久视频网站| 新97国产超碰| 99热 按摩 日韩| 欧美精品另类人妖xxxx| 久久精品国产72国产精品福利| 91青青草| 91天堂| 碰人碰碰人人开房人肉| 亚欧中文字幕在线视频| 天天爽天天爽| 欧美一区二区三区日韩| 操迟操逼在巾线Fre看| 亚洲色欧美| 男人的天堂com| 9ⅰ久久久天天| 99www.bibizy香蕉资源国产一区二区三区高清 | 600国产精品视频| 成熟熟女国产精品一区二区| 91九色丨国产丨爆乳| 亚洲天堂区| 99热在线播放| 色99视频| 麻豆人妻精品一区二区| 99热这里都是精品| 天天日天天爽| 精品一区二区3区| 婷婷五月天成人网| 日本三级中国三级99人妇网站| 欧美成人性爱视频免费观看| 日韩精品一区二区日韩| 成人无遮挡毛片免费看| 欧美一级国产一级| 中文字幕一区电影在线观看| 岛国免费黄色网址| 尤物网址| 免费A V在线播放| 搡老女人老妇女AAA一VU麻豆| 欧美日韩*字幕一区| 一起草三级AV电影在线观看| 亲子敌伦对白在线播放| 亚洲天堂在线怕怕视频| 第四色奇米影视777| 强奸乱伦免费网站| 乱伦一区二区三区‘| 成人五级久久| 色嗨嗨在线| 日韩一级片在线看| 成人短视频在线观看| 99热精品免费| 欧美天天谢综合网| 干B| 天天躁狠狠躁av| 91国产丝袜美女| 欧亚 另类 久| 国产精品白丝| 三级特黄60分钟播放| 九月丁香婷婷色| A 天堂在线观看视频| 巨爆乳肉感一区二区三区竹菊影视 | 日韩av一级黄片| 无码 有码 国产18p| 我要看免费韩日黄片| 蜜桃久久综合视频| 国产成人精品午夜福利| 97久久综合网| 成人午夜高潮av猛片| 人妻少妇被猛烈进入中| 99性视频| 艳尻美人妻| 久久亚洲日韩国产欧| 96精品久久| 亚洲乱伦图片视频| 伊人97色天使| 久久久性少妇| 中文精品一区二去| 五月丁香婷婷色| 欧美天天综| 国产精品69久久久久久久| 女人综合网| 岛国激情视频软件| 曰韩精品九九无码| 天操天操夜操夜月操月年年操操| 九九综合九九综合| 欧亚免费视频| 大肉棒导航| 亚洲精品少妇| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 婷婷四五区| 欧美色图片91| 久久成年精品| 日本中文字幕熟妇| 日韩无码精品综合久久| 国产成久久综合片| 中文字日本乱码| AV久日| 人人弄人人摸| 99久久婷婷国产综合| 亚州春色| 伊人热综合| 在线只有精品| 99AV| 色婷婷成人| 99re在线精品78| 日韩在线地址一| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 国产高清自拍视频| 丁香五月激情网| 狠狠操狠狠燥| 干干干天天| 天堂国产AV| 免费AV中文网在线观看| 日韩精品.久久精品.AV女优.天美传媒| 性交一区二区在线播放| 午夜福利1区2区3区| 中文无码一二三区| 亚洲有码视频二区| 色综合中文字幕不卡| 91亚洲综合在线| 岛国精品视频在线观看| 日本天堂在线播放| 欧美日韩激情无码专区| 99后入| 黄片com.| 精品在线78| 国模吧 一区二区三区| 九九av| 岛园激情| 啊啊啊好大好深| 亚洲欧美精品一区天堂久久 | 国产探花日韩援交| 不卡中文字幕aⅴ在线| 一级乱伦网站| 99热精品国产| 性久久| 后入式五六区| 2024人人操人人摸| 中文字幕在线免费观看 | 国产AV人人 夜夜人人澡| 一区AV| 亚洲第91页| 国产精品久久久久无码AV会牛| 国产自产22区| 一本道综合色图| 沈阳熟女高潮对白视频| 亚洲诱惑| 国产成人无码久久精品| 极品另类| 天综合网欧美| 久久98| 99久久久无码国产精品性啊聊| 大香蕉天天看妹子| 国产精品自拍欧美在线| 精品亚洲天堂| 日韩不卡码| 午夜一区| 亚洲小电影免费涩涩成人在线高清| 久久人妻无码毛片A片麻豆| 国产精品熟女乱伦| 最近2018中文字幕在线高清第一页| 97色涩| 久久麻豆一区二区| 强奸乱伦AV网站| 精品久久97| 亚洲欧洲精品成人| 午夜天堂啪啪| 成人av在线播放| 夜夜嗨一区| AV一二区| 激情五月综合网| 青草草免费网站av| 国产一区二区二区按摩精品啪视频| 操b在线观看| 亚洲久久久| 边做饭边操逼逼| 韩国毛片一区二区三区| 天天透伊人| 亚洲一区二区三区AV无码| 亚洲欧美第一页| 久久人人爽av亚洲精品天堂桃色| 成年女人一区| 中文字幕永久在线| 午夜精品久久久久久久99蜜桃一| 成人午夜高潮av猛片| 天天舔日美女视频| 美女91色黄18| 日日夜夜青青草母狗| 狠狠狠狠狠| 熟女人妇一区二区三区| 五月天我淫我色av| 乱欲视频| 亚洲色图欧美| 97超碰精品图片| 人妻激情在线视频| a片亚洲一本通视频| 久久不卡一区二区 | 久草男人天堂| 亚洲色性情三级| 天美国产精品| 口爆综合网| 99精品在线| 日本99久久| 中文字幕日本久久| 日本综合久久| 九九九九九精品十六| 欧美三级一级| 熟妇高潮一区二区免费视频| 丁香六月婷婷久久综合| 久久XX| 五月综合色| 91久久婷婷| 99色在线| 亚洲一区深夜| 91色噜噜狠狠| 麻豆激情综合| 偷拍片久久| 天天综合网亚洲综合网| 欧美韩日精品99综合| 国产乱码久久久| 无码二级三级| 91这里只有精品| 午夜国产综合视频在线观看| 熟妇xxxxx性春色| 欧美性爱日韩性爱| 国语对白在线播放视频| 亚洲日韩精品在线播放| 91ise欧美| 色女99一级片在线观看| 国产精品午夜福利视频| 性欧美第一页| 96精品久久久久久久久| 日韩无码操逼片| 国产精品一级毛片不卡视| 亚洲精品a人片在线观看视| 欧美人人AAA| 资源在线观一 二| 97人人爱人人做人人乐| 欧美日韩中国x| 97超碰大| 秋霞网—男女啪啪亚洲免费体验区 | 可以免费观看的日韩av毛片| 超碰AV在线| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 亚洲成人福利电影免费| 深爱五月婷婷| 一牛一区二区三区久久| 欧美另类丝袜熟女| 人妻干天天| 国产精品久久久三级无码| 一类无码操逼视频| 性爱网站一区二区| 色色网91| 天天摸夜夜操视频| 青娱乐大香蕉| 亚欧美综合网。| 人妖欧美一区二区| 欧洲性爱无码区| 性爱乱伦网址| 老熟女熟妇| 日产精品久久久一区二区| 亚洲本色精品一区二区久久| 91快色色色色色| 欧美制服网站美腿丝袜| 99蜜月精品久久| 视频一区二区免费在线| 欧美日韩第一页| 东北女人被操| 91亚洲人| 欧美一区二区亚洲天堂| 怡春苑东京热| 五月丁香黄色网| 性一交一乱一交A片久久四色| 男女激情中文字幕| 亚洲97| 中文字幕jul-617人妻熟女| 国产黄色动态精品| 日韩亚洲欧美中文字幕| 成年女人18级毛片毛片免费观看| 欧美性爱一区| 九九九精品成人免费视频小说| 99在线观看| 丝袜高跟澳门91视频| 亚洲日韩视频二区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 色哟哟AV| 大香蕉久| 97bbn| 7777奇米影视久久| 少妇天堂网络| 天天视频黄| 青娱乐 成人娱乐在线| 欧洲亚洲人妻无码高清久久三区四区| 999亚洲国产视频| 九九夜精品九九在线| 国产精品视频内谢女人| 人人喜人人妻| 久草在线| 国产成人亚洲精品自产在线| 亚州综| 色五月综合| 亚洲色图A| 午夜精品久久久久久久男人的天堂 | 中文字幕欧美日本乱码一线二线 | 亚洲成人色情五月天丁香花| 欧美精品23| 台湾大香蕉99热| 一级@啪啪视频| 神马久久69| 91爆操视频| 后入式999| 精品性爱无码在线播放| 精品人妻一区二区三区四区| 日韩高潮一区| 91这里只有精品| 91色噜噜狠狠| 天天操夜夜嗨| 天天干人妻视频| A V少妇特黄三级| 亚洲色图综合| 素颜老阿姨乱情色| 久久久 国产精品| 清纯唯美激情| 欧色综合| 欧美系列在线一区二区| 91黄站| 96AV久久久| 日韩激情小说一区二区| 少妇蹲下买菜露大唇0| 涩五月婷婷| 超碰97人人cao| 97欧美色综合| 亚洲情色第一页| A级毛片在线看免费| 日日日色色色色色| 婷婷五月在线视频| 精品日韩中文在线| 999国产精品999久久久久久| 99999精品视频| 日日操丁香五月天| 91老司机在线| 久久少妇人妻| 久久久人妻| 精品国产一区二区三区在线播出| 久久女女| 午夜天堂精品久久| 97人妻碰碰中文无码久热丝袜| 日本一级真人黄色性爱视频| 91超碰碰在线| 少妇蜜汁| 国产精品老师| 国产黄色影片在线观看| 欧美综合天堂| 日本好吊色视频| 婷婷国产精品九区| 激情久久av一区av二区av| 一级性爱视频免费观看| 夜夜无码| 精品无码人妻一区二区免费蜜桃| 亚洲综合小说另类图欧美视频激情小说色五月天 | 日韩中文字幕精品一区在线| 久久久久久久9999| 91美女视频在线免费观看| www.婷婷六月天| 乱伦av麻豆| 亚洲黄片免费在线播放| 97欧美日韩综合| 天天操天天日天天干| 青娱乐 成人娱乐在线| 无码少妇精品一区二区60岁老人| 日本1区2区不卡视频| 欧美 亚洲 在线| 久久久精| 丝袜美腿射精91| 中文字幕少妇色| 日韩pv中文| 婷婷色婷婷| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 中文字幕成人| 欧美成人午夜免费福利785| 在线无码视频| 日韩性爱免费观看视频| 狠狠操使劲操| 国产一区在线播放| 亚洲天堂2020| 搡老女人老91二区| 欧美精品庄| 啊啊啊好大好深| 欧美日本不卡在线| 91N综合网| 91中出在线| 96一区二区三区| 欧美偷| 欧美色图校园春色| 超碰人人干天天射| 亚洲天堂另类| 欧美不在线| 亚洲乱妇p22| 女性91网站| 99色网| 一区二区三区美女超清| 中文?日韩?免费?精品| 激情五月天中文字幕色| 欧美18老人禁| 免费?级毛片无码?∨蜜芽试看| 亚洲 欧美 制服 另类 自拍| 亚洲啪AⅤ永久无码| 日韩精品国产一区二区| 综合激情97| 男人的天堂啪啪| 97视频在线看| 1769一区| 日韩精品碰碰| 粉嫩av在线一区二区| 色色色99| 久久欧美1卡2卡3| 中国黑人三级片网站上区| 久久久久元码视频| 高清无码学生妹高潮| 亚洲自拍97| 亚洲国产精品无码AV久久| 亚洲日韩精品久久久久一区壹牛 | 久久久久国产精品喷潮免费观看臀 | 人人插人人摸人人| 99热官网| 欧美日韩少妇色情| 欧美日日人人天天| 亚洲一二三四区| 久久受www免费人成| 亚洲av影院在线观看| 色综合五月天| 久久av网| 99精品九九九九九九| www.av家庭乱伦| 久久一级无码精品毛片6| av中文在线| 欧美天堂日韩三级国产传媒| 少好三P| 欧美色女人| 亚洲成人无码影院| 97色伦欧美| 国产诱惑| 国产在线观看一区二区三区| 蜜臀操逼黄色视频操的好爽| 亚洲 中文 女同| 丝袜色综合| 亚洲本色精品一区二区久久| 一本一道vs波多野结衣| 亚洲日本男人天堂网| 亚洲自拍青操视频| 欧美A片中文字幕| 久久激情视频| 日韩人妻精品| 无码免费在线观看黄色片| 九色视频91| 天天躁狠狠躁av| 精品性爱| 婷婷中文字幕| 999熟女精品| 国产亚洲深夜激情| 熟妇在线视频一区二区| 欧美激情亚洲情色| 性久久久| 宅男午夜在线视频| 日韩情色一区二区| 午夜色婷婷| 久久精品中文字幕女同| 中文字幕高清精品一区| 一区二区三区四区色图| 久久久成人免费av电影| 搞中出久久| 欧美 综合| 尤物av网站免费在线播放| 丁香五月激情啪啪| 青青青草原| av日韩手机在线影视| 麻豆国产第一| 亚洲精品白浆高清久久久久久 | 秋霞午夜成人福利片片| 色五月婷婷五月天| 高精欧美色| 97色婷| 91n处女在线观看| 在线观看精品国产免费| 久操影视| 亚洲欧美国产成人综合不卡| 一区二区三区色综合| 十八禁的黄污污免费网站| 欧美日韩一干二干| 国产家庭乱伦性爱视频| 加勒比综合九九99视频在线播放| 日韩精品资源专区二区| 中文字幕丝袜美腿| 亚洲成人黄色在线观看| 熟女中出视频| 日本一级婬片试看三分钟| 欧美国产一区二区三区麻豆传媒| 99久久精品无码一区二区毛片免费| 亚洲欧美性生活| 91精品亚洲内射孕妇| 男人久久精品| 欧美一区二区观看在线| 亚欧操逼片在线观看 | 外国免费性情大片| 久久五月份| 日本不卡一区二区| 亚洲综合在线高清| 日韩人妻一二三区视频| 岛国不卡超碰护士AV在线播放| 中国国国产一级特黄毛片| 大干人妻| 亚洲色图激情小说| 四虎午夜影院| 天天综合麻豆视频| 精品成人av一区二区三区在线| 97在线视频网站| 暖暖精品二区三区观看| av天堂精品久久| 天美传媒精品一区二区三区| 国产精品秘 福利姬在线观看| 中文字幕在线免费观看 | 日韩中文字幕国产| 亚洲自拍青操视频| 天天摸,夜夜摸| 以及麻豆国产入口在线观看免费| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 97超碰碰碰| www.久久制服糖| 久久久久久裸体| 91ise欧美| 探花激情视频| 成人小说另类在线| 久超碰这里只有精品| 91色鬼| 日韩乱插| AV一起草在线| 67914在线兔费成人视频| 91在线美女| aaaa黄片| 无码精品久久| 九九九久久久W精品| 超碰中文字幕人妻草一区| 婷婷亚洲五月***久久| J?P?NESEHD熟女熟妇伦| 欧美色图小说综合| 97色色国产视频| 99热91| www国产天美久久久| 91熟女视频| 超碰在线日韩一区| 性性欧美| 91美乳| 久热这里| 丰满人妻一区二区三区大胸懂色| 国产激情视频一区区三区| 久久中文字幕女同性恋一区| xxx亚洲午夜天堂| 色色色综合网| 丰满少妇乱子伦精品无| 香蕉国产精品麻豆亚洲欧美日韩| 插插综合网天天影视网| SUV一区二区在线看| julia在线观看久久| 丁香六月婷| 日本精品高清一二区一本到| 国产一区自拍欧美日韩| 亚洲国产综合视频| 欧美姓爱综合网| 国产麻豆一区二三区| 欧美另类自拍 | 极品少妇久久久久| 人妻丝袜肏逼| 啊操爽品善一区二区三区| 射丝袜高跟鞋99| 亚洲另类综合欧美| 国内外色色色色色成人视频| 日本亚洲熟女视频| 韩国午夜理伦三级好看| 国产av强奸美女| 色综合V| 天堂69亚洲精品中文字| 色香AV| 97免费视频在线观看| 中文字幕精品码亚洲| 男人的天堂视频精品乱在线| 五月天人妻综合| 亚洲欧美内射| 四虎影视 亚洲无码| 怡红院亚洲怡春院av| 四虎在线免费视频| 国产AV人人夜夜澡人人爽麻豆| 久久大陆| 日韩97视频| 亚洲影视高清第一页| 激情文学亚洲| 国产91丝袜 在线播放| 大逼色网站| 啊啊啊啊操死我| 欧美综合天天| 男女做爰猛烈动高潮A片免费应用| 日本影视久久免费| 亚洲黄色视频在线观看视频| 性饥渴少妇av无码毛片| 人人看人人爰人人操| 国产亚洲女v在线观看| 国产A v无码专区| 殴美在线AⅤ| 91人妻Pr| 国产欧美伊人| 欧美亚洲20p| 蜜臀久久久国产| 国产精品午夜精品| 欧美啪啪色吧在线| 日本伦乱九九九综合| 91人妻最真实刺激绿帽| 国产91精品福利在线| 中文字幕在线高清男人的天堂| 五月色网| 密臀在线免费观看| 黑人与人妻| 精品无码久久| 丰满人妻aA一区二区三区| 自拍偷拍亚洲熟女妇人精品| 欧美日韩性爱操大逼| 69超碰综合| 色五月第四色| 色97欧美| 91精品人妻偷情| 性爱乱伦网址| 亚洲 欧美 中文 日韩超碰| A啊啊在线观看| 欧美色图另类图片| 人人搞人人插人人操| caoni国产亚洲av| 五月天激情网站| 蜜屁Av| 中文乱码字幕观看视频| 欧美Aⅴ| 99热这里只有精品8| 插老姨肥穴| 综合色欧美| 中文字幕国产| 婷婷香蕉欧美在线一区二区三区| 艳尻美人妻| 美女91AV| 久久久久久国产精品免费网站| 五月婷在线| 97视频新免费| 国产在线综合网| 九月丁香婷婷| 精品性爱久久视频| 99re这里只有精品9| 操逼操逼视频操逼| 欧美激情 日韩精品| 就去色综合| 人干人人人操人人摸| 欧美日韩国产中文精品字幕自在自线,| 欧美夜夜骑视频| 国产强奸无码乱伦| 久久五月天婷婷| 亚洲国产中文字幕| 老熟女乱伦一区| 色女女女导航| 天天天干977| 91高清无码下载| 国模不卡一本二本三电影| 日本久久超碰| 99久久9| 天欧美在线| 凹凸久久人人| 99亚洲人人| 91综合色噜噜| 69超碰综合| 中国熟妇| 久99| 91白虎| 国产做?爰片久久毛片?片美国| 中文字幕综合人妻| 欧美不卡在线一区二区| 97资源超碰| 操人妻视频| 七久久久| 精品九区| 成人欧美一区二区三区黑人一| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 人人澡人人干| 久久激情视频| 日韩欧美三级| 狠狠穞A片一區二區三區| 少妇人妻在线| 91精品久久久久久77777| 欧美第五页| 国产精品三级视频网站| 亚洲在线A| 日韩性爱高清免费视频| 超碰97久| 成人综合色网| 男女一进一出视频久久| 热天堂一区二区| 亚洲视频中文一区| 久久av网| 亚洲一级特黄大片在线播放91| 久久草视频污视频| 午夜影美女日鸡鸡天天视频国产| 欧美一区二区三区成人性生活| 性色av网站| 久久9免费视频| 五月丁香激情综合| 亚洲综合电影| 亚洲男人的天堂AV| av无码精品久久久久| 国产av色网| 中文字幕黑人大片| 精品三级在线专区| 91五月天| 日韩精品中文字幕二区| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 97色色,97综合| 亚洲一卡2卡3卡4卡乱码网站 | 欧美精品23| 天天在线91| 91熟女熟妇视频网站 | 欧美玖玖爱免费玖玖| 国产超碰| 可免费观看的av毛片中日美韩| 中文字幕88av在线| 激情五月天社区| 屁股久久久久久| 91nbbbbbb| 五月婷婷综合网| 影音先锋每日最新资源在线观看| 少妇精品久久久| 色情成人五月天| 国产亚洲精品无码三区| 久久亚洲日韩熟女精品| 混色激情av| 国语精品内射在线观看| www欧美91| 91爱做| 超碰资源亚洲97| 涩涩这里只有精品视频| AV天堂因数| 四季AV一区二区凹凸精品小说| 日本网色| 美国精品国产精品| 亚欧美综合网| 97超碰中文| 污到发麻的视频 国产| 看日韩操逼| 亚洲A曰本VA欧美VA视频| 九九这里只有精品| 双插在线| 欧美亚洲玖玖玖| 秋霞影音一区二区三区| 一级性爱视频免费在线| 亚州欧美另类| 好看的久久不射无码影视影院| 成人资源中文字幕在线观看天天| 天天搞在线综合网| 人人人干干人人干| 亚洲欧美97| 伊人少妇久久久| 自拍视频大全亚洲专媒视频/一区二区三区| www成人啪啪18秘 免费| 蜜臀AV秘一区翔田千里| 色噜噜狠狠色综无码久久合欧美| 黄色一区三区| 精品然女一区二区| 日本免费不卡二区| 亚洲综合激情五月久久| 天天干夜夜一操| 免费一级黄色录像影片| 大JI巴好深好爽又大又粗视频| 色亚洲欧美| 亚洲另类色综合网站| 久久久99999久网站| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久超碰这里只有精品| 丰满人妻一区二区三区| 无色无码| 91综合色| 亚洲人久久久久日| 大干人妻| 人澡逼| 日韩 欧美 国产 麻豆| 欧美性爱网97| 久草婷婷| 清纯唯美激情四射| 又大又黄国产| 在线观看AV不卡| 啊啊啊不要好疼视频| 婷婷五月天综合网| 久久五月综合| 六月丁香五月婷婷| 熟女精品一区二区三区| 91丨九色丨东北熟女| 六月丁香久久| 五月婷婷六月天| 五月婷婷六月丁香| 夜夜爽77777| 精品99999久久久久久| 97超碰jingpin| 中文一区二区婷婷视频| 射丝袜高跟鞋99| 美女高潮视频91| 1204av韩国| x97av| 夜夜嗨一区二区三区三州加勒比| 中文字幕午夜精品久久久| 97精品全部| 草草草草视频| 精品国产一区探花在线观看| 台湾一区国产高清在线|