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

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序 原創(chuàng)

發(fā)布于 2024-7-2 10:52
瀏覽
0收藏

譯者 | 布加迪

審校 | 重樓

之前我介紹了如何使用OpenAI最新的LLM GPT-4o,通過函數(shù)調(diào)用將實(shí)時(shí)數(shù)據(jù)引入到??LLM??。在這篇后續(xù)文章中我將介紹使用Hermes 2 Pro -Llama- 3 8B進(jìn)行函數(shù)調(diào)用,這是一種由Nous Research開發(fā)的功能強(qiáng)大的LLM,基于Meta的Llama 3架構(gòu),有80億個(gè)參數(shù)。它是開放模型,我們將在Hugging Face的文本生成推理上運(yùn)行它。

我們將把Fightaware.com的API 與該LLM集成起來(lái),以便實(shí)時(shí)跟蹤航班狀態(tài)。

FlightAware的AeroAPI是開發(fā)人員獲取全面航班信息的一種完美工具。它支持實(shí)時(shí)航班跟蹤、歷史和未來(lái)航班數(shù)據(jù)以及按各種標(biāo)準(zhǔn)進(jìn)行航班搜索。該API以用戶友好的JSON格式呈現(xiàn)數(shù)據(jù),因而高度可用、易于集成。我們將調(diào)用REST API,根據(jù)用戶發(fā)送給LLM的提示獲取航班的實(shí)時(shí)狀態(tài)。

Hermes 2 Pro簡(jiǎn)介

Hermes 2 Pro -Llama- 3 8B擅長(zhǎng)自然語(yǔ)言處理任務(wù)、創(chuàng)意寫作和編程協(xié)助等。它的一項(xiàng)突出功能是出色的函數(shù)調(diào)用功能,便于執(zhí)行外部函數(shù),并檢索與股票價(jià)格、公司基本面、財(cái)務(wù)報(bào)表等相關(guān)的信息。

該模型利用特殊的系統(tǒng)提示和多輪函數(shù)調(diào)用結(jié)構(gòu)以及新的ChatML角色,使得函數(shù)調(diào)用可靠且易于解析。據(jù)基準(zhǔn)測(cè)試顯示,Hermes 2 Pro-Llama-3在與Fireworks AI合作構(gòu)建的函數(shù)調(diào)用評(píng)估中獲得了出色的90%。

本地部署Hermes 2 Pro

就這個(gè)環(huán)境而言,我使用一臺(tái)基于英偉達(dá)GeForce RTX 4090 GPU的Linux服務(wù)器,搭載24GB的VRAM。它運(yùn)行Docker和英偉達(dá)容器工具包,使容器能夠訪問GPU。

我們將使用來(lái)自Hugging Face的文本生成推理服務(wù)器來(lái)運(yùn)行Hermes 2 Pro。

下面的命令在端口8080上啟動(dòng)推理引擎,通過REST端點(diǎn)為L(zhǎng)LM提供服務(wù)。

export token="YOUR_HF_TOKEN"
 
export model="NousResearch/Hermes-2-Pro-Llama-3-8B"
 
export volume="/home/ubuntu/data"
 
docker run --name hermes -d --gpus all -e HUGGING_FACE_HUB_TOKEN=$token --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:2.0.3 --model-id $model --max-total-tokens 8096

   	
To test the endpoint, run the following command:

	curl 127.0.0.1:8081  \
  -X POST \
   -H 'Content-Type: application/json' \
 -d '{"inputs":"What is Deep Learning?"}'

如果一切正常,您應(yīng)該看到Hermes 2 Pro的響應(yīng)。

跟蹤航班狀態(tài)的函數(shù)

在繼續(xù)下一步之前,注冊(cè)FlightAware并獲取API密鑰,使用REST API需要API密鑰。免費(fèi)的個(gè)人版本足以完成本教程。

獲得API密鑰后,用Python創(chuàng)建以下函數(shù),以檢索任何航班的狀態(tài)。

import ast
	import json
import random
	from datetime import datetime, timedelta
	import requests
	import pytz

	
	def get_flight_status(flight):
	    """Returns Flight Information"""
	

	    AEROAPI_BASE_URL = "https://aeroapi.flightaware.com/aeroapi"
	    AEROAPI_KEY="YOUR FLIGHTAWARE API KEY"
	    
	    def get_api_session():
	        session = requests.Session()
	        session.headers.update({"x-apikey": AEROAPI_KEY})
	        return session
	
	    
def fetch_flight_data(flight_id, session):
	        if "flight_id=" in flight_id:
	            flight_id = flight_id.split("flight_id=")[1]    
	        
	       
 start_date = datetime.now().date().strftime('%Y-%m-%d')
	        end_date = (datetime.now().date() + timedelta(days=1)).strftime('%Y-%m-%d')
	        api_resource = f"/flights/{flight_id}?start={start_date}&end={end_date}"
	        response = session.get(f"{AEROAPI_BASE_URL}{api_resource}")
	        response.raise_for_status()
	        return response.json()['flights'][0]
	
	    def utc_to_local(utc_date_str, local_timezone_str):
	        utc_datetime = datetime.strptime(utc_date_str, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.utc)
	        local_timezone = pytz.timezone(local_timezone_str)
	        local_datetime = utc_datetime.astimezone(local_timezone)
	        return local_datetime.strftime('%Y-%m-%d %H:%M:%S')    
	    
	    session = get_api_session()
	    flight_data = fetch_flight_data(flight, session)
	    
	    dep_key = 'estimated_out' if 'estimated_out' in flight_data and flight_data['estimated_out'] else \
	          'actual_out' if 'actual_out' in flight_data and flight_data['actual_out'] else \
	          'scheduled_out'
	    
	    arr_key = 'estimated_in' if 'estimated_in' in flight_data and flight_data['estimated_in'] else \
	          'actual_in' if 'actual_in' in flight_data and flight_data['actual_in'] else \
	          'scheduled_in'    
	    
	    flight_details = {
	        'flight':flight,
	        'source': flight_data['origin']['city'],
	        'destination': flight_data['destination']['city'],
	        'depart_time': utc_to_local(flight_data[dep_key], flight_data['origin']['timezone']),
	        'arrival_time': utc_to_local(flight_data[arr_key], flight_data['destination']['timezone']),
	        'status': flight_data['status']
	    }
	return json.dumps(flight_details)

	
	flight_info = get_flight_status("EK524")
	print(flight_info)
	#'{"flight": "EK524", "source": "Dubai", "destination": "Hyderabad", "depart_time": "2024-05-23 22:00:00", "arrival_time": "2024-05-24 03:05:00", "status": "Scheduled"}'

雖然代碼簡(jiǎn)單直觀,還是讓我解釋關(guān)鍵步驟。

get_flight_status函數(shù)接受航班參數(shù)(假設(shè)是航班標(biāo)識(shí)符),并以JSON格式返回格式化的航班詳細(xì)信息。它查詢AeroAPI以根據(jù)特定的航班標(biāo)識(shí)符獲取航班數(shù)據(jù),并格式化關(guān)鍵細(xì)節(jié),比如源地、目的地、駛離時(shí)間、到達(dá)時(shí)間和狀態(tài)。

不妨看看腳本的組件:

API憑據(jù):

AEROAPI_BASE_URL是FlightAware AeroAPI的基礎(chǔ)URL。

AEROAPI_KEY是用于身份驗(yàn)證的API密鑰。

會(huì)話管理:

get_api_session:這個(gè)嵌套函數(shù)初始化請(qǐng)求。這將使用API密鑰設(shè)置所需的報(bào)頭,并返回會(huì)話對(duì)象。該會(huì)話將處理所有API請(qǐng)求。

數(shù)據(jù)獲取:

fetch_flight_data:這個(gè)函數(shù)接受flight_id和session作為參數(shù)。它用適當(dāng)?shù)娜掌谶^濾器構(gòu)造端點(diǎn)URL,用于獲取一天的數(shù)據(jù),并發(fā)送GET請(qǐng)求以檢索航班數(shù)據(jù)。該函數(shù)處理API響應(yīng),并提取相關(guān)的航班信息。

時(shí)間轉(zhuǎn)換:

utc_to_local:根據(jù)提供的時(shí)區(qū)字符串將UTC時(shí)間(來(lái)自API響應(yīng))轉(zhuǎn)換為本地時(shí)間。該函數(shù)幫助我們獲得基于城市的到達(dá)和駛離時(shí)間。

數(shù)據(jù)處理:

腳本根據(jù)可用的估計(jì)時(shí)間或?qū)嶋H時(shí)間確定駛離和到達(dá)時(shí)間的鍵,并返回到計(jì)劃時(shí)間。然后,它構(gòu)造一個(gè)含有格式化航班詳細(xì)信息的字典。

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

上述截圖顯示了我們從FlightAware API收到的從迪拜飛往海得拉巴的阿聯(lián)酋航空EK524的響應(yīng)。請(qǐng)注意,到達(dá)和駛離時(shí)間基于城市的當(dāng)?shù)貢r(shí)間。

我們旨在將該函數(shù)與Gemini 1.0 Pro集成,使其能夠?qū)崟r(shí)訪問航班跟蹤信息。

將函數(shù)與Hermes 2 Pro集成

先使用以下命令安裝最新版本的Hugging Face Python SDK:

pip install --upgrade huggingface_hub

導(dǎo)入模塊,并通過將客戶端指向TGI端點(diǎn)來(lái)初始化客戶端。

from huggingface_hub import InferenceClient

client = InferenceClient("http://127.0.0.1:8080")

接下來(lái),定義函數(shù)模式,采用的格式與OpenAPI函數(shù)調(diào)用的格式一樣。

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_flight_status",
            "description": "Get status of a flight",
            "parameters": {
                "type": "object",
                "properties": {
                    "flight": {
                        "type": "string",
                        "description": "Flight number"
                    }
                },
                "required": ["flight"]
            }
        }
    }
]

這將使用LLM用作工具的一個(gè)或多個(gè)函數(shù)填充列表。

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

現(xiàn)在,我們將創(chuàng)建接受提示并確定是否需要調(diào)用函數(shù)的聊天機(jī)器人。如果需要調(diào)用,則LLM先返回函數(shù)名和需要調(diào)用的參數(shù)。函數(shù)的輸出作為第二次調(diào)用的一部分發(fā)送給LLM。最終的響應(yīng)將根據(jù)函數(shù)的輸出得到與事實(shí)相符的正確答案。

def chatbot(prompt):
    messages = [
        {
            "role": "system",
            "content": "You're a helpful assistant! Answer the users question best you can based on the tools provided. Be concise in your responses.",
        },
        {
            "role": "user",
            "content": prompt
        },
    ]
 
    response = client.chat_completion(messages=messages, tools=tools)
    tool_calls = response.choices[0].message.tool_calls
 
    if tool_calls:
        available_functions = {
            "get_flight_status": get_flight_status,
        }
        
        for tool_call in tool_calls:
            function_name = tool_call.function.name
            function_to_call = available_functions[function_name]
            function_args = tool_call.function.arguments
        
            function_response = function_to_call(flight=function_args.get("flight"))
            
            messages.append(
                {
                    "role": "tool",
                    "name": function_name,
                    "content": function_response
                }
            )
            
        final_response = client.chat_completion(messages=messages)
        return final_response
        
    return response

目標(biāo)LLM期望的提示的自動(dòng)格式化是使用Hugging Face Python庫(kù)的一個(gè)好處。比如說(shuō),使用函數(shù)時(shí),Hermes 2 Pro的提示需要按照特定的格式進(jìn)行結(jié)構(gòu)化:

<|im_start|>system
You are a function calling AI model. You are provided with function signatures within XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions. Here are the available tools: [{'type': 'function', 'function': {'name': 'get_stock_fundamentals', 'description': 'Get fundamental data for a given stock symbol using yfinance API.', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string'}}, 'required': ['symbol']}}}] Use the following pydantic model json schema for each tool call you will make: {'title': 'FunctionCall', 'type': 'object', 'properties': {'arguments': {'title': 'Arguments', 'type': 'object'}, 'name': {'title': 'Name', 'type': 'string'}}, 'required': 

['arguments', 'name']} For each function call return a json object with function name and arguments within XML tags as follows:

{'arguments': , 'name': }
<|im_end|>

同樣,函數(shù)的輸出可以以以下格式發(fā)送到LLM:

<|im_start|>tool

{"name": "get_stock_fundamentals", "content": {'symbol': 'TSLA', 'company_name': 'Tesla, Inc.', 'sector': 'Consumer Cyclical', 'industry': 'Auto Manufacturers', 'market_cap': 611384164352, 'pe_ratio': 49.604652, 'pb_ratio': 9.762013, 'dividend_yield': None, 'eps': 4.3, 'beta': 2.427, '52_week_high': 299.29, '52_week_low': 152.37}}

<|im_end|>

確保提示遵循該模板需要仔細(xì)格式化。InferenceClient類可高效地處理這種轉(zhuǎn)換,使開發(fā)人員能夠在提示中使用系統(tǒng)、用戶、工具和助手角色的熟悉的OpenAI格式。

在首次調(diào)用聊天完成API時(shí),LLM給出以下答案作為響應(yīng):

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

隨后,在調(diào)用函數(shù)之后,我們將結(jié)果嵌入到消息中并將其發(fā)回給LLM。

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

正如您所見,集成函數(shù)調(diào)用的工作流程與OpenAI非常相似。

現(xiàn)在是時(shí)候調(diào)用聊天機(jī)器人并通過提示來(lái)測(cè)試它了。

res=chatbot("What's the status of EK226?")
print(res.choices[0].message.content)

聊天機(jī)器人的完整代碼如下所示。

from huggingface_hub import InferenceClient

client = InferenceClient("http://127.0.0.1:8080")


tools = [
    {
        "type": "function",
        "function": {
            "name": "get_flight_status",
            "description": "Get status of a flight",
            "parameters": {
                "type": "object",
                "properties": {
                    "flight": {
                        "type": "string",
                        "description": "Flight number"
                    }
                },
                "required": ["flight"]
            }
        }
    }
]


def chatbot(prompt):
    messages = [
        {
            "role": "system",
            "content": "You're a helpful assistant! Answer the users question best you can based on the tools provided. Be concise in your responses.",
        },
        {
            "role": "user",
            "content": prompt
        },
]


    response = client.chat_completion(messages=messages, tools=tools)
    tool_calls = response.choices[0].message.tool_calls

    if tool_calls:
        available_functions = {
            "get_flight_status": get_flight_status,
        }
        
        for tool_call in tool_calls:
            function_name = tool_call.function.name
            function_to_call = available_functions[function_name]
            function_args = tool_call.function.arguments
        
            function_response = function_to_call(flight=function_args.get("flight"))
            
            messages.append(
                {
                    "role": "tool",
                    "name": function_name,
                    "content": function_response
                }
            )
            
        final_response = client.chat_completion(messages=messages)
        return final_response
        
    return response


res=chatbot("What's the status of EK226?")

print(res.choices[0].message.content)

原文標(biāo)題:??Building an Open LLM App Using Hermes 2 Pro Deployed Locally??,作者:Janakiram MSV

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2024-7-2 11:05:57修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
无码人妻aⅴ一区二区三区| 国产精品视频500部| 天天干天天舔天天操| 超碰这里只有精品| 亚洲欧美韩国综合色| 成人动漫在线观看视频| chinese国产精品| 久久一级电影| 亚洲激情在线视频| 男人添女人下面免费视频| 日韩精品亚洲人成在线观看| 91亚洲精华国产精华精华液| 国产成人精品视频| 亚洲熟女www一区二区三区| 狠狠一区二区三区| 欧美日高清视频| 成年人网站免费视频| 日本最新在线视频| 99riav久久精品riav| 国产专区欧美专区| 久久国产视频精品| 国产专区一区| 色999日韩欧美国产| 国产毛片毛片毛片毛片毛片毛片| 妺妺窝人体色WWW精品| 玖玖爱在线观看| 久久天堂影院| 精品久久久久久久久久ntr影视| 欧美午夜精品久久久久久蜜| www.天堂av.com| 日本中文字幕一区二区有限公司| 欧美黑人巨大精品一区二区| 亚洲高潮女人毛茸茸| 国产亚洲成av人片在线观黄桃| 色先锋久久av资源部| 日韩国产一级片| 超碰在线免费公开| 日本一区二区三区高清不卡| 韩国成人av| 99久久久国产精品无码免费| 美女网站一区二区| 国产成人精品久久二区二区91| 欧美成人综合色| 国产一区二区三区不卡在线| 美女视频一区在线观看| 在线观看日韩高清av| 18性欧美xxxⅹ性满足| youjizz亚洲女人| 国产精品x8x8一区二区| 91精品国产一区二区三区香蕉 | 日韩精品一区二区三| 久久久精品成人| 四虎永久精品在线| 一本一本久久a久久| 天天干免费视频| 九色porny丨国产精品| 51视频国产精品一区二区| 女人黄色一级片| 一区三区自拍| 91超碰这里只有精品国产| 成人在线免费看黄| 亚洲免费影视| 国内精久久久久久久久久人| 男人与禽猛交狂配| 婷婷亚洲最大| 精品国产欧美成人夜夜嗨| 东方伊人免费在线观看| 国产探花在线精品一区二区| 亚洲欧美精品伊人久久| 性欧美videosex高清少妇| 日韩资源在线| 91一区二区在线| av五月天在线| 黄色免费在线观看网站| 中文成人av在线| 神马影院我不卡午夜| 久久成人小视频| 无人区乱码一区二区三区| 制服丝袜亚洲网站| 在线视频观看91| 欧美高清xxx| 在线不卡免费欧美| 性欧美在线视频| 男人舔女人下面高潮视频| 在线观看国产黄| 奇米影视一区二区三区小说| 91蜜桃视频在线| 少妇高潮久久77777| 波多野结衣一本| 欧美激情三级| 国产三级精品三级| 日韩精品不卡| 亚洲成人三级| 日韩久久一区二区| 性高湖久久久久久久久aaaaa| 91xxx在线观看| 亚洲黄色免费电影| 日韩欧美视频一区| 精品国产免费久久久久久婷婷| 人人草在线视频| 国产精品免费看片| 国产精品美女视频网站| 日韩中文字幕高清| 国产一区二区三区四区在线观看| 国产精品综合不卡av| 国产毛片毛片毛片毛片毛片| 成人免费高清视频在线观看| 欧美大陆一区二区| 亚洲精品乱码久久久久久蜜桃91| 欧美日韩在线精品一区二区三区激情综 | 黄一区二区三区| 51精品国产人成在线观看| 欧美一级片在线看| 欧美色成人综合| 日韩精品另类天天更新| 在线观看黄av| 午夜欧美一区二区三区在线播放| 国产日韩av网站| 国产美女久久| 精品亚洲国产成av人片传媒 | 精品sm在线观看| 2019男人天堂| 国产手机视频一区二区| 亚洲一区二区自拍| 不卡在线视频| 欧美午夜宅男影院在线观看| 伊人五月天婷婷| 成人影院在线| 日韩av大片在线| 国产91免费在线观看| 日韩一区中文字幕| 美女少妇一区二区| 色综合中文网| 97精品国产97久久久久久免费| 中文字幕观看在线| 久久久久免费观看| 欧美日韩黄色一级片| 国产日韩中文在线中文字幕| 亚洲色成人一区二区三区小说| 成黄免费在线| 五月天欧美精品| 免费看的av网站| 93在线视频精品免费观看| 色婷婷久久久久swag精品| 日韩av快播网址| 欧美一级淫片免费视频魅影视频| 久久久av毛片精品| 欧洲黄色一级视频| 久久久久97| 久久免费国产精品1| 精品人妻无码一区二区| 亚洲欧美欧美一区二区三区| 亚洲va在线va天堂va偷拍| 成人羞羞动漫| 国产精品久久久久av免费| 国产区在线视频| 色国产综合视频| 李宗瑞91在线正在播放| 香蕉久久国产| 热re99久久精品国产99热| 在线观看福利电影| 亚洲欧美第一页| 麻豆成人免费视频| 久久久久99精品一区| 国产一区视频免费观看| 免费av一区| 国产精品欧美亚洲777777| 91电影在线播放| 91精品国产福利在线观看| 国产老头老太做爰视频| 国模一区二区三区白浆| 中文字幕精品一区日韩| 国产精品一站二站| 欧美猛少妇色xxxxx| 亚洲av少妇一区二区在线观看| 亚洲视频在线一区二区| 亚欧美一区二区三区| 国内精品福利| 国内外成人免费视频| 超碰成人av| 欧美日韩三级| 国产精品丝袜久久久久久高清| 秋霞视频一区二区| 欧美性高潮床叫视频| 最近中文字幕在线mv视频在线| 日韩av电影一区| 中文字幕精品一区日韩| 成人看片黄a免费看视频| 欧美一级免费看| 日韩成人影视| 亚洲成在人线av| 午夜一区二区三区四区| 亚洲三级在线免费| 北岛玲一区二区| 精品一区二区精品| 日本xxxxxxxxxx75| 大片网站久久| 国产精品一区二区三区四区五区| 涩涩视频网站在线观看| 中文国产亚洲喷潮| 亚洲第一视频在线播放| 欧美性少妇18aaaa视频| 四虎884aa成人精品| 成人av在线影院| 小泽玛利亚视频在线观看| 欧美久久综合| 午夜精品一区二区三区在线观看 | 欧美极品第一页| 精品影院一区| 欧美成人三级在线| 中文字幕 视频一区| 洋洋成人永久网站入口| 最近中文字幕免费| 国产成人精品一区二| 91淫黄看大片| 亚洲三级影院| 黄色一级视频播放| 精品免费在线| 精品乱子伦一区二区三区| 日韩欧美激情| 欧美中文字幕第一页| 欧美巨大xxxx做受沙滩| 深夜福利一区二区| 五月婷婷六月合| 亚洲一区二区三区中文字幕在线观看| 久久久国产一区二区三区| 亚洲 国产 欧美 日韩| 91精品久久久久久久91蜜桃| 姑娘第5集在线观看免费好剧| 亚洲免费成人av| 中文字幕av久久爽一区| av成人免费在线| 国产女主播在线播放| 精品一区二区三区视频 | 潘金莲一级淫片aaaaa| 日韩成人一区二区三区在线观看| 日韩亚洲欧美一区二区| 99久久夜色精品国产亚洲96| 欧美性xxxx69| 欧美亚洲tv| 国产精品日本一区二区| 亚洲一区二区免费在线观看| 91亚洲精品在线| 成人国产综合| 国产精品久久久久av免费| 日韩国产激情| 欧洲美女7788成人免费视频| www.综合网.com| 久久人人爽亚洲精品天堂| av网站在线播放| 国产亚洲美女精品久久久| 你懂的在线视频| 日韩午夜在线观看视频| 国产福利资源在线| 日韩精品一区二区三区中文精品| 伊人网中文字幕| 欧美日韩精品系列| 亚洲一区中文字幕在线| 欧美日韩你懂得| 亚洲天堂手机版| 欧美人xxxx| 国产毛片久久久久| 日韩欧美亚洲一区二区| 成人午夜免费在线观看| 欧美r级在线观看| 欧美性猛交 xxxx| 精品亚洲国产视频| yiren22综合网成人| 最近2019好看的中文字幕免费| 二人午夜免费观看在线视频| 色噜噜国产精品视频一区二区| 9色在线视频| 久久精品亚洲国产| 羞羞网站在线看| 高清一区二区三区四区五区| 在线视频cao| 国产精品日日做人人爱| 成人在线视频www| 国产精品成人观看视频免费| 欧美色图婷婷| 先锋影音一区二区三区| 亚洲情侣在线| 欧美在线一区视频| 老牛影视一区二区三区| 五月婷婷丁香色| 国产suv精品一区二区6| 亚洲午夜精品视频| 一级片视频网站| 精品捆绑美女sm三区| 天天在线女人的天堂视频| 亚洲一品av免费观看| 久久久久久国产精品免费无遮挡| 中文亚洲视频在线| 欧美另类tv| 国产成人+综合亚洲+天堂| 亚洲人成网站在线在线观看| 国产高清精品一区二区| 精品国精品国产自在久国产应用 | 国产aⅴ爽av久久久久| 国产高清精品网站| 日韩精品无码一区二区三区久久久| 日本一区二区三级电影在线观看| 99热这里只有精品4| 婷婷中文字幕一区三区| 美女黄页在线观看| 亚洲成人国产精品| 一广人看www在线观看免费视频| 欧美日本国产在线| 欧美黄色网页| 国产成人精品一区二区三区福利 | 日本欧美加勒比视频| 亚洲欧美激情一区二区三区| 欧美极品美女视频| 国产乡下妇女做爰视频| 欧美一区 二区 三区| 国产精品久久久久久久久影视| 免费日韩成人| 精品在线不卡| 欧美全黄视频| 91看片在线免费观看| 99久久婷婷国产| jizz亚洲少妇| 在线观看网站黄不卡| 国产成人自拍一区| 日韩视频第一页| 超碰国产一区| 国产日本一区二区三区| 66久久国产| 嫩草av久久伊人妇女超级a| eeuss鲁片一区二区三区在线观看 eeuss影院一区二区三区 | 一区二区三区视频免费| 免费电影视频在线看| 91久久久亚洲精品| 欧美在线观看视频一区| 免费在线激情视频| 狠狠色丁香久久婷婷综合丁香| 国产熟妇搡bbbb搡bbbb| 亚洲国产精品久久人人爱蜜臀| 在线观看国产精品视频| 国产午夜精品一区二区三区| 美女av在线免费看| 国外成人在线视频网站| 亚洲高清激情| 丝袜熟女一区二区三区| 亚洲资源在线观看| www.国产免费| 欧美高清第一页| 999国产在线视频| 久久女同互慰一区二区三区| 中文字幕手机在线观看| 欧美日本视频在线| 中国日本在线视频中文字幕| 国产精品情侣自拍| 日韩精品免费一区二区三区| 五月婷婷深爱五月| 国产三级精品在线| 夜夜躁日日躁狠狠久久av| 亚洲视频自拍偷拍| 成人日韩精品| 日韩欧美亚洲在线| 麻豆国产欧美一区二区三区| 国产又粗又长免费视频| 欧美日韩高清一区二区三区| 日本三级视频在线观看| 亚洲xxxx做受欧美| 伊人蜜桃色噜噜激情综合| 亚洲视频在线播放免费| 欧美日韩国产精品| 激情综合闲人网| 国产精品夜间视频香蕉| 97精品视频在线看| 亚洲AV无码久久精品国产一区| 综合色中文字幕| 精品人妻一区二区三区麻豆91| 欧美成人在线免费视频| 国产精品xxx在线观看| 亚洲国产精品久久久久爰色欲| 91丨九色丨蝌蚪丨老版| 天天综合久久综合| 久久久精品久久久久| 超碰成人97| 91香蕉视频导航| 一区二区在线观看视频在线观看| 亚洲美女福利视频| 5566日本婷婷色中文字幕97| 欧美亚洲国产一区| 国产又粗又猛大又黄又爽| 欧美日韩国产精品一区二区三区四区| 成人午夜免费福利| 国产精品日韩av| 狠狠入ady亚洲精品经典电影| 亚洲色偷偷色噜噜狠狠99网| 在线精品视频一区二区| free性欧美hd另类精品| 九九九九精品| 成人精品免费网站| 另类专区欧美制服同性| 欧美电影在线观看一区| 日韩欧美亚洲天堂| 中文字幕欧美国产|