国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

初試微信公眾號(hào)開發(fā)與對(duì)接 ChatGPT 接口

共 9546字,需瀏覽 20分鐘

 ·

2023-06-28 11:19

上周公眾號(hào)對(duì)接了 ChatGPT 接口,直接在公眾號(hào)內(nèi)即可與 ChatGPT 聊天。本文將整個(gè)對(duì)接的過程分享給大家

由于本人沒有過公眾號(hào)開發(fā)經(jīng)驗(yàn),所以先是直接百度了下「公眾號(hào)對(duì)接 ChatGPT」,果然網(wǎng)上已經(jīng)有簡(jiǎn)單案例了,代碼如下:

      
      import?werobot
import?openai

robot?=?werobot.WeRoBot(token="your_wx_token")
robot.config["HOST"]?=?"0.0.0.0"
robot.config["PORT"]?=?9005

openai.api_key?=?"your_api_key"

@robot.handler
def?handle(messages):
????completion?=?openai.ChatCompletion.create(
????????model="gpt-3.5-turbo",
????????messages=[{"role":?"user",?"content":?messages.content}]
????)
????return?completion.choices[0].message.content

robot.run()

代碼非常簡(jiǎn)潔,使用了 werobot 讓我們可以快速開發(fā)公眾號(hào)被動(dòng)消息回復(fù)邏輯,利用 openai 庫(kù)來調(diào)用調(diào)用 ChatGPT 接口。

代碼跑起來之后,我便迫不及待的給公眾號(hào)發(fā)消息測(cè)試,簡(jiǎn)單測(cè)試后發(fā)現(xiàn)了如下的問題:

  1. 發(fā)送的所有消息都會(huì)轉(zhuǎn)發(fā)給ChatGPT接口,會(huì)影響公眾號(hào)后續(xù)的自動(dòng)回復(fù)功能開發(fā)。
  2. 示例代碼中調(diào)用 ChatGPT 接口只傳遞了單條消息,沒有保持整個(gè)會(huì)話的上下文,這樣無法更好的體驗(yàn) ChatGPT 功能
  3. 公眾號(hào)被動(dòng)回復(fù)接口需要在 5 秒內(nèi)做出響應(yīng),否則微信將進(jìn)行 2 兩次重試調(diào)用接口,而 ChatGPT API 稍微復(fù)雜點(diǎn)的問題基本都需要半分鐘才能響應(yīng),由于微信的消息重試機(jī)制,一個(gè)問題我重復(fù)調(diào)用了 3 次 ChatGPT 且每一次都會(huì)超時(shí),導(dǎo)致公眾號(hào)無法正常響應(yīng)用戶消息。

解決思路

第一個(gè)問題,我需要有個(gè)入口來開啟聊天會(huì)話,只有開啟了會(huì)話之后的消息才需要被 ChatGPT 處理。

對(duì)于這個(gè)問題,我首先想到的是增加一個(gè)公眾號(hào)菜單,當(dāng)用戶點(diǎn)擊公眾號(hào)菜單「ChatGPT」時(shí)開啟會(huì)話,開啟會(huì)話后的消息讓 ChatGPT 來處理。

很快這個(gè)思路就被否定了,原因是我的公眾號(hào)沒有權(quán)限,無法處理菜單點(diǎn)擊事件,只能設(shè)置回復(fù)公眾號(hào)內(nèi)的文章消息。

最終解決方案: 讓用戶輸入發(fā)送特定的消息來開啟會(huì)話

發(fā)送/chatgpt指令消息開啟會(huì)話,會(huì)話有效時(shí)常為 5 分鐘,發(fā)送消息可延長(zhǎng)有效期,會(huì)話失效后需要重新啟動(dòng)會(huì)話

第二個(gè)問題,需要保持 ChatGPT 的上下文

通過查閱ChatGPT官方文檔得知,想要保持上下文,需要每次請(qǐng)求的時(shí)候把之前用戶發(fā)送的消息 和 ChatGPT 回復(fù)的消息都放到請(qǐng)求參數(shù)中,通過role來區(qū)分用戶消息(user)和助理消息(assistant),請(qǐng)求參數(shù)JSON示例:

      
      {
??"model":?"gpt-3.5-turbo",
??"messages":?[
????{"role":?"user",?"content":?"第一條用戶消息"},
????{"role":?"assistant",?"content":?"ChatGPT第一條消息回復(fù)"},
????{"role":?"user",?"content":?"第二條用戶消息"}
????//?……
??]
}

ok,當(dāng)用戶開啟會(huì)話后,我們只需要將會(huì)話中所有的消息再下次請(qǐng)求 ChatGPT 時(shí)都攜帶上就可以保持消息上下文了。基于 /chatgpt 指令消息,我們?cè)僭黾觾蓚€(gè)指令:

  • /stop:結(jié)束會(huì)話,結(jié)束后想要再發(fā)消息,需要重新開啟會(huì)話
  • /clear:清空消息上下文,相當(dāng)于執(zhí)行了/stop+/chatgpt開啟了一個(gè)新的會(huì)話
第三個(gè)問題,ChatGPT 接口響應(yīng)慢導(dǎo)致微信接口超時(shí),無法正?;貜?fù)用戶結(jié)果

這個(gè)問題也是最嚴(yán)重的問題,會(huì)直接導(dǎo)致無法與 ChatGPT 進(jìn)行對(duì)話。

36b495b088833cceb1831abb04aacf1d.webpimage-20230411000326242

通過閱讀微信公眾號(hào)開發(fā)文檔,若服務(wù)器無法在 5 秒內(nèi)回復(fù)消息,可以直接回復(fù) success,后續(xù)再將結(jié)果異步推送給用戶。

本以為是找到了完美的解決方案,當(dāng)我試驗(yàn)的時(shí)候才發(fā)現(xiàn)我的公眾號(hào)并沒有「主動(dòng)發(fā)送消息給用戶」的權(quán)限,好吧,只能再想其他辦法了(吐糟下,微信個(gè)人訂閱號(hào)給的權(quán)限太低了,什么都用不了...)

最終解決方案:

  1. 充分利用微信的重試機(jī)制,在微信首次請(qǐng)求時(shí)異步調(diào)用 ChatGPT,若在當(dāng)前接口調(diào)用超時(shí)前得到 ChatGPT 的回復(fù),則正常響應(yīng)給用戶,否則讓這次接口調(diào)用超時(shí)。當(dāng)微信接口重試時(shí),不再請(qǐng)求 ChatGPT,而是判斷之前的 ChatGPT 有沒有完成回復(fù)并返回給用戶結(jié)果。通過這種方式,將公眾號(hào)正常響應(yīng)的超時(shí)時(shí)間提升到 15 秒!a9c403e45244cb88a265e4dd08393244.webp

  2. 若 15 秒內(nèi) ChatGPT 仍然無法作出回復(fù),則在微信的最后一次接口重試時(shí)返回給用戶一個(gè)網(wǎng)站鏈接,通過可以通過該鏈接查看并等待 ChatGPT 回復(fù)。

開發(fā)過程

1. 技術(shù)與框架選型

由于后續(xù)公眾號(hào)可能會(huì)繼續(xù)開發(fā)消息回復(fù)系統(tǒng) 或 對(duì)接其他的 AI 助手,而 Python 語言我并不擅長(zhǎng)(不喜歡用 Python),所以選擇我最熟悉的 Java 語言進(jìn)行開發(fā)。

Java語言微信開發(fā)框架有很多,如:fastweixin、wechat4j、WxJava 等,經(jīng)過比較源碼的介紹和關(guān)注人數(shù),開發(fā)人數(shù)、活躍程度來看WxJava是比較好的,就用它了。

而對(duì)于 ChatGPT 的接口調(diào)用,其實(shí)隨便哪個(gè)HTTP客戶端都可以,本次則選擇本人比較喜歡的 open-feign 框架。

2. 處理微信重試消息

首先來簡(jiǎn)單了解下WxJava框架處理公眾號(hào)消息的流程

e8700af242dfe3f4a1e2f43be02ae343.webpWxJava消息處理流程

從上圖中首先由WxPortalController對(duì)外提供HTTP接口,接收微信發(fā)送過來的消息處理請(qǐng)求。然后WxMessageRouter負(fù)責(zé)根據(jù)指定的規(guī)則對(duì) 消息處理器Handler 進(jìn)行路由選擇合適的處理器來處理消息。

然而實(shí)際試驗(yàn)發(fā)現(xiàn),Controller層是可以接收到微信的重試消息的,而 Handler 層卻只會(huì)處理一次,通過閱讀源碼得知,微信重試消息在 WxMessageRouter消息路由層已經(jīng)被過濾了,所以第一步需要做的就是讓 微信重試消息 可以下沉到 Handler層來處理。

      
      //?創(chuàng)建消息路由器
WxMpMessageRouter?newRouter?=?new?WxMpMessageRouter(wxMpService);
//?替換默認(rèn)的「重復(fù)消息校驗(yàn)器」,讓?router?不對(duì)重試消息進(jìn)行過濾處理
newRouter.setMessageDuplicateChecker(v?->?false);

通過這步操作,微信的重試消息已經(jīng)可以到達(dá) Handler

Handler 中處理重試消息

抽象出 AbstractReplayHandler來專門負(fù)責(zé)上述的消息重試處理,并預(yù)留抽象方法handlerAsync方法,讓子類正常的進(jìn)行同步處理消息,不用關(guān)注重試邏輯。

定義 ReplayInfo 類記錄接口重試信息

      
      public?class?ReplayInfo?{
????/**?消息Id*/
????private?String?messageId;
????/**?微信消息對(duì)象*/
???private?WxMpXmlMessage?wxMessage;
????/**?請(qǐng)求次數(shù)*/
????private?AtomicInteger?replayCount;
????/**?首次請(qǐng)求時(shí)間戳*/
????private?long?timeMillis?=?System.currentTimeMillis();
????/**?消息處理?CompletableFuture*/
????private?CompletableFuture?completableFuture;
????/**?消息處理異常*/
????private?WxErrorException?exception;
}

ReplayInfo 存儲(chǔ)

      
      private?static?final?Map?REPLAY_CACHE?=?new?ConcurrentHashMap<>();

抽象方法定義

      
      /**
?*?異步處理消息
?*/

public?abstract?WxMpXmlOutMessage?handleAsync(WxMpXmlMessage?wxMessage,?Map?context,?WxMpService?wxMpService,?WxSessionManager?sessionManager)?throws?WxErrorException;

/**
?*?超時(shí)消息
?*/

public?abstract?WxMpXmlOutMessage?buildTimeoutMessage(WxMpXmlMessage?wxMessage,?Map?context,?WxMpService?wxMpService,?WxSessionManager?sessionManager);

核心邏輯處理:handle 方法

      
      //?消息Id
String?messageId?=?getMessageId(wxMessage);
//?首次消息執(zhí)行消息處理并創(chuàng)建?replayInfo,非首次消息則直接獲取
ReplayInfo?replayInfo?=?REPLAY_CACHE.computeIfAbsent(messageId,?key?->?{
????ReplayInfo?dto?=?new?ReplayInfo();
????dto.setMessageId(messageId);
????dto.setWxMessage(wxMessage);
????dto.setReplayCount(new?AtomicInteger());
????//?異步執(zhí)行真正的處理方法
????dto.setCompletableFuture(CompletableFuture.supplyAsync(()?->?{
????????try?{
????????????return?handleAsync(wxMessage,?context,?wxMpService,?sessionManager);
????????}?catch?(WxErrorException?e)?{
????????????//?記錄異常信息
????????????dto.setException(e);
????????????return?null;
????????}
????}));
????return?dto;
});
//?請(qǐng)求次數(shù)
int?replayCount?=?replayInfo.getReplayCount().incrementAndGet();
CompletableFuture?completableFuture?=?replayInfo.getCompletableFuture();
if?(completableFuture?==?null)?{
????throw?new?WxErrorException("Replay消息錯(cuò)誤");

try?{
????//?在單次請(qǐng)求超時(shí)時(shí)間范圍內(nèi)嘗試讀取結(jié)果
????//?n?毫秒超時(shí),則等待?n?-?reservedTime?毫秒,預(yù)留?reservedTime?毫秒時(shí)間響應(yīng)結(jié)果
????WxMpXmlOutMessage?wxMpXmlOutMessage?=?completableFuture.get(timeout?-?reservedTime,?TimeUnit.MILLISECONDS);
????if?(completableFuture.isDone())?{
????????//?已經(jīng)完成響應(yīng),刪除?replayInfo
????????REPLAY_CACHE.remove(messageId);
????????if?(replayCount?>?1)?{
????????????log.info("{}?消息第?{}?次重試請(qǐng)求成功處理!",?messageId,?replayCount);
????????}
????}
????//?判斷是否異常
????if?(replayInfo.getException()?!=?null)?{
????????return?exceptionCaught(wxMessage,?context,?wxMpService,?sessionManager,?replayInfo.getException());
????}
????//?返回結(jié)果
????return?wxMpXmlOutMessage;
}?catch?(TimeoutException?e)?{
????//?獲取結(jié)果超時(shí)
????//?判斷是否達(dá)到請(qǐng)求重試上限
????if?(replayCount?>=?maxReplayCount)?{
????????//?已經(jīng)達(dá)到上限,返回請(qǐng)求超
????????log.info("{}?消息到達(dá)重試上限?{}?次仍未處理完成,服務(wù)降級(jí)處理",?messageId,?replayCount);
????????return?buildTimeoutMessage(wxMessage,?context,?wxMpService,?sessionManager);
????}
????//?未到重試上限,sleep?2倍預(yù)留時(shí)間,讓這個(gè)請(qǐng)求也超時(shí)
????log.info("{}?消息第?{}?次請(qǐng)求超時(shí),等待請(qǐng)求重試",?messageId,?replayCount);
????try?{
????????Thread.sleep(reservedTime?*?2L);
????}?catch?(InterruptedException?ignored)?{
????}
????return?null;
}?catch?(InterruptedException?|?ExecutionException?e)?{
????return?exceptionCaught(wxMessage,?context,?wxMpService,?sessionManager,?new?WxErrorException(e));
}

AbstractReplayHandler關(guān)鍵邏輯大致如此,繼承了AbstractReplayHandler的處理器則可以將消息處理的有效時(shí)常延長(zhǎng)到 15 秒!

3. ChatMsgHandler 消息處理

處理器路由匹配規(guī)則

若當(dāng)前用戶已經(jīng)開始會(huì)話,則所有消息都需要進(jìn)行處理。否則只處理定義好的指令消息:/chatgpt、/clear、/stop 等

      
      public?boolean?match(WxMpXmlMessage?wxMessage)?{
??//?首先判斷當(dāng)前用戶是否有開啟聊天會(huì)話
??String?chatSessionId?=?userSessionMappingStorage.getUserSessionId(wxMessage.getFromUser());
??if?(StringUtils.isNotBlank(chatSessionId))?{
????//?檢測(cè)會(huì)話是否有效
????String?sessionCacheKey?=?WxChatConstants.getSessionCacheKey(chatSessionId);
????boolean?exists?=?redissonClient.getBucket(sessionCacheKey).isExists();
????if?(exists)?{
??????return?true;
????}
??}
??String?content?=?wxMessage.getContent();
??if?(StringUtils.isBlank(content))?{
????return?false;
??}
??switch?(content.toLowerCase())?{
????case?CMD_START_SESSION:
????case?CMD_STOP_AND_NEW_SESSION:
????case?CMD_STOP_SESSION:
????case?CMD_SHOW_HISTORY:
??????return?true;
????default:
??????return?false;
??}
}

消息處理

考慮到文章長(zhǎng)度,就不挨個(gè)列舉指令和聊天消息的處理代碼了,有興趣可以找作者領(lǐng)取源碼!

      
      public?WxMpXmlOutMessage?handleAsync(WxMpXmlMessage?wxMessage,?Map?context,?WxMpService?wxMpService,?WxSessionManager?sessionManager)?throws?WxErrorException?{
??switch?(wxMessage.getContent().toLowerCase())?{
????case?CMD_START_SESSION:
??????return?handleStartSession(wxMessage,?context,?wxMpService,?sessionManager);
????case?CMD_STOP_AND_NEW_SESSION:
??????return?handleStopAndNewSession(wxMessage,?context,?wxMpService,?sessionManager);
????case?CMD_STOP_SESSION:
??????return?handleStopSession(wxMessage,?context,?wxMpService,?sessionManager);
????case?CMD_SHOW_HISTORY:
??????return?new?TextBuilder().build("點(diǎn)擊下方鏈接查看歷史會(huì)話:\n"?+?buildUserHistoryUrl(wxMessage),?wxMessage,?wxMpService);
????default:
??????return?handleChatMsg(wxMessage,?context,?wxMpService,?sessionManager);
??}
}

4. ChatGPT 接口調(diào)用

定義請(qǐng)求與響應(yīng)數(shù)據(jù)結(jié)構(gòu)

      
      public?class?ChatCompletionsRequest?implements?Serializable?{
??/**?AI模型*/
??private?String?model;
??/**?會(huì)話消息*/
??private?List?messages;
}
public?class?ChatMessage?implements?Serializable?{
??/**?消息角色?use、assistant?*/
??private?String?role;
??/**?消息內(nèi)容*/
??private?String?content;
}
public?class?ChatCompletionsResult?implements?Serializable?{
??//?忽略部分字段……
??private?List?choices;

??public?static?class?ChoicesDTO?{
????private?ChatMessage?message;
??}
}

定義 FeignClient

      
      @FeignClient(
????????name?=?"ChatCompletionsV1Api",
????????url?=?"${chat-gpt.base-url:https://api.openai.com}"
)
public?interface?ChatV1ApiClient?{
????String?BASE_URL?=?"/v1/chat";
????/**
?????*?ChatGTP
?????*
?????*?@param?request?req
?????*?@return?resp
?????*/

????@PostMapping(
??????value?=?BASE_URL?+?"/completions",
??????headers?=?{"Authorization=Bearer?${${chat-gpt.api-key:}"}
????)
????ChatCompletionsResult?completions(@RequestBody?ChatCompletionsRequest?request);
}

定義了ChatV1ApiClient之后變可以直接@Autowired來使用啦~

最后

簡(jiǎn)單記錄了下本人第一次開發(fā)微信公眾號(hào)與對(duì)接ChatGPT的過程,將遇到的問題以及解決思路、代碼分享給大家,如果大家還有更好的方法可以私信我,非常感謝~

還望大家?guī)臀尹c(diǎn)點(diǎn)“在看“或轉(zhuǎn)發(fā),您的舉手之勞是對(duì)我莫大的鼓勵(lì)。謝謝!


764f520641154e886895d86d349c9d81.webp

瀏覽 35
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 臭小子啊轻点灬太粗太长了的视频 | 北条麻妃JUX-869无码播放| 日韩久久视频| 国产久久视频| 五月天婷婷色播| 在线操B| 久久精品一区二区| 撸一撸av| 亚洲中午字幕| 午夜成人鲁丝片午夜精品| 欧美日本黄色| 91精品国产乱码久久久| 天天躁日日躁狠狠| 99久久久| 特级西西人体www高清大胆| 在线观看免费黄色| www.天天日| 自拍一区在线观看| 欧美日韩色图| 日韩午夜剧场| 国产精品久久77777| 伊人久久中文字幕| 爱爱视频日韩| 91黄色视频网站| 黄色一级片免费观看| 亚洲精品国产成人综合久久久久久久久 | 国产一级婬乱片AV片AAA毛片| 在线观看黄| 蜜臀伊人| 激情白浆| 欧洲一区二区三区| 国产一级性爱视频| 成人五区| 亚洲女人被黑人巨大的原因| 91香蕉在线视频| www.啪啪| 亚洲丝袜av| 足交在线播放| 亚洲AV免费电影| 黄色日逼视频| 在线视频A| 亚洲日韩久久| 91二区三区| 成人无码日韩| 亚洲vs天堂vs成人vs无码| 91亚洲精品视频在线| 91嫖妓站街按摩店老熟女| 亚洲精品一区中文字幕乱码| 狠狠躁夜夜躁人爽| 国产超级无码高清在线视频观看| 精品乱子伦一区二区三区| 思思热在线视频精品| 四虎午夜福利| 91麻豆精品视频| 色玉米地熟妇| 啊啊啊av| 无码高潮| 91人妻人人澡人人爽人人精品乱 | 婷婷丁香人妻天天爽| 乱子伦毛片国产| 青春草视频在线观看| 精品蜜桃秘一区二区三区观看| 老司机免费福利视频| 成人做爰100片免费视频| 人人做人人爱人人做人人乐的意思| 日韩一区二区不卡| AV解说| 麻豆传媒嫂子| 亚洲三级片无码| 插菊花综合| 亚洲国产成人在线视频| 黄色激情AV| 性无码一区二区| 中文字幕精品无码| 成人在线网址| www.三级| 尤物在线免费视频| 大香蕉手机视频| AV在线免费网站| 91丨人妻丨国产| 91天天射| 精品一区国产| 亚洲乱伦中文字幕| 国产wwwww| 狠狠干天天日| 黄色激情视频网站| 日本性爱中文字幕| 日无码视频| 国产2区| 日韩在线观看视频免费| 日韩AV无码一区二区三区| 黄片www| 超碰免费99| 一级a一级a免费观看视频Al明星 | 日本乱伦中文字幕| 操逼电影免费| 欧美日韩国产成人在线| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 欧美精品成人网站| 四川BBB搡BBB搡多人乱| 亚洲色婷婷久久精品AV蜜桃| 中国无码视频| 精品欧美激情精品一区| 五月丁香六月婷婷综合| 动图综合亚洲综合欧美男男 | 91日综合欧美| 欧美三级一级| 国产xxxxx| 九九re精品视频在线观看| 欧美丰满老熟妇XXXXX性| 无码国产传媒精品一区| 麻豆亚洲AV成人无码久久精品| 欧美色视频在线观| 一级a一级a爰片免费| 麻豆传媒嫂子| 三级片高清无码| 色欲影视插综合一区二区三区| 夜色88V精品国产亚洲| 国产精品久久视频| 免费黄视频在线观看| 精品国产91| 91大吊| 国产天堂网| 免费黄色小视频在线观看| 黄色视频一级| 国产A毛片| 亚洲黄片免费| jizz国产视频| 大香蕉伊人在线观看| 草草操| www.sese| 大香蕉75在线| 黄片网址| 加勒比无码在线播放| 亚洲高清福利| 999久久久| 人妻黄色| 日韩欧美中文| 久操免费在线观看| 免费福利在线观看| 色国产在线| 91精品国产乱码久久久竹菊| 精品乱子伦| 性爱精品视频| 中文字幕2018第一页| 超碰碰人人| 色色在线| 成人免费精品| 中文字幕播放| 西西4444www大胆无| 天天干天天日天天干天天日| 国产丝袜视频| 18害羞勿进网站国产| 天天射日日干| 91蜜桃传媒在线观看| 北条麻妃一区二区三区在线观看 | 国产AV直播| 另类av| 青娱乐国产视频| a免费视频在线观看| 亚洲少妇视频| 视频一区18| 七区九区一区在线| 国产高清在线观看| 成年人黄色视频在线观看| 亚洲成人在线视频观看| 日本久久精品18| 国产免费性爱视频| 国产av福利| 欧美一级AA大片免费看视频| 成人亚洲天堂| 中文字幕伊人| 深夜福利av| AV电影在线免费观看| 欧美日韩一| 日本高清无码在线| 手机av网站| av解说| 欧美人妻日韩精品| 黄色不卡视频| 国产精品在线观看| 国产毛片毛片毛片| 精品黄色视频| 在线观看视频免费无码| 永久黄网站| 国产亚洲久一区二区三区| 亚洲操逼图片| 人人摸人人草| 黄色成人在线免费观看| 亚洲网站免费观看| 粉嫩一区| 人人摸人人干人人操| a√天堂中文在线8| 亚洲成人黄色在线| 木下凛凛子AV888AV在线观看| 九色PORNY9l原创自拍| 日韩日韩日韩日韩| 性猛交AAAA片免费观看直播| 日本爱爱视频| 日本精品码喷水在线看| 99亚洲视频| 亚洲丝袜av| 黄色视频网站日本| 欧美成人视屏| 在线观看av资源| 色婷婷视频一区二区| 日韩免费一级片| 亚洲精品久久久久久久久豆丁网 | 免费在线观看黄视频| 久久久久黄片| 亚洲国产成人精品午夜| 色婷婷一区| 一起草在线视频| 激情综合在线| 三级片网页| 青青草资源站| 91精品久久人妻一区二区夜夜夜| 国产精品欧美精品| 自拍偷拍网址| 国产成人无码一区二区在线播放| 日韩无码第四页| 开心四房播播第四婷婷| 香蕉视频色| HEZ-502搭讪绝品人妻系列| 日韩精品在线视频观看| 午夜成人黄色电影| 黄色影视不卡| 国产久久久久| 国产一级a爱做片免费☆观看| 欧美成人精品在线| 第一页在线观看| 亚洲天堂中文| jizz日本护士| 日韩成人激情| 亚洲天堂在线播放| 伊人网成人| 日本AV在线播放| 东方AV在线免费观看| 成人A片在线| 欧美大屌网站| 成人亚洲精品一区二区三区| 免费中文字幕| 性欧美成人18| 午夜爽爽| 18禁www| 91绿帽人妻-ThePorn| 国产一级A片久久久免费看快餐 | 亚洲无码专区在线| 欧美一级免费观看| www一级片| 综合激情AV| 五月天综合在线| 超碰8| 国产青草视频在线观看| 国产成人精品无码片区在线观91| 四川美女网久草| 成人做爰黄A片免费看三区蜜臀| 亚洲高清视频在线| www.插插插| AV一级片| 天堂网av在线| 成人午夜视频在线观看| 黄片免费视频在线观看| 欧美在线视频一区| 中文资源在线a中文| 国产精品久久久久久久久久久久久久久 | 亚洲国产成人久久| 亚洲少妇性爱视频| 久久久久久久久免费视频| 精品国产AV鲁一鲁一区| 日日碰狠狠躁久久躁婷婷| 小黄片高清无码| 青青草婷婷| 性99网站| 婷婷五月天青草| 免费中文视频| 老妇性BBWBBWBBWBBW| 日本A片| 青青草av| 无码三级在线免费观看| 黄色特级aaa片| 五月激情婷婷基地| 亚洲中文字幕日韩在线| 亚洲一本色道中文无码| 1024手机在线视频| 久久久久久亚洲AV黄床| 国产人成视频| 秋霞午夜福利影院| 五月婷婷五月丁香| 大香蕉久久伊人| 欧美日韩视频免费观看| 超碰人人干人人操| 三级黄,色| 九九九网站| 51妺嘿嘿在线电影免费观看| 大地资源第5页在线| 日本一区二区视频在线| 亚洲av无码乱码| 亚洲性视频| 露脸丨91丨九色露脸| 逼逼AV网站-日韩电影| 夜夜嗨AV一区二区三区啊| 国产高清无码网站| www.99在线| 99无码人妻| 91丨熟女丨首页| 九九无码| 国产女同在线观看| 就爱搞搞| 欧美级毛片一进一出夜本色| 成人自拍视频在线观看| 亚洲高清在线| 免费观看黄色一级片| 成人网站在线看。| 一级无码视频| 亚洲AV成人无码| 成人做爱免费网站| 思思热在线视频播放| 日韩一级内射| 色色视频在线观看| 国产午夜视频在线观看| 精品国产一区二区三区性色AV| 操B图| av在线免费观看网址| 特极西西444WWW大胆无码| 在线免费观看黄片| av在线无码观看| 一级操逼视频免费观看| 日逼国产| 奶大丰满一乱一视频一区二区三区在 | 唐嫣一级婬片A片AAA| 国产亲子乱婬一级A片借种| 做爰视频毛片下载蜜桃视频。 | 成人片成人网久久蜜桃臀| 亚洲欧美日本在线| 久久国产欧美| 欧美午夜福利视频| 可以免费观看的AV| 大香蕉免费网| 视色网| 国产成人宗合| 日韩不卡一区二区三区| 开心深爱激情网| 亚洲福利电影| www.91超碰在线| 无码中文一区| 欧美一级黃色A片免费看小优视频 无码人妻精品一区二区三千菊电影 | 一级无码视频| 青草福利视频| 亚洲丁香五月天| 黄色毛片一级| av资源在线| 欧美成人免费观看| 麻豆亚洲AV成人无码久久精品 | 桃色一区| 成人影视1-23| 中文字幕在线成人| 东北老女人操逼视频| 亚洲久热| 最新中文字幕无码| 蜜臀精品一区二区三区| 夜夜骚AV一二三区无码| 北条麻妃亚洲无码| 黄色片视频在线观看| 2025最新国产精品每日更新| 亚洲第一成年人网站| 亚洲夜夜操| 久久精品色| 777中文字幕| 天天天操| 波多野结衣AV网站| 人人操久久| 狼人综合网| 国产一级片无码| 羽月希无码| 亚洲影音先锋资源| 先锋资源在线视频| 欧美一级黄色片| 久久精品五月天| 毛片网站在线| 日韩AV手机在线观看| 国内精品卡一卡二卡三| 综合欧美国产视频二区| 成人网站欧美| 波多野结衣网址| 午夜爱爱爱| 3D动漫精品啪啪一区二区下载 | 99精品视频免费在线观看| 亚洲熟女一区| 一级片在线播放| 天堂a在线8| 狠狠婷婷| 国产精品无码毛片| 久久黄色视频免费观看| 人人爱人人草| 日韩不卡av| 翔田AV无码秘三区| 91香蕉在线观看视频在线播放| 噜噜噜在线视频| 成人操B视频| aaa精品| 国产黄片免费在线观看| 欧美精品久久久久久久久爆乳| 牛牛精品一区二区AV| 99久久精品国产一区二区三区| 无码高潮| 亚洲永久天堂| 26∪u∪成人网站| 天天爽天天爽夜夜爽| 26uuu亚洲| 国产一级片| 亚洲自拍中文字幕| 玖玖成人| 日本国产在线视频| 日韩午夜精品| 国产熟女自拍| 亚洲无码在线播放| 欧美一区二区三区成人| 无码人妻精品一区二区三千菊电影| 日韩一级黄片| 国产A级视频| 婷婷五月丁香五月| 黄色动漫在线免费观看| 国产精品无码一区二区在线欢| 国产综合无码| 大香蕉在线精品视频| 国产精品v欧美精品v日韩精品| 成人亚洲AV日韩AV无码| 成人黄色在线观看视频| 日韩性爱网站| 日本精品人妻| 亚洲成人怡红院| 婷婷综合五月| 91精品国产综合久久久久久久| 免费无码高清视频| 熟女人妻一区二区| 国产一级a毛一级a爰片| 大香蕉这里只有精品| 97人妻精品黄网站| 欧美日韩东京热| 午夜无码福利视频| 日韩高清无码一区二区| 熟女人妻在线| 久久嫩草精品久久久久精| 午夜蜜桃人妻一区二区| 日韩成人性爱网站| 伊人大香蕉在线观看| 久热免费| 一二三区| 久久五月天婷婷| 东方AV在| 日韩人妻午夜| 99久久久久久久| 亚洲黄色视频在线观看网站| 久热免费视频| 久久XXX| 国产波霸爆乳一区二区| 水果派AV解说| 99亚洲视频| 人人摸人人操人人爱| av高清无码| 欧美五月激情| 搡BBB搡BBBB搡BBBB'| 99re99| 日本親子亂子倫XXXX50路| 亚洲高清无码视频在线播放| 亚洲无码在线观看视频| 在线视频免费观看| 亚洲三级无码在线| 91丨九色丨蝌蚪丨肥女| 久久久久综合| 亚洲黄色毛片| 五月丁香天堂| 成人网在线观看| 成人无码交配视频国产网站| 三级av在线观看| 亚洲去干网| 爱爱视频免费看| 一级黄色电影免费观看| 影音先锋三级资源| 91无码一区二区三区在线| 日韩免费高清视频| 婷婷激情av| 国产美女免费视频| 无套进入无套内谢| 色欲av在线| 一区二区视频在线| 粉嫩av在线| 爱爱天堂| 短发妹子双人啪啪秀| A片在线视频| 黄色视频在线观看免费网站| 色欲AV秘无码一区二区三区| 中文字幕一区二区蜜桃| 五月天丁香社区| 日韩一卡二卡| 男女无套在线观看免费| 双腿张开被9个男人调教| 少妇在厨房| 丁香久久| 北条麻妃网址| 亚洲40p| 欧美AⅤ视频| 最新中文字幕无码| 99电影网手机在线观看| 唐山熟女工棚嗷嗷叫| 亚洲精品不卡| 久久无码专区| 久久久久久久久久久亚洲| 国精产品秘一区二区| 成人午夜毛片| 日本有码在线| 国产3p露脸普通话对白| 极品美女扒开粉嫩小泬高潮一| 午夜无码精品一区二区三区99午| 亚l洲视频在线观看| 免费一级网站| 久久黄色A片| 欧洲精品在线观看| 狠狠草狠狠干| 91AV免费在线观看| 精品一区二区三区四区五区六区七区八区九区 | 精品国产自| 欧美A∨| 亚洲欧美日韩一区二区| 91超碰久久在线| 91原创国产内射| 国产成人内射| 国产狂喷水潮免费网站www| 毛片一区二区三区| 黑人Av| 久草综合视频| www.17c嫩嫩草色蜜桃网站| 免费AV毛片| 成人爽爽视频| 青青草伊人大香蕉| 久视频在线观看| 五香丁香天堂网| 特级特黄A级高潮播放| 女人自慰网站在线观看| 在线看片a| 久久久精品人妻| 欧美另类激情| 国产XXXXX| 国产熟妇婬乱A片免费看牛牛| 无码人妻精品一区二区三区蜜臀百度| 无码在线观看免费视频| 亚洲男人天堂AV| 日韩精品人妻中文字幕有| 国产A毛片| 国产欧美在线免费观看| 成人久操| 国产精品午夜在线观看| 一本色道精品久久一区二区三区 | 日韩午夜| 精品九九九九| 在线永久看片免费的视频| 91免费国产视频| 麻豆国产一区二区三区四区| 韩国无码专区| 天天插夜夜操| 国产欧美日本| 亚洲A片在线观看| 无码人妻一区二区三区线花季传件| 高清国产mv在线观看| 欧美日韩国产高清| 无码人妻丰满熟妇| 国精品91无码一区二区三区在线 | 天天色区| 噜噜色av| 黄色激情av| 悠悠色导航| 骚骚肥肥一区二区三区| 美女黄视频网站| 激情色色| 亚洲无码AV一区二区| 六月婷婷网| 亚洲日韩视频在线播放| 美女操逼网站| 精品人妻一区二区蜜桃视频| 日本精品在线视频| 婷婷AV在线| 一级A片亲子乱| 蜜桃视频一区二区| 一区二区三区四区久久| 18禁91| 亚洲综合网站| 亚洲性爱AV网站| 欧美成人中文字幕| 在线中文AV| 亚洲AV秘无码不卡在线观看| 天堂a√在线8| 天天干国产| 一道本av| 天天操网站| 三级网站在线| 国外亚洲成AV人片在线观看| 超碰最新在线观看| av天堂资源在线| 日韩色情在线| 黄色电影网站在线观看| 色五月天婷婷| 激情婷婷五月| 详情:绿帽夫妻多人运动开淫啪-91n| 少妇白浆| 精品狼友| 亚洲在线中文| 99热5| 久久久久久亚洲AV无码专区| 婷婷久久综合久色| 肥臀AV在线| 亚洲jiZZjiZZ日本少妇| 熟女熟妇人妻一区二区三区| av777777| 夜色福利视频| 操逼视频大全| 影音先锋av色| 免费高清无码视频在线观看| 精品无码一区二区三区蜜桃李宗瑞| 黄色电影一级片| 国产一区二| 日韩人妻丰满无码区A片| 91人妻一区| 久久久久久少妇| 男人天堂久久| 国产三级电影在线观看| 五月天激情网站| 中文原创麻豆传媒md0052| 国产系列第一页| 日本视频一区二区| 777久久久| 99电影网手机在线观看| 午夜福利免费在线观看| www.91熊猫成人网| 女人18片毛片60分钟黃菲菲| 中文字幕无码在线视频| 青草五月天| 艹美女视频| 亚洲69p| 国产AV一级| 亚洲国产黄片| 国产一级a免一级a免费| 亚洲成人五月天| 亚洲视频一区二区| 亚洲精品一区中文字幕乱码| 一级二级三级毛片| 91免费高清视频| 17.3c一起起草| 人人爽爽人人| h片在线免费观看视频| 欧美性爱-熊猫成人网| 亚洲www| PORNY九色视频9l自拍| 天天插天天日| 丁香五月欧美| 97福利导航| 国产AV无| 欧美成人无码A片免费| 婷婷开心色四房播播免费| 青青久视频| 国产日韩欧美综合在线| 欧美精品久久久久久久多人混战| 99热在线中文字幕| 在线观看老湿视频福利| 亚洲无码免费在线| 夜夜狠狠躁日日| 精品黄色电影| 自拍av在线| 香蕉漫画在线观看18| 美女性爱视频网站| 欧美一级在线视频| 美女av日逼| 午夜天堂在线| 黄色成人网站免费在线观看| 色色色色色色网站| 日韩成人av在线| 三级a片| 欧美视频在线免费| 免费视频A| 久久久网| 999热这里只有精品| 黄色在线免费观看网站| 久久9热| 狠狠色狠狠撸| 中国老女人操逼视频| 无码三级在线免费观看| 国产视频入口| 欧美老妇操逼| 夜夜天天人人| 99视频在线看| 日韩一级一级一级| 欧美日韩中文字幕在线视频 | 18久久| av福利电影在线| 国产成人影视在线观看| 成人性生活免费视频| 九九美女视频| 人人爽人人| 伊人久久AV诱惑悠悠| 波多野结衣无码在线视频| 国产AV天堂| 黄色三级A片| 亚洲免费黄色| 99精品一区二区| 国产色色色色| 日韩AV性爱| 五月丁香婷婷综合网| 无码人妻日韩精品一区二区三| 99热免费精品| 中文字幕欧美日韩| 在线三级av| 国产色情网站| 热久久在线| 欧美成人手机在线| 天堂网中文在线| 久久久久久久久国产精品| 七十路の高齢熟妇无码| 国产成人69免费看| 亚洲av电影网| 国产第五页| 大香蕉一级片| 中文字幕成人免费视频| 欧美一级在线视频| 五月婷婷日韩| 京熱大亂交无碼大亂交| 亚洲视频日韩在线观看| 91九色网| 天天干天天日天天操| 天天爽日日澡| 欧美成人网站在线观看| 男人插女人网站| 日本一区二区三区免费视频| 日韩一级在线免费观看| 中文字幕在线观看免费高清完整版在线观看 | 中文字幕免费中文| 超碰人人91| 亚洲人操逼| 久久久久一区| 日韩毛片| 蜜桃视频在线观看视频| 高清无码免费| 亚洲日韩三级片| 亚洲性爱工厂| 亚洲在线大香蕉| 天天噜噜色| 国产色视频一区二区三区QQ号| 亚洲va在线∨a天堂va欧美va| 日本A在线观看| 污污污污污www网站免费民国| 中文字幕在线视频免费观看| 国产美女18毛片水真多| 91成人一区| 三级毛片网站| 国产女人18毛片水真多18精品| 亚洲精品白浆高清久久久久久 | 精品人妻一区二区免费蜜桃| 黄色一级A片| 人妻无码一区二区| 欧美在线观看一区二区| 丁香五月色| 日韩无码电影| 亚洲天堂在线播放| 超碰97在线免费观看| www.91超碰在线| 夜夜骑夜夜操| 黄色精品网站| 国产精品毛片一区视频播| 美女91视频| 一级片免费观看视频| 青青草国产| 日本久久精品18| 免费视频一二区| 国产精品久久久久野外| 天天干在线观看| 69视频在线观看免费| 天天干天天看| 国产免费无码视频| 日本色情网| 欧美黄色性爱视频| 欧美一级欧美三级在线观看| 五月天婷婷色播| 亚洲黄片免费观看| 成人免费视频国产在线观看| 思思操在线视频| 51成人网站免费| 天天日夜夜草| 肏屄综合网| AⅤ中文字幕在线免费观看| 人人看人人草| 一级黄色生活片| 欧美成人aaa| 亚洲精品免费视频| 欧美久久性爱| 欧美一级性爱在线观看| 亚洲色情网站| 欧美特黄AAAAAAAAA片| 美女A级毛片| 吴梦梦一区二区三区| 激情网站在线观看| 最近中文字幕在线中文字幕7 | 亚洲伊人综合| 嗯啊在线视频| 国产熟妇码AV| 白嫩外女BBWBBWBBW| 国产AV无| 亚洲高清毛片一区二区| 亚洲天堂AB| 91婷婷五月天| 日韩精品在线免费| 日韩无码系列| 国产欧美激情| 小h片在线观看| 美女久久| 五月丁香电影| 欧美性爱第四页| 黄网国产手机在线观看| 99久视频| 激情综合久久| 久久久久黄片| 欧美怕怕| 欧美三级在线| 高清无码免费观看| 3344在线观看免费下载视频| 久久久久久久久久成人| 无码婬片A片AAA毛片艳谭| 91性爱视频| 九哥操逼视频| 91麻豆精品91久久久ios版| 色婷婷久综合久久一本国产AV | 日韩精品一二区| 手机在线毛片| 欧洲三级片网站| 免费成人黄色| 欧美亚洲激情| 91免费成人电影| 亚洲第一中文字幕| 五月天狠狠| 色av影音先锋无吗一区| h片在线播放| 精品婷婷| 国产区AV| 蜜臀久久久| 日中国老太太B| av老鸭窝| 五月天丁香婷婷视频| 人妻japanesewoman| 青青青在线视频| 成人三级在线观看| 亚洲综合在线网| 亚洲成色A片77777在线小说| 日本黄色视频在线免费观看| 人妻熟女88AⅤ| 亚洲天堂AV2025| 亚洲国产一区二区三区四区| av黄色| 操中国老女人| 翔田千里一区二区| 日本熟妇一区二区三区| 青青草原网址| 色噜噜狠狠一区二区三区牛牛影视| 国内自拍视频网| 91高潮久久久久久久| 欧美射图| 人妻无码在线观看| 国产精品成人国产乱| 丝袜制服中文字幕无码专区| 大香蕉伊人在线视频| 农村A片婬片AAA毛片| 免费看一级一级人妻片| 大香蕉网伊人| 成人精品久久| 国产区欧美去区在线| 操逼逼网站| 国产九九九九九九| 一区二区三级片| 黄色福利视频在线观看| 一区二区三区在线视频观看| 四虎成人精品永久免费AV九九| 玖玖国产精品| 91色人妻| 东京热av一区二区| 97在线免费| 亚洲精品色婷婷| 大学生18一19GAY169| 思思精品视频| 蜜臀av一区| 国产成人69免费看| 黄色片亚洲| 黄色视频在线观看| 91无码人妻东京热精品一区| 日本中文字幕在线免费观看| 亚洲黄v| 亚洲免费小黄片| 日本啪啪网站| 黄在线免费观看| 迷情校园综合| 国产嫩苞又嫩又紧AV在线| 亚洲中文字幕观看| 青青操逼网| 亚洲日逼视频|