精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

国产又大又粗又长| 貂蝉被到爽流白浆在线观看| 免费在线小视频| 久久美女艺术照精彩视频福利播放| 国产999视频| 99在线视频免费| 奇米一区二区| 色综合天天综合网国产成人综合天| 亚洲欧美日韩国产yyy| 性生交生活影碟片| 欧美在线综合| 九九久久久久99精品| 在线精品视频播放| 国产综合色区在线观看| 亚洲精品欧美激情| 日本免费高清一区| 成人午夜免费福利| 久久99精品国产.久久久久久| 欧美高清视频在线播放| 最近中文字幕免费| 精品av导航| 欧美精品tushy高清| 国产亚洲综合视频| 黄色av网站在线播放| 91丨九色丨蝌蚪富婆spa| 92看片淫黄大片欧美看国产片| 永久免费无码av网站在线观看| 综合日韩在线| 久久精品成人欧美大片| 91精品人妻一区二区三区| 亚洲一二av| 91精品国产乱| 人人妻人人澡人人爽人人精品| 欧美1234区| 国产精品黄色在线观看| 久久精品99久久| 性欧美8khd高清极品| 麻豆专区一区二区三区四区五区| 久久男人的天堂| √天堂中文官网8在线| 日本a级不卡| 亚洲欧美综合图区| 久久一区二区电影| 嫩草国产精品入口| 亚洲国产精品专区久久| 日本人妻一区二区三区| 亚洲伦理网站| 欧美日韩国产免费一区二区| 另类小说第一页| 天天免费亚洲黑人免费| 懂色av一区二区三区| 欧美午夜小视频| 蜜桃视频m3u8在线观看| 亚洲成人手机在线| 男女激情免费视频| 黑人极品ⅴideos精品欧美棵| 亚洲精品久久嫩草网站秘色| 日本成人性视频| yellow91字幕网在线| 国产精品国产三级国产普通话蜜臀 | 69堂成人精品免费视频| 五月天中文字幕在线| 福利一区二区免费视频| 欧美日本一区二区三区| 日本一二三四区视频| 精品午夜视频| 精品国产免费久久| 中文字幕一区二区久久人妻网站| 欧美高清视频看片在线观看| 亚洲精品日韩丝袜精品| 亚洲精品一区二区三区影院忠贞| blacked蜜桃精品一区| 中文字幕日韩在线播放| 福利视频第一页| 欧美黄色免费| 91国产一区在线| 中文字幕在线观看视频免费| 开心九九激情九九欧美日韩精美视频电影 | 日韩不卡视频在线观看| 欧美日韩精品综合在线| 人妻巨大乳一二三区| 亚洲一区二区三区中文字幕在线观看| 亚洲а∨天堂久久精品喷水| 中文字幕丰满孑伦无码专区| 日韩在线综合| 欧美激情亚洲一区| 一级黄色在线视频| 黄页视频在线91| 国产伦精品一区二区三区照片91 | 800av在线免费观看| 日韩精品极品| 欧美日韩视频在线一区二区| 亚洲911精品成人18网站| 亚洲免费福利一区| 日韩在线不卡视频| 国产一级av毛片| 日韩高清在线观看| 51成人做爰www免费看网站| 日韩在线观看视频一区| 中文字幕乱码亚洲精品一区| av日韩在线看| 久久久成人av毛片免费观看| 欧美不卡激情三级在线观看| 精品一区二区三区蜜桃在线| 国内精品久久久久久久影视麻豆| 欧亚精品在线观看| av天堂一区二区三区| 久久伊99综合婷婷久久伊| 精品日韩在线播放| 日韩电影免费观| 日韩美女一区二区三区| 先锋影音av在线| 在线日韩电影| 亚洲一区二区三| 美丽的姑娘在线观看免费动漫| 日本一区二区动态图| 国产主播自拍av| 999精品视频在线观看| 精品伊人久久97| 国产探花在线免费观看| 日韩成人dvd| 久久久99国产精品免费| 天天干在线视频论坛| 欧美日韩中文另类| 成人免费av片| 99国产精品99久久久久久粉嫩| 91久久在线视频| 二区在线视频| 色94色欧美sute亚洲线路一久| 国产原创剧情av| 欧美一区综合| 国产主播喷水一区二区| 国产youjizz在线| 欧美午夜精品久久久久久久| 白嫩情侣偷拍呻吟刺激| 欧美涩涩网站| 51蜜桃传媒精品一区二区| √新版天堂资源在线资源| 欧美色xxxx| 91av在线免费| 一区二区日韩免费看| 999精品视频一区二区三区| 国产黄色小视频在线| 69av一区二区三区| 国产传媒免费在线观看| 紧缚奴在线一区二区三区| 亚洲一卡二卡三卡| 欧美久久久网站| 中文综合在线观看| 91久久精品国产91性色69| 国产精品久久久久影院| 亚洲欧美日韩精品一区| 久久国产亚洲| 成人黄在线观看| 91一区二区三区在线| 欧美一区二区三区免费观看视频| 欧美成人777| 成人午夜视频免费看| a级免费在线观看| 欧美日韩另类图片| 欧美有码在线观看视频| 国产午夜在线视频| 欧美私模裸体表演在线观看| 日韩av片在线免费观看| 国产在线不卡一区| 日韩国产精品毛片| 白嫩白嫩国产精品| 18性欧美xxxⅹ性满足| 精品视频二区| 欧美精品高清视频| 国产女人被狂躁到高潮小说| 国产sm精品调教视频网站| av在线免费观看国产| 高清精品xnxxcom| 91sa在线看| 不卡在线视频| 日韩欧美第一区| 中文字幕精品三级久久久| 欧美国产精品专区| 手机精品视频在线| 亚洲国产黄色| 日韩av电影免费在线| 永久免费观看精品视频| 国色天香2019中文字幕在线观看| 免费毛片在线| 欧美一区二区三区思思人| 日韩 国产 在线| 欧美激情一二三区| 国产情侣久久久久aⅴ免费| 香蕉成人久久| 性欧美18一19内谢| 亚州综合一区| 91精品久久久久久久| 国产后进白嫩翘臀在线观看视频| 亚洲美腿欧美激情另类| 国产精品无码久久久久成人app| 亚洲成av人片| 日本美女黄色一级片| 成人动漫av在线| www.99r| 一区二区国产在线观看| 国产免费色视频| 综合综合综合综合综合网| 91久久国产精品91久久性色| 亚洲妇女成熟| 九九热最新视频//这里只有精品| 欧美新色视频| 亚洲成人久久久| 97成人在线观看| 色视频一区二区| 中文字幕一区二区三区手机版 | 精品处破女学生| 国产精品欧美久久久久一区二区| 国产 xxxx| 国产一区免费电影| 亚洲人成无码www久久久| 欧美日韩天堂| 欧美 另类 交| 97欧美在线视频| 任我爽在线视频精品一| 牛牛精品成人免费视频| 国产激情一区二区三区在线观看| 久久国内精品| 日av在线播放中文不卡| 国产福利片在线观看| 久久99精品久久久久久青青91 | 亚洲精品一级二级三级| 国产一区二区无遮挡| 亚洲一区电影| 97超碰最新| 亚洲高清999| 成人自拍性视频| 看片一区二区| 国产精品伦子伦免费视频| 色是在线视频| 91超碰caoporn97人人| 成人性生交大片免费看在线播放| 久久天天躁狠狠躁老女人| 日本中文字幕在线播放| 中文字幕日韩综合av| 高清国产福利在线观看| 亚洲欧美精品伊人久久| 欧美色18zzzzxxxxx| 亚洲乱码一区二区| 男女视频在线观看| 亚洲欧美另类自拍| 久久伊伊香蕉| 一区二区成人av| 午夜视频在线观看网站| 最新中文字幕亚洲| 黄色大片在线播放| 欧美xxxx做受欧美.88| 麻豆网在线观看| 欧美不卡视频一区发布| 久久一卡二卡| 国内伊人久久久久久网站视频| 超碰99在线| 欧美中文在线字幕| 你懂得影院夜精品a| 国产精品欧美久久久| 国产黄色精品| 亚洲一区二区久久久久久久| 成人h动漫精品一区二区器材| 91中文字幕一区| 超碰成人97| 欧美lavv| 欧美国产一级| 日韩欧美视频免费在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 极品粉嫩国产18尤物| 久久一区国产| 中文字幕久久av| 成人美女视频在线观看18| 国产精品无码毛片| 国产精品超碰97尤物18| 免费看一级一片| 高跟丝袜一区二区三区| 做爰无遮挡三级| 日韩一级黄色大片| 视频在线观看你懂的| 色偷偷9999www| 污污视频在线| 国产精品wwwwww| 国产一区精品二区| 久久精品国产精品国产精品污| 欧美最新另类人妖| 成人av在线播放观看| 三级不卡在线观看| 91丨porny丨九色| 久久色.com| 可以直接看的黄色网址| 欧美色xxxx| 朝桐光av在线一区二区三区| 亚洲欧美中文日韩在线| 中文在线免费| 国产精品wwwwww| 精品女人视频| 正在播放91九色| 国产精品一国产精品k频道56| 亚洲欧美视频二区| av影院午夜一区| 日韩三级在线观看视频| 日韩欧美亚洲范冰冰与中字| 国产农村妇女毛片精品| 亚洲视频在线观看网站| 欧美人与牲禽动交com| 国产精品美女久久久久av超清| 草莓视频一区二区三区| 成人手机视频在线| 久久精品官网| 怡红院一区二区| 中文字幕日韩av资源站| 在线免费观看国产精品| 日韩精品欧美激情| 欧美xxxx少妇| 亚洲va久久久噜噜噜| 欧美系列电影免费观看| 欧美亚洲国产成人| 国产成人av一区| 在线看的片片片免费| 欧美三电影在线| 欧美69xxxxx| 国产91精品高潮白浆喷水| 97久久亚洲| 喜爱夜蒲2在线| 国产一区二区精品久久91| 在线看片中文字幕| 日本韩国精品在线| 美女毛片在线看| 欧美综合第一页| 秋霞综合在线视频| 久久久久久久久久网| 国产成人精品免费在线| 美女福利视频在线观看| 51精品秘密在线观看| 色的视频在线免费看| 国产精品日韩在线观看| 欧美日韩在线网站| 久久午夜夜伦鲁鲁一区二区| 久久久久久9999| 日韩精品成人免费观看视频| 亚洲欧美日韩精品久久| 丁香六月综合| 日本视频精品一区| 天使萌一区二区三区免费观看| 3d动漫精品啪啪一区二区下载| 午夜视频在线观看一区| 天堂v在线观看| 91精品国产色综合久久不卡98口 | 日韩av网站在线| 日本不卡免费高清视频在线| 久久综合九色欧美狠狠| 久久精品中文| 精品一区二区三区蜜桃在线| 欧美视频在线播放| 色影院视频在线| 91久久精品国产91久久| 午夜精品免费| 亚洲av成人精品一区二区三区| 精品福利樱桃av导航| 日本国产在线| 国产噜噜噜噜噜久久久久久久久 | 少妇一区二区视频| 亚洲精品怡红院| 1024亚洲合集| 亚洲av无码乱码国产精品| 国精产品一区一区三区有限在线| 日本欧美韩国国产| 激情内射人妻1区2区3区| 国产精品对白交换视频| 国产浮力第一页| 国内自拍欧美激情| 精品国产美女| 国产不卡的av| 红桃av永久久久| 98在线视频| 亚洲一区国产精品| 亚洲免费成人| 欧美aaa级片| 欧美一区二区高清| 美女扒开腿让男人桶爽久久软| 欧美一区二区视频17c| 国内精品伊人久久久久av影院 | 欧美日韩国产片| 2020国产在线| 亚洲精品成人自拍| 成人午夜激情在线| 9i精品福利一区二区三区| 久久久国产精品亚洲一区| 欧美18免费视频| 亚洲综合日韩欧美| 亚洲高清免费观看高清完整版在线观看| 日韩亚洲视频在线观看| 亚洲综合成人婷婷小说| 天堂久久一区二区三区| 男人av资源站| 日韩国产精品亚洲а∨天堂免| 国产91亚洲精品久久久| 97超碰在线人人| 亚洲视频一区在线|