精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

精準(zhǔn)0誤差,輸入價(jià)格打骨折!OpenAI官宣API支持結(jié)構(gòu)化輸出,JSON準(zhǔn)確率100%

人工智能
程序員福音!OpenAI新推出的模型API全部支持結(jié)構(gòu)化輸出,JSON Schema匹配率高達(dá)100%,成本還立減一半。

還在絞盡腦汁想一堆提示詞,為一頓操作后五花八門的輸出結(jié)果而頭疼?

OpenAI終于聽到了群眾的呼聲,為廣大開發(fā)者送上渴望已久的第一大功能。

OpenAI今日宣布新功能上線,ChatGPT API現(xiàn)已支持JSON結(jié)構(gòu)化輸出。

圖片圖片

JSON(JavaScript Object Notation)是文件和數(shù)據(jù)交換格式的行業(yè)標(biāo)準(zhǔn),因?yàn)樗纫子谌祟愖x取又易于機(jī)器解析。

然而,LLM常常與JSON對著干,經(jīng)常會(huì)產(chǎn)生幻覺,要不生成僅部分遵循指令的響應(yīng),要不就生成一堆「天書」,根本無法完全解析。

圖片圖片

這就需要開發(fā)人員使用多種開源工具、嘗試不同的提示或重復(fù)請求等來生成理想的輸出結(jié)果,耗時(shí)耗力。

結(jié)構(gòu)化輸出功能于今天發(fā)布,以上棘手的難題迎刃而解,確保模型生成的輸出與JSON中規(guī)定的schema相匹配。

一直以來,結(jié)構(gòu)化輸出功能是開發(fā)人員呼聲最高的頭號功能,奧特曼在推文中也表示,該版本是應(yīng)廣大用戶的要求發(fā)布的。

圖片圖片

OpenAI發(fā)布的新功能確實(shí)擊中了許多開發(fā)者的心,他們一致認(rèn)為「This is a big deal」。

紛紛留言表示贊嘆,直呼「Excellent!」。

圖片圖片

幾家歡喜幾家愁,OpenAI的這次更新,又讓人擔(dān)心會(huì)吞噬初創(chuàng)公司。

圖片圖片

然而,對于更多的普通用戶來說,他們更關(guān)心的問題是GPT-5到底什么時(shí)候發(fā)布,至于JSON Schema,「那是什么?」

圖片圖片

圖片圖片

畢竟,沒有GPT-5的消息,OpenAI今年秋季的DevDay,可能與去年相比,將會(huì)顯得安靜了許多。

輕松確保模式一致性

有了結(jié)構(gòu)化輸出,只需要定義一個(gè)JSON Schema,AI就會(huì)不再「任性」,乖乖按照指令要求輸出數(shù)據(jù)。

并且,新功能不僅僅讓AI變得更加聽話,還能大大提高輸出內(nèi)容的可靠性。

在對復(fù)雜的JSON schema的跟蹤評估中,帶有結(jié)構(gòu)化輸出的新模型gpt-4o-2024-08-06獲得了100%的滿分。相比之下,gpt-4-0613的得分不到40%。

圖片圖片

實(shí)際上,JSON Schema功能就是OpenAI在去年的DevDay上推出的。

現(xiàn)在,OpenAI在API中擴(kuò)展了這項(xiàng)功能,確保模型生成的輸出與開發(fā)人員提供的JSON Schema完全匹配。

從非結(jié)構(gòu)化輸入生成結(jié)構(gòu)化數(shù)據(jù)是當(dāng)今應(yīng)用中人工智能的核心用例之一。

開發(fā)人員使用OpenAI API構(gòu)建強(qiáng)大的助手,能夠通過函數(shù)調(diào)用獲取數(shù)據(jù)和回答問題,提取結(jié)構(gòu)化數(shù)據(jù)以進(jìn)行數(shù)據(jù)輸入,并構(gòu)建多步驟的智能體工作流(multi-step agentic workflows),從而允許LLM采取行動(dòng)。

技術(shù)原理

OpenAI采用了一種雙管齊下的方法來提高模型輸出與JSON Schema的匹配度。

最新的gpt-4o-2024-08-06模型經(jīng)過訓(xùn)練,可以更好地理解復(fù)雜的Schema并生成與之匹配的輸出。

盡管模型性能已顯著提升,在基準(zhǔn)測試中達(dá)到了93%的準(zhǔn)確性,但固有不確定性仍然存在。

為了確保開發(fā)者構(gòu)建應(yīng)用的穩(wěn)定性,OpenAI提供了一種更高準(zhǔn)確度的方法來約束模型的輸出,從而實(shí)現(xiàn)100%的可靠性。

約束解碼

OpenAI采用了一種稱為約束采樣或約束解碼的技術(shù),默認(rèn)情況下,模型生成輸出時(shí)完全不受約束,可能從詞匯表中選擇任何token作為下一個(gè)輸出。

這種靈活性可能導(dǎo)致錯(cuò)誤,例如,在生成有效JSON時(shí)隨意插入無效字符。

為了避免此類錯(cuò)誤,OpenAI使用動(dòng)態(tài)約束解碼的方法,確保生成的輸出token始終符合提供的schema。

為了實(shí)現(xiàn)這一點(diǎn),OpenAI將提供的JSON Schema轉(zhuǎn)換為上下文無關(guān)文法(CFG)。

對于每個(gè)JSON Schema,OpenAI計(jì)算出一個(gè)代表該模式的語法,并在采樣期間高效地訪問預(yù)處理的組件。

這種方法不僅使生成的輸出更準(zhǔn)確,還減少了不必要的延遲。首次請求新模式可能會(huì)有額外的處理時(shí)間,但隨后的請求通過緩存機(jī)制實(shí)現(xiàn)快速響應(yīng)。

備選方案

除了CFG方法,其他方法通常使用有限狀態(tài)機(jī)(FSM)或正則表達(dá)式來進(jìn)行約束解碼。

然而,這些方法在動(dòng)態(tài)更新有效token時(shí)能力有限。特別是對于復(fù)雜的嵌套或遞歸數(shù)據(jù)結(jié)構(gòu),F(xiàn)SM通常難以處理。

OpenAI的CFG方法在表達(dá)復(fù)雜schema時(shí)表現(xiàn)出色。例如,支持遞歸模式的JSON schema在OpenAI API上已得到實(shí)現(xiàn),但無法通過FSM方法表達(dá)。

輸入成本節(jié)省一半

支持函數(shù)調(diào)用的所有模型均可實(shí)現(xiàn)結(jié)構(gòu)化輸出,包括最新的GPT-4o和GPT-4o-mini模型,以及微調(diào)模型。

此功能可在Chat Completions API、Assistants API和Batch API上使用,并兼容視覺輸入。

與gpt-4o-2024-05-13版本相比,gpt-4o-2024-08-06版本在成本上也更具優(yōu)勢,開發(fā)者可以在輸入端節(jié)省50%的成本(2.50美元/1M oken),在輸出端節(jié)省33%的成本(10.00美元/1M token)。

如何使用結(jié)構(gòu)化輸出

在API中可以使用兩種形式引入結(jié)構(gòu)化輸出:

函數(shù)調(diào)用

通過在函數(shù)定義中設(shè)置strict: true,可以實(shí)現(xiàn)通過工具的結(jié)構(gòu)化輸出。

此功能適用于支持工具的所有型號,包括所有型號gpt-4-0613和gpt-3.5-turbo-0613及更高版本。

啟用結(jié)構(gòu)化輸出后,模型輸出將與提供的工具定義匹配。

示例請求:

POST /v1/chat/completions
{
  "model": "gpt-4o-2024-08-06",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant. The current date is August 6, 2024. You help users query for the data they are looking for by calling the query function."
    },
    {
      "role": "user",
      "content": "look up all my orders in may of last year that were fulfilled but not delivered on time"
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "query",
        "description": "Execute a query.",
        "strict": true,
        "parameters": {
          "type": "object",
          "properties": {
            "table_name": {
              "type": "string",
              "enum": ["orders"]
            },
            "columns": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "id",
                  "status",
                  "expected_delivery_date",
                  "delivered_at",
                  "shipped_at",
                  "ordered_at",
                  "canceled_at"
                ]
              }
            },
            "conditions": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "column": {
                    "type": "string"
                  },
                  "operator": {
                    "type": "string",
                    "enum": ["=", ">", "<", ">=", "<=", "!="]
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "column_name": {
                            "type": "string"
                          }
                        },
                        "required": ["column_name"],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": ["column", "operator", "value"],
                "additionalProperties": false
              }
            },
            "order_by": {
              "type": "string",
              "enum": ["asc", "desc"]
            }
          },
          "required": ["table_name", "columns", "conditions", "order_by"],
          "additionalProperties": false
        }
      }
    }
  ]
}

示例輸出:

{
  "table_name": "orders",
  "columns": ["id", "status", "expected_delivery_date", "delivered_at"],
  "conditions": [
    {
      "column": "status",
      "operator": "=",
      "value": "fulfilled"
    },
    {
      "column": "ordered_at",
      "operator": ">=",
      "value": "2023-05-01"
    },
    {
      "column": "ordered_at",
      "operator": "<",
      "value": "2023-06-01"
    },
    {
      "column": "delivered_at",
      "operator": ">",
      "value": {
        "column_name": "expected_delivery_date"
      }
    }
  ],
  "order_by": "asc"
}

response_format參數(shù)的新選項(xiàng)

開發(fā)人員現(xiàn)在可以通過response_format的新選項(xiàng)json_schema選擇是否需要規(guī)定格式的輸出。

當(dāng)模型不調(diào)用工具,而是以結(jié)構(gòu)化方式響應(yīng)用戶時(shí),這一功能非常有用。

此功能適用于最新的GPT-4o型號:今天發(fā)布的gpt-4o-2024-08-06和gpt-4o-mini-2024-07-18 。

將response_format設(shè)置為strict:true時(shí),模型輸出將與提供的schema匹配。

示例請求:

POST /v1/chat/completions
{
  "model": "gpt-4o-2024-08-06",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful math tutor."
    },
    {
      "role": "user",
      "content": "solve 8x + 31 = 2"
    }
  ],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "math_response",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "explanation": {
                  "type": "string"
                },
                "output": {
                  "type": "string"
                }
              },
              "required": ["explanation", "output"],
              "additionalProperties": false
            }
          },
          "final_answer": {
            "type": "string"
          }
        },
        "required": ["steps", "final_answer"],
        "additionalProperties": false
      }
    }
  }
}

示例輸出:

{
  "steps": [
    {
      "explanation": "Subtract 31 from both sides to isolate the term with x.",
      "output": "8x + 31 - 31 = 2 - 31"
    },
    {
      "explanation": "This simplifies to 8x = -29.",
      "output": "8x = -29"
    },
    {
      "explanation": "Divide both sides by 8 to solve for x.",
      "output": "x = -29 / 8"
    }
  ],
  "final_answer": "x = -29 / 8"
}

開發(fā)人員可以使用結(jié)構(gòu)化輸出逐步生成答案,以引導(dǎo)達(dá)到預(yù)期的輸出。

根據(jù)OpenAI的說法,開發(fā)人員不需要驗(yàn)證或重試格式不正確的響應(yīng),并且該功能允許更簡單的提示。

原生SDK支持

OpenAI稱他們的Python和Node SDK已更新,原生支持結(jié)構(gòu)化輸出。

為工具提供架構(gòu)或響應(yīng)格式就像提供Pydantic或Zod對象一樣簡單,OpenAI的SDK能將數(shù)據(jù)類型轉(zhuǎn)換為支持的JSON模式、自動(dòng)將JSON響應(yīng)反序列化為類型化數(shù)據(jù)結(jié)構(gòu)以及解析拒絕。

from enum import Enum
from typing import Union

from pydantic import BaseModel

import openai
from openai import OpenAI


class Table(str, Enum):
    orders = "orders"
    customers = "customers"
    products = "products"


class Column(str, Enum):
    id = "id"
    status = "status"
    expected_delivery_date = "expected_delivery_date"
    delivered_at = "delivered_at"
    shipped_at = "shipped_at"
    ordered_at = "ordered_at"
    canceled_at = "canceled_at"


class Operator(str, Enum):
    eq = "="
    gt = ">"
    lt = "<"
    le = "<="
    ge = ">="
    ne = "!="


class OrderBy(str, Enum):
    asc = "asc"
    desc = "desc"


class DynamicValue(BaseModel):
    column_name: str


class Condition(BaseModel):
    column: str
    operator: Operator
    value: Union[str, int, DynamicValue]


class Query(BaseModel):
    table_name: Table
    columns: list[Column]
    conditions: list[Condition]
    order_by: OrderBy


client = OpenAI()

completion = client.beta.chat.completions.parse(
    model="gpt-4o-2024-08-06",
    messages=[
        {
            "role": "system",
            "content": "You are a helpful assistant. The current date is August 6, 2024. You help users query for the data they are looking for by calling the query function.",
        },
        {
            "role": "user",
            "content": "look up all my orders in may of last year that were fulfilled but not delivered on time",
        },
    ],
    tools=[
        openai.pydantic_function_tool(Query),
    ],
)

print(completion.choices[0].message.tool_calls[0].function.parsed_arguments)

而且,本機(jī)結(jié)構(gòu)化輸出支持也可用于response_format 。

from pydantic import BaseModel

from openai import OpenAI


class Step(BaseModel):
    explanation: str
    output: str


class MathResponse(BaseModel):
    steps: list[Step]
    final_answer: str


client = OpenAI()

completion = client.beta.chat.completions.parse(
    model="gpt-4o-2024-08-06",
    messages=[
        {"role": "system", "content": "You are a helpful math tutor."},
        {"role": "user", "content": "solve 8x + 31 = 2"},
    ],
    response_format=MathResponse,
)

message = completion.choices[0].message
if message.parsed:
    print(message.parsed.steps)
    print(message.parsed.final_answer)
else:
    print(message.refusal)

其他用例

開發(fā)人員經(jīng)常使用OpenAI的模型為各種用例生成結(jié)構(gòu)化數(shù)據(jù)。

其他一些例子包括:

-根據(jù)用戶意圖動(dòng)態(tài)生成用戶界面

開發(fā)人員可以使用結(jié)構(gòu)化輸出來創(chuàng)建代碼或UI生成應(yīng)用程序。

使用相同的response_format ,可根據(jù)用戶輸入生成不同的 UI。

例如,創(chuàng)建「園丁的登錄界面」:

圖片圖片

就是用以下代碼生成的:

{
  "type": "div",
  "label": "",
  "children": [
    {
      "type": "header",
      "label": "",
      "children": [
        {
          "type": "div",
          "label": "Green Thumb Gardening",
          "children": [],
          "attributes": [{ "name": "className", "value": "site-title" }]
        },
        {
          "type": "div",
          "label": "Bringing Life to Your Garden",
          "children": [],
          "attributes": [{ "name": "className", "value": "site-tagline" }]
        }
      ],
      "attributes": [{ "name": "className", "value": "header" }]
    },
    {
      "type": "section",
      "label": "",
      "children": [
        {
          "type": "div",
          "label": "",
          "children": [
            {
              "type": "div",
              "label": "About Us",
              "children": [
                {
                  "type": "div",
                  "label": "At Green Thumb Gardening, we specialize in transforming your outdoor spaces into beautiful, thriving gardens. Our team has decades of experience in horticulture and landscape design.",
                  "children": [],
                  "attributes": [
                    { "name": "className", "value": "about-description" }
                  ]
                }
              ],
              "attributes": [{ "name": "className", "value": "about-section" }]
            }
          ],
          "attributes": [{ "name": "className", "value": "content" }]
        }
      ],
      "attributes": [{ "name": "className", "value": "about-container" }]
    },
    {
      "type": "section",
      "label": "",
      "children": [
        {
          "type": "div",
          "label": "",
          "children": [
            {
              "type": "div",
              "label": "Our Services",
              "children": [
                {
                  "type": "div",
                  "label": "Garden Design",
                  "children": [],
                  "attributes": [
                    { "name": "className", "value": "service-item" }
                  ]
                },
                {
                  "type": "div",
                  "label": "Plant Care & Maintenance",
                  "children": [],
                  "attributes": [
                    { "name": "className", "value": "service-item" }
                  ]
                },
                {
                  "type": "div",
                  "label": "Seasonal Cleanup",
                  "children": [],
                  "attributes": [
                    { "name": "className", "value": "service-item" }
                  ]
                },
                {
                  "type": "div",
                  "label": "Custom Landscaping",
                  "children": [],
                  "attributes": [
                    { "name": "className", "value": "service-item" }
                  ]
                }
              ],
              "attributes": [{ "name": "className", "value": "services-list" }]
            }
          ],
          "attributes": [{ "name": "className", "value": "content" }]
        }
      ],
      "attributes": [{ "name": "className", "value": "services-container" }]
    }
  ],
  "attributes": [{ "name": "className", "value": "landing-page" }]
}

- 將最終答案與支撐性的推理或附加評論分開

為模型提供一個(gè)單獨(dú)的思維鏈字段可以提高響應(yīng)的最終質(zhì)量。

請求:

{
  "model": "gpt-4o-2024-08-06",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant"
    },
    {
      "role": "user",
      "content": "9.11 and 9.9 -- which is bigger?"
    }
  ],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "reasoning_schema",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "reasoning_steps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The reasoning steps leading to the final conclusion."
          },
          "answer": {
            "type": "string",
            "description": "The final answer, taking into account the reasoning steps."
          }
        },
        "required": ["reasoning_steps", "answer"],
        "additionalProperties": false
      }
    }
  }
}

結(jié)構(gòu)化輸出:

{
  "reasoning_steps": [
    "First step is to compare the numbers 9.11 and 9.9.",
    "Both numbers have the same whole number part, which is 9.",
    "To compare the decimal parts, convert them to the same number of decimal places.",
    "9.11 has two decimal places: it is 9.11.",
    "9.9 has one decimal place: it can be rewritten as 9.90.",
    "Now, compare 9.11 and 9.90 by looking at the decimal parts.",
    "Compare 11 with 90.",
    "90 is greater than 11, so 9.90 is greater than 9.11."
  ],
  "answer": "9.9 is bigger than 9.11."
}

- 從非結(jié)構(gòu)化數(shù)據(jù)中提取結(jié)構(gòu)化數(shù)據(jù)

例如,指示模型從會(huì)議記錄中提取待辦事項(xiàng)、截止日期和作業(yè)等內(nèi)容。

請求:

POST /v1/chat/completions
{
  "model": "gpt-4o-2024-08-06",
  "messages": [
    {
      "role": "system",
      "content": "Extract action items, due dates, and owners from meeting notes."
    },
    {
      "role": "user",
      "content": "...meeting notes go here..."
    }
  ],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "action_items",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "action_items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "Description of the action item."
                },
                "due_date": {
                  "type": ["string", "null"],
                  "description": "Due date for the action item, can be null if not specified."
                },
                "owner": {
                  "type": ["string", "null"],
                  "description": "Owner responsible for the action item, can be null if not specified."
                }
              },
              "required": ["description", "due_date", "owner"],
              "additionalProperties": false
            },
            "description": "List of action items from the meeting."
          }
        },
        "required": ["action_items"],
        "additionalProperties": false
      }
    }
  }
}

結(jié)構(gòu)化輸出:

{
  "action_items": [
    {
      "description": "Collaborate on optimizing the path planning algorithm",
      "due_date": "2024-06-30",
      "owner": "Jason Li"
    },
    {
      "description": "Reach out to industry partners for additional datasets",
      "due_date": "2024-06-25",
      "owner": "Aisha Patel"
    },
    {
      "description": "Explore alternative LIDAR sensor configurations and report findings",
      "due_date": "2024-06-27",
      "owner": "Kevin Nguyen"
    },
    {
      "description": "Schedule extended stress tests for the integrated navigation system",
      "due_date": "2024-06-28",
      "owner": "Emily Chen"
    },
    {
      "description": "Retest the system after bug fixes and update the team",
      "due_date": "2024-07-01",
      "owner": "David Park"
    }
  ]
}

安全的結(jié)構(gòu)化輸出

安全是OpenAI的首要任務(wù)——新的結(jié)構(gòu)化輸出功能將遵守OpenAI現(xiàn)有的安全政策,并且仍然允許模型拒絕不安全的請求。

為了使開發(fā)更簡單,API響應(yīng)上有一個(gè)新的refusal字符串值,它允許開發(fā)人員以編程方式檢測模型是否生成拒絕而不是與架構(gòu)匹配的輸出。

當(dāng)響應(yīng)不包含拒絕并且模型的響應(yīng)沒有過早中斷(如finish_reason所示)時(shí),模型的響應(yīng)將可靠地生成與提供的schema匹配的有效JSON。

{
  "id": "chatcmpl-9nYAG9LPNonX8DAyrkwYfemr3C8HC",
  "object": "chat.completion",
  "created": 1721596428,
  "model": "gpt-4o-2024-08-06",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "refusal": "I'm sorry, I cannot assist with that request."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 81,
    "completion_tokens": 11,
    "total_tokens": 92
  },
  "system_fingerprint": "fp_3407719c7f"
}

參考資料:

https://openai.com/index/introducing-structured-outputs-in-the-api/

https://x.com/sama/status/1820881534909300769

https://venturebeat.com/ai/openai-has-finally-released-the-no-1-feature-developers-have-been-desperate-for/

責(zé)任編輯:武曉燕 來源: 新智元
相關(guān)推薦

2024-08-08 12:44:40

2024-01-26 13:44:19

OpenAI模型GPT-4

2025-01-10 13:56:28

2024-08-21 13:16:30

2023-07-26 15:13:33

人工智能OpenAI

2023-06-15 12:24:49

2024-09-29 16:00:26

2025-04-01 10:01:42

RAGCozeAI

2025-06-12 02:30:00

人工智能LLM大語言模型

2021-06-06 22:34:16

Cloudera私有化

2022-04-22 10:29:46

機(jī)器學(xué)習(xí)數(shù)據(jù)集計(jì)算

2021-02-24 15:50:45

系統(tǒng)運(yùn)維識別

2018-04-03 14:00:03

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)庫

2023-10-19 08:30:56

模型搜索

2025-03-11 03:00:00

2021-12-12 08:37:18

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)

2024-06-06 10:08:32

2024-07-18 12:52:50

2023-12-25 15:00:18

結(jié)構(gòu)化布線光纖

2024-05-27 00:32:45

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

51国偷自产一区二区三区 | 亚洲欧美精品| 国产伦精品一区二区三区视频我| 成人中文在线| 欧美一区二区福利在线| 久久国产精品网| 精品视频一二三| 蜜桃av一区二区三区电影| 久久99国产精品自在自在app| aa成人免费视频| 亚洲第一精品在线观看 | 国产午夜精品一区二区三区 | 国内精品视频| 亚洲一区视频在线观看视频| 欧美日韩一区二| 一区二区在线观看免费视频| 亚洲免费观看高清完整版在线观| 91精品国产丝袜白色高跟鞋| 日本中文字幕片| 快射av在线播放一区| 91视频.com| 亚洲精品欧美极品| 黄色大全在线观看| 国产精品久久久久毛片大屁完整版 | 亚洲不卡一区二区三区| 午夜啪啪免费视频| 韩国三级在线观看久| 成人动漫精品一区二区| 91九色国产社区在线观看| 最近免费中文字幕大全免费版视频| 欧美黄污视频| 色偷偷偷亚洲综合网另类| 女尊高h男高潮呻吟| 91成人在线精品视频| 欧美午夜精品一区| 男人的天堂99| 蜜桃麻豆影像在线观看| 国产91丝袜在线播放0| 国产精品爽爽爽| 精品免费囯产一区二区三区| 午夜欧美视频| 久久国产精品久久久久久久久久| 粉嫩精品久久99综合一区| 综合国产视频| 精品夜色国产国偷在线| 精品国产一区在线| 中文字幕日韩高清在线| 精品日产卡一卡二卡麻豆| 久久手机在线视频| av黄色在线| 亚洲欧洲综合另类| 中文字幕剧情在线观看一区| 天堂а√在线资源在线| 亚洲欧洲美洲综合色网| 成人综合色站| 国偷自拍第113页| 亚洲二区视频| 97色在线观看| 在线观看亚洲大片短视频| 国产99久久久国产精品成人免费| 亚洲精品成人久久| 熟妇高潮一区二区| 久久中文资源| 精品视频久久久久久久| 免费观看av网站| 狠狠做六月爱婷婷综合aⅴ| 亚洲人成电影在线| 国产精品www爽爽爽| 97精品国产一区二区三区 | 精品国产二区在线| 日韩在线视频不卡| 色综合天天爱| 久久九九免费视频| 国产亚洲欧美精品久久久www| 影音先锋久久久| 欧美亚洲视频一区二区| 精品黑人一区二区三区| 麻豆国产欧美日韩综合精品二区| 成人国产精品色哟哟| 国产夫妻自拍av| 99久久精品免费看国产免费软件| 久久综合九九| 电影在线高清| 亚洲精品欧美在线| 日韩在线综合网| 激情久久99| 日韩视频在线观看一区二区| 久久久久成人精品无码中文字幕| 国内黄色精品| 欧美成人黄色小视频| 在线观看免费国产视频| 男女激情视频一区| 成人在线观看av| 国产系列电影在线播放网址| 亚洲精品高清视频在线观看| 青青草原av在线播放| 高清国产一区二区三区四区五区| 亚洲电影天堂av| 亚洲三级在线视频| 久久午夜影院| 久久激情视频久久| 亚洲男人第一av| 久久机这里只有精品| 国产在线一区二| 米奇精品一区二区三区| 黑人巨大精品欧美一区免费视频| 亚洲色图偷拍视频| 亚洲综合图色| 九九综合九九综合| 依依成人在线视频| av高清久久久| 日韩人妻一区二区三区蜜桃视频| 成人啊v在线| 色哟哟国产精品| 久久久久久www| 国产情侣一区二区三区| 亚洲精品理论电影| 97人妻精品一区二区三区免 | 日韩视频免费播放| 日韩毛片免费看| 国产午夜精品久久久| 欧美人妻精品一区二区三区| 久久精品99国产精品| 欧美日韩在线一区二区三区| 999精品网| 亚洲成年人影院| 天天操狠狠操夜夜操| 久草成人资源| 97在线精品国自产拍中文| 99久久一区二区| 国产精品美女久久久久高潮| 久久久久久久久久久久久久国产| 林ゆな中文字幕一区二区| 久久国产精品免费视频 | 国产麻豆成人精品| 亚洲一区二区三区精品在线观看| 日韩美女在线看免费观看| 日韩国产精品一区| 国产精品第108页| 粉嫩av一区二区三区在线播放| 天天操天天干天天玩| 成人国产免费电影| 欧美日韩在线精品一区二区三区激情 | av毛片在线免费| 欧美一区二区三区四区五区| 999精品在线视频| 中文视频一区| 国产精品综合久久久| 91精品大全| 欧美日韩一区不卡| 国产91在线播放九色| 久久成人18免费观看| 一区二区免费电影| 国产精区一区二区| 欧美丰满少妇xxxxx| 亚洲欧美另类日韩| 激情成人中文字幕| 草草地址线路①屁屁影院成人| 欧美一区=区| 日本午夜精品电影| 国模私拍国内精品国内av| 日韩中文字幕久久| 精品国产黄色片| 亚洲成精国产精品女| 欧美特黄一区二区三区| 日韩va欧美va亚洲va久久| 天天综合色天天综合色hd| 国产精品久久久久久吹潮| 在线观看免费高清视频97| 一本色道久久综合无码人妻| 亚洲三级在线观看| 国产综合内射日韩久| 亚洲国产专区校园欧美| 欧美精品一区在线发布| 成人亚洲网站| 欧美黑人狂野猛交老妇| 四虎在线观看| 亚洲欧洲韩国日本视频| 超碰中文字幕在线观看| 一区福利视频| 日韩av电影免费观看| avtt久久| 欧美亚洲第一页| 久热国产在线| 日韩av在线一区二区| 中文字幕人妻丝袜乱一区三区| 亚洲男女毛片无遮挡| 噜噜噜在线视频| 美女mm1313爽爽久久久蜜臀| www.亚洲视频.com| 日本午夜一区| 产国精品偷在线| 欧美日韩在线精品一区二区三区激情综合| 日韩在线视频线视频免费网站| 欧美熟妇交换久久久久久分类 | 91亚洲精品久久久蜜桃借种| 亚洲电影在线| 一区中文字幕在线观看| 色狠狠久久av综合| 亚洲最大成人在线| 人人鲁人人莫人人爱精品| 久久成人精品一区二区三区| 深夜福利视频一区| 天天av天天翘天天综合网色鬼国产| 亚洲精品成人无码| 成人国产免费视频| 亚洲涩涩在线观看| 日韩精品91亚洲二区在线观看| 黄色a级片免费看| 欧美超碰在线| 欧美精品免费观看二区| 51精品国产| 国产主播精品在线| 日韩和的一区二在线| 午夜精品一区二区三区在线播放 | 国内精品久久久久久久久电影网| 国产伦精品一区二区三区| 四虎国产精品永久在线国在线| 欧美在线视频网| av在线网页| 欧美成人久久久| 免费黄色在线看| 伊人亚洲福利一区二区三区| 性感美女视频一二三| 欧美大肚乱孕交hd孕妇| 91国内精品视频| 综合激情成人伊人| 免费看黄色三级| 久久久亚洲欧洲日产国码αv| 国产精品熟妇一区二区三区四区| 精品一区二区三区香蕉蜜桃| 亚洲高清在线免费观看| 美女视频一区免费观看| 青青青免费在线| 欧美日韩亚洲一区二区三区在线| 一区二区三区在线观看www| 欧美日韩一区二区综合 | 欧美国产高清| 日韩视频在线观看视频| 99久久影视| 综合操久久久| 99视频精品全国免费| 在线观看日本一区| 天天久久综合| 中文字幕精品在线播放| 欧美在线资源| 国产一区 在线播放| 欧美性久久久| 精品少妇在线视频| 亚洲少妇一区| 日韩av在线综合| 石原莉奈在线亚洲二区| 免费看污黄网站| 久久国产精品露脸对白| 91丝袜超薄交口足| 国产精品一级在线| 日本一级大毛片a一| av一区二区三区在线| 无码人妻精品一区二区三区温州| 91老司机福利 在线| 91视频在线网站| 国产精品久久久久久久久免费桃花| 三级黄色免费观看| 一区二区三区鲁丝不卡| 久久精品国产亚洲av高清色欲| 婷婷一区二区三区| 波多野结衣黄色| 欧美酷刑日本凌虐凌虐| 超碰在线观看99| 亚洲精品久久久久久久久久久久| 国内精品一区视频| 久久视频在线免费观看| gogo高清午夜人体在线| 秋霞成人午夜鲁丝一区二区三区| 欧美少妇激情| 国产精品久久7| 国产区精品区| mm131午夜| 国产精品毛片一区二区三区| 三上悠亚av一区二区三区| 高清成人免费视频| 麻豆av免费观看| 亚洲欧美成aⅴ人在线观看| 亚洲一区二区精品视频| 人妻大战黑人白浆狂泄| 国产精品视频一二三| 欧美性x x x| 午夜精品久久久久久久| 最新在线中文字幕| 日韩女优av电影在线观看| 深夜福利在线看| 日韩在线免费观看视频| 成人性生交大片免费看在线播放| 日韩欧美一二三区| 亚洲色欧美另类| 日韩一区二区av| 九色porny视频在线观看| 国产免费一区二区三区在线观看 | 噜噜噜91成人网| 在线播放免费视频| 久久综合色鬼综合色| 久热这里有精品| 91福利视频久久久久| 后进极品白嫩翘臀在线视频| 日韩在线视频免费观看高清中文| 天堂√8在线中文| 亚洲一区二区久久久久久 | 四虎4hu永久免费入口| 久久综合网络一区二区| 日本久久久久久久久久| 国产精品亲子伦对白| 中文字幕在线观看视频网站| 欧美一区二区在线视频| 成人亚洲性情网站www在线观看| 日韩成人中文字幕| 看黄网站在线| 国产精品美女网站| 一本色道久久综合亚洲精品酒店| 91视频 - 88av| 国产一区在线精品| 最新免费av网址| 国产亚洲精品bt天堂精选| 亚洲女优在线观看| 亚洲va中文字幕| 亚洲AV无码精品自拍| 精品国产区一区二区三区在线观看 | 成人动态视频| 大陆极品少妇内射aaaaaa| 狠狠色综合播放一区二区| 潮喷失禁大喷水aⅴ无码| 欧美综合在线视频| 国产有码在线| 青青草原成人在线视频| 青青久久av| 精品无码一区二区三区在线| 成人美女视频在线看| 久久这里只有精品免费| 日韩欧美久久久| 人交獸av完整版在线观看| 欧美精品videossex性护士| www一区二区三区| 尤物一区二区三区| 久久er99精品| 永久免费未视频| 69久久夜色精品国产69蝌蚪网 | 亚洲欧美国产va在线影院| 色在线免费观看| 欧美午夜精品久久久久久蜜| 免费在线欧美黄色| 丰满少妇高潮一区二区| 日韩欧美中文字幕在线播放| 黄色免费在线播放| 国产精品91久久久| 91影院成人| 无码人妻少妇色欲av一区二区| 一区二区三区精品在线| 国产综合视频在线| 性欧美在线看片a免费观看| 欧美亚洲色图校园春色| 国产成人精品无码播放| 亚洲国产精品99久久久久久久久| 91久久精品国产91性色69| 欧美成人免费在线观看| 成人知道污网站| 成人免费观看视频在线观看| 欧美国产激情一区二区三区蜜月| 夜夜爽8888| 国内成人精品视频| 日韩城人网站| 天天做天天爱天天高潮| 懂色av一区二区三区免费观看 | 国产精品最新自拍| 特级西西www444人体聚色 | 欧美久久视频| 制服丝袜第二页| 欧美日韩综合一区| 欧美6一10sex性hd| 欧美午夜精品久久久久久蜜| 精品一区二区国语对白| xxxxxx国产| 中文字幕亚洲色图| youjizz亚洲| 午夜免费精品视频| 一区二区三区在线免费视频| 亚洲精品9999| 视频在线观看国产精品| 国产jizz18女人高潮| 亚洲成人三级在线| 成人做爰免费视频免费看| av久久久久久| 欧美国产日韩精品免费观看| 18岁成人毛片| 亚洲激情免费观看| 视频欧美精品| 国产中文字幕在线免费观看| 亚洲欧洲日韩女同| 青青草在线免费视频| 92国产精品视频| 老司机午夜精品视频在线观看| 久久久久亚洲av无码专区|