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

大模型之Agent的初步了解 原創

發布于 2024-12-19 09:08
瀏覽
0收藏

前言

電影《鋼鐵俠》中的智能助手J.A.R.V.I.S.是一位得力的助手,它不但有強大的理解能力,而且還具備執行行動的能力。隨著技術的不斷進步,類似于賈維斯的Agent正在逐步從銀幕走進現實。本文將探討Agent的產生背景,并結合一些代碼示例理解Agent。

Agent的產生背景

一個例子

# 引入Qwen大模型
from utils import get_qwen_models

llm , chat, _ = get_qwen_models()

chat.invoke("現在幾點了?")

運行結果:

AIMessage(content='我是一個AI模型,無法實時獲取當前時間。請您查看您的設備或詢問周圍的人來獲取準確的時間。',
response_metadata={'model_name':'qwen-max',
'finish_reason':'stop',
'request_id':'cc11822c-605c-9b94-b443-85d30c9b6c0f',
'token_usage':{'input_tokens':12,'output_tokens':24,'total_tokens':36}},
id='run-bb389bae-6801-4e53-a67c-5d41a53aba8c-0')

通過與大模型的交流,我們會發現大模型無法回答實時類的問題,例如:

  • 今天是幾月幾號?
  • 北京現在的天氣是多少?
  • ......

大模型可以接受輸入,可以分析&推理、可以輸出文字\代碼\媒體。然而,它無法像人類一樣,擁有規劃思考能力、運用各種工具與物理世界互動,以及擁有人類的記憶能力。

如何給大模型配備上與物理世界互動的能力,那么會怎樣呢?

Agent的實例

定義工具函數

第一步:實現一個獲取當前時間的函數:

# 定義一個獲取當前時間的函數
def get_datetime() -> str:
    """
        跟時期或時間查詢相關的問題,請調用此方法
        注意:
            - 此方法沒有入參
            - 返參是字符串形式的日期
    """
# 調用該函數
get_datetime()

運行結果:

'2024-08-29 20:39:34'

定義Prompt模板

第二步:定義使用工具的Prompt模板

from langchain.prompts import PromptTemplate

prompt = PromptTemplate.from_template("""
Answer the following questions as best you can. You have access to the following tools:

{tools}

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

Begin!

Question: {input}
Thought:{agent_scratchpad}
""")

創建Agent并調用

第三步:創建Agent并調用Agent

from langgraph.prebuilt import create_react_agent
from langchain_core.messages importHumanMessage

agent = create_react_agent(model=chat, tools=[get_datetime])

# 調用代理
try:
    response = agent.invoke({"messages":[HumanMessage(content="現在幾點了?")]})
print(response)
exceptKeyErroras e:
print(f"KeyError: {e}")
exceptExceptionas e:
print(f"發生錯誤: {e}")

運行結果:

{'messages':
[
HumanMessage(content='現在幾點了?',id='1e807299-fb54-4fd9-ba16-71b2c45dab98'),
AIMessage(content='', additional_kwargs={
'tool_calls':[{
'function':{
'name':'get_datetime',
'arguments':'{}'},
'index':0,
'id':'call_d21bf57fd5df4314941b9e',
'type':'function'
}]},
        response_metadata={
'model_name':'qwen-max',
'finish_reason':'tool_calls',
'request_id':'95c8bf84-3105-91c7-988f-430ef4f3bb84',
'token_usage':{'input_tokens':180,'output_tokens':12,'total_tokens':192}},id='run-9b8c496f-4e2a-4698-bb6d-9fec655c3e37-0',
          tool_calls=[{
'name':'get_datetime',
'args':{},
'id':'call_d21bf57fd5df4314941b9e',
'type':'tool_call'}]),
ToolMessage(content='2024-08-30 14:52:29',
      name='get_datetime',
id='ce53e86f-252a-4c6d-b33b-1589732ebbbb',
      tool_call_id='call_d21bf57fd5df4314941b9e'),
AIMessage(content='現在的時間是14點52分29秒。',
      response_metadata={
'model_name':'qwen-max',
'finish_reason':'stop',
'request_id':'adb16577-6a8e-937d-8c13-0d6ba44e5082',
'token_usage':{'input_tokens':220,'output_tokens':17,'total_tokens':237}},
id='run-fd7835ae-b7f2-41d2-b7f9-4a33a51cd67b-0')
]
}

通過上述代碼,可以看到大模型通過Agent被賦予了調用 ??get_datetime()??? 的能力,從而可以回答實時類問題:??現在幾點了???

完整代碼如下:

import datetime
from langchain.prompts importPromptTemplate
from langgraph.prebuilt import create_react_agent
from langchain_core.messages importHumanMessage
from utils import get_qwen_models

# 連接大模型
llm , chat, _ = get_qwen_models()

# 定義調用函數
defget_datetime()->str:
"""
    獲取當前時間
    """
    now = datetime.datetime.now()
    formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")

return formatted_date

# 給大模型綁定工具
bined_chat = chat.bind_tools(tools=[get_datetime])

# 創建使用工具的prompt
prompt =PromptTemplate.from_template("""
Answer the following questions as best you can. You have access to the following tools:

{tools}

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

Begin!

Question: {input}
Thought:{agent_scratchpad}
""")

# 創建Agent
agent = create_react_agent(model=chat, tools=[get_datetime])

# 調用Agent
try:
    response = agent.invoke({"messages":[HumanMessage(content="現在幾點了?")]})
print(response)
exceptKeyErroras e:
print(f"KeyError: {e}")
exceptExceptionas e:
print(f"發生錯誤: {e}")

Agent的簡介

概念

??LLM Agent?? 是一種能產出不單是簡單文本的 AI 系統,它作為一種人工智能體,具備環境感知能力、自主理解、決策制定及執行行動能力的智能實體。簡而言之,它是構建于大模型之上的計算機程序,能夠模擬獨立思考過程,靈活調用各類工具,逐步達成預設目標的智能存在。

構成

大模型之Agent的初步了解-AI.x社區

如圖所示,在基于 LLM 的智能體中,LLM 的充當著智能體的“大腦”的角色,同時還有 3 個關鍵部分:

  • ??規劃(Planning)??: 智能體會把大型任務分解為子任務,并規劃執行任務的流程;智能體會對任務執行的過程進行思考和反思,從而決定是繼續執行任務,或判斷任務完結并終止運行。
  • ??記憶(Memory)??: 短期記憶,是指在執行任務的過程中的上下文,會在子任務的執行過程產生和暫存,在任務完結后被清空。長期記憶是長時間保留的信息,一般是指外部知識庫,通常用向量數據庫來存儲和檢索。
  • ??工具使用(Tool use)??: 為智能體配備工具 API,比如:計算器、搜索工具、代碼執行器、數據庫查詢工具等。有了這些工具 API,智能體就可以是物理世界交互,解決實際的問題。

Agent的一些示例

示例1:數據庫查詢工具

第一步:使用已封裝好的 ??utils?? 連接大模型

# 連接大模型
from utils import get_qwen_models

llm, chat, embed = get_qwen_models()

第二步:連接數據庫

# 連接數據庫
from langchain_community.utilities import SQLDatabase
db = SQLDatabase.from_uri("sqlite:///博金杯比賽數據.db")

數據庫可以從魔塔社區上拉取到。

第三步:初始化SQL工具包

from langchain_community.agent_toolkits import SQLDatabaseToolkit

# 初始化數據庫工具包,傳入數據庫連接對象 db 和語言模型 llm
toolkit = SQLDatabaseToolkit(db=db, llm=llm)

# 從工具包中獲取可用的工具,并將其存儲在 tools 變量中
tools = toolkit.get_tools()

第四步:構建Prompt

from langchain_core.messages import SystemMessage

SQL_PREFIX = """You are an agent designed to interact with a SQL database.
Given an input question, create a syntactically correct SQLite query to run, then look at the results of the query and return the answer.
Unless the user specifies a specific number of examples they wish to obtain, always limit your query to at most 5 results.
You can order the results by a relevant column to return the most interesting examples in the database.
Never query for all the columns from a specific table, only ask for the relevant columns given the question.
You have access to tools for interacting with the database.
Only use the below tools. Only use the information returned by the below tools to construct your final answer.
You MUST double check your query before executing it. If you get an error while executing a query, rewrite the query and try again.

DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.

To start you should ALWAYS look at the tables in the database to see what you can query.
Do NOT skip this step.
Then you should query the schema of the most relevant tables."""

system_message = SystemMessage(cnotallow=SQL_PREFIX)

以上Prompt可以從https://smith.langchain.com/hub 查詢 ??langchain-ai/sql-agent-system-prompt?? 得到。

第五步:創建Agent

from langgraph.prebuilt import create_react_agent

# 創建Agent,傳入 chat、工具 tools 和 第四步的 prompt
agent_executor = create_react_agent(chat, tools, messages_modifier=system_message)

第六步:調用Agent并打印執行過程

# 查詢
example_query = "請幫我查詢出20210415日,建筑材料一級行業漲幅超過5%(不包含)的股票數量"

# 流式處理事件
events = agent_executor.stream(
    {"messages": [("user", example_query)]},
    stream_mode="values",
)

# 打印流式事件的消息
for event in events:
    event["messages"][-1].pretty_print()

執行結果:

================================ HumanMessage=================================

請幫我查詢出20210415日,建筑材料一級行業漲幅超過5%(不包含)的股票數量
==================================AiMessage==================================
ToolCalls:
  sql_db_list_tables (call_c14a5fc51d324381926311)
Call ID: call_c14a5fc51d324381926311
Args:
    tool_input:
=================================ToolMessage=================================
Name: sql_db_list_tables

A股公司行業劃分表, A股票日行情表,基金份額持有人結構,基金債券持倉明細,基金可轉債持倉明細,基金基本信息,基金日行情表,基金股票持倉明細,基金規模變動表,港股票日行情表
==================================AiMessage==================================
ToolCalls:
  sql_db_schema (call_f9acd6019db64e93a74987)
Call ID: call_f9acd6019db64e93a74987
Args:
    table_names: A股公司行業劃分表, A股票日行情表
=================================ToolMessage=================================
Name: sql_db_schema


CREATE TABLE "A股公司行業劃分表"(
"股票代碼" TEXT,
...
[(74,)]
==================================AiMessage==================================

在2021年04月15日,建筑材料一級行業漲幅超過5%(不包含)的股票數量為74只。

最終,大模型借助SQL工具,查到了結果:2021年04月15日,建筑材料一級行業漲幅超過5%(不包含)的股票數量為74只。

完整代碼:

from langchain_community.utilities importSQLDatabase
from langchain_community.agent_toolkits importSQLDatabaseToolkit
from langchain_core.messages importSystemMessage
from langgraph.prebuilt import create_react_agent
from utils import get_qwen_models

# 連接大模型
llm, chat, embed = get_qwen_models()

# 連接數據庫
db =SQLDatabase.from_uri("sqlite:///博金杯比賽數據.db")

# 初始化SQL工具包
toolkit =SQLDatabaseToolkit(db=db, llm=llm)
tools = toolkit.get_tools()

# 構建Prompt
SQL_PREFIX ="""You are an agent designed to interact with a SQL database.
Given an input question, create a syntactically correct SQLite query to run, then look at the results of the query and return the answer.
Unless the user specifies a specific number of examples they wish to obtain, always limit your query to at most 5 results.
You can order the results by a relevant column to return the most interesting examples in the database.
Never query for all the columns from a specific table, only ask for the relevant columns given the question.
You have access to tools for interacting with the database.
Only use the below tools. Only use the information returned by the below tools to construct your final answer.
You MUST double check your query before executing it. If you get an error while executing a query, rewrite the query and try again.

DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.

To start you should ALWAYS look at the tables in the database to see what you can query.
Do NOT skip this step.
Then you should query the schema of the most relevant tables."""

system_message =SystemMessage(cnotallow=SQL_PREFIX)

# 創建Agent
agent_executor = create_react_agent(chat, tools, messages_modifier=system_message)

# 查詢
example_query ="請幫我查詢出20210415日,建筑材料一級行業漲幅超過5%(不包含)的股票數量"

events = agent_executor.stream(
{"messages":[("user", example_query)]},
    stream_mode="values",
)

# 查看工具調用過程
for event in events:
    event["messages"][-1].pretty_print()

示例2:維基百科搜索工具

通過對 ??示例1?? 的分析,我們可以在Langchain官網上找到不少tools工具,接下來我們實現一個維基百科搜索工具。

第一步:安裝依賴包

pip install wikipedia

第二步:執行代碼

from langchain_community.tools importWikipediaQueryRun
from langchain_community.utilities importWikipediaAPIWrapper
from langchain_core.messages importSystemMessage
from langgraph.prebuilt import create_react_agent
from utils import get_qwen_models

# 連接大模型
llm, chat, embed = get_qwen_models()


wikipedia =WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
tools =[wikipedia]

# 構建Prompt
wiki_PREFIX ="""你是一個搜索專家,可以根據用戶提出的問題,為用戶搜索相應的內容.
你可以使用維基百科工具來搜索相關的內容。

如果搜索不到對應的內容,你可以對問題進行相關性引申3個問題,來豐富查詢過程。
搜索后的結果,請使用markdown的方式返回。
"""

system_message =SystemMessage(cnotallow=wiki_PREFIX)

# 創建Agent
agent_executor = create_react_agent(chat, tools, messages_modifier=system_message)

# 查詢
example_query ="請幫我查詢出美國林肯號航母的相關信息"

events = agent_executor.stream(
{"messages":[("user", example_query)]},
    stream_mode="values",
)

# 查看工具調用過程
for event in events:
    event["messages"][-1].pretty_print()

運行結果:

請幫我查詢出美國林肯號航母的相關信息
==================================AiMessage==================================
ToolCalls:
  wikipedia (call_78e651d21ea44eafa47741)
Call ID: call_78e651d21ea44eafa47741
Args:
    query: USS AbrahamLincoln(CVN-72)
=================================ToolMessage=================================
Name: wikipedia

Page: USS AbrahamLincoln(CVN-72)
Summary: USS AbrahamLincoln(CVN-72) is the fifth Nimitz-class aircraft carrier in the UnitedStatesNavy.She is the third Navy ship to have been named after the former PresidentAbrahamLincoln.Her home port is NAS NorthIsland,SanDiego,California; she is a member of the UnitedStatesPacificFleet.She is administratively responsible to Commander,NavalAirForcesPacific, and operationally serves as the flagship of CarrierStrikeGroup3 and host to CarrierAirWingNine.She was returned to the fleet on 12May2017, marking the successful completion of her Refueling and ComplexOverhaul(RCOH) carried out at NewportNewsShipyard.As of August10,2024, USS AbrahamLincoln and her strike group are being deployed to the MiddleEast as part of the U.S. response to the escalation of tensions between Iran and Israel.



Page: USS AbrahamLincoln
Summary:Two ships have borne the name AbrahamLincoln,in honor of the 16thPresident of the UnitedStates.

USS AbrahamLincoln(SSBN-602), a ballistic missile submarine in service from 1961 to 1981
USS AbrahamLincoln(CVN-72), an aircraft carrier commissioned in1989 and currently in service

Page:CarrierStrikeGroup9
Summary:CarrierStrikeGroup9(CSG-9 or CARSTRKGRU 9) is a U.S.Navy carrier strike group.CommanderCarrierStrikeGroup9(COMCARSTRKGRU 9 or CCSG 9) is responsible for unit-level training, integrated training, and material readiness for the ships and aviation squadrons assigned to the group.The group reports to Commander, U.S.ThirdFleet,which also supervises its pre-deployment training and certification that includes CompositeUnitTrainingExercises.
It is currently assigned to the U.S.PacificFleet.TheNimitz-class aircraft carrier USS TheodoreRoosevelt(CVN-71) is the group's current flagship. Other group units include Carrier Air Wing 11, the Ticonderoga-class cruiser USS Lake Erie (CG-70), and the Arleigh Burke-class destroyer's USS John S.McCain(DDG-56)USS Halsey(DDG-97), and the USS DanielInouye(DDG-118).
The strike group traces its history to Cruiser-DestroyerGroup3, created on 30June1973, by the re-designation of CruiserDestroyerFlotilla11.From2004, the strike group has made multiple MiddleEast deployments providing air forces over Afghanistan and Iraq, as well as conducting MaritimeSecurityOperations.The strike group received the HumanitarianServiceMedalin recognition of its disaster relief efforts inIndonesia during OperationUnifiedAssistancein2004–05.
==================================AiMessage==================================

USS亞伯拉罕·林肯號(USS AbrahamLincoln,舷號CVN-72)是美國海軍第五艘尼米茲級核動力航空母艦,也是第三艘以美國第16任總統亞伯拉罕·林肯命名的軍艦。她的母港位于加利福尼亞州圣迭戈的北島海軍航空站,隸屬于太平洋艦隊。作為航母打擊群3(CSG-3)的旗艦,她搭載了第9艦載機聯隊(CarrierAirWingNine)。林肯號在完成于紐波特紐斯船廠的燃料補給及復雜大修(RCOH)后,于2017年5月12日重新歸隊。截至2024年8月10日,亞伯拉罕·林肯號及其打擊群被部署至中東地區,作為美國對伊朗和以色列之間緊張局勢升級應對的一部分。

另外,還有兩艘以前總統亞伯拉罕·林肯命名的艦艇:
- USS亞伯拉罕·林肯號(SSBN-602),一艘1961年至1981年間在役的彈道導彈潛艇;
- USS亞伯拉罕·林肯號(CVN-72),即目前仍在服役的航空母艦。

而航母打擊群9(CSG-9)曾是亞伯拉罕·林肯號所屬的打擊群,但目前該打擊群的旗艦為另一艘尼米茲級航母USS西奧多·羅斯福號(USS TheodoreRoosevelt,CVN-71)。

內容小結

  • 大模型可以接受輸入,可以分析&推理、可以輸出文字\代碼\媒體,但是對于實時類的問題,沒有能力處理。
  • ??LLM Agent?? 是一種能產出不單是簡單文本的 AI 系統,它作為一種人工智能體,具備環境感知能力、自主理解、決策制定及執行行動能力的智能實體。
  • 創建Agent的大體步驟是:

     1. 連接大模型

     2. 定義工具函數

     3. 給大模型綁定工具

     4. 構建工具的prompt

     5. 創建Agent

     6. 調用Agent

?

本文轉載自公眾號一起AI技術 作者:熱情的Dongming

原文鏈接:??https://mp.weixin.qq.com/s/FZ-XxVBjuIgC60KpQ55l2Q??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
丁香综合av| 五月婷婷视频在线观看| 青青青伊人色综合久久| 久热精品视频在线| 女女调教被c哭捆绑喷水百合| 日本乱理伦在线| 久久一日本道色综合| 成人福利网站在线观看11| 精品少妇一二三区| 国产精品最新| 日韩视频在线观看一区二区| 日本a级片免费观看| 日本在线观看| 99久久99久久综合| 成人激情综合网| 毛片在线免费视频| 性xxxx欧美老肥妇牲乱| 国产视频精品自拍| 被黑人猛躁10次高潮视频| 男人皇宫亚洲男人2020| 一区二区三区在线观看网站| 欧美亚洲精品日韩| 黄色片一区二区三区| 奇米四色…亚洲| 97久久超碰福利国产精品…| 亚洲熟女毛茸茸| 亚洲动漫精品| 精品久久人人做人人爽| 亚洲一区日韩精品| 欧美成人ⅴideosxxxxx| 亚洲自拍另类综合| 久久久一二三四| 国产在线色视频| 不卡视频在线看| 亚洲影院高清在线| 亚洲视频久久久| 丝袜亚洲另类欧美| 8090成年在线看片午夜| 欧美日韩在线观看成人| 99久久99久久精品国产片桃花| 日韩精品在线免费观看视频| 在线观看亚洲免费视频| 欧美电影院免费观看| 欧美日韩三级一区二区| 久久久久久久少妇| 在线日韩影院| 疯狂做受xxxx欧美肥白少妇 | 九一精品国产| 亚洲激情 国产| 无码人妻精品一区二区三| 欧美视频二区欧美影视| 在线播放日韩导航| 亚洲色图偷拍视频| 9999精品| 日韩欧美亚洲另类制服综合在线| 爽爽爽在线观看| 小说区图片区亚洲| 7777精品久久久大香线蕉| 久久人人爽av| 国产精品99久久免费| 欧美精品丝袜中出| 欧美一级小视频| 成人精品视频在线观看| 7777精品伊人久久久大香线蕉完整版| 国产又大又黄又猛| 久久精品嫩草影院| 91精品国产乱码久久蜜臀| 亚洲欧美一区二区三区不卡| 三级欧美日韩| 日韩黄色av网站| 欧美日韩高清丝袜| 日韩激情图片| 色综合久久久888| 精品无码免费视频| 国产美女一区| 国产精品免费视频久久久| 91无套直看片红桃| 岛国精品在线观看| 欧美精品久久| 92国产在线视频| 亚洲三级久久久| 欧美午夜小视频| 欧美色网一区| 精品视频全国免费看| 国产在线观看中文字幕| www.国产精品一区| 亚洲日本成人女熟在线观看| 欧美福利在线视频| 国内精品久久久久久久97牛牛| 97av在线视频| 一级黄色片视频| 成人一级片网址| 欧美日韩国产精品一区二区| 免费a级毛片在线播放| 亚洲国产美女搞黄色| 成人在线激情网| 日韩精品一区国产| 亚洲欧美第一页| 日韩国产第一页| 在线亚洲免费| 91免费福利视频| 亚洲色图欧美视频| 亚洲另类在线视频| 国产v亚洲v天堂无码久久久| 国产视频一区二| 一道本无吗dⅴd在线播放一区| 九九视频免费观看| 免费成人在线网站| 久久大片网站| 国产三区视频在线观看| 一本大道久久a久久精品综合| 国产高清av片| 欧美日韩高清| 97视频在线观看成人| 国产精品毛片久久久久久久av| 91蝌蚪porny成人天涯| 国产一级黄色录像片| 嫩草伊人久久精品少妇av杨幂| 亚洲精品在线电影| 搜索黄色一级片| 日韩成人av影视| 麻豆亚洲一区| av在线加勒比| 91精品免费在线| 国产又黄又粗的视频| 亚洲一区欧美激情| 国产精品sss| av毛片在线免费看| 欧美色男人天堂| 亚洲第一成人网站| 99热这里只有精品8| 99久久精品免费看国产一区二区三区| av在线电影院| 日本大香伊一区二区三区| 久久久久麻豆v国产精华液好用吗 在线观看国产免费视频 | 加勒比一区二区| 亚洲日本免费| 99国产超薄肉色丝袜交足的后果| 日本在线免费网| 欧美人与z0zoxxxx视频| 成人在线手机视频| 日韩1区2区3区| 日本一区二区三区视频免费看| 色戒汤唯在线| 亚洲精品美女久久久久| 国产成人精品亚洲男人的天堂| 懂色av噜噜一区二区三区av| youjizz.com在线观看| 日韩一区免费| 久久99国产精品自在自在app | 高清视频一区二区| 日韩视频一二三| 日韩中文字幕一区二区高清99| 九九热这里只有精品6| www.久久伊人| 亚洲电影激情视频网站| 亚洲天堂2024| 制服诱惑一区二区| 欧美精品一区二区三区四区五区 | 年下总裁被打光屁股sp| 欧美亚韩一区| 国产精品毛片va一区二区三区| 国产精品一品| 亚洲美女免费精品视频在线观看| 伦av综合一区| 中文字幕中文字幕一区二区 | 日韩高清在线观看一区二区| 久久国产精品视频| 亚洲第一天堂在线观看| 亚洲成人av资源| 乐播av一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 最新精品视频| 成人动态视频| 国产精品9999| www.在线视频| 日韩va亚洲va欧洲va国产| 欧美人一级淫片a免费播放| 亚洲国产激情av| 奇米777在线| 国产日韩欧美三区| 西游记1978| 亚洲日本一区二区三区在线| 午夜剧场成人观在线视频免费观看| 欧洲天堂在线观看| 在线成人午夜影院| 欧美日韩综合在线观看| 国产精品国产三级国产aⅴ中文| 中国特级黄色片| 久久久久99| 欧美日韩视频免费| 精品免费av| 国产精品久久7| 亚洲一区二区三区四区| 欧美日韩国产999| porn亚洲| 亚洲韩国日本中文字幕| ,亚洲人成毛片在线播放| 亚洲国产成人va在线观看天堂| 国产高潮呻吟久久| 成人国产精品免费网站| 污污网站免费观看| 国产精品久久久久毛片大屁完整版| 亚洲精品久久区二区三区蜜桃臀| 日韩区一区二| 国产日韩欧美成人| 天天综合av| 欧美大片在线看免费观看| 丁香在线视频| 亚洲精品久久久久久久久| 国产精品综合在线| 91高清视频免费看| 成年人免费高清视频| 亚洲欧美色图小说| 少妇高潮惨叫久久久久| 久久综合色8888| 好吊色视频一区二区三区| 免费人成精品欧美精品| 爱福利视频一区二区| 欧美网站在线| 免费看av软件| 日韩伦理一区| 日韩偷拍一区二区| 九九在线高清精品视频| 国内一区二区在线视频观看| 麻豆国产一区二区三区四区| 国产精品直播网红| 国产综合色在线观看| 欧美做受高潮电影o| 不卡av免费观看| 欧美激情一级欧美精品| 国产成人高清精品| 色偷偷9999www| √天堂资源地址在线官网| 亚洲欧美激情四射在线日| 日韩一区二区三区在线观看视频| 欧美第一区第二区| 99精品视频免费看| 欧美一区二区视频网站| 91国产免费视频| 欧洲激情一区二区| 亚洲 国产 日韩 欧美| 在线观看日韩一区| 成人一级免费视频| 欧美中文字幕不卡| 亚洲中文字幕无码爆乳av| 色激情天天射综合网| 亚洲 欧美 中文字幕| 色综合久久综合网欧美综合网 | 欧美色涩在线第一页| 中文字幕免费观看视频| 欧美在线影院一区二区| 最新中文字幕在线观看视频| 欧美午夜视频网站| 伊人网站在线观看| 91精品在线麻豆| 精品国产av一区二区三区| 日韩精品资源二区在线| 人妻丰满熟妇av无码区hd| 日韩成人性视频| 黄色免费在线播放| 视频一区视频二区国产精品| 日韩成人影视| 欧美激情伊人电影| h片在线观看视频免费| 热99在线视频| 成人国产在线| 97超碰在线播放| 久久九九热re6这里有精品| 欧美日韩精品免费观看| 日韩欧美一区二区三区在线视频| 国产精品美女在线播放| 在线精品一区二区| 欧美在线观看视频网站| 黄一区二区三区| 欧美激情一区二区三区p站| 2020国产精品久久精品美国| 成年人视频软件| 亚洲网友自拍偷拍| 无码人妻丰满熟妇精品区| 欧美日韩一区二区欧美激情| 亚洲av无码国产精品永久一区| 亚洲精品91美女久久久久久久| 黄色在线观看网| 欧美理论片在线观看| 色老头在线一区二区三区| 成人激情av在线| 日韩有码中文字幕在线| 中文字幕中文字幕在线中一区高清 | 亚洲欧美激情四射在线日| 操你啦视频在线| 欧美一区深夜视频| 999色成人| 久久久久高清| 牛牛国产精品| 欧美性猛交久久久乱大交小说 | 欧美视频一二三区| 亚洲男女视频在线观看| 亚洲偷欧美偷国内偷| 最爽无遮挡行房视频在线| 日韩美女视频中文字幕| 日本在线成人| 神马影院午夜我不卡| 亚洲国产专区校园欧美| 九九久久久久久| 国产亚洲综合在线| 91在线看视频| 欧美一级片在线| 91最新在线| 日本最新高清不卡中文字幕| 在线综合色站| 中文一区一区三区免费| 三级影片在线观看欧美日韩一区二区| 巨乳女教师的诱惑| 国产精品日日摸夜夜摸av| 久久一区二区三区视频| 精品国产亚洲一区二区三区在线观看| 日韩伦理在线电影| 国产精品白丝jk喷水视频一区| 给我免费播放日韩视频| 欧美另类videosbestsex日本| 久久aⅴ乱码一区二区三区| 乱码一区二区三区| 亚洲色图制服诱惑| 在线免费a视频| 亚洲偷熟乱区亚洲香蕉av| 午夜裸体女人视频网站在线观看| 高清视频在线观看一区| 中文不卡在线| 成人黄色一级大片| 国产精品灌醉下药二区| 中文字幕永久免费视频| 一区二区av在线| 亚洲精品.com| 区一区二区三区中文字幕| 亚洲视频www| 毛茸茸多毛bbb毛多视频| 亚洲成a人v欧美综合天堂下载| 亚洲第九十九页| 欧美大尺度激情区在线播放| 日韩欧美专区| 中文字幕一区综合| 国内精品写真在线观看| 国产午夜手机精彩视频| 91精品国产综合久久福利软件| 巨大荫蒂视频欧美另类大| 亚洲精品日韩激情在线电影| 国产精品91一区二区三区| 色一情一区二区三区| 亚洲欧洲日韩女同| 国产v片在线观看| 欧美激情国产高清| 成人资源在线| 日韩精品一区二区三区久久| 久久伊99综合婷婷久久伊| 亚洲精品久久久久久久蜜桃| 中文一区二区视频| 57pao成人永久免费| 9l视频自拍9l视频自拍| 粉嫩在线一区二区三区视频| 日本亚洲欧美在线| 亚洲码在线观看| 日本成人三级电影| 亚洲视频在线二区| 国产乱子伦一区二区三区国色天香| 欧美日韩偷拍视频| 亚洲国产日韩欧美在线99| 不卡av影片| 亚洲看片网站| 国产成人av资源| 天天综合网久久综合网| 一区二区三区视频观看| 精品国模一区二区三区欧美| 搞av.com| 国产精品三级电影| 免费成人在线看| 国产成人激情视频| 欧美韩日一区| 日本少妇xxxx| 欧美日韩国产色站一区二区三区| 九七电影韩国女主播在线观看| 成人在线观看av| 久久婷婷av| 精品自拍偷拍视频| 日韩禁在线播放| 日本成人一区二区| 免费成人午夜视频| 中文字幕在线观看一区二区| 欧美一级特黄aaaaaa| 国产精品三级在线| 在线成人黄色| 日本免费网站视频| 欧美精品一区二区高清在线观看 | 欧洲美女少妇精品| 国产在线一区二区三区欧美| 美国欧美日韩国产在线播放| 久久露脸国语精品国产91| 日韩最新av在线| 妖精视频一区二区三区免费观看 | 亚洲熟妇无码久久精品|