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

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

譯文
人工智能
本文介紹了如何使用基于Meta Llama 3架構(gòu)的功能強(qiáng)大的大語言模型(LLM)Hermes 2 Pro-Llama- 3 8B進(jìn)行函數(shù)調(diào)用,并在Hugging Face上運(yùn)行。

譯者 | 布加迪

審校 | 重樓

之前我介紹了如何使用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,基于MetaLlama 3架構(gòu),有80億個(gè)參數(shù)。它是開放模型,我們將在Hugging Face的文本生成推理上運(yùn)行它。

我們將把Fightaware.comAPI LLM集成起來,以便實(shí)時(shí)跟蹤航班狀態(tài)。

FlightAwareAeroAPI是開發(fā)人員獲取全面航班信息的一種完美工具。它支持實(shí)時(shí)航班跟蹤、歷史和未來航班數(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簡介

Hermes 2 Pro -Llama- 3 8B擅長自然語言處理任務(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)測試顯示Hermes 2 Pro-Llama-3在與Fireworks AI合作構(gòu)建的函數(shù)調(diào)用評估中獲得了出色90%

本地部署Hermes 2 Pro

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

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

下面的命令在端口8080上啟動(dòng)推理引擎,通過REST端點(diǎn)為LLM提供服務(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ù)下一步之前,注冊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"}'

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

get_flight_status函數(shù)接受航班參數(shù)假設(shè)是航班標(biāo)識符,并以JSON格式返回格式化的航班詳細(xì)信息。它查詢AeroAPI以根據(jù)特定的航班標(biāo)識符獲取航班數(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密鑰。

話管理

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

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

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

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

utc_to_local根據(jù)提供的時(shí)區(qū)字符串將UTC時(shí)間來自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ì)信息的字典。

截圖顯示了我們從FlightAware API收到的從迪拜飛往海得拉巴的阿聯(lián)酋航空EK524的響應(yī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)來初始化客戶端。

from huggingface_hub import InferenceClient

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

接下來,定義函數(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ù)填充列表。

現(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庫的一個(gè)好處。比如說,使用函數(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):

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

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

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

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


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2025-06-18 08:12:14

2025-05-06 08:09:02

2012-03-30 15:54:43

ibmdw

2024-11-08 09:53:01

2023-12-12 13:49:35

LLMAIChatGPT

2024-09-06 10:46:04

2023-08-22 20:55:04

AzureLLMTypeChat

2009-01-03 14:25:10

ibmdwWeb

2009-06-11 17:07:49

WebsphereJ2EE應(yīng)用程序

2010-03-29 13:35:39

ibmdwRIA

2025-11-03 09:00:00

LLMtoken大語言模型

2024-03-07 09:15:57

2010-06-13 09:22:37

jQuery

2021-07-30 10:11:14

HelmKubernetes包管理

2012-04-19 09:34:21

ibmdw

2024-03-12 10:05:47

大型語言模型

2022-11-22 10:52:00

云計(jì)算工具

2010-12-15 16:17:59

服務(wù)部署

2024-10-16 08:23:15

大型語言模型LLM機(jī)器學(xué)習(xí)

2024-06-24 10:53:23

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

www亚洲人| 无码人妻一区二区三区线| 亚洲一区二区三区在线免费| 亚洲成人激情av| 日本不卡一区二区三区视频| 91免费视频播放| 在线日韩中文| 日韩中文字幕av| 久久久久久婷婷| jizz亚洲女人高潮大叫| 亚洲一级不卡视频| 五月天婷亚洲天综合网鲁鲁鲁| 国产农村老头老太视频| 久久精品系列| 欧美精品videosex极品1| 亚洲天堂久久新| 亚洲国产视频二区| 欧美影院一区二区三区| 嫩草影院中文字幕| 蜜桃视频在线观看www社区| 99久久免费精品高清特色大片| 国产欧美韩国高清| www亚洲视频| 欧美人成在线| www欧美日韩| 91成人在线免费视频| 久久午夜影院| 日韩一区国产二区欧美三区| 中国丰满人妻videoshd| 色呦呦在线资源| 国产精品理论片在线观看| 精品999在线观看| 国产成人精品无码高潮| 日av在线不卡| 国产成人精品av| 日韩 欧美 综合| 国产精品啊啊啊| 久久夜色撩人精品| 国产精品综合激情| 久久不见久久见免费视频7| 精品国产sm最大网站免费看| 天天久久综合网| 久久人体av| 欧美日韩综合在线| 国产视频一区二区三区在线播放| 高清视频在线观看三级| 亚洲一区影音先锋| 欧美日韩午夜爽爽| av黄色在线| 亚洲乱码国产乱码精品精98午夜 | 亚洲精品网站在线观看| 一区二区三区三区在线| se在线电影| 国产精品欧美一级免费| 亚洲免费在线精品一区| wwwxxx在线观看| 日本一区二区三区四区| 视频一区视频二区视频三区高| 黄色在线观看网| 国产农村妇女精品| 一区二区三区四区五区精品| 一本一道波多野毛片中文在线 | 加勒比av在线播放| 欧美区日韩区| 91国产美女在线观看| 91视频免费网址| 欧美一级专区| 国产精品视频久| 国产人妖在线播放| 国产成人精品www牛牛影视| 国产精品国色综合久久| 欧洲天堂在线观看| 亚洲国产精品传媒在线观看| 伊人婷婷久久| www中文字幕在线观看| 五月激情综合婷婷| 91淫黄看大片| 高清一区二区中文字幕| 欧美zozozo| 亚洲av片不卡无码久久| 色婷婷亚洲mv天堂mv在影片| 久久久国产精品亚洲一区| 免费在线一区二区三区| 国产日产高清欧美一区二区三区| 日韩av黄色在线观看| 天天综合久久综合| 国产精品2024| 久草一区二区| 黄色网在线免费看| 精品福利视频导航| 天堂av8在线| 国产精品xxxav免费视频| 亚洲视频在线免费看| 午夜爽爽爽男女免费观看| 亚洲国产清纯| 91精品久久久久久久久青青| 性欧美videos另类hd| 91蜜桃网址入口| 正在播放国产精品| 九色porny视频在线观看| 欧美性极品少妇| 亚洲一区二区三区四区av| 成人情趣视频网站| 欧美精品videossex性护士| 不卡av电影在线| 国产精品一区二区免费不卡| 欧美精品二区三区四区免费看视频| av在线天堂| 精品国产成人av| 在线视频观看一区二区| 亚洲丁香日韩| 欧美日韩国产91| 国产精品无码一区| www.成人网.com| 免费cad大片在线观看| 日韩欧美一区二区三区在线观看| 欧美不卡在线视频| 99精品中文字幕| 丝袜国产日韩另类美女| 国产精品jizz视频| 大地资源网3页在线观看| 色屁屁一区二区| 国产伦精品一区三区精东| 亚洲国产精品成人| 国产精品日韩欧美| 国产视频网站在线| 欧美日韩一区二区三区在线免费观看| 女人扒开腿免费视频app| 不卡在线一区二区| 日本一区二区三区在线播放| 午夜国产在线视频| 亚洲一区二区三区四区在线免费观看| 中文字幕22页| 色爱综合网欧美| 国产精品免费一区二区三区都可以| 四虎影视精品成人| 精品久久久一区二区| 国产日韩视频一区| 国语精品一区| 99视频在线免费观看| 超碰caoporn久久| 6080午夜不卡| 日韩视频中文字幕在线观看| 麻豆精品新av中文字幕| 亚洲免费视频一区| 国产精品久久乐| 综合欧美国产视频二区| 蜜臀99久久精品久久久久小说| 久久综合九色综合97婷婷女人| 欧美视频在线播放一区| 日本午夜精品| 日韩av大片免费看| 久草在线青青草| 91国产免费观看| 欧美波霸videosex极品| 免费成人av在线| 中文字幕在线亚洲精品| 国产精品一级在线观看| 精品少妇一区二区30p| jizz中国少妇| 亚洲成人精品在线观看| 欧美一区二区三区成人精品| 久久精品成人| 一本一道久久a久久精品综合| 91精品视频一区二区| 蜜月aⅴ免费一区二区三区| 亚洲AV无码国产精品午夜字幕| 亚洲国产精品一区二区久久| 爱爱的免费视频| 喷水一区二区三区| 午夜啪啪福利视频| 菁菁伊人国产精品| 日韩美女在线观看| 黄网站在线播放| 亚洲二区中文字幕| 波多野结衣视频观看| 亚洲欧美日韩国产中文在线| 日本少妇一级片| 日韩在线一区二区| 一级黄色录像免费看| 国产另类在线| 国产精品极品美女粉嫩高清在线| 成人看片免费| 日韩精品亚洲元码| 一本色道久久综合精品婷婷| 亚洲一区中文在线| 丰满的亚洲女人毛茸茸| 国产一区二区精品久久91| 国产精品50p| 97精品国产一区二区三区| 懂色av一区二区三区在线播放| 丝袜老师在线| 不卡伊人av在线播放| 三级做a全过程在线观看| 欧美日本国产一区| 国产午夜精品一区二区理论影院| 国产清纯白嫩初高生在线观看91| xxx中文字幕| 久久国产精品亚洲77777| 男人天堂成人网| 国产成人一区| 国产精品欧美久久| jizz免费一区二区三区| 97超级碰碰碰| 成人影院在线看| 亚洲最新中文字幕| 人成网站在线观看| 欧美高清dvd| 日韩精品一区二区亚洲av| 亚洲精品免费在线观看| 美国黑人一级大黄| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕线观看| 日韩精品欧美精品| 成年人午夜免费视频| 一本一本久久a久久综合精品| 欧美一级爽aaaaa大片| swag国产精品一区二区| 91色在线视频| 免费一区二区三区四区| 日本久久精品视频| 国产一二三在线| 久久久久久久香蕉网| 黄色一级片在线观看| 中文字幕日韩综合av| 深夜福利在线观看直播| 亚洲国产成人精品久久久国产成人一区| 一级黄色大片网站| 欧美中文字幕一区二区三区| 六月丁香在线视频| 精品国产鲁一鲁一区二区张丽 | 欧美日韩黄色大片| 国产性猛交普通话对白| 亚洲精品欧美二区三区中文字幕| 久久久久无码精品国产sm果冻| 26uuu久久综合| 久久偷拍免费视频| a亚洲天堂av| 久久午夜夜伦鲁鲁片| 成人手机在线视频| 日本一区二区在线观看视频| 国产iv一区二区三区| 美女日批在线观看| 国产精品一卡二卡在线观看| 99999精品| 国产成人综合在线观看| 制服.丝袜.亚洲.中文.综合懂| 国产综合色产在线精品| 色婷婷综合在线观看| 国产精品自拍在线| 欧美xxxx黑人| kk眼镜猥琐国模调教系列一区二区 | 日韩在线一二三区| 色综合天天色综合| 老司机午夜精品99久久| 亚洲一区精品视频在线观看| 极品少妇xxxx偷拍精品少妇| 欧美精品色视频| 粉嫩aⅴ一区二区三区四区五区| 91成人在线观看喷潮蘑菇| 99视频超级精品| 中文字幕一二三四区| 国产亚洲精品资源在线26u| 国产精品三级在线观看无码| 国产三级一区二区| 国产探花在线视频| 亚洲一区二区三区中文字幕| 青青草成人av| 欧美午夜一区二区三区| 国产又大又黄又爽| 日韩精品一区在线观看| 天天射天天色天天干| 亚洲最新视频在线| 污污在线观看| 欧美做爰性生交视频| 国产成人精品一区二区三区视频| 91人人爽人人爽人人精88v| 久久成人福利| 日韩欧美一区二区三区四区五区 | 久久免费视频一区| 娇小11一12╳yⅹ╳毛片| 亚洲精品成人a在线观看| 日韩精品无码一区二区| 欧美性感一类影片在线播放| a级片免费视频| 亚洲精品视频中文字幕| 免费观看久久久久| 国内精品久久久久久中文字幕 | 国产日韩精品视频一区二区三区 | 国产成人免费视频一区| 一级片手机在线观看| 亚洲欧美日韩小说| 国产免费一区二区三区四区五区| 91精品国产91久久综合桃花| 欧美男男激情freegay| 久久伊人色综合| 久久夜夜操妹子| 国产精品乱码视频| 日韩精品一卡| 免费看又黄又无码的网站| 久久er99精品| 欧美激情aaa| 午夜视频一区二区三区| 国产精品久久777777换脸| 精品丝袜一区二区三区| 污网站在线免费看| 国产精品小说在线| 亚洲小说图片视频| 高清无码一区二区在线观看吞精| 秋霞午夜av一区二区三区| 一级特黄a大片免费| 亚洲欧美一区二区久久| 国语对白做受69按摩| 日韩av在线网页| 国模私拍视频在线播放| 91久久精品国产| 成人影院天天5g天天爽无毒影院| 亚洲 欧美 日韩 国产综合 在线| 韩日精品视频一区| 亚洲色图第四色| 日韩欧美黄色动漫| 天堂中文在线观看视频| 欧美激情精品久久久久久黑人| 欧美成人免费全部网站| 午夜精品美女久久久久av福利| 国产欧美短视频| 一边摸一边做爽的视频17国产| 18欧美亚洲精品| 这里只有精品9| 国产一区二区三区在线播放免费观看| 密臀av在线播放| 国产乱码精品一区二区三区中文 | 国产极品美女高潮无套久久久| 成人三级在线视频| 免费一级片视频| 欧美一区二区三区免费在线看| 日韩欧美小视频| 国产在线观看精品一区二区三区| 精品产国自在拍| 欧美日韩在线免费播放| 久久久蜜臀国产一区二区| av网站中文字幕| 亚洲午夜未删减在线观看 | 99pao成人国产永久免费视频| 又色又爽又黄18网站| 亚洲午夜羞羞片| 黄色片一区二区三区| 久久久久久中文字幕| 久久夜色精品国产噜噜av小说| 成人免费毛片在线观看| 成人午夜视频在线| 久久久国产高清| 亚洲性猛交xxxxwww| 精品国产美女a久久9999| 亚洲资源视频| 国产一区欧美日韩| 免费在线观看国产精品| 精品日韩99亚洲| 天堂а√在线最新版中文在线| 欧美一区二区在线| 久久精品久久久精品美女| 全网免费在线播放视频入口 | 国产精品十八以下禁看| 99视频精品全国免费| 成人免费黄色av| 天天爽夜夜爽夜夜爽精品视频| 青青操在线视频| 成人福利网站在线观看| 国内精品美女在线观看| 黄色a一级视频| 欧美精选一区二区| 蜜乳av一区| 日本不卡二区| 激情成人午夜视频| 国产无遮无挡120秒| 亚洲欧洲在线视频| 亚洲图片小说区| 一女被多男玩喷潮视频| 欧美激情一二三区| 亚洲av无码乱码国产麻豆| 欧美在线观看一区二区三区| 日韩在线看片| 日韩成人av一区二区| 欧美亚洲日本国产| 欧美韩日亚洲| 青青草原亚洲| 国产成人午夜99999| 99re这里只有精品在线| 欧美精品做受xxx性少妇| 同性恋视频一区| 亚洲精品无码久久久久久久| 岛国av在线不卡| 操你啦在线视频| 欧美精品二区三区四区免费看视频 | 成人免费午夜电影| 免费精品视频| 久久老司机精品视频| 最近2019年好看中文字幕视频| 高清精品视频| 在线观看高清免费视频|