色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

OpenAPI自動(dòng)生成DeepSeek工具定義:告別手寫50個(gè)函數(shù)

OpenAPI自動(dòng)生成DeepSeek工具定義:告別手寫50個(gè)函數(shù) 1. 從手寫 50 個(gè)工具函數(shù)說起這個(gè)項(xiàng)目到底在解決什么問題如果你最近在折騰大模型應(yīng)用尤其是想讓模型調(diào)用外部 REST API 來完成實(shí)際任務(wù)那你大概率經(jīng)歷過這樣一個(gè)階段打開編輯器新建一個(gè)tools.py然后開始一個(gè)接口一個(gè)接口地手寫工具定義。每個(gè)工具都要寫名稱、描述、參數(shù) schema、必填項(xiàng)、類型約束寫完還要跟模型反復(fù)調(diào)試描述文案確保它能在正確的場景下選中正確的工具。50 個(gè)接口是什么概念假設(shè)每個(gè)工具平均 30 行定義代碼那就是 1500 行純手工維護(hù)的樣板代碼。更麻煩的是后端接口一改字段你得手動(dòng)同步參數(shù)類型從 string 改成 integer你得挨個(gè)檢查某個(gè)接口新增了可選參數(shù)你還得回去補(bǔ) schema。這種活干一次兩次還行接口數(shù)量上到幾十個(gè)之后維護(hù)成本會(huì)迅速失控。這個(gè)項(xiàng)目的核心思路很直接既然 REST API 本身已經(jīng)有 OpenAPISwagger規(guī)范描述為什么還要人工再翻譯一遍成工具定義讓程序讀取 OpenAPI 文檔自動(dòng)生成符合 DeepSeek 工具調(diào)用格式的 Tools 定義把人力從重復(fù)勞動(dòng)里解放出來。一句話概括輸入一份 OpenAPI 規(guī)范文件輸出一組可以直接喂給 DeepSeek 的工具定義中間不需要你手寫任何 schema。它適合誰三類人最受益。第一類是做 AI Agent 應(yīng)用的開發(fā)者手里有一堆內(nèi)部或第三方 REST 接口需要接入模型第二類是做企業(yè)級(jí)集成的工程師公司內(nèi)部服務(wù)都帶 Swagger 文檔想快速搭一個(gè)能調(diào)這些服務(wù)的智能助手第三類是想學(xué)習(xí)工具調(diào)用機(jī)制的技術(shù)愛好者通過自動(dòng)生成的過程反過來理解工具定義的結(jié)構(gòu)和約束。我自己的場景是手頭有一個(gè)包含 50 多個(gè)接口的后端服務(wù)全部有完整的 OpenAPI 3.0 文檔之前手工寫了 20 多個(gè)工具就已經(jīng)快崩潰了字段對(duì)不上、描述寫不準(zhǔn)、模型選錯(cuò)工具的問題層出不窮。后來把這套自動(dòng)生成流程跑通維護(hù)成本直接降了一個(gè)數(shù)量級(jí)。下面把這套東西的完整思路和實(shí)現(xiàn)細(xì)節(jié)拆開講。2. 整體設(shè)計(jì)思路為什么是 OpenAPI 到 Tools 的自動(dòng)映射2.1 手寫工具定義的三個(gè)致命痛點(diǎn)在講方案之前先把問題說透這樣你才能理解后面每個(gè)設(shè)計(jì)決策的合理性。痛點(diǎn)一schema 與接口實(shí)際定義脫節(jié)。手寫工具定義時(shí)參數(shù)類型、枚舉值、必填項(xiàng)這些信息全靠人肉從接口文檔里抄。接口文檔更新了工具定義不會(huì)自動(dòng)跟著變。我遇到過最離譜的一次是后端把某個(gè)參數(shù)從必填改成了可選但工具定義里還標(biāo)著 required導(dǎo)致模型每次調(diào)用都硬塞一個(gè)空值進(jìn)去接口直接報(bào)參數(shù)校驗(yàn)失敗。痛點(diǎn)二描述文案質(zhì)量參差不齊。工具能不能被模型正確選中很大程度上取決于 description 寫得好不好。50 個(gè)工具每個(gè)都要寫一段既準(zhǔn)確又能讓模型理解使用場景的描述這本身就是個(gè)文案活。不同人寫的風(fēng)格不統(tǒng)一模型在相似工具之間就容易選錯(cuò)。痛點(diǎn)三維護(hù)成本隨接口數(shù)量線性增長。10 個(gè)接口還能忍50 個(gè)接口就是災(zāi)難。每次接口變更都要人工比對(duì)、修改、測試稍不留神就漏掉一個(gè)。2.2 為什么選 OpenAPI 作為中間層OpenAPI 規(guī)范本身就是對(duì) REST API 的結(jié)構(gòu)化描述它天然包含了工具定義需要的幾乎所有信息工具定義需要的字段OpenAPI 中的對(duì)應(yīng)位置工具名稱operationId 或 path method 組合工具描述summary / description參數(shù)列表parameterspath、query、header請(qǐng)求體結(jié)構(gòu)requestBody 的 schema參數(shù)類型schema.type必填項(xiàng)required 數(shù)組枚舉約束schema.enum參數(shù)說明每個(gè)參數(shù)的 description也就是說OpenAPI 文檔里已經(jīng)有一份完整的、機(jī)器可讀的接口描述工具定義本質(zhì)上就是這份描述的另一種表達(dá)形式。中間做一次格式轉(zhuǎn)換比人工重新寫一遍可靠得多也快得多。2.3 為什么目標(biāo)格式是 DeepSeek 的 ToolsDeepSeek 的工具調(diào)用格式遵循主流大模型的 function calling 規(guī)范工具定義是一個(gè) JSON 數(shù)組每個(gè)元素包含type: function和function對(duì)象function 里有name、description、parametersJSON Schema 格式。這個(gè)結(jié)構(gòu)和 OpenAPI 的 schema 高度相似轉(zhuǎn)換起來映射關(guān)系清晰不需要做太多語義層面的猜測。選 DeepSeek 還有一個(gè)實(shí)際考慮它的工具調(diào)用能力在國產(chǎn)模型里比較扎實(shí)對(duì) JSON Schema 的理解到位參數(shù)提取準(zhǔn)確率不錯(cuò)而且接口兼容性好本地部署和云端調(diào)用都能用。你把這套生成邏輯跑通后換成其他遵循相同 function calling 規(guī)范的模型改一下輸出格式就行核心轉(zhuǎn)換邏輯是通用的。2.4 整體架構(gòu)三步走整個(gè)流程拆成三步每步職責(zé)單一方便調(diào)試和替換解析層讀取 OpenAPI 文件JSON 或 YAML解析成 Python 字典結(jié)構(gòu)提取所有 paths 和對(duì)應(yīng)的操作。轉(zhuǎn)換層把每個(gè)操作映射成一個(gè)工具定義處理名稱生成、描述拼接、參數(shù)合并、schema 轉(zhuǎn)換、引用解析。輸出層把工具定義列表序列化成 DeepSeek 需要的格式寫入文件或直接傳給模型接口。這個(gè)分層的好處是如果哪天 OpenAPI 版本升級(jí)了或者目標(biāo)模型換了工具格式你只需要改對(duì)應(yīng)那一層不用推倒重來。3. 核心轉(zhuǎn)換邏輯拆解從接口到工具的每一步3.1 工具名稱的生成策略工具名稱是模型選擇工具的第一道線索必須滿足兩個(gè)條件唯一、可讀。OpenAPI 里的operationId通常是最好的來源比如getUserById、createOrder語義清晰。但現(xiàn)實(shí)情況是很多接口文檔的 operationId 要么缺失要么是自動(dòng)生成的亂碼比如getUsingGET_1這時(shí)候就得有兜底方案。我的策略是三級(jí)優(yōu)先優(yōu)先用operationId如果它存在且符合命名規(guī)范字母數(shù)字下劃線不以數(shù)字開頭。其次用method path拼接比如GET /users/{id}轉(zhuǎn)成get_users_by_id把路徑參數(shù)也體現(xiàn)進(jìn)去。最后做去重處理如果生成的名稱重復(fù)追加數(shù)字后綴。這里有個(gè)細(xì)節(jié)要注意DeepSeek 對(duì)工具名稱的字符集有要求通常只接受字母、數(shù)字、下劃線和短橫線長度也有限制。所以生成后要做一次清洗把斜杠、花括號(hào)、點(diǎn)號(hào)這些替換掉超長的截?cái)唷mport re def sanitize_tool_name(name, max_length64): # 把非字母數(shù)字下劃線短橫線的字符替換成下劃線 name re.sub(r[^a-zA-Z0-9_-], _, name) # 合并連續(xù)下劃線 name re.sub(r_, _, name) # 去掉首尾下劃線 name name.strip(_) # 截?cái)?if len(name) max_length: name name[:max_length] return name3.2 描述文案的自動(dòng)拼接描述決定了模型在什么場景下會(huì)選這個(gè)工具重要性不亞于名稱。OpenAPI 里的summary和description是主要素材但往往不夠完整。我的做法是把多個(gè)來源的信息拼起來summary一句話概括放最前面。description詳細(xì)說明補(bǔ)充在后面。HTTP 方法和路徑讓模型知道這是個(gè)什么類型的操作。參數(shù)摘要把關(guān)鍵參數(shù)列一下幫助模型判斷調(diào)用時(shí)機(jī)。拼接時(shí)要注意控制長度太長的描述會(huì)占用上下文而且模型對(duì)超長描述的注意力會(huì)分散。我的經(jīng)驗(yàn)是控制在 200 到 500 字符之間比較合適重點(diǎn)信息前置。def build_description(operation, method, path): parts [] if operation.get(summary): parts.append(operation[summary].strip()) if operation.get(description): parts.append(operation[description].strip()) parts.append(fHTTP {method.upper()} {path}) return .join(parts)[:500]3.3 參數(shù)合并path、query、header 一個(gè)都不能漏OpenAPI 里參數(shù)分散在三個(gè)地方path 參數(shù)、query 參數(shù)、header 參數(shù)都在parameters數(shù)組里通過in字段區(qū)分。請(qǐng)求體requestBody則是單獨(dú)的一塊。轉(zhuǎn)換時(shí)要把這些全部合并到一個(gè) JSON Schema 的properties里。合并時(shí)有個(gè)坑不同位置的參數(shù)可能重名。比如 path 里有個(gè)idquery 里也有個(gè)id直接合并會(huì)覆蓋。我的處理是給重名參數(shù)加前綴比如path_id、query_id同時(shí)在描述里說明來源。雖然這種情況不常見但一旦出現(xiàn)不處理就會(huì)導(dǎo)致模型傳錯(cuò)參數(shù)。另一個(gè)細(xì)節(jié)是 header 參數(shù)。大部分 header 是認(rèn)證、內(nèi)容類型這類基礎(chǔ)設(shè)施性質(zhì)的不應(yīng)該暴露給模型。我的做法是維護(hù)一個(gè)黑名單把Authorization、Content-Type、Accept、User-Agent這些過濾掉只保留業(yè)務(wù)相關(guān)的自定義 header。3.4 schema 轉(zhuǎn)換OpenAPI 到 JSON Schema 的映射OpenAPI 的 schema 和 JSON Schema 大部分是兼容的但有幾個(gè)地方需要處理$ref引用OpenAPI 里大量使用$ref指向components/schemas下的定義必須遞歸解析展開否則模型看不懂引用。nullableOpenAPI 3.0 用nullable: true表示可空J(rèn)SON Schema 里沒有這個(gè)關(guān)鍵字要轉(zhuǎn)成type: [string, null]這種形式。allOf/oneOf/anyOf組合 schema 要遞歸處理DeepSeek 對(duì)anyOf的支持較好allOf可以嘗試合并。example和default保留下來對(duì)模型理解參數(shù)有幫助。$ref解析是這里最容易出問題的地方因?yàn)橐每赡芮短滓蒙踔裂h(huán)引用。必須加一個(gè)已訪問集合來防止無限遞歸。def resolve_ref(schema, components, visitedNone): if visited is None: visited set() if not isinstance(schema, dict): return schema if $ref in schema: ref_path schema[$ref] if ref_path in visited: return {type: object} # 循環(huán)引用兜底 visited.add(ref_path) # 解析 #/components/schemas/Xxx 這種路徑 ref_name ref_path.split(/)[-1] target components.get(schemas, {}).get(ref_name, {}) return resolve_ref(target, components, visited) # 遞歸處理 properties、items 等 result {} for key, value in schema.items(): if key properties and isinstance(value, dict): result[key] {k: resolve_ref(v, components, visited) for k, v in value.items()} elif key items: result[key] resolve_ref(value, components, visited) else: result[key] value return result3.5 必填項(xiàng)的準(zhǔn)確提取必填項(xiàng)判斷錯(cuò)模型就會(huì)漏傳參數(shù)或者多傳空值。OpenAPI 里必填信息有兩個(gè)來源參數(shù)自身的required: true以及 requestBody schema 里的required數(shù)組。這兩處都要處理合并到最終的required列表里。有個(gè)容易忽略的點(diǎn)path 參數(shù)在 OpenAPI 規(guī)范里是強(qiáng)制 required 的但有些文檔寫得不規(guī)范漏標(biāo)了。我的做法是只要是in: path的參數(shù)一律視為必填不管文檔里寫沒寫。這是符合 REST 語義的路徑參數(shù)不傳請(qǐng)求根本發(fā)不出去。4. 完整實(shí)操從零跑通自動(dòng)生成流程4.1 環(huán)境準(zhǔn)備與依賴安裝這套東西用 Python 寫最順手因?yàn)?OpenAPI 解析和 JSON 處理在 Python 生態(tài)里工具最全。基礎(chǔ)依賴就兩個(gè)pip install pyyaml requestspyyaml用來解析 YAML 格式的 OpenAPI 文件很多項(xiàng)目用 YAML 寫文檔requests用來在需要時(shí)從遠(yuǎn)程 URL 拉取 OpenAPI 文檔。如果你只用 JSON 格式的文檔pyyaml都可以省掉標(biāo)準(zhǔn)庫的json就夠了。Python 版本建議 3.8 以上我用的是 3.10類型提示和字典操作都比較舒服。不需要額外的框架純標(biāo)準(zhǔn)庫加這兩個(gè)依賴就能跑。4.2 讀取和解析 OpenAPI 文檔先寫一個(gè)加載函數(shù)同時(shí)支持本地文件和遠(yuǎn)程 URL自動(dòng)識(shí)別 JSON 和 YAMLimport json import yaml import requests def load_openapi(source): if source.startswith(http://) or source.startswith(https://): resp requests.get(source, timeout30) resp.raise_for_status() content resp.text else: with open(source, r, encodingutf-8) as f: content f.read() # 先嘗試 JSON失敗再試 YAML try: return json.loads(content) except json.JSONDecodeError: return yaml.safe_load(content)這里有個(gè)實(shí)操經(jīng)驗(yàn)有些 OpenAPI 文檔是 JSON 但擴(kuò)展名是.yaml或者反過來。不要靠擴(kuò)展名判斷直接按內(nèi)容試解析最穩(wěn)。先試 JSON 是因?yàn)?JSON 解析更快失敗再走 YAML。4.3 遍歷所有接口操作OpenAPI 的paths是個(gè)字典key 是路徑value 是各 HTTP 方法的操作定義。遍歷時(shí)要過濾掉非標(biāo)準(zhǔn)方法的 key比如parameters、summary這些路徑級(jí)別的字段HTTP_METHODS {get, post, put, delete, patch, head, options} def iter_operations(spec): paths spec.get(paths, {}) for path, path_item in paths.items(): for method, operation in path_item.items(): if method.lower() not in HTTP_METHODS: continue if not isinstance(operation, dict): continue yield method.lower(), path, operation4.4 單個(gè)接口轉(zhuǎn)工具定義的完整實(shí)現(xiàn)把前面幾節(jié)的邏輯串起來寫一個(gè)完整的轉(zhuǎn)換函數(shù)def convert_operation(method, path, operation, components, used_names): # 1. 生成工具名稱 raw_name operation.get(operationId) if not raw_name: raw_name f{method}_{path} name sanitize_tool_name(raw_name) # 去重 base_name name counter 1 while name in used_names: name f{base_name}_{counter} counter 1 used_names.add(name) # 2. 構(gòu)建描述 description build_description(operation, method, path) # 3. 合并參數(shù) properties {} required [] for param in operation.get(parameters, []): if $ref in param: param resolve_ref(param, components) param_name param.get(name) param_in param.get(in) if not param_name or param_in header: # 跳過 header 參數(shù) continue schema resolve_ref(param.get(schema, {}), components) if param.get(description): schema[description] param[description] properties[param_name] schema if param.get(required) or param_in path: required.append(param_name) # 4. 處理 requestBody body operation.get(requestBody, {}) if $ref in body: body resolve_ref(body, components) content body.get(content, {}) json_content content.get(application/json, {}) if json_content: body_schema resolve_ref(json_content.get(schema, {}), components) if body_schema.get(type) object and properties in body_schema: for prop_name, prop_schema in body_schema[properties].items(): properties[prop_name] prop_schema for req in body_schema.get(required, []): if req not in required: required.append(req) else: # 非對(duì)象類型的 body整體作為一個(gè)參數(shù) properties[body] body_schema if body.get(required): required.append(body) # 5. 組裝工具定義 parameters_schema { type: object, properties: properties, } if required: parameters_schema[required] required return { type: function, function: { name: name, description: description, parameters: parameters_schema } }4.5 批量生成與輸出最后把整個(gè)流程串起來批量處理所有接口輸出成 DeepSeek 需要的格式def generate_tools(spec): components spec.get(components, {}) used_names set() tools [] for method, path, operation in iter_operations(spec): tool convert_operation(method, path, operation, components, used_names) tools.append(tool) return tools def main(source, output): spec load_openapi(source) tools generate_tools(spec) with open(output, w, encodingutf-8) as f: json.dump(tools, f, ensure_asciiFalse, indent2) print(f生成了 {len(tools)} 個(gè)工具定義已寫入 {output}) if __name__ __main__: main(openapi.json, tools.json)跑一遍50 個(gè)接口幾秒鐘就全部轉(zhuǎn)完了。生成的tools.json可以直接作為tools參數(shù)傳給 DeepSeek 的對(duì)話接口。4.6 接入 DeepSeek 調(diào)用生成工具定義只是第一步真正用起來還要把它傳給模型。DeepSeek 的接口兼容 OpenAI 的格式調(diào)用方式很直接import requests def chat_with_tools(user_message, tools): resp requests.post( https://api.deepseek.com/chat/completions, headers{ Authorization: Bearer YOUR_API_KEY, Content-Type: application/json }, json{ model: deepseek-chat, messages: [{role: user, content: user_message}], tools: tools, tool_choice: auto }, timeout60 ) return resp.json()模型返回的tool_calls里會(huì)包含它選擇的工具名稱和參數(shù)你解析出來映射回實(shí)際的 HTTP 請(qǐng)求調(diào)用真實(shí)接口再把結(jié)果喂回模型就完成了一輪工具調(diào)用閉環(huán)。5. 常見問題與排查技巧實(shí)錄5.1 工具數(shù)量太多導(dǎo)致模型選擇困難50 個(gè)工具一次性全塞給模型會(huì)出現(xiàn)兩個(gè)問題一是上下文占用大二是模型在相似工具之間容易選錯(cuò)。我的經(jīng)驗(yàn)是工具數(shù)量超過 20 個(gè)之后選擇準(zhǔn)確率會(huì)明顯下降。解決辦法有兩個(gè)方向。一是按場景分組把工具分成幾組根據(jù)用戶意圖先判斷屬于哪組只把該組的工具傳給模型。二是精簡描述把不必要的信息砍掉讓每個(gè)工具的描述更聚焦。實(shí)測下來分組方案效果更好但需要額外做一層意圖路由。5.2 $ref 解析失敗或循環(huán)引用這是最常見的報(bào)錯(cuò)來源。表現(xiàn)是生成的 schema 里還殘留著$ref字段或者程序直接棧溢出。排查步驟檢查components.schemas里是否真的存在被引用的定義有時(shí)候文檔寫得不完整引用了不存在的 schema。檢查是否有循環(huán)引用比如 A 引用 BB 又引用 A。這種情況必須用 visited 集合兜底。檢查$ref路徑格式有些文檔用的是完整 URL 而不是#/components/schemas/Xxx這種內(nèi)部引用。5.3 參數(shù)類型轉(zhuǎn)換錯(cuò)誤OpenAPI 里有些類型 JSON Schema 不直接支持比如type: file、type: binary。這些參數(shù)在工具調(diào)用場景下沒法直接傳我的做法是統(tǒng)一轉(zhuǎn)成type: string并在描述里注明是文件內(nèi)容或路徑。模型傳字符串過來你在實(shí)際調(diào)用接口時(shí)再做轉(zhuǎn)換。5.4 常見問題速查表問題現(xiàn)象可能原因解決方向生成的 schema 里有 $ref引用未解析檢查 resolve_ref 遞歸邏輯模型選錯(cuò)工具描述太相似或太模糊優(yōu)化 description增加區(qū)分度參數(shù)漏傳required 提取不全檢查 path 參數(shù)和 body required參數(shù)類型不對(duì)schema 轉(zhuǎn)換遺漏檢查 nullable、allOf 處理工具名重復(fù)operationId 缺失或重復(fù)啟用去重邏輯加后綴上下文超限工具太多或描述太長分組加載精簡描述5.5 幾個(gè)踩過的坑坑一不要相信 operationId 的唯一性。我遇到過一份文檔里有兩個(gè)接口的 operationId 完全一樣直接導(dǎo)致工具名沖突。去重邏輯必須要有不能省??佣escription 里的換行和特殊字符要清理。有些文檔的 description 里帶 markdown 格式、換行符、甚至 HTML 標(biāo)簽直接塞給模型會(huì)干擾理解。我一般會(huì)做一次清洗去掉多余空白和格式符號(hào)??尤杜e值要保留。有些參數(shù)是枚舉類型OpenAPI 里用enum列出可選值。這個(gè)信息對(duì)模型非常重要能大幅降低傳錯(cuò)值的概率。轉(zhuǎn)換時(shí)一定要保留enum字段。坑四分頁參數(shù)要特別處理。列表類接口通常有page、pageSize、offset、limit這類分頁參數(shù)。這些參數(shù)模型不一定知道該傳多少可以在描述里給個(gè)默認(rèn)值建議比如默認(rèn)每頁 20 條。6. 進(jìn)階優(yōu)化讓自動(dòng)生成的工具更好用6.1 描述文案的二次加工自動(dòng)拼接的描述雖然準(zhǔn)確但讀起來往往比較生硬。如果對(duì)效果要求高可以在自動(dòng)生成的基礎(chǔ)上做一層模板化加工。比如把HTTP GET /users/{id}這種技術(shù)描述轉(zhuǎn)成根據(jù)用戶 ID 查詢用戶詳細(xì)信息這種業(yè)務(wù)語言。我的做法是維護(hù)一個(gè)動(dòng)詞映射表把 HTTP 方法和路徑模式映射成業(yè)務(wù)動(dòng)作ACTION_MAP { (get, list): 查詢列表, (get, detail): 查詢?cè)斍? (post, create): 創(chuàng)建, (put, update): 更新, (delete, delete): 刪除, }結(jié)合路徑里的關(guān)鍵詞做匹配生成更自然的描述。這一步不是必須的但做了之后模型的選擇準(zhǔn)確率會(huì)有可見提升。6.2 工具分組與動(dòng)態(tài)加載前面提到工具太多會(huì)影響選擇準(zhǔn)確率分組是有效的應(yīng)對(duì)。具體做法是給每個(gè)工具打上分類標(biāo)簽可以基于路徑前綴自動(dòng)分類比如/user/*歸到用戶組/order/*歸到訂單組。調(diào)用時(shí)先讓模型判斷意圖屬于哪組再加載對(duì)應(yīng)組的工具。這個(gè)方案的關(guān)鍵是分類要合理組內(nèi)工具數(shù)量控制在 10 到 15 個(gè)比較合適。組太多會(huì)增加路由復(fù)雜度組太少又起不到精簡作用。6.3 參數(shù)默認(rèn)值與示例注入模型對(duì)參數(shù)的取值經(jīng)常拿不準(zhǔn)尤其是可選參數(shù)。在 schema 里注入default和example能顯著改善這個(gè)問題。OpenAPI 文檔里如果已經(jīng)有這些信息直接保留如果沒有可以根據(jù)參數(shù)名和類型推斷一個(gè)合理的默認(rèn)值。比如pageSize默認(rèn) 20page默認(rèn) 1status如果有枚舉就選第一個(gè)。這些默認(rèn)值不一定要精確主要是給模型一個(gè)參考錨點(diǎn)。6.4 生成結(jié)果的校驗(yàn)自動(dòng)生成的東西不能盲信上線前一定要做校驗(yàn)。我一般會(huì)檢查這幾項(xiàng)工具名稱是否唯一、是否符合字符集要求。每個(gè)工具的parameters是否是合法的 JSON Schema。required里的字段是否都在properties里存在。描述是否為空、是否超長。寫一個(gè)校驗(yàn)函數(shù)生成后跑一遍有問題直接報(bào)出來比等到模型調(diào)用失敗再排查高效得多。def validate_tools(tools): errors [] names set() for tool in tools: fn tool[function] name fn[name] if name in names: errors.append(f工具名重復(fù): {name}) names.add(name) params fn[parameters] props params.get(properties, {}) for req in params.get(required, []): if req not in props: errors.append(f{name}: required 字段 {req} 不在 properties 中) if not fn.get(description): errors.append(f{name}: 描述為空) return errors這套自動(dòng)生成流程跑通之后我維護(hù)那 50 多個(gè)接口的工具定義從原來每次改動(dòng)要花大半天變成了改完 OpenAPI 文檔重新跑一遍腳本幾分鐘搞定。真正花時(shí)間的部分轉(zhuǎn)移到了描述優(yōu)化和分組策略上而這些是一次性投入、長期受益的工作。如果你手頭也有帶 OpenAPI 文檔的接口需要接入模型強(qiáng)烈建議先把這套自動(dòng)化跑起來別在手工寫 schema 上浪費(fèi)生命。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
蜜臀久久99精品久久久久| 日韩欧美蜜桃精品久久中文字幕久久| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 日本色色色色色视频| 99re69| 亚洲日韩国产精品| 狠狠色一区二区中文字幕| 国产午夜激片Av毛片不卡| 人妻黑丝袜电影| 中文字幕亚洲在线一区| 男人的午夜天堂| 欧美成人精品一区二区三区| 天堂日本亚洲欧美| 亚洲欧洲网站免费观看| 亚洲图片欧美色| 欧美78| 日本操逼二区| 大白逼三四级| 九热久| 久久黄色视频一区二区三区| 亚洲无码日韩电影| 亚洲丨在线| 日本操逼视频不卡直接放| 一区超碰一区| 五月天综合网| 日本超碰在线国产一区| 五月婷婷激情网| 1769一区二区| 操逼操2| 久久超碰亚洲人| 中国AAAAAA黄色片| 久9无限国产| 欧美天天综合站| 超碰人人在线| 久久高清欧美国产| 久久精品国产亚洲AV无码电影| 91丨人妻丨国产丨丝袜| 久草成人影片| 97国产精品久久久久 | 人人澡人人澡人人| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 97人人夜夜精品视频| 91天天综合在线观看| 国产在线视频二区| 春色校园综合网| 日产国产精品中文久久婷婷| 欧洲色色| 伊人亚洲综合| 好爽,再快点啊哈嗯嗯嗯嗯| 亚洲最新中文字幕免费| 男女啪啪网站免费视频| www国产无码| 人妻欧美| 日韩精品人妻中文字幕久久久| 婷婷综合网| 伦激情人妻另类人妻| AV天黑人| 夜夜嗨一区二区三区三州加勒比| 啊啊啊啊啊好大好舒服想要| 黄色乱论网站| 另类亚洲图色| 人妻丝袜一区二区三区在线| 在线人人人人人人精品超| 国产精品白丝| 伦理第一页| 97在线无精品| 国产麻豆一区二三区| 9999亚洲精品| oumeisetupian| 婷婷五月天成人| 丁香五月天堂网| 成片免费播放| 黄色激情电影在线观看| 99这里有精品视频| 盗摄 精品 另类 一区| 麻豆 欧美 日韩| 人妻精品4K4K4K4K4| 日韩人妻精品久久久久| 96精品在线| 日韩有码免费视频| 色欲久久久久综合网| 精品午夜福利| 黑人白女精品一区| 日本一级一级一级一级| 91九色丨国产丨爆乳| 骚逼一区二区| 蜜臀99精品国产高清在线观看| 久久m| 婷婷五月天成人| 日本精品高清一二区一本到| 亚洲一区二区精品福利| wwe 天天干.com| 少妇丝袜在线观看AV| 噜噜瑟| 欧美春色| 九九九不卡| 久久久夜夜夜| 337p大胆噜噜噜噜噜91Av| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 亚洲色欧| 蜜臀99久久精品久久久懂爱| 91在线视频国产网站| 伊人网免费视频| 熟女精品va中文字幕| 久久五月丁香| 亚洲日韩东京热一区| 校园激情狠狠四射| 人妻干天天| 久久婷婷五月天| 欧美久久久15P| 九九九偷拍| www99热| 欧洲性人爱视频| 美女网站黄页| 蜜臀久久99精品久久久久久无删减 | 极品丝袜无码| 欧美日韩欧美| 亚洲无码久久久久久久| 久久同城AV| 乱操乱伦AV| 婷婷久久五月| 超碰偷拍| 成人免费不卡在线视频| 亚洲美乱| 亚洲999综合| 亚洲天堂男人| 最新国产精品久久精品| 超碰这里有精品| 色屁屁影院www国产| 欧美很很操视频| av情色影音| 天天干天天操天天操夜夜操天天操| 国产精品视频白浆免费| 国产乱弄免费在线视频。| 久久精品28| 国产三区免费在线观看| 国产嫩草精品A88AV| 波多野结衣先锋影音| 97欧美精品综合| 黑人性欧美| 免费看久久久性性| 色欧洲| 在线观看免费视频国产| 日韩草久视频| 好爽免费视频| 嗯啊免费视频| 91这里只有精品| 91久精品| 亚洲中文字幕在现观看| 超碰这里只有精品| а√天堂资源官网在线资源| 精品一区96| 亚洲 中文 欧美 日韩 在线| 国模精品一区二区三区苹果色戒| 亚洲精品久久久久久| 白嫩国模丰满一二三区| 日韩射精| 亚洲无码99| 久久伊人东京热| 思思热在线cao| 国产熟女精品区| 看一级特黄a大一片| 国产av色网| 日本在线不卡v二区| 久久女女| 黑人精品成人一区二区三区 | 国产熟女高潮一区二区三区| 91人妻视频| 曰韩中文人妻视频| 久久99草| 国产午夜无码片在线观看影视| 欧美aⅴ99久久黑人专区| 日韩免费看在线黄色片| 综合网欧美在线| 亚洲欧美91| 91美女丝袜诱惑视频| 精品一区二区人妖| 亚洲图片欧美偷拍| 欧美激情视频在线一区| 神马久久中文字幕| 2018天天日天天日| 蜜乳AV.COM| 影音先锋少妇| 嗯嗯啊啊视频在线看| 色婷五月天| 超碰超碰95| 98久久超碰| 亚洲美乱| 成年男人的天堂| 日日骚中文字幕| 91九久| 综合网 欧美| 色妹子A V| 国产性爱在线视频一区二区| 精品人妻15区| 啊啊啊97视频| 欧美有码激情视频一区二区三区| 2018天天干在线视频| 插插综合网天天影视网| 超碰午夜| 五月天黄色av| 日韩一区二区三区四区五区| 91美女网站| 天天干1区2区在线| 欧美狠狠操| 婷婷导航| 99国产精品视频尤物| 四虎884| 青青操青娱乐| 日韩欧美中文日韩欧美色| 日本成人在线不卡一区二区三区| 亚洲图片 激情小说| 欧美午夜精品久久久久久超碰| 人人爱人人操人人性| 成年人网站在线免费观看| 久艹日日日| 中文字幕人乱码中文字的预防方法 | 97在线播放 | 人妻少妇久久久| 精品免费视频国产一区| 综合亚洲网| 亚洲日本天堂| 怡红院亚洲怡春院av| 国产乱人伦AVA麻豆软件.| 国产一区二区三区中文字幕| 欧美日韩操逼动图| 91殴美| 国产999精品久久久久久| 美女诱惑一区| 色网亚洲人| 97精品国产精品免费观看| 亚洲综合图色在线| 97超碰免费人人性爱| 国产老熟女| 粘花网06av视频| 一区久久久二区| 91 亚洲 欧洲| 蜜臀人妻少妇久久在线观看| 97精品第3页| 91丝袜美女| 久久嫩草国产成人一区| 日韩国产十八禁| 欧美色九九九| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 五月婷婷大香蕉| 99操视频| av九九| 爱av免费| 欧美性爱中文字幕无线码| 黑人精品XXX一区一二区| 香蕉欧美| 老熟女91| 超碰精品日韩欧美国产| 无码WWW免费视频网站| 亚洲暴力强奸AV| 亚洲中文日韩精品| 99综合网| yirendaxiangjiashipin| 久久大香蕉手机高清| 婷婷激情五月综合| 国产SV一线| 天天摸天天舔天天操| 国产中午字一暮区| 精品国产av一区二区三区四区入口| 3PAV乱伦视频| 人人色人人射人人妻| 91jk色拍| 亚洲色情在线影视| 欧美中字不卡| 日日躁夜夜躁狠狠躁超爽| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 日韩一级特黄av毛片| 国产福利第一视频| 九九九久久久久| 怡红院网站在线视频| 青草精品视频日本久久久久网站在线| 中日亚韩免费视频| 青草视频在线看看看看看看看看看| 大香蕉十区| 人人操人人精品影片| 欧美性夜| 欧美丰满少妇xx高潮| 强奸乱伦中文字幕AV| 99精品久久| 97视频在| 99热这里都是精品| 国产最火爆久久国产网站网站| 国产理论视频在线播放| 蜜臀人妻少妇久久在线观看| 亚洲第一页色网| 日韩精品人妻一| 日韩99神马视频播放片在线播放| 人人妻人人澡人人爽人人精品浪潮| 成人AV超碰免费在线| 五月天激情四射| 少妇精品久久久| 成人羞羞视频国产| 九九成人| 美女网站黄页| 国产精品点击进入在线影院高清 | 在线播放免费av福利片| 一区二区三区精品黑丝白丝酒店对鸡 | 影音先锋每日最新资源在线观看| 久9视频| 色九月综合| 亚洲AV永久无码精品成人调教| 精品国产乱码| 嗯嗯啊啊操死我| 蜜桃久久一区二区| 日韩无码嘿咻黑热久| 中文字幕二区| 天天干人妇| 成人久久精品| 国产精品久久久久久久AV大片 | 天天天做天天天爱天天天爽| 久久国产AⅤ| 开心五月深爱五月| 成人三级片一区二区三区视频| 亚一综合久久久久久久久久| 亚洲人91| 性色生活片久久毛片婬片免费放女人一级毛片 | 日韩综合第八区国产精品| 亚州综合色| www.色婷婷.com| 欧美色图片欧美色图| 天天看天天在线精品| 艳尻美人妻| 精品无码秘 人妻一区二区| 久久精品中文字幕无码l| 蜜桃精品视频一区二区三区| 欧美,日韩,亚洲视频| 91N综合网在线| 日韩A优精品在线观看| av72网| 加勒比久久av| 97日韩欧美亚洲| 岛国激情视频在线观看| 欧美玖玖爱免费玖玖| 91东北熟女| 日韩一区二区熟女| 亚洲一区二区三区欧美日韩| 玖玖爱综合网| 日韩另类色图| 乱伦日本中文自拍| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 天堂а√在线最新版在线| 超碰在线人妻不卡| 欧美人妻一区| 人妻铁牛TV| 日韩AV一区二区三区三州三州| 国模私拍一区二区三区神乳| 久久久久96| 99自拍视频在线| 久久伊人最新网址视频| 久久婷婷亚洲欧| 久久6热视频免费观看| 天天综合网~91| 啊啊啊用力在线观看| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 狼人综合婷婷激情四射 | 天天超级碰碰碰| 自拍偷拍亚洲熟女妇人精品| 亚州欧美综合| 国产又粗又又黄又猛| 郑州宾馆老熟女露脸啪啪| 中文字幕在线高清男人的天堂| 天天综合麻豆视频| 日韩操啪| 97综合在线| 蜜臀久久99精品久久久久久成人小说| 激情五月天色播| 欧美伊人电影| 成人一级二级| 亚洲精品欧美专业| 婷婷久久久| 激情五月天插| A级片一区| 怡红院网站在线视频| 97精品国产97久久久久久免费| 99精品国产户外露出| 我想要啊 啊 啊| 久久综合精品一区二区三区| 五月丁香婷婷色| 午夜无遮挡男女啪啪视频| 久久亚洲日韩熟女精品| 白嫩91在线亚洲| 好好的日:com久久九九| 狠狠欧美| 东北丰满熟女国产一区| 992视频一区| 我爱大香蕉| 淫荡熟女乱伦网| 亚洲一区日韩精品中文字幕| 9I1性色影院| 九九九精品色乱九九九| 天天影视射综合网| 久久亚州高清| 蜜桃久久久久久| 国产精品麻豆成人AV艾秋| 亚洲精品第一| 亚洲AV秘 精品久久老牛影视| 精品人妻一区二区三区四区石在线| 九九九偷拍| 美国三级日本三级久久99| 日本东京热大香蕉a片| 人妻天天爽夜夜爽精品2| 日韩黄色一区二区三区| 户外裸露刺激视频第一区| 日韩欧美成人午夜福利| 八戒午夜福利理论片| 清纯唯美第一页| 久久有码视频| 91中出视频| 国产又粗又长又大的视频| 亚洲天堂久| 97丝袜亚洲在线播放| 天天看高清麻豆| 久久婷婷亚洲欧| 91美女色视频亚洲| 欧美91久久久久| 蜜臀无码一区二区| 我爱搞逼综合网| 东北女人高潮视频| 色情五月综合婷婷| 久久精品一区二区三区不卡| 91丝袜美女| 一牛影视久久久一区二区三区| 日韩人妻少妇中文字幕| 99爱久久视频频| 亚洲综合码| 97超碰亚洲| 欧美亚洲宗合色性图| 性交一区二区在线播放| 在线色资源| 97超碰色色| 蜜乳AV免费观看| 天天射夜夜操| 99精品视频在线观看免费| 丁香色五月 97干| 91爱综合| 一二三啪啪专区| 国产suv精品一区二区四区999| 日本一区二区三区欧美日韩中文字幕| 老汉网| 一级性爱aaaa| 中文字幕日韩综合| 素人美腿视频网站| 97欧美色综合| 亚洲色狠| 18禁中文字幕| 国产精品亚洲免费| 天天躁日日躁AAAXX| 深夜啪啪啪视频免费| 亚洲色图国产另类| 東南亚性呦成人伦理资源在线视频| 欧美桃色网| 日欧操屄| 两女互慰AV高潮喷水在线观看| 日韩性爱1级片视频| 日韩一级特黄av毛片| 99日韩| 久久久久密| 欧美在线啊啊啊 | 5252色欧美在线男人的天堂| 日韩无码视频黄色| 久久午夜伦| 国产91专区| 我要去看2个日本美女.com曹逼| 99热只有这里有精品| 亚洲无线观看久久| 精品人妻美妇91job| 99青草| 欧美色997| 中文一区二区| 狠狠91| 蜜臀久久久久久999| 亚洲欧洲另类| 超碰这里有精品| 青娱乐二区免费| 婷婷五月天网| 9久9久9久9久视频网站| 大香蕉免费3| 丁香五月天视频| 九九九只有精品| 精品一区二区三区丰满熟女-亚洲欧美一区| 日韩精品一区二区日韩| 日韩人妻无码精品系列| 亚洲中文字幕精品一区| 亚洲丝袜二区| 99re这里只有| 嫩草影院性色| AV男人天堂网| av婷婷色婷婷色六月| 日韩中文9| 色综合天天| 性色avv| 999久久芭蕾| 97综合国产| 日本高清一区二区在线| 国产熟女自拍| 天天插天天操| 超碰地址久久| 偷拍欧美激情| 国产一区二区在线播放量| 丰满搜索结果 -第18页- 久久高清无码| 极品少妇久久久| 69人妻精品一区二区绯色| 色九久| 欧美成人9797| 97亚洲精品超碰| 伊人五月天| 欧美97超碰| 色哟哟国产精品免费网址| 男人在线天堂| 精品人妻一区二区三区-国产精品| 日本成人在线不卡一区二区三区| 哈哈操电影AV| 一区二区三区四区免费视频| 九七超碰人人乐| 免费中文在线| 午夜啊啊| 涩爱AV在线| 欧美日韩 强奸乱伦| 国产精品一区二区三区免费视频| 91人妻丝袜无码| 岛国激情视频软件| 狠狠爱夜夜| 黄色二级片网站| 亚洲午夜福利在线影院| 97在线免费| 素颜老阿姨乱情色| 青青在线视频免费| 午夜男人一级A片7777| 人人爱夜夜爱| 日韩av乱伦| 日本久久女同性恋视频| 精品人妻视频一区二区在线播放| 好吊色在线观看| 福利操逼| 亚洲欧美天堂| 91超碰在线观看| 天天干天天日天天射黄色大片| 久久激情亚洲精品无码?V| 熟女精品日韩一区二区三区| 美女干逼2| 亚洲天堂人妻一区二区| 99999精品| 中字一区| 天天做天天爱天天爽AV| 日韩97超碰中文字幕| 永久免费发布性爱网| 91在线视频国产网站| 成人精品水蜜桃久久久久久久| 精品国产乱码久久久久A| 亚洲成人ab| 国产乱弄免费在线视频。| 亚洲高清无码在线桃色| 午夜.DJ高清在线观看免费7| 男人的天堂2019| 91综合天天看| 色九九久九九| 亚洲在线综合| 呻吟 欧美 日本 中出| 天天操女人| 柠檬AV导航| 一类av片在线看| 中国AAAAAA黄色片| 久9精品| 国产黑白丝在线| 国产9区| 99re视频在线播放青草| 嗯嗯嗯啊啊在线观看| 欧美激情一区二区| 加勒比综合九九99视频在线播放| 吻戏激情性巴克| 中文字幕黄色片| 欧美日韩99| 国产日本久久免费精品| 人人操人人大香蕉| 天天操夜夜操| 亚洲AV成人精品网站在AV| 亚洲精品久久久久久久蜜桃臀| 青草成人免费视频一COm| 国产路线专区| 啊v在线观看视频| 偷拍盗拍亚洲色图图片| 欧美裸体美女日麻屄| 亚欧美综合网| 日韩97| a'v在线资源| 99久久久无码国产精品性啊聊 | 精品人妻一区二区三区鲁大师| 人妻丰满熟妇av无码区蜜桃| 蜜臀在线网站| 无马一区二区| 久久人妻| 亚洲 无码 偷拍| 高清肉丝中文无码| 国产伊人精品在线| 国产精品乱码久久久久久久| 第45页一区二区| 翔田千里无码一区| jiujiujiujingpin| 亚洲AV成人无码一区二区三区在线观看| 亚洲性图91| 日韩小电影| 草草草视频在线免费看| 青青伊人这里只有精品| 国产精品内射婷婷一级二| 欧美人人曰人人操人人射射| 搡老人老9丨女老熟人| 蜜乳av首页| 熟女精品一区二区三区| 曰本熟女视频| 亚洲第一男人天堂| AV乱伦国产| 日美免费黄片| 日韩成人色图| 亚洲少妇中文字幕网址| 日韩另类色图| 久久999久| 欧美A√综合网 | 欧美成人精品欧美一级乱黄一区二…| 国产成人在线观看网址| 草草影院日本第一页| av国产无码| 欧美有码激情视频一区二区三区| 第二页中文字幕| 日韩不卡一二三四| 日韩国产精品人妻无码久久久| 日韩一性一交一A片俄罗斯| 日韩欧美视频青青| 97欧美色综合| daxiangjiao你懂的| 99无码狠狠久久| 国产亚洲日韩欧| 99热精品在线| 六月丁香啪啪| 一级日本牲交大片好爽在线看| 日韩av色图| 性综合网| 亚洲成aⅴ人片不卡无码| 日本在线不卡一二区| 五月天社区| 午夜九九| 26uuu性| 婷婷五月天色色| 97精品久久久久中文字幕| 国产精品点击进入在线影院高清| 色情五月综合婷婷| 久操视频免费观看| 成人免费在线网站| 亚洲强奸乱伦影视网| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 入口操逼网站| 久偷拍欧美日韩三区| 翔田千里无码中出中文字幕| 在线啊啊啊啊| 欧美综合另类| 婷婷六月色| 欧美热图99| 99九九精品| 五十路成人在线视频二区三区| 青娱乐福利99| 欧洲免费一区二| 农村女一级毛卡片| 麻豆性爱视频在线播放| 国产精品精品系列在线观看| 久久久久久中文字幕中文字幕最新| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 成人毛片免费| 91亚洲精品青草| 亚洲天天在线| 乱伦熟女区| 亚春色色| 久久鲁干| 亚洲AV永久无码精品成人调教| 午夜精品久久久久久久99蜜桃一| 九一性生活免费视频| 3P乱轮视频| 国产乱弄免费在线视频。 | 东北女人高潮视频| 嗯嗯啊中文字幕| 秋霞鲁丝午夜无码一区二区三| 女人 A一级| 久久久一区二区| 国产一区二区三区白丝| 日本精品九九九| 日本日皮视频逼| 成人一二三区| 天堂九九九九九九九九九| 91在线欧美| 真实高潮91| 亚洲av综合色区无码一| 亚洲欧美校园| 日韩欧美亚洲国产日韩| se吧提供91精品国产91久久久久久 | 中文字幕在线免费观看 | 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 国产Aα| 老鸭窝在线视频播放| 九九九九久久久| 在线αⅴ| 99爱爱| 老司机老司机午夜影院| 欧美综合网A| 亚欧美综合网。| 新视频sss国产| 96久久久精品| 午夜福利精品| 九色黄站| 330dv亚洲成年视频网| 二色av| 热99re69精品8在线播放| 综合亚洲情色| 99精品无码| 人人操人人插人www| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 日韩激情中文字幕有码| 免费簧片在线观看| 精品二区久久| 青青操少妇| 天天精品| BBBBB97COM| 婷婷色导航| 成人日本精品九区| 色婷婷综合网站| 蜜乳AV免费观看| 日韩人妻无码不卡网站| 精品97久久综合| 综合免费无码中文| 久久蜜桃一区二区| 亚洲图片 激情小说| 亚洲图片 91| 女人高潮大叫一级毛片| 先锋激情∨在线视频播放| 精品天堂| 一本一首道人妻少妇免费久久| 久久亚洲不卡| 欧美精品日韩久久久九| 日韩综合色图| 妇女乱色二区| 91碰碰| 男人的天堂成人的社区| 白嫩国模丰满一二三区| 噜噜噜在线视频| 日韩精品中文字幕人妻| 99无码| 欧美春色| 伊人影院中文字幕| 九九热在线视频| 久久久久久99AV无码免费网站| 久久久久99精品成人片蜜臀| 天天综合网合集91| 一二三啪啪专区| 野狼激情网| 67914亚洲精品| 丁香六月激情| 99在线免费视频| 亚洲操人| 先锋精品av色鲁| 色五月婷婷五月天| 日韩一级成人毛片免费观看 | 国产无码三级视频在线观看| 性综合网| 天天日天天干天天摸天天操| com 首页 18岁 禁区 女优 免费 精选 同城 | 久久久精品中文字幕爱豆| 人人性爱视频免费| 亚洲中文字幕在线视频一区二区| 91美女视频| 久久的免费性爱视频| 四虎午夜影院| 五月婷婷丁香六月丁香| 午夜激情成人在线观看| 精品人妻av在线播放| 韩国成人精品久久久免费看 | 国产视频一区二区免费| 小情侣高清国产在线视频| 人人贴人人摸| 亚洲一级特黄大片在线播放91| 在线观看精品国产免费| 欧美成人性爱视频大全| AV九九| 免费在线黄片视频| 久热精品在线| 色哟哟av| 91精品国产综合久久久蜜臀酒店| 九九九不卡| 人妻少妇精品| 国产一区二区在线播放量| 蜜桃视频成a人v在线| www.91逼逼.com| 日本女人操逼| 天天日少妇逼AV| 久久a久久| 日日日啊啊啊| 日韩人妻精品| 中文字幕精品三级久久久| 日本道不卡| 欧美精品成人在线播放| 艹我哪美一区无码| 亚洲黄日韩无码专区| 91精品少妇搡搡搡| 色婷婷国产精品一区在线观看| 少妇高潮流水av免费| 一个人免费HD91视频| 亚洲超碰AV| 人妻少妇一区二区| 亚洲 图片 综合91| 青草园大香蕉| 97在线看| 天堂8在线新版官网| 97色插| 麻豆av一区二区| 91久久免费视频互動交流 | 精品人妻15区| 第四色奇米影视777| 成人 日韩欧美一区| 天天干人妻| 小骚逼被操的爽不爽| 色九久| 大逼色网站| 噜噜噜在线视频| 69少妇一区二区| 亚洲综合色网| 欧美狠狠弄| 偷拍综合亚洲| 丁香五六月啪啪| 99婷婷| 人妻素股| 亚洲欧美日韩免费电影| 夜夜爽爽爽| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 99久久99久久综合| 97操综合| 乱伦a片视频| 久久久久久久久久久久黄色| 国产深夜福利| 亚欧无码在线| 91美女视频在线| 日韩福利电影网| 欧美极品女人的天堂| 亚州熟妇精品| 日本欧美一区二区三区免费| 人妻一区二区三区视频| 全国男人天堂网| 欲射影视| 色娱乐色呦呦夜夜夜夜av| 国产精品美女久久久久久网站| 国产99 中文字幕日韩小视频| 大香蕉123| 亚洲熟女少妇免费视频| 日韩免费高清大片在线| 精品国产网站| 色播综合| 国语av狠狠色丁香婷婷综合激情| 日韩性爱电影一区| 色哟哟综合| 亚洲国产丝袜在线观看| 久久少妇人妻| 人妻熟女一区二区| 亚洲 暴爽 AV人人爽日日碰| 亚洲成人福利电影免费| 99超碰色| 超碰色97| 国产欧美日韩女同性恋ww喷水精品 | 农村少妇久久久久久久| 人妻一区视频| 日韩中文9| 国产美女mm131爽爽爽爽| 超碰99热中文字幕| 国产成人无码a| 夜夜 中文视频rt| 亚洲av综合色区无码一| 操老熟女AV| 国模精品娜娜一二三区| 六月婷婷一区二区三区| 国产一级舔足在线观看| 亚洲日韩青青草色月| 久久久久久日韩| 欧美日韩天堂| 人妻-91porn| 好爽视频在线观看| 蜜臀久久99精品久久久久免费观| se吧提供国产乱老熟视频胖女人 | 亚洲精品蜜桃久久久| 国产精品亚洲无码| 97视频在线免费| 久久草草欧美精品| 蜜乳视频网站| 玖玖超碰熟| 欧美午夜色妇色鬼| 按摩中文字幕| 九九九精品一区二区无码| 亚洲精品黄码久久久久| 亚洲 欧美 色图| 国产午夜精品在线观看| 狠狠操使劲操| 亚洲美女自拍偷拍视频| 嗯……啊…嗯嗯…啊…好舒服| 日本精品久久久久久久| 91 丝袜在线播放| dy888午夜老子影视达达兔| 日本成人A片免费看| 97超碰69| 亚洲一区二区性爱电影| 啪啪性爱免费视频| 偷拍三区| 天天爱天天操| 久久精品国产亚洲AV无码电影| 2019久久久久久久久福利| 欧美色图私拍91| 91人妻最真实刺激绿帽| 乱久久久| 亚洲 欧美日韩 另类| 超碰在线一区二区| 精品无人区麻豆乱码久久久| 国产懂色精品国产av| 天天干天天操天天操夜夜操天天操 | 国产精品久久久久久亚洲色欲| 8050午夜少妇无码| 美女AV一区二区| 亚洲色婷婷久久久综合日本| 欧美极品| 亚洲天堂综合AV| 亚洲精品欧洲色| 精品-91人妻子系列| 国产午夜福利合集| 91社区拍啪人妻| 大香蕉一人在线| 很很操在线| 丝袜狂射91| 久久久精品网| 久操网视频| 天操天操夜操夜月月年年操操| AAA久久| 日韩精品在线视频在线观看| 久久久一区二区三区四区五区| 日韩欧美天天爽爽爽天天爽爽| 97精品国产97久久久久久户外免费| 日产欧美电影一区二区三区| 天天爱天天操| 五月天久久综合网| 激情四射五月天| 深田咏美亚洲精品福利社| 精品视频在线观看精品| 嗯嗯嗯啊啊啊操的我好爽| 少妇一区二区三区| 三级网色| 亚洲在线A| 日本在线一二 | 五毛骚逼极品美女怕怕| 天天干天天操天天干天天操| 欧美操逼录像国产黄色国产| 91制服丝袜| 日韩三级伊人| 激情五月天色色| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 温婉少妇玩3p| 丝袜美女诱惑 91 视频| 天天干天天日天天射黄色大片| 人人澡人人澡人人| 黑人免费福利视频| 少妇久久| 91人妻少妇| 天堂av最新电影网| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 超碰在线欧美性爱激情| 人妻一区二区三区四区视频| 中日韩久久久免费看| 台湾佬中文娱乐网久久久久久久久久com | 欧美高清无码免费视频高清版| 久久系列| 97干97色| 夜夜操美女| 午夜AV人气不卡| 免费A V在线播放| 国产精品亚洲免费| 激情AV| 95精品在线| 一区二区三区日韩欧美| 精品一区二区麻豆| 熟妇人妻一区二区三区| 99re这里只有精品中心播放| 人人摸人人摸人人干| 人人摸.人人色| 99re公开精品免费视频| 极品极品色影院| 日本大片日本一区二区免费高清 | 99热伊人| 情色大香蕉| 久久国产在线一区二区| 欧美色www亚洲国产阿娇要播| 欧美性第一页| 性色av大全| 大香蕉一区二区在线观看.| 国产精品自产拍在线观看社区| 日本在线一二 | 丁香五月激情综合国产| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 啊啊啊好疼| 97久久综合网| 2019精品国产无码成人| 最新国产亚洲精品精品国产亚洲综合| 日韩偷拍一区二区三区| 黑人操一区二区| 在线v中文字幕一区二区三区| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒| www超碰| 色综合加勒比四四季| 欧美亚洲影视| 久啪| 玖玖综合网| 欧美成97爱| 亚洲欧美日韩免费观看| 国产91啪| www.色操逼| 欧美日韩亚洲天堂网| 久久精品超碰| a天堂视频| 日韩一级二级在线| 亚州熟妇精品| 999热日韩精品| 6080YYY午夜理论片在线观看| 五月天色五月| 久久久久国产| 超碰吊日色| 亚洲人成网站7777| 亚洲色诱惑| 夜草欧美| 性夜影院爽黄A爽免费动漫| 亚洲黄色影视| 青青草成人视频在线观看二区| 一二区在线观看视频| 国产精品爱欲| 亚洲欧美经典一区二区| av东京热男人的天堂| 淫荡网址| 把腿张开老子CAO烂你| 三级网站超变态精品| 夜夜躁狠狠躁日日躁av| 精品成人亚洲午夜电影| 九九无码久久精品视频| 91国产丝袜白虎| 超碰精品日韩欧美国产| 人妻久久久久久久久久久久久久久 | 熟妇人妻一区二区三区| 校园春色亚洲色图| 久久精品三级影视| 99热这里只有是精品10| 热热色中文无码| 色综合网1| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久久精品国产72国产精品福利 | site:sinbotex.com| 中文字幕在线免费观看视频| 久久久18禁| 无码久久亚洲高清,| 天天干天天日天天射黄色大片| 亚洲高清欧美总合| 超碰99在线| 欧美亚洲韩国视频十五区| 夜间福利片1000无码| 久久久av爱| 97精品一区二区三区免费| 思思热免费视频观看| 国内操逼视频二区| 日日夜夜精品| 欧美激情久| 无码操逼网| 色九九综合AV| 婷婷丁香五月天综合东京热| 在线天堂999| 内射夫妻三片| 亚洲综合码| 欧美伊人久久综合网| 九月婷婷综合| 很黄很色的视频在线观看| 色综合天天| 9丨久久九九九| 亚洲色图尤物视频| 顶级少妇BT天堂| 中文字幕一区二区三区人妻不卡 | 一卡二卡三卡| 丁香五月综合| av日韩中文字幕| 五月丁香综合网| 中文操逼字幕| 嗯嗯,好大,好爽,好骚| 亚洲第一免费视频| 嗯啊免费视频| 91丨九色丨国产丨人妻在线| 久久综合久色欧美综合狠狠| 天天草天天干天天日| 97超级久久| 婷婷久草一区二区三区| 欧美性爱第一页久久| 久久这里只精品99re66图| 青青国产精品在线| 1769一区| 伊人91| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 久久青青草在线视频| 亚洲精品一二三四区| 日韩人妻播放| 深喉吞精| 精品国产久热在线观看| 好爽视频在线观看视频| 九九热九九热| 大香蕉www.超碰| 国产91美女视频| 黑丝91视频| 国产情侣自拍在线播放| 99热这里只有精品18| 午夜欧美神马久久久久| 色成人Www精品永久观看| 欧美日韩222| 国产小u女在线观看| 久久国产在线一区二区| 蜜臀一二三区| 欧美日韩第一页| 久久国产在线一区二区| 国产精品三级视频网站| 亚洲在线| 青青草在线视频美女| 91爱看| 欧美v亚洲v日韩v最新在线二区| 国产92麻豆天美精品色欲5| 久热网| 国产精品亚洲免费| 91精品久久久| 人妻天天爽天天爽三区| 新怡红院| 歐美性天天| 狠狠干综合| 国产av激情无码久久天堂| 日本不卡一二区| 亚洲中文电影| 亚洲麻豆18发?| 亚洲精品一二三四区| 毛片电影一区二区三区| 国产a片操逼| 欧美精品97| 国产夫妻一区二区| 黄色高清无码无码破解免费暗网| 日韩欧美亚洲自拍偷拍| 国产91 丝袜在线播放| 青青伊人这里只有精品| 操操操操操操| 婷婷久久久| 免费黄色A片| 免费av高清无码| 成人一级二级| 69丨亚洲丨精品丨入口免费播放| 97爱b| 色情亚洲日本成人| 男人的天堂激情| 91色碰| 久jiu久神马影院|