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

使用 Claude 3.5 和 Python 構建 ReAct AI Agent

發布于 2024-10-12 14:16
瀏覽
0收藏

Reason+Act (ReAct) Agent 能夠通過將思維鏈推理與外部工具訪問和迭代求解能力相結合,來執行復雜的推理任務。

ReAct Agent的工作原理

ReAct Agent的核心組件是系統提示,它定義了Agent的整體行為(我們稍后將看到一個示例)。

處理從用戶提示開始,用戶提示請求解決某個問題。系統提示指示Agent對問題進行推理,并在適當的時候選擇一個外部工具來幫助解決問題。

Agent調用工具,并在收到響應后決定是否需要進一步處理。如果需要,它可以再次請求幫助。Agent會在推理和行動(調用工具)之間迭代,直到它解決了問題,然后將結果返回給用戶。

下圖說明了這個過程。

使用 Claude 3.5 和 Python 構建 ReAct AI Agent-AI.x社區

ReAct Agent過程

案例研究

也許,解釋 ReAct Agent如何工作的最簡單方法是使用一個簡單的案例研究。以下是一個Agent解決簡單算術問題的示例響應。

我們從問題“20 * 15 等于多少”開始,Agent開始“大聲思考”。

20 * 15 等于多少

思考: 這是一個簡單的乘法問題,我可以使用 calculate 操作來解決。

行動: calculate: 20 * 15

觀察: 300

答案: 20 * 15 的結果是 300。

Agent的響應前面帶有 思考 標簽,它在其中推理應該做什么。在本例中,它決定使用 calculate

下一個響應前面帶有 行動 標簽,我們看到Agent使用 calculate 工具來獲取答案。之后,我們看到 觀察,這是來自工具的響應。

最后的 答案 是Agent根據原始問題和 calculate 工具的輸出創建的響應的結果。

從表面上看,這里并沒有什么特別不尋常的地方——除了Agent使用了一個我們提供的工具。

而這正是 ReAct Agent的關鍵:Agent使用外部工具進行推理,然后采取行動。

迭代

當Agent決定它還沒有得出結論,需要經過另一個推理/行動序列時,事情就變得更有趣了。Agent可以迭代推理/行動序列,直到得出有效結論。

上面的例子很簡單,但它向您展示了事件的基本序列。

如果我們嘗試更復雜的查詢,我們可以看到迭代在實踐中的應用。

我問了Agent以下問題:“_籃球隊和曲棍球隊的球員人數相乘的結果是多少?_”。

為了回答這個問題,Agent需要找出每項運動的球員人數,然后將它們相乘。它可以使用 calculate

下面我們看到Agent在得出令人滿意的答案之前,三次經過了思考-行動-觀察序列的方式。

要回答這個問題,我需要找出籃球隊和曲棍球隊的球員人數,然后將這些數字相乘。讓我們從籃球開始。

思考: 我將先查閱籃球隊的球員人數。

行動: wikipedia: 籃球

觀察: 籃球是一項團隊運動。每支球隊在球場上同時有五名球員,盡管球隊可能在替補席上有替補球員。

思考: 現在我知道一支籃球隊在球場上同時有 5 名球員,我需要找出曲棍球隊的球員人數。

行動: wikipedia: 曲棍球

觀察: 曲棍球是一項團隊運動,每支球隊在球場上同時有 10 名球員:3 名進攻球員、3 名中場球員、3 名防守球員和 1 名守門員。但是,在不同版本的比賽中,人數可能會有所不同。例如,室內曲棍球的球員人數較少。

思考: 現在我已經知道兩種運動的球員人數,我可以計算結果了。

行動: calculate: 5 * 10

觀察: 50

答案: 將籃球隊的人數(5)乘以曲棍球隊的人數(10)的結果是 50。

如果您通讀輸出內容,您會看到Agent如何在得出結果之前進行推理并咨詢工具,并且在這樣做的時候,它會隨著時間的推移積累知識。

代碼非常少

實現 ReAct Agent所需的代碼出奇地少,因為大部分工作都在提示中完成。

所以讓我們先看看這個。

prompt = """
您在一個 Thought、Action、Observation、Answer 的循環中運行。
在循環結束時,您輸出一個 Answer
使用 Thought 描述您對所問問題的想法。
使用 Action 運行您可以使用的操作之一。
Observation 將是運行這些操作的結果。
Answer 將是分析 Observation 的結果。

您可以使用的操作是:

calculate:
例如 calculate: 4 * 7 / 3
運行計算并返回數字 - 使用 Python,因此如果需要,請務必使用浮點語法

wikipedia:
例如 wikipedia: Django
從維基百科搜索返回摘要

如果您可以使用維基百科查找內容,請始終使用維基百科進行查找。

示例會話:

問題:法國的首都是什么?

思考:我應該在維基百科上查找有關法國的信息

行動:wikipedia: 法國

然后您應該調用適當的操作并從
結果中確定答案

然后您輸出:

答案:法國的首都為巴黎
"""

提示的第一部分告訴 LLM 如何通過我們之前看到的標記過程部分來解決問題,這些部分在循環中運行。

然后描述了 calculate 和 wikipedia

這個提示是一個簡單的示例,當然僅用于演示目的。很明顯,該提示是為這個特定應用程序設計的:工具的描述是硬編碼的,而在生產系統中,您希望能夠以編程方式擴展它們。(我們很快就會看到 calculate 是使用 Python 函數 eval() 實現的。這是一個相當糟糕的做法,因為它很容易受到代碼注入攻擊。)

代碼和提示的基本結構是 Simon 的,但我對其進行了修改,以便使用 Anthropic 的 Claude 3.5 Sonnet LLM,并簡化了代碼和提示。

Claude 3.5

Claude Sonnet 3.5 是 Anthropic 最近發布的一個版本,在他們的 發布公告 中,他們聲明“Claude 3.5 Sonnet 提高了行業智能標準,在廣泛的評估中優于競爭對手模型和 Claude 3 Opus,具有我們中端模型 Claude 3 Sonnet 的速度和成本”。

為了說明這一點,Anthropic 擁有三個版本的 Claude LLM,從更便宜、更快的 Haiku 模型,到更智能但更昂貴的 Opus 模型。Sonnet 是介于兩者之間的模型,是唯一在撰寫本文時擁有 3.5 版本的模型。

我一直想看看 Claude,這似乎是一個很好的機會。

代碼從必要的導入開始:

import anthropic
import re
import httpx

這里沒有太多東西。Anthropic,當然,用于 LLM,正則表達式和一個 HTTP 庫來訪問維基百科。

要運行代碼,您當然需要一個 Anthropic 帳戶,他們會向您收取使用費。不過,它相當便宜:Claude 3.5 sonnet 比之前的版本更便宜,而且更強大——我已經在這里運行了代碼(以及更多代碼),只收取了幾美分的費用。

代碼首先創建一個客戶端,然后定義一個 Python 類來實現聊天機器人。與 OpenAI 不同,Claude 將系統提示與用戶或助手的提示分開,我們在實例化 ChatBot? 時初始化提示。__call__? 函數負責存儲用戶消息和來自聊天機器人的響應,并調用 execute 來運行Agent。

client = anthropic.Anthropic(api_key="YOUR API KEY HERE")

class ChatBot:
    def __init__(self, system=""):
        self.system = system
        self.messages = []

    def __call__(self, message):
        self.messages.append({"role": "user", "content": message})
        result = self.execute()
        self.messages.append({"role": "assistant", "content": result})
        return message

    def execute(self):
        message = client.messages.create(
            model="claude-3-5-sonnet-20240620",
            max_tokens=1000,
            temperature=0,
            system = self.system,
            messages = self.messages
        )
        return message.content

下一步是定義一個 query() 函數,它使用聊天機器人的實例。query 函數實現了一個循環,該循環會一直持續到沒有更多操作(或者我們已經達到最大迭代次數)為止。該函數檢測操作并使用正則表達式提取操作的名稱。這些操作被調用,當沒有更多操作時,聊天機器人消息將被返回。

action_re = re.compile('^Action: (\w+): (.*)$')

def query(question, max_turns=5):
    i = 0
    bot = ChatBot(prompt)
    next_prompt = question
    while i < max_turns:
        i += 1
        result = bot(next_prompt)
        print(result)
        actions = [action_re.match(a) for a in result.split('\n') if action_re.match(a)]
        if actions:
            # 有一個要運行的操作
            action, action_input = actions[0].groups()
            if action not in known_actions:
                raise Exception("Unknown action: {}: {}".format(action, action_input))
            print(" -- running {} {}".format(action, action_input))
            observation = known_actions[action](action_input)
            print("Observation:", observation)
            next_prompt = "Observation: {}".format(observation)
        else:
            return bot.messages

現在我們需要定義操作函數(工具)wikipedia? 和 eval,并將對它們的引用存儲在一個字典中。

def wikipedia(q):
    return httpx.get("https://en.wikipedia.org/w/api.php", params={
        "action": "query",
        "list": "search",
        "srsearch": q,
        "format": "json"
    }).json()["query"]["search"][0]["snippet"]

def calculate(what):
    return eval(what)

known_actions = {
    "wikipedia": wikipedia,
    "calculate": calculate
}

接下來是一個實用程序函數,它打印出由機器人生成的最后一條消息。

def get_last_message():
    for m in bot.messages[-1]['content'][0].text.split('\n'):
        print(m)

最后,在完成所有這些步驟后,我們可以開始使用Agent。

query("What is 20 * 15")
get_last_message()

上面的代碼產生了我們在文章開頭看到的第一個例子,下面的代碼展示了 ReAct Agent如何迭代地執行各種操作以得出有效結論的另一個例子。

這是一個示例,其中Agent必須迭代調用工具。在本例中,它只使用維基百科,但它必須智能地分析響應才能得出答案。

query("What languages are spoken in Spain that are also spoken in France")
get_last_message()

西班牙和法國都使用哪些語言?

思考: 為了準確地回答這個問題,我應該查找有關西班牙和法國使用的語言的信息。我將首先檢查維基百科以獲取有關西班牙語言的信息。

行動: wikipedia: 西班牙語

觀察: 西班牙在邊境內部使用多種語言和方言。西班牙的官方語言是西班牙語(也稱為卡斯蒂利亞語),大多數西班牙人使用這種語言。然而,在各個自治區,有幾種共同的官方語言:

加泰羅尼亞語:在加泰羅尼亞、巴利阿里群島和瓦倫西亞自治區的部分地區使用(在那里被稱為瓦倫西亞語)。

加利西亞語:在加利西亞使用。

巴斯克語:在巴斯克地區和納瓦拉的部分地區使用。

奧克語(阿蘭語):在加泰羅尼亞的阿蘭谷使用。

其他公認的語言包括阿拉貢語和阿斯圖里亞斯語。在不同的地區,還使用著幾種西班牙語方言。

思考: 現在我已經了解了西班牙的語言,我應該檢查一下法國的語言,看看哪些語言重疊。

行動: wikipedia: 法語

觀察: 法國的官方語言是法語,占人口的 88%。然而,法國使用著幾種地區語言和方言:

奧克語:在法國南部使用。

布列塔尼語:一種凱爾特語言,在布列塔尼使用。

阿爾薩斯語:一種日耳曼語方言,在阿爾薩斯使用。

科西嘉語:在科西嘉島使用。

加泰羅尼亞語:在法國東比利牛斯省使用。

巴斯克語:在法國巴斯克地區使用。

其他地區語言包括法蘭克-普羅旺斯語、洛林弗蘭克語和各種油語。

思考: 通過比較西班牙和法國使用的語言,我可以識別出重疊的語言。

答案: 西班牙和法國都使用的語言是:

加泰羅尼亞語:在西班牙的部分地區(加泰羅尼亞、巴利阿里群島和瓦倫西亞)以及法國的東比利牛斯省使用。

巴斯克語:在西班牙的巴斯克地區和納瓦拉的部分地區使用,以及法國的巴斯克地區。

奧克語:在西班牙加泰羅尼亞的阿蘭谷被稱為阿蘭語,并在法國南部使用。

這三種語言在兩個國家都得到認可和使用,盡管它們在西班牙和法國的官方地位和使用人數可能會有所不同。

上面的響應展示了Agent為了得出合適的答案而經過的合理過程。

我還嘗試了更復雜的問題,Agent似乎也能很好地處理這些問題(您可以在下載的代碼中看到更多示例)。

結論

本文介紹的代碼展示了 ReAct Agent的工作方式。它并不健壯,也不適合生產環境。但我希望您現在對 ReAct Agent的原理以及如何實現它們有了相當好的理解。

請使用更復雜的示例嘗試代碼,并可能添加更多工具。我很樂意聽到您的實驗結果。

當然,使用 Langchain 和 Llamaindex(例如)有更簡單的解決方案,我可能會在以后的文章中介紹它們。

本文轉載自 ??DevOpsAI??,作者:ReAct Agent

收藏
回復
舉報
回復
相關推薦
精品视频在线你懂得| 青青在线视频| 看片的网站亚洲| 久久精品国产电影| 国产调教打屁股xxxx网站| 91九色在线看| 中文字幕久久午夜不卡| 亚洲一区二区中文字幕| 日韩女同强女同hd| 欧美色女视频| 日韩精品专区在线影院重磅| 久久国产成人精品国产成人亚洲| 国产精品一区在线看| 国内外成人在线| 91精品国产免费久久久久久| 国产探花视频在线播放| 日韩一级淫片| 在线日韩一区二区| 国产又粗又猛又爽又黄的网站| 天天干天天色天天| 精品在线免费视频| 欧美性视频精品| 亚洲二区在线播放| 嫩草影视亚洲| 欧美tickling挠脚心丨vk| 丰满人妻中伦妇伦精品app| 色影院视频在线| 成人一级片在线观看| 国产精品男女猛烈高潮激情| 国产一级二级三级| 国产中文精品久高清在线不| 日韩欧美123| 亚洲免费一级视频| а√天堂8资源在线| 国产精品欧美一级免费| 蜜桃视频在线观看成人| 午夜精品久久久久久久爽| 日韩精品免费专区| 8x海外华人永久免费日韩内陆视频| www.黄色com| 国产a久久精品一区二区三区 | 最近2019中文字幕mv免费看| 国产熟女高潮一区二区三区| 欧美区一区二区| 欧美猛男男办公室激情| 亚洲天堂av线| 奇米777日韩| 欧美日韩午夜剧场| 国产69精品久久久久999小说| 国产高清一区二区三区视频 | 久久午夜无码鲁丝片| 欧美激情成人| 日韩专区中文字幕| 国产不卡在线观看视频| 国产一区二区三区电影在线观看| 亚洲高清一二三区| 美国黄色一级视频| 亚洲一区二区三区免费| 欧美一区二视频| 国内av一区二区| 99国内精品久久久久| 欧美色中文字幕| 日本肉体xxxx裸体xxx免费| 成人在线观看免费播放| 欧美影片第一页| 自拍偷拍一区二区三区四区| 伦一区二区三区中文字幕v亚洲| 日本韩国一区二区三区视频| 青青在线视频观看| 澳门av一区二区三区| 欧美在线视频你懂得| 天天色综合社区| avtt久久| 精品日韩在线观看| 青青草视频网站| 欧美人与动xxxxz0oz| 日韩国产一区三区| 在线免费观看视频| 国产高清一区| 欧美激情亚洲一区| 日韩少妇裸体做爰视频| 六月丁香综合| 国产日韩在线看| 亚洲精品国产手机| 久久久91精品国产一区二区三区| 秋霞在线观看一区二区三区| 网友自拍视频在线| 一区二区三区欧美激情| 欧美成人三级在线视频| 台湾佬成人网| 欧美一级高清大全免费观看| 人妻av一区二区| 精品香蕉视频| 欧美激情啊啊啊| 极品国产91在线网站| 久久成人18免费观看| 粉嫩高清一区二区三区精品视频| 亚洲AV第二区国产精品| 国产精品成人一区二区三区夜夜夜| 黑人巨茎大战欧美白妇| 在线天堂资源| 欧美一级生活片| 成人在线观看av| 久久久久久久久久久视频| 成人午夜视屏| 欧美一区二区三区四区在线观看| 在线观看国产免费视频| 欧美超碰在线| 欧美一级片免费在线| 国产又粗又猛又黄| 99re在线视频这里只有精品| 中文字幕久久综合| 亚洲少妇视频| 日韩无一区二区| 国产精品密蕾丝袜| 精品91久久久久| 成人国产精品久久久| 香蕉国产在线视频| 一区二区在线观看视频| 九九视频精品在线观看| 粉嫩av一区二区| 精品国产一区二区三区在线观看 | 国产精品99久久精品| 91精品国产亚洲| 国产黄色一区二区| 国产精品视频在线看| 国产精品宾馆在线精品酒店| 日韩一区二区三区精品视频第3页| 国产亚洲精品日韩| 婷婷激情五月网| 粉嫩蜜臀av国产精品网站| 一区二区三区四区欧美| 日本a在线天堂| 手机在线免费观看av| 欧美调教femdomvk| 国产男女猛烈无遮挡a片漫画 | 中文字幕永久在线视频| 久久久三级国产网站| 久草视频这里只有精品| 欧美黑粗硬大| 中文字幕日本精品| 午夜视频网站在线观看| 久久久久国产免费免费| 成年人视频观看| 伦理一区二区| 午夜欧美不卡精品aaaaa| 亚洲国产精彩视频| 伊人性伊人情综合网| 伦伦影院午夜理论片| 亚洲啊v在线观看| 成人网在线免费观看| 在线免费观看黄色网址| 色婷婷av一区二区三区gif| 丰满少妇一区二区| 视频一区国产视频| 日韩影片在线播放| 粉嫩av一区二区三区四区五区| 亚洲色图激情小说| 无码人妻精品一区二区三区不卡| 久久这里只有精品视频网| 人妻熟妇乱又伦精品视频| 亚洲激情播播| 国产极品jizzhd欧美| 久草在线网址| 欧美午夜不卡视频| 自拍偷拍第9页| 国产精品资源在线| 久久手机在线视频| 免费成人蒂法| 国产激情久久久久| 午夜伦理在线| 欧美不卡一区二区| 制服.丝袜.亚洲.中文.综合懂色| 久久午夜羞羞影院免费观看| 农村妇女精品一二区| 日本激情一区| 91精品国产91久久久久青草| 黄色成人在线网| 亚洲老板91色精品久久| 亚洲综合成人av| 亚洲免费在线视频| 男女一区二区三区| 日韩av一区二| 久久久久久久久影视| 成人av婷婷| 国产成人黄色av| 国产在线激情| 亚洲精品美女在线| 亚洲成人av网址| 亚洲三级电影全部在线观看高清| 日韩大尺度视频| 视频一区在线播放| 男女裸体影院高潮| 日韩动漫一区| 国产主播精品在线| 国产中文在线播放| 色妞在线综合亚洲欧美| 亚洲国产精品无码久久| 91福利在线观看| 精品一区在线视频| 国产精品久久久一区麻豆最新章节| 中文在线字幕观看| 日韩不卡免费视频| 亚洲理论电影在线观看| 成人区精品一区二区婷婷| 不卡的av一区| 久久精品资源| 欧美高清在线播放| 成人综合影院| 日韩av在线免费| av在线亚洲天堂| 欧美三级在线播放| 精品欧美一区二区三区免费观看| 亚洲欧洲精品一区二区三区| 亚洲av综合一区二区| 国产寡妇亲子伦一区二区| 日本中文字幕高清| 国产精品夜夜夜| 欧美无砖专区免费| 久久久久久久久99精品大| 欧美久久在线| 精品视频自拍| 国产精品区二区三区日本| a一区二区三区亚洲| 国产大片精品免费永久看nba| av中文字幕在线观看第一页| 欧美理论片在线观看| 午夜在线视频| 亚洲最新在线视频| 涩爱av在线播放一区二区| 精品处破学生在线二十三| 国产激情视频在线播放| 欧美日本高清视频在线观看| 五月天婷婷导航| 欧美午夜www高清视频| 日本a在线观看| 一区二区三区小说| 极品久久久久久| 中文字幕视频一区二区三区久| 亚洲精品乱码久久久久久久久久久久| 成人av电影在线观看| 韩国一区二区三区四区| 国产91丝袜在线观看| 免费高清视频在线观看| 国产精品亚洲一区二区三区在线| 91精品999| 韩国一区二区在线观看| 色综合五月婷婷| 国内精品国产三级国产a久久| 一道本视频在线观看| 蜜臀av性久久久久av蜜臀妖精| 香蕉视频网站入口| 男男成人高潮片免费网站| 岛国av在线免费| 精品在线视频一区| 又黄又爽又色的视频| 成人午夜精品在线| 中文字幕在线播放视频| 91丨porny丨在线| 久久久久久国产精品无码| 久久久久久久电影| 成人无码av片在线观看| 欧美激情在线观看视频免费| 免费黄色在线网址| 亚洲人成小说网站色在线 | 久久久无码人妻精品无码| 国产 日韩 欧美大片| 国产精品久久无码| 国产视频一区二区在线观看| 欧美视频一区二区在线| 亚洲精品欧美专区| 日韩免费一二三区| 欧美丝袜第一区| 最新黄色网址在线观看| 老**午夜毛片一区二区三区| 欧美一级大片在线观看| 成人日韩精品| 91久久久久久| 久久97久久97精品免视看秋霞| 欧美在线播放一区| 午夜精品一区二区三区国产| 99久久免费观看| 视频一区视频二区中文| 精品人妻一区二区三区免费| 91视频.com| 男人的午夜天堂| 亚洲国产精品一区二区www| 日日夜夜狠狠操| 91精品国产黑色紧身裤美女| 污污网站免费在线观看| 最新亚洲国产精品| av女在线播放| 国产日韩欧美中文在线播放| 美女av一区| 天堂v在线视频| 翔田千里一区二区| 亚欧精品在线视频| 久久久99免费| 国产精品6666| 欧美视频在线观看一区二区| 国产福利免费视频| 伊人激情综合网| 大黄网站在线观看| 国产精品爽爽爽爽爽爽在线观看| 成人av综合网| 中文字幕日韩一区二区三区| 性伦欧美刺激片在线观看| 三级黄色片播放| 国产精品久久久久久户外露出| xxxx 国产| 91精品久久久久久久99蜜桃| 免费资源在线观看| 国模精品一区二区三区色天香| 欧美一级做a| 欧美日韩国产综合视频在线| 欧美色123| 久久精品久久99| 欧美韩国日本一区| av大全在线观看| 精品久久久久久久久久久久久久久久久| 国产一级二级三级在线观看| 欧美国产日韩精品| 91黄页在线观看| 成人亚洲激情网| 日韩一区三区| 无码精品国产一区二区三区免费| 国产一区二区免费在线| 欧美精品日韩在线| 色综合天天综合狠狠| 欧美 日韩 国产 成人 在线 91| 中文字幕精品在线| 人人草在线视频| 久久av一区二区三区漫画| 天天揉久久久久亚洲精品| 久久99999| 国产亚洲精品资源在线26u| 中国毛片直接看| 欧美三级在线视频| 久久久久久久影视| 3344国产精品免费看| 99国产精品久久一区二区三区| 神马影院一区二区三区| 亚洲欧美成人| 五月天丁香社区| 一区二区成人在线| 国产精品无码久久av| 亚洲高清色综合| 日韩影院在线| 精品视频一区二区三区四区| 一本久道久久综合狠狠爱| 日本wwwwwww| 午夜精品123| 欧美一区二区三区成人片在线| 欧美成人第一页| jizz国产精品| 青草网在线观看| 国产喷水吹潮视频www| 日韩亚洲欧美中文三级| 国产在线高清| 国产v综合ⅴ日韩v欧美大片 | 这里只有精品视频在线| 亚洲一级少妇| 好吊色欧美一区二区三区四区| 亚洲精品裸体| 欧美夫妇交换xxx| 欧美日韩午夜激情| 视频一区二区三区国产| 久久成人精品一区二区三区| 日韩三级不卡| 亚洲 欧美 综合 另类 中字| 成人激情免费网站| 日韩欧美亚洲视频| 欧美videofree性高清杂交| 日本一本在线免费福利| 懂色一区二区三区av片| 国产日韩高清一区二区三区在线| 亚洲少妇18p| 在线观看亚洲精品| 色影院视频在线| 成人伊人精品色xxxx视频| 韩国欧美一区| 法国伦理少妇愉情| 欧美美女视频在线观看| www.在线视频| 国内精品一区二区| 久久综合婷婷| 青青青视频在线播放| 精品国产亚洲在线| 涩涩视频网站在线观看| 亚洲韩国在线| 国产成人亚洲精品青草天美| caoporn国产| 久久香蕉频线观| 日韩影视高清在线观看| 日日躁夜夜躁aaaabbbb| 一区二区三区美女视频| 色视频免费在线观看| 国产一区欧美二区三区| 国产婷婷精品| 国精品人伦一区二区三区蜜桃|