精品欧美一区二区三区在线观看 _久久久久国色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系列天堂| 嫩草影院国产精品| 青青草原av在线| 国产色综合一区| 91成人在线看| 99re热视频| 伊人蜜桃色噜噜激情综合| 亚洲性视频网站| 欧美69精品久久久久久不卡 | 一区二区在线视频观看| 欧美性猛交xxxx富婆弯腰| 中文字幕乱码一区二区三区| 亚洲av无码一区二区二三区| 夜夜狠狠擅视频| 尤物在线精品| 久久久91精品国产一区不卡| 国产中文字幕一区二区| 国产精品久久久久久久久久久久久久久| 洋洋av久久久久久久一区| 日韩欧美三级一区二区| 日本xxxxwww| 国内精品久久久久影院色| 欧美尤物巨大精品爽| 欧美卡一卡二卡三| 欧美疯狂party性派对| 精品视频—区二区三区免费| 精产国品一区二区三区| 成人免费毛片嘿嘿连载视频…| 香蕉加勒比综合久久| 中文字幕一区二区三区在线乱码| 牛牛影视精品影视| www.性欧美| 成人免费视频网站| 国产麻豆免费观看| 美女免费视频一区二区| 国产91网红主播在线观看| 91精品国产乱码久久久张津瑜| 欧美96在线丨欧| 精品国产区一区二区三区在线观看| 精品人妻互换一区二区三区| 天天做夜夜做人人爱精品 | 啄木系列成人av电影| 精品嫩草影院久久| 中文字幕在线视频一区二区| 四虎影视国产精品| 欧美日韩免费在线视频| 网站一区二区三区| 成人国产精品| 欧美日韩在线播放一区| 亚欧美在线观看| 精品176极品一区| 欧美肥胖老妇做爰| 亚洲一区二区中文字幕在线观看| av在线成人| 3d成人动漫网站| 四川一级毛毛片| 一区二区中文字幕在线观看| 欧美v日韩v国产v| 欧美久久久久久久久久久| 成人看片爽爽爽| 亚洲精品久久久久中文字幕二区| 影音先锋黄色资源| 久久99国产成人小视频| 在线视频国产日韩| 成年人免费视频播放| 欧美 日韩 国产一区二区在线视频 | 影音先锋在线一区| 97国产suv精品一区二区62| 日韩精品无码一区二区| 老鸭窝毛片一区二区三区| 国产成人精品电影| 一区二区三区精| 国产一区二区三区久久悠悠色av| 99re视频在线播放| 午夜成人鲁丝片午夜精品| 久久免费国产精品| 一级黄色免费在线观看| 激情在线视频播放| 欧美性猛交xxxx偷拍洗澡| 亚洲激情在线观看视频| 国产精品久久久久久久久久久久久久久| 欧美不卡视频一区| 日韩在线免费观看av| 羞羞色午夜精品一区二区三区| 色综合男人天堂| www.国产一区二区| 国产专区欧美精品| 久久99精品久久久久久水蜜桃| 国产毛片av在线| 曰韩精品一区二区| 欧美黄色免费影院| 国产精品欧美一区二区三区不卡| 亚洲国产欧美一区二区丝袜黑人| 中字幕一区二区三区乱码| 欧美成人久久| 国产第一区电影| www.国产免费| 国产日韩欧美不卡| 久久久久久久久久伊人| 久久uomeier| 日韩视频在线永久播放| 乐播av一区二区三区| 欧美午夜视频| 成人h视频在线观看播放| 天天干在线观看| 最新热久久免费视频| 男人靠女人免费视频网站 | 久久久久久久高潮| 99久久99| 成人区精品一区二区不卡| 欧美性黄网官网| 在线播放第一页| 91超碰国产精品| 国产精品美腿一区在线看| 天堂网av在线播放| 亚洲精品高清视频在线观看| 亚洲精品自拍网| 中文字幕精品影院| 91av在线播放| 全部免费毛片在线播放一个| 亚洲免费伊人电影| 中文字幕线观看| 欧美精品一二| 国产99视频在线观看| 天天插天天干天天操| 一区二区视频在线| 日韩精品在线播放视频| 久久综合成人| 国产乱人伦真实精品视频| 精彩国产在线| 色哟哟一区二区| 3d动漫精品啪啪一区二区下载| 尹人成人综合网| 超碰97在线播放| 肉肉视频在线观看| 欧美videofree性高清杂交| 黑鬼狂亚洲人videos| 免播放器亚洲一区| 亚洲激情一区二区| 精品国产黄a∨片高清在线| 最近日韩中文字幕中文| 中文字幕一区2区3区| 久久久www成人免费毛片麻豆 | 久久精品一级片| 国产成人在线视频网址| 99久久久精品视频| 亚洲一区电影| 午夜精品久久久久久久男人的天堂 | 韩国成人在线| 一区二区三区日韩在线| 最好看的日本字幕mv视频大全| 久久精品亚洲精品国产欧美| 成人在线观看a| 欧美精品乱码| 91免费看片在线| 日本乱理伦在线| 亚洲黄色有码视频| 日韩在线播放中文字幕| 国产午夜三级一区二区三| 婷婷激情四射五月天| 亚洲激情久久| 国产精品播放| 亚洲天堂av在线| 一区二区三区在线播放欧美| 亚洲无码久久久久久久| 亚洲精品中文在线| 一女三黑人理论片在线| 日韩中文字幕av电影| 在线观看欧美激情| 亚洲一区二区电影| 亚洲国产精品女人| 国产高清亚洲| 久久久久久亚洲精品中文字幕| 蜜桃av中文字幕| 欧美性色19p| 啪啪一区二区三区| 国产成人亚洲精品青草天美| koreanbj精品视频一区| 波多野结衣在线播放一区| 亚洲va欧美va国产综合剧情 | 中文字幕一区二区三区在线播放 | 欧美亚洲日本网站| 成人av电影观看| 欧美一级一区二区| 一区二区三区福利视频| 亚洲欧美在线aaa| 欧美大喷水吹潮合集在线观看| 日韩精品一区第一页| a级片一区二区| 国产在线观看91一区二区三区 | 91亚洲免费视频| 亚洲一本视频| 亚洲精品日韩精品| 国产精品网址| 亚洲在线视频福利| 三上悠亚亚洲一区| 国内外成人免费激情在线视频| 国产精品二线| 日韩av网站电影| 国产三级视频在线播放| 欧美亚洲综合网| 日韩欧美一区二区一幕| 亚洲少妇30p| 黑人巨大精品欧美| 国产成人福利片| www.国产视频.com| 久久人人精品| 可以在线看的av网站| 先锋资源久久| 亚洲国产欧洲综合997久久 | 在线观看一区欧美| 香蕉久久99| 国产精品视频免费一区二区三区| 95精品视频| 国产精品久久久久久中文字| aa级大片免费在线观看| 久久99精品久久久久久琪琪| 91伦理视频在线观看| 亚洲视屏在线播放| 熟妇人妻中文av无码| 精品欧美乱码久久久久久1区2区 | 国产精品亚洲一区二区三区妖精 | 久久九九精品视频| 国产精品欧美日韩一区二区| 久草在线资源站手机版| 欧美裸身视频免费观看| 丝袜美腿美女被狂躁在线观看| 精品夜色国产国偷在线| 姝姝窝人体www聚色窝| 亚洲第一视频网站| www.国产三级| 日韩免费视频线观看| av片免费播放| 欧美一区二区在线播放| 国产精品爽爽久久久久久| 欧美日韩在线免费视频| 伊人网av在线| 精品视频免费看| 中文字幕在线播放av| 欧美日韩精品三区| 在线观看毛片视频| 欧美日韩国产另类不卡| 最新黄色网址在线观看| 欧美日韩国产首页| 国产精品国产三级国产普通话对白 | 精品国产乱子伦一区二区| 国产精品区一区| 日韩人体视频| 日产精品高清视频免费| 日本黄色精品| 在线视频欧美一区| 欧美1区2区| 日本欧美黄色片| 日韩二区三区在线观看| 日日干夜夜操s8| 国产一区三区三区| 蜜臀av粉嫩av懂色av| 99re8在线精品视频免费播放| 激情综合丁香五月| 日本一区二区视频在线观看| 亚洲天堂精品一区| 一区二区三区在线观看国产| 四虎永久在线精品| 色综合天天天天做夜夜夜夜做| 日韩免费av网站| 91精品国产福利在线观看| 日本免费网站在线观看| 亚洲日韩第一页| av网站在线免费| 2019中文字幕免费视频| 国产精品第一| 国产精品久久九九| 免费一区二区| 潘金莲一级淫片aaaaaa播放1| 精品福利电影| 15—17女人毛片| 粉嫩aⅴ一区二区三区四区五区 | 综合自拍亚洲综合图不卡区| 久久精品无码人妻| 在线视频综合导航| 国产高清不卡视频| 亚洲美女中文字幕| 成人在线视频亚洲| 国产91|九色| 欧美中文高清| 日韩免费电影一区二区| 欧美女激情福利| 黄色一级二级三级| 成人一级视频在线观看| 国产伦精品一区二区三区视频女| 一区二区三区日韩欧美| 青娱乐在线免费视频| 日韩欧美在线综合网| 国产爆初菊在线观看免费视频网站| 欧美国产日产韩国视频| 国产精品原创视频| 久久国产一区二区| 在线电影一区二区| 免费一级特黄录像| aaa亚洲精品| 久久久精品视频免费观看| 在线观看精品一区| 无码精品黑人一区二区三区 | 亚洲色图官网| caoporn国产精品免费公开| 大片网站久久| 久久久久久久久久久免费视频| 国产很黄免费观看久久| 少妇太紧太爽又黄又硬又爽小说| 午夜av一区二区三区| 国产视频一二三四区| 中文字幕日韩av| xx欧美视频| 久久久久久久久久久久久9999| 欧美精品一卡| 91pony九色| 国产精品亲子乱子伦xxxx裸| 亚洲图片在线视频| 亚洲精品美女久久久| 日韩电影免费观看| 亚洲va欧美va国产综合剧情| 色综合咪咪久久网| 天天碰免费视频| 久久久精品免费观看| 超碰超碰超碰超碰| 亚洲精品白浆高清久久久久久| 青青青草视频在线| 动漫美女被爆操久久久| 欧美激情1区2区| 成人高清在线观看视频| 中文字幕一区免费在线观看| 欧美成人一区二区视频| 国产午夜精品视频| 日韩天堂在线| 日韩国产一区久久| 日本不卡一区二区| 天堂在线中文视频| 欧美性大战久久久久久久蜜臀| 二人午夜免费观看在线视频| 国产成人精品免费视频| 国产免费av一区二区三区| 无遮挡又爽又刺激的视频| 久久久久久一级片| 探花国产精品一区二区| 在线观看国产精品日韩av| 久久亚洲资源中文字| 一个色的综合| 国产精品综合一区二区三区| 五月婷婷一区二区| 精品国产免费视频| 麻豆国产在线| 日韩视频在线播放| 久久成人av少妇免费| 日韩成人毛片视频| 精品久久久久久久久久久久包黑料| brazzers在线观看| 久久久久久一区| 日韩和欧美的一区| 青花影视在线观看免费高清| 日韩欧美区一区二| 欧洲一区精品| 亚洲v日韩v欧美v综合| 蜜桃av一区二区三区| 日韩一区二区三区四区在线| 精品国产乱码久久久久久蜜臀 | 一区二区精品| 中文字幕在线观看免费高清| 欧美人xxxx| av午夜在线观看| 日本一区免费看| 国产综合成人久久大片91| 日本免费一二三区| 亚洲人午夜色婷婷| 精品国产伦一区二区三区观看说明| 国产一级不卡视频| 国产欧美视频一区二区三区| 国产日韩一级片| 欧美做受高潮电影o| 日韩欧美视频专区| 美女网站视频在线观看| 欧美羞羞免费网站| 不卡一本毛片| 亚洲精品一区二区三区av| 成人美女视频在线观看| 国产一卡二卡三卡| 欧美—级高清免费播放| 激情五月综合网| 99免费观看视频| 欧美日韩精品综合在线| 男人天堂视频在线观看| 熟妇熟女乱妇乱女网站| xf在线a精品一区二区视频网站| 一级做a爱片久久毛片| 欧美性受xxxx白人性爽| 欧美va天堂在线|