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

TS之父的新項(xiàng)目Typechat預(yù)示著前端的未來(lái)

開(kāi)發(fā) 前端 人工智能
大家都知道AIGC(Artificial Intelligence Generated Content,生成式人工智能)會(huì)改變行業(yè)現(xiàn)狀,但不知道改變的方式是「取代工程師」還是「幫助工程師」?最近,TypeChat的發(fā)布讓前端未來(lái)的發(fā)展方向變得更清晰 —— 在不遠(yuǎn)的未來(lái),AIGC將會(huì)是工程師得力的助手,而不是取代工程師。

大家好,我卡頌。

最近兩年,整個(gè)前端圈都比較焦慮,主要有兩個(gè)原因:

  1. 經(jīng)濟(jì)下行造成工作不好找
  2. AIGC對(duì)行業(yè)未來(lái)的沖擊

其中第一條大環(huán)境如此,沒(méi)什么可抱怨的。第二條的焦慮則更多是「對(duì)未知的恐懼造成的」。

換言之,大家都知道AIGC(Artificial Intelligence Generated Content,生成式人工智能)會(huì)改變行業(yè)現(xiàn)狀,但不知道改變的方式是「取代工程師」還是「幫助工程師」?

最近,TypeChat[1]的發(fā)布讓前端未來(lái)的發(fā)展方向變得更清晰 —— 在不遠(yuǎn)的未來(lái),AIGC將會(huì)是工程師得力的助手,而不是取代工程師。

為什么這么說(shuō)呢?本文會(huì)從以下角度闡述:

  • 當(dāng)前LLM(large language model,大語(yǔ)言模型)的問(wèn)題
  • TypeChat是什么,他是如何解決上述問(wèn)題的
  • TypeChat的實(shí)現(xiàn)原理
  • TypeChat對(duì)前端行業(yè)的影響

LLM的問(wèn)題

LLM應(yīng)用最廣、普及度最高的應(yīng)用場(chǎng)景是「聊天助手」(比如chatGPT)。

「聊天助手」場(chǎng)景的特點(diǎn)是:用戶(hù)輸入自然語(yǔ)言,模型輸出自然語(yǔ)言。

自然語(yǔ)言對(duì)話(huà)

如果模型僅能輸出自然語(yǔ)言,那他的應(yīng)用場(chǎng)景只能局限在「聊天助手」。畢竟,「自然語(yǔ)言」只能作為L(zhǎng)LM的輸入,沒(méi)法作為其他應(yīng)用的輸入。

比如,我希望做一個(gè)輿情監(jiān)控應(yīng)用,周期性爬取全網(wǎng)關(guān)于某明星的言論,再分析言論的情緒是否正向,最終統(tǒng)計(jì)全網(wǎng)對(duì)該明星的整體評(píng)價(jià)。應(yīng)用實(shí)現(xiàn)思路是:

  1. 全網(wǎng)爬取言論數(shù)據(jù)
  2. 分析每一條言論數(shù)據(jù),輸出「情緒是否正向」的判斷
  3. 統(tǒng)計(jì)所有言論對(duì)應(yīng)的情緒
  4. 分析結(jié)果

其中第二步,我們可以讓LLM判斷輸入的言論情緒是否正向。

當(dāng)輸入「雞哥辛苦訓(xùn)練了兩年半」,LLM判斷這段話(huà)的情緒是正向后,可能回復(fù)我:

  • 這段話(huà)的情緒是正向的
  • 結(jié)果是積極的
  • 這是一段積極的對(duì)話(huà)
  • ...或者其他啰嗦的回答

雖然上述結(jié)果都表達(dá)了「情緒是正向的」,但輸出結(jié)果也是自然語(yǔ)言描述的,且結(jié)果句式并不穩(wěn)定,沒(méi)法輸出給第三步的程序做統(tǒng)計(jì)。

好在,LLM也可以輸出結(jié)構(gòu)化數(shù)據(jù)(比如JSON)或者代碼,其中:

  • 如果能輸出符合其他應(yīng)用規(guī)范的JSON,其他應(yīng)用可以直接讀取使用
  • 如果能輸出符合其他應(yīng)用的代碼調(diào)用,可以直接調(diào)用其他程序(通過(guò)RPC通信)

比如,我們讓LLM對(duì)上述問(wèn)題輸出JSON格式的結(jié)果,可能的輸出如下:

// 可能的結(jié)果
{"result": "positive"}

// 可能的結(jié)果
{"emotion": "positive"}

// 可能的結(jié)果
{"sentiment": "good"}

雖然程序可以讀取JSON,但輸出的字段可能是不穩(wěn)定的。假設(shè)第三步的統(tǒng)計(jì)程序統(tǒng)計(jì)的是result字段,但我們第二步輸出的結(jié)果是sentiment(情緒的意思)字段,這就沒(méi)法使用了。

為了解決「用戶(hù)輸入自然語(yǔ)言,LLM輸出穩(wěn)定的結(jié)構(gòu)化數(shù)據(jù)或函數(shù)調(diào)用」的問(wèn)題,openAI推出了一個(gè)新功能 —— function-calling[2](即函數(shù)調(diào)用)。

當(dāng)我們調(diào)用openAI API時(shí),參數(shù)依次傳入:

  • 用自然語(yǔ)言描述的需求
  • 對(duì)輸出結(jié)果函數(shù)的類(lèi)型定義

LLM會(huì)輸出符合類(lèi)型定義的函數(shù)調(diào)用。

比如,我們依次輸入:

  • 需求:判斷「雞哥辛苦訓(xùn)練了兩年半」情緒是否正向
  • 函數(shù)定義:
{
  "name": "mark_sentiment",
  "description": "標(biāo)記輸入語(yǔ)句的情緒是否正向",
  "parameters": {
    "type": "object",
    "properties": {
    "prompt": {
      "type": "string"
    },
    "sentiment": {
      "type": "string",
      "enum": ["negative", "neutral", "positive"]
    }
  }
}

LLM的輸出結(jié)果為:

mark_sentiment({
  prompt: "雞哥辛苦訓(xùn)練了兩年半",
  sentiment: "positive"
})

只需要定義mark_sentiment方法,用于存儲(chǔ)「言論對(duì)應(yīng)的情緒」即可。

function-calling功能極大擴(kuò)展了LLM的應(yīng)用場(chǎng)景(chatGPT的插件功能就是通過(guò)function-calling實(shí)現(xiàn)的):

但是,function-calling同樣存在缺點(diǎn),比如:

  • 只受限于openAI的模型,其他模型(比如Llama 2)沒(méi)有該功能
  • LLM的響應(yīng)只有一個(gè)函數(shù)調(diào)用,無(wú)法在一次響應(yīng)中調(diào)用多個(gè)函數(shù)
  • 函數(shù)的類(lèi)型聲明對(duì)開(kāi)發(fā)者不夠友好,內(nèi)部實(shí)現(xiàn)比較黑盒,當(dāng)返回的函數(shù)調(diào)用不符合預(yù)期時(shí),不好糾錯(cuò)

TypeChat的出現(xiàn)解決了上述問(wèn)題。

TypeChat是什么,有什么用

在聊function-calling缺點(diǎn)時(shí),我們提到「函數(shù)的類(lèi)型聲明對(duì)開(kāi)發(fā)者不夠友好」,那么什么類(lèi)型系統(tǒng)對(duì)前端開(kāi)發(fā)來(lái)說(shuō)是最熟悉、友好的呢?

答案不言而喻 —— TypeScript。

TypeChat[3]是TypeScript之父「Anders Hejlsberg」(同時(shí)也是C#之父)發(fā)布的新項(xiàng)目,他可以根據(jù):

  1. 自然語(yǔ)言描述的提示詞
  2. 對(duì)輸出產(chǎn)物類(lèi)別的定義(是「表示數(shù)據(jù)的JSON」,還是「表示函數(shù)執(zhí)行的JSON」)
  3. 對(duì)輸出產(chǎn)物的TS類(lèi)型聲明

讓LLM輸出符合類(lèi)型聲明的JSON數(shù)據(jù)。

比如,對(duì)于上述「判斷言論情緒」的例子,可以向TypeChat輸入:

  1. 需求:判斷「雞哥辛苦訓(xùn)練了兩年半」情緒是否正向
  2. 輸出產(chǎn)物是「表示數(shù)據(jù)的JSON」
  3. 輸出產(chǎn)物的TS類(lèi)型文件如下:
// 下面是對(duì)用戶(hù)輸入情緒的類(lèi)型定義
export interface SentimentResponse {
    // 情緒的可選項(xiàng)
    sentiment: "negative" | "neutral" | "positive";  
}

LLM輸出的結(jié)果會(huì)被嚴(yán)格限制在上述TS類(lèi)型。

如果要簡(jiǎn)單的類(lèi)比,可以認(rèn)為T(mén)ypeChat是使用TS定義類(lèi)型的function-calling。但實(shí)際上,TypeChat的能力不止如此。

首先,TypeChat不和任何LLM綁定,只要能同時(shí)理解自然語(yǔ)言與編程語(yǔ)言的LLM都可以使用TypeChat。

其次,輸出產(chǎn)物是JSON,JSON除了可以表示數(shù)據(jù),還能表示多個(gè)函數(shù)的執(zhí)行過(guò)程,這樣LLM的一次輸出可以是多個(gè)函數(shù)的連續(xù)執(zhí)行。

舉個(gè)例子,下面是我們的輸入:

  1. 需求:計(jì)算如下算式:「1 + 2的結(jié)果乘以3,再除以2」
  2. 輸出產(chǎn)物是「表示函數(shù)執(zhí)行的JSON」
  3. 輸出產(chǎn)物的TS類(lèi)型文件如下:
// 下面是對(duì)四則運(yùn)算的類(lèi)型定義
export type API = {
    // 兩個(gè)數(shù)字相加
    add(x: number, y: number): number;
    // 兩個(gè)數(shù)字相減
    sub(x: number, y: number): number;
    // 兩個(gè)數(shù)字相乘
    mul(x: number, y: number): number;
    // 兩個(gè)數(shù)字相除
    div(x: number, y: number): number;
    // 對(duì)一個(gè)數(shù)字求負(fù)數(shù)
    neg(x: number): number;
    // id
    id(x: number): number;
    // 未知情況
    unknown(text: string): number;
}

LLM輸出結(jié)果為「由JSON表示的函數(shù)執(zhí)行過(guò)程」:

{
  "@steps": [
    {
      "@func": "mul",
      "@args": [
        {
          "@func": "add",
          "@args": [1, 2]
        },
        3
      ]
    },
    {
      "@func": "div",
      "@args": [
        {
          "@ref": 0
        },
        2
      ]
    }
  ]
}

其中@XXX是TypeChat中的關(guān)鍵詞,比如:

  • @step代表執(zhí)行步驟,每個(gè)index對(duì)應(yīng)一個(gè)步驟。
  • @func代表這是個(gè)函數(shù)執(zhí)行。
  • @args代表函數(shù)的傳參。
  • @ref代表引用某個(gè)步驟的執(zhí)行結(jié)果。

經(jīng)由TypeChat內(nèi)部轉(zhuǎn)換后,得到如下代碼:

import { API } from "./schema";
function program(api: API) {
  const step1 = api.mul(api.add(1, 2), 3);
  return api.div(step1, 2);
}

也就是說(shuō),我們告訴TypeChat下述信息后:

  • 我們希望計(jì)算:「1 + 2的結(jié)果乘以3,再除以2」
  • 輸出結(jié)果要表示為「函數(shù)執(zhí)行」
  • 每個(gè)執(zhí)行的函數(shù)要符合我們定義的TS類(lèi)型

TypeChat輸出的結(jié)果為:

import { API } from "./schema";
function program(api: API) {
  const step1 = api.mul(api.add(1, 2), 3);
  return api.div(step1, 2);
}

并且,這個(gè)結(jié)果是穩(wěn)定的(即使多次執(zhí)行,輸出結(jié)果的函數(shù)名、類(lèi)型定義都不會(huì)變)。

除了上述功能外,TypeChat最大的亮點(diǎn)在于 —— 他能夠?qū)敵鼋Y(jié)果自動(dòng)糾錯(cuò)。

因?yàn)槲覀冇小篙敵鼋Y(jié)果的TS類(lèi)型聲明」,所以可以用TS編譯器檢查輸出結(jié)果是否符合類(lèi)型聲明,如果不符合,TypeChat可以將「TS報(bào)錯(cuò)信息」連同「輸出結(jié)果」再次輸入給LLM,讓他糾錯(cuò)后重新輸出。

比如,對(duì)于上述「檢查言論情緒」的例子,如果輸出結(jié)果為:

{sentiment: "good"}

經(jīng)由TS編譯器檢查后會(huì)報(bào)錯(cuò):

Type '"good"' is not assignable to type '"negative" | "neutral" | "positive"'.

TypeChat會(huì)將上述報(bào)錯(cuò)信息連同輸出結(jié)果再輸入給LLM讓他糾錯(cuò)。

TypeChat實(shí)現(xiàn)原理

TypeChat的實(shí)現(xiàn)原理可以用一張圖概括:

其中:

  • 紅色路徑輸出結(jié)果為「表示數(shù)據(jù)的JSON」
  • 藍(lán)色路徑輸出結(jié)果為「可執(zhí)行的代碼」

對(duì)于紅色路徑,以上述「檢查言論情緒」為例,TypeChat輸入給LLM的提示詞類(lèi)似這樣:

你是個(gè)將用戶(hù)輸入轉(zhuǎn)換為JSON的系統(tǒng),轉(zhuǎn)換需要遵循下面的TS類(lèi)型聲明:
${輸出產(chǎn)物TS類(lèi)型聲明}

下面是用戶(hù)的輸入:
${"雞哥辛苦訓(xùn)練了兩年半"}

下面是用戶(hù)輸入轉(zhuǎn)換為JSON后的結(jié)果:

LLM接收以上提示詞后輸出JSON。

對(duì)于藍(lán)色路徑,以上述「四則運(yùn)算」為例,TypeChat輸入給LLM的提示詞類(lèi)似這樣:

你是個(gè)轉(zhuǎn)換系統(tǒng),將用戶(hù)輸入轉(zhuǎn)換為由JSON表示的程序,轉(zhuǎn)換需要遵循下面的TS類(lèi)型聲明:
${對(duì)@step、@ref、@func等如何使用的類(lèi)型聲明}

程序可以執(zhí)行由下面的TS類(lèi)型定義的函數(shù):
${輸出產(chǎn)物TS類(lèi)型聲明}

下面是用戶(hù)輸入轉(zhuǎn)換為JSON后的結(jié)果:

LLM接收以上提示詞后輸出代表程序執(zhí)行的JSON,該JSON再經(jīng)由TypeChat轉(zhuǎn)換后變?yōu)椤缚蓤?zhí)行的代碼」。

對(duì)輸出產(chǎn)物的糾錯(cuò)

如果LLM返回的JSON有TS類(lèi)型錯(cuò)誤,那么TypeChat會(huì)拼接出下面的提示詞,并輸入給LLM:

${報(bào)錯(cuò)的JSON數(shù)據(jù)}

上述JSON對(duì)象由于下述原因?qū)е滤欠欠ǖ模?${TS報(bào)錯(cuò)信息}

下面是修正后的JSON:

TypeChat對(duì)前端行業(yè)的影響

不止是前端工程師,當(dāng)前程序員使用LLM的主要方式還是:

  1. 用自然語(yǔ)言描述一段代碼需求
  2. LLM輸出代碼
  3. 程序員修改輸出的代碼,為項(xiàng)目所用

而業(yè)界預(yù)期的LLM終極形態(tài)是:產(chǎn)品經(jīng)理用自然語(yǔ)言描述產(chǎn)品需求,LLM直接寫(xiě)代碼。

如果達(dá)到這種程度,程序員就完全沒(méi)有存在價(jià)值了,這也是大部分程序員焦慮的原因。

那么,制約「達(dá)到終極形態(tài)」的因素有哪些呢?有三點(diǎn):

  1. LLM對(duì)「自然語(yǔ)言描述的需求」的理解能力
  2. LLM一次處理的提示詞長(zhǎng)度(token數(shù)量限制)
  3. LLM生成代碼的穩(wěn)定性

對(duì)于第一點(diǎn),當(dāng)GPT-3.5出現(xiàn)后,好像LLM的理解能力突然上了好幾個(gè)臺(tái)階。所以,大家會(huì)焦慮是不是再過(guò)幾年,LLM的理解能力突然又爆發(fā)性提高,能夠完全理解自然語(yǔ)言描述的需求。

對(duì)于第二點(diǎn),GPT-3.5有「最多4096token」的限制,但這一限制正在逐步放寬。這意味著在不遠(yuǎn)的將來(lái),LLM能夠輸出的代碼量會(huì)越來(lái)越多。

正是預(yù)見(jiàn)到以上兩個(gè)因素的變化趨勢(shì),導(dǎo)致程序員產(chǎn)生「假以時(shí)日,會(huì)被AIGC取代」的焦慮。

但我們發(fā)現(xiàn),要達(dá)到終極形態(tài),還要考慮第三個(gè)因素 —— LLM生成代碼的穩(wěn)定性。

也就是說(shuō),LLM雖然可以幫我們編寫(xiě)函數(shù)代碼、模塊代碼,但如果這些函數(shù)、模塊的代碼是不穩(wěn)定的,他們就沒(méi)法配合使用,需要工程師手動(dòng)修改。

如果LLM生成的代碼經(jīng)常需要工程師手動(dòng)修改,那就限制了「它能夠自動(dòng)生成代碼的規(guī)?!?,那么他只能淪為工程師的編程助手,而不是取代工程師。

而要解決「生成代碼的穩(wěn)定性」問(wèn)題,不管是通過(guò)openAI的function calling,還是TypeChat,都需要工程師能夠?qū)Ξa(chǎn)物做出精準(zhǔn)的類(lèi)型定義。

這就形成了一個(gè)悖論 —— AIGC要想取代工程師獨(dú)立完成項(xiàng)目,需要能生成穩(wěn)定的代碼。而為了生成穩(wěn)定的代碼,需要工程師理解業(yè)務(wù)邏輯后,編寫(xiě)詳盡的類(lèi)型聲明。

為了取代工程師,還需要工程師積極參與?那取代個(gè)der。

這頂多算是一種編程范式的遷移,類(lèi)似之前前端用jQuery開(kāi)發(fā)頁(yè)面,后來(lái)遷移到用前端框架開(kāi)發(fā)頁(yè)面。

未來(lái),前端工程師編寫(xiě)詳盡的類(lèi)型聲明,LLM再根據(jù)聲明生成框架代碼。就像現(xiàn)在前端通過(guò)框架編寫(xiě)「狀態(tài)變化邏輯」,框架再去執(zhí)行具體的DOM操作一樣。

總結(jié)

有些同學(xué)會(huì)焦慮 —— 未來(lái)是AIGC的天下,我要不要轉(zhuǎn)行搞人工智能?

實(shí)際上,通過(guò)本文,我們能感受到一種趨勢(shì),未來(lái)將會(huì)分化出三種工程師:

  1. 搞AIGC算法研究的工程師

這類(lèi)工程師人數(shù)很少,都在頭部互聯(lián)網(wǎng)企業(yè)或人工智能企業(yè)的實(shí)驗(yàn)室中。

  1. 負(fù)責(zé)公司AIGC基建的工程師

這類(lèi)工程師負(fù)責(zé)將上一類(lèi)工程師的產(chǎn)出與公司業(yè)務(wù)結(jié)合,他們的工作職責(zé)包括:

  • 評(píng)估、部署各種開(kāi)源模型
  • 會(huì)使用各種工具,比如langChain、Pincecone,當(dāng)然也包括本文介紹的TypeChat
  • 根據(jù)公司業(yè)務(wù)場(chǎng)景,落地AI基建
  1. 業(yè)務(wù)工程師

比如前端工程師、后端工程師、全棧工程師。他們會(huì)在AIGC基建工程師開(kāi)發(fā)的基建上,進(jìn)行業(yè)務(wù)開(kāi)發(fā)。

前端這個(gè)崗位會(huì)持續(xù)存在,只是要求會(huì)更高(對(duì)業(yè)務(wù)的抽象能力)、從業(yè)者會(huì)更少。

可以簡(jiǎn)單的做個(gè)比喻,如果你當(dāng)前小組的構(gòu)成是:

  • 一個(gè)對(duì)業(yè)務(wù)更理解的前端組長(zhǎng)
  • 幾個(gè)負(fù)責(zé)業(yè)務(wù)開(kāi)發(fā)的中級(jí)前端

那么未來(lái)的構(gòu)成會(huì)是:

  • 一個(gè)理解業(yè)務(wù)的高級(jí)前端(可能是之前的前端組長(zhǎng)),負(fù)責(zé)對(duì)業(yè)務(wù)進(jìn)行抽象
  • 編寫(xiě)具體業(yè)務(wù)邏輯的AIGC基建

參考資料

[1]TypeChat:https://microsoft.github.io/TypeChat/。

[2]function-calling:https://openai.com/blog/function-calling-and-other-api-updates。

[3]TypeChat:https://microsoft.github.io/TypeChat/。

責(zé)任編輯:姜華 來(lái)源: 魔術(shù)師卡頌
相關(guān)推薦

2019-07-29 11:25:57

2023-07-24 13:29:09

TypeChatAI開(kāi)源

2018-12-20 10:50:47

區(qū)塊鏈數(shù)字貨幣比特幣

2019-10-15 11:33:19

云計(jì)算Kubernetes互聯(lián)網(wǎng)

2016-11-10 10:07:28

新項(xiàng)目前端流程

2020-01-20 10:10:03

互聯(lián)網(wǎng)架構(gòu)

2023-09-13 11:04:25

機(jī)器人人工智能

2021-06-29 15:29:33

人工智能合成數(shù)據(jù)

2014-11-03 14:55:48

AndroidGoogleAndy Rubin

2013-11-25 17:49:20

HPC微異構(gòu)系統(tǒng)

2023-02-20 08:41:08

SignaluseState()

2021-05-26 09:13:35

Linux之父未來(lái)科技

2009-12-22 03:05:03

面向?qū)ο笾?/a>Alan Kaysmalltalk

2012-11-07 13:31:53

Hadoop大數(shù)據(jù)

2020-09-21 10:16:44

智能

2022-03-09 17:37:55

前端架構(gòu)微前端

2010-03-16 15:46:23

核心交換機(jī)

2013-04-16 08:32:10

云計(jì)算公有云混合云

2014-11-03 10:20:49

2020-07-29 10:32:10

人工智能AI疫情
點(diǎn)贊
收藏

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

丝瓜av网站精品一区二区| 红杏视频成人| 亚洲制服丝袜av| 久久99精品久久久久久三级| 成人免费一区二区三区| 一区二区影视| 亚洲色图在线观看| 色欲无码人妻久久精品| 成人av观看| 又紧又大又爽精品一区二区| 农村寡妇一区二区三区| 国产精品久久久久久免费免熟| 一本久道综合久久精品| 日韩在线中文字幕| 日本一卡二卡在线| 日韩专区视频| 午夜一区二区三区视频| 亚洲视频欧美在线| 日本视频在线观看一区二区三区| 麻豆久久一区二区| 欧洲中文字幕国产精品| 久久久久久久极品内射| 日韩精品一区二区三区免费观看| 亚洲成人久久网| √天堂资源在线| 欧美××××黑人××性爽| 午夜精品久久久| 久久久久久久久影视| 成人一区二区不卡免费| 99久久99精品久久久久久| 91精品婷婷国产综合久久蝌蚪| 在线观看免费高清视频| 老司机精品视频网站| 91av在线播放| 国产一级中文字幕| 黄色精品免费| 欧美激情图片区| 草视频在线观看| 97色伦图片97综合影院| 中文字幕久热精品在线视频 | 不卡亚洲精品| 色婷婷综合久久久久中文| av在线播放亚洲| 男女视频在线| 亚洲一区二区五区| 青草全福视在线| 97影院秋霞午夜在线观看| 国产精品国产自产拍在线| 视频一区视频二区视频三区视频四区国产| 天堂在线中文资源| 99精品国产热久久91蜜凸| 激情五月综合色婷婷一区二区| 精品人妻少妇嫩草av无码专区| 激情图区综合网| 成人国产精品久久久久久亚洲| 中文字幕 亚洲视频| 蜜臀av性久久久久蜜臀aⅴ| 国产va免费精品高清在线| 男人天堂av在线播放| 久久久久久黄| 国产精品白嫩美女在线观看| 日日夜夜狠狠操| 日韩综合一区二区| 国产精品狼人色视频一区| 伊人网视频在线| 深夜激情久久| 欧美一级欧美三级在线观看| 日本亚洲一区二区三区| 蜜桃在线一区| 亚洲成人av在线播放| 国产精品无码在线| 国产91一区| 中文字幕亚洲第一| 男人的天堂久久久| 亚洲大黄网站| 国产成人啪精品视频免费网| 欧美成人一区二区视频| 国内精品免费**视频| 97视频中文字幕| 午夜影院免费体验区| 久久久无码精品亚洲日韩按摩| 天堂av一区二区| 日本一本在线免费福利| 午夜精品免费在线| 黄色三级视频片| 美女精品久久| 亚洲跨种族黑人xxx| 国产一二三四视频| 国产精品magnet| 日本欧美国产在线| 99在线精品视频免费观看20| 91视频免费观看| 日本不卡一区二区三区四区| 人在线成免费视频| 欧美一区日韩一区| 人妻丰满熟妇aⅴ无码| 999国产精品永久免费视频app| 高清欧美性猛交xxxx| 无码aⅴ精品一区二区三区| 国产一区二区三区四区五区入口| 好看的日韩精品视频在线| 99re热久久这里只有精品34| 亚洲精品欧美在线| 日韩精品一区中文字幕| 97se亚洲| 日韩视频永久免费观看| 免费av网站在线| 国产精品一区二区视频| 一个色妞综合视频在线观看| 91在线视频导航| 天天操天天爱天天干| 欧美极品美女视频| 日韩精品 欧美| 电影中文字幕一区二区| 亚洲欧美制服中文字幕| 动漫精品一区一码二码三码四码| 免费观看在线色综合| 久久综合中文色婷婷| av网站网址在线观看| 在线视频一区二区三| 中文字幕乱视频| 亚洲电影影音先锋| 国产精品久久久久久中文字| 午夜黄色小视频| 亚洲精品va在线观看| 中文字幕一区二区在线观看视频 | 四虎影院一区二区三区| 亚洲色图官网| 亚洲国语精品自产拍在线观看| 中文字幕在线观看2018| 美国av一区二区| 日本亚洲欧洲精品| 625成人欧美午夜电影| 日韩电影大全免费观看2023年上 | 精品电影一区| 91免费版黄色| 在线观看电影av| 欧美一区二区私人影院日本| 免费成人深夜蜜桃视频| 日本sm残虐另类| 日韩欧美亚洲v片| 日韩精品影片| 在线观看成人黄色| 瑟瑟视频在线免费观看| 亚洲国产岛国毛片在线| 手机在线看福利| 国产在视频线精品视频www666| 人体精品一二三区| 免费国产在线观看| 在线免费一区三区| 亚洲ⅴ国产v天堂a无码二区| 日韩av不卡在线观看| 日本一区二区久久精品| 亚洲综合av一区二区三区| 最近2019年好看中文字幕视频| 中文av免费观看| 国产精品国模大尺度视频| 91精品视频国产| 国产精品videossex久久发布| 超碰在线97av| 黄色漫画在线免费看| 亚洲精品永久免费| 在线观看视频二区| 亚洲精品视频在线观看网站| 中文字幕精品久久久| 免费视频一区| 亚洲视频小说| 97品白浆高清久久久久久| 4k岛国日韩精品**专区| 成年人在线视频| 91精品国产黑色紧身裤美女| 久久免费黄色网址| 91在线丨porny丨国产| 国产一级片黄色| 国产精品传媒精东影业在线| 99视频在线| 伊人久久国产| 日韩网站在线观看| 成人免费视频国产| 狠狠色噜噜狠狠狠狠97| 快灬快灬一下爽蜜桃在线观看| 久久99精品久久久久久动态图| www国产无套内射com| 麻豆一区二区麻豆免费观看| 国产精品视频久| 色综合999| 亚洲欧美激情四射在线日| 一区二区 亚洲| 黄网站色欧美视频| 亚洲女人毛茸茸高潮| 成人午夜看片网址| 一区二区三区国产免费| 欧美午夜视频| 亚洲蜜桃av| 国产亚洲精品美女久久| 国产精品美女999| av中文在线资源| 久久精品国产亚洲一区二区| 天天舔天天干天天操| 欧美日本国产视频| www.com国产| 亚洲精品精品亚洲| 日本理论中文字幕| 99久久精品国产一区| 一级网站在线观看| 日韩国产高清在线| 免费看又黄又无码的网站| 一区二区日韩欧美| 亚洲精品在线视频观看| 午夜a一级毛片亚洲欧洲| 91视频在线免费观看| 久久亚洲精品人成综合网| 日本精品va在线观看| 亚洲卡一卡二| 色综久久综合桃花网| 一级片视频免费观看| 精品伊人久久久| 91麻豆国产语对白在线观看| 久久91导航| 98精品国产自产在线观看 | 欧美精品在线看| 国产精品一二三区视频| 日韩毛片在线看| 午夜精品久久久久久久91蜜桃| 欧美日韩一卡二卡三卡| 国产91精品看黄网站在线观看| 亚洲成人av一区二区| 美女福利视频在线观看| 国产精品热久久久久夜色精品三区| 青青草视频播放| 成人av资源在线观看| 日本少妇一区二区三区| 激情文学综合插| 中文字幕免费高清在线| 蜜臀久久99精品久久久久久9| 日韩av片在线看| 亚洲视频www| 国产免费观看高清视频| 亚洲人成免费| 日韩国产小视频| 亚洲视频精品| 黄色一级片在线看| 亚洲精品系列| 91猫先生在线| 巨乳诱惑日韩免费av| 男人舔女人下面高潮视频| 每日更新成人在线视频| 日本免费一级视频| 天堂久久一区二区三区| 激情婷婷综合网| 乱一区二区av| 91丨porny丨九色| 成人亚洲一区二区一| 欲求不满的岳中文字幕| 久久色在线视频| 亚洲自拍偷拍图| 中文字幕制服丝袜一区二区三区 | 亚洲午夜精品网| 国产精品美女久久久久av爽| 色婷婷久久久综合中文字幕 | av电影在线免费| 538国产精品视频一区二区| 欧美一区国产| 国产一区红桃视频| 日韩精品一区二区三区中文字幕| 粉嫩av四季av绯色av第一区| 欧美一级三级| 亚洲 国产 欧美一区| 欧美fxxxxxx另类| 国产精品无码人妻一区二区在线| 久久亚洲风情| 最新国产黄色网址| 成人动漫中文字幕| 亚洲一区二区三区蜜桃| 国产精品免费aⅴ片在线观看| 国产又黄又爽又无遮挡| 亚洲成人资源在线| 波多野结衣毛片| 日韩亚洲欧美中文三级| 天天插天天干天天操| 尤物yw午夜国产精品视频| a在线免费观看| 欧美在线性视频| 在线免费成人| 美国av一区二区三区 | 国产一区二区四区| 美女精品在线| 日韩av成人网| 日本一区二区视频在线| 国产亚洲精品码| 欧美吻胸吃奶大尺度电影 | 亚洲日本中文字幕| 超鹏97在线| 日韩av电影手机在线| 欧洲大片精品免费永久看nba| 欧美二区三区| 伊人久久大香线| 日本男人操女人| 成人18精品视频| 伊人在线视频观看| 色欧美日韩亚洲| 手机在线观看毛片| 日韩在线免费视频| 亚洲欧洲自拍| 99精彩视频在线观看免费| av在线不卡免费观看| 欧美久久在线观看| 狠狠色丁香久久婷婷综| 中国女人特级毛片| 欧美日韩国产丝袜另类| av免费观看网址| 中国china体内裑精亚洲片| 国产免费拔擦拔擦8x在线播放 | 亚洲欧美日韩久久精品| 免费看污视频的网站| 亚洲国产精品中文| 污视频网站免费在线观看| 国产精品啪视频| 亚洲人挤奶视频| 浮妇高潮喷白浆视频| 国产成人免费视频| 日韩精品国内| 亚洲另类自拍| aaaaa黄色片| 亚洲三级理论片| 国产又粗又长又大视频| 一本色道久久88综合亚洲精品ⅰ | 亚洲成av人片在www色猫咪| 国产裸体无遮挡| zzjj国产精品一区二区| 亚洲四虎影院| 日韩电影天堂视频一区二区| 亚洲一区二区网站| 精品黑人一区二区三区观看时间| 亚洲一区二区在线观看视频 | 日韩久久中文字幕| 亚洲国产福利在线| 爱福利在线视频| 国产精品中出一区二区三区| 欧美精品导航| 色综合久久久无码中文字幕波多| 亚洲人成网站色在线观看| 国产精品久久久久毛片| 久久视频在线免费观看| www.成人| 国产乱子伦精品无码专区| 国产·精品毛片| 日韩高清免费av| 亚洲国产精品999| 欧美成人a交片免费看| 欧美日韩综合久久| 日韩av在线播放中文字幕| 影音先锋男人在线| 在线播放中文一区| 污网站在线免费看| 国产私拍一区| 久久亚洲精选| 国产馆在线观看| 日韩一区二区三区在线视频| 免费影视亚洲| 久久久久久久有限公司| 日韩中文字幕区一区有砖一区 | 日产精品久久久久久久性色| 国产mv免费观看入口亚洲| 99精品国产一区二区三区| 国产黄色一区二区三区| 精品久久中文字幕| 都市激情一区| 亚洲一区二区三区成人在线视频精品 | 人人精品人人爱| 国产色无码精品视频国产| 精品久久免费看| 日本高清不卡一区二区三区视频 | 蜜桃视频在线观看www社区| 999在线观看免费大全电视剧| 91久久中文| 男人的天堂官网 | 高清中文字幕mv的电影| 欧美性jizz18性欧美| 丝袜美腿美女被狂躁在线观看| 亚洲最大福利视频网站| 国产日韩欧美一区在线| 99精品全国免费观看| 日韩欧美电影一二三| 色8久久影院午夜场| 草草草视频在线观看| 久久久三级国产网站| 亚洲AV午夜精品| 国产精品久久久久国产a级| 欧美激情精品久久久六区热门| jizz欧美性20| 日韩视频在线一区二区| 亚洲欧洲自拍| av 日韩 人妻 黑人 综合 无码| www精品美女久久久tv| 精品区在线观看| 国产美女搞久久| 亚洲毛片视频| 侵犯稚嫩小箩莉h文系列小说| 亚洲欧洲日产国产网站|