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

Dify工具插件開發和智能體開發全流程實戰

人工智能
Dify是一款開源的大語言模型應用開發平臺,旨在降低AI應用的開發門檻,幫助開發者和企業快速構建、部署及管理生成式AI應用。

前言

Dify是一款開源的大語言模型應用開發平臺,旨在降低AI應用的開發門檻,幫助開發者和企業快速構建、部署及管理生成式AI應用。

Dify自1.0.0引入全新插件化架構,模型(Models)與工具(Tools)遷移為插件(Plugins),引入 Agent 策略(Agent Strategies)、擴展(Extensions)類型插件和插件集(Bundles)。通過全新的插件機制,能夠增強 AI 應用的感知和執行能力,拓寬AI在軟件操作領域的應用能力。

本文將介紹如下內容:

  • 搭建基于Docker的MySQL數據庫環境
  • 開發Dify工具插件實現MySQL數據庫操作
  • 基于Dify搭建智能體通過插件操作MySQL實現理財助手智能體

文末可獲取完整插件代碼下載地址

搭建基于Docker的MySQL數據庫環境

1) 啟動Docker容器

  • 建立docker_compose.yaml,內容如下:
services:
  mysql:
    image: mysql:5.7
    container_name: mysql5.7
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - TZ=Asia/Shanghai
    volumes:
      - ./volumes:/var/lib/mysql
    command: --character-set-server=utf8mb4
  • 執行docker compose up -d啟動數據庫

2) 創建數據庫和表

  • 下載MySQL客戶端軟件,例如dbeaver (https://dbeaver.io/download)
  • 連接數據庫,創建數據庫和表
create database testdb;

use testdb;

CREATE TABLE `finance` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(36) NOT NULL DEFAULT '' COMMENT '用戶ID',
  `date` datetime NOT NULL COMMENT '金額發生日期',
  `amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '收入支出金額(收入記為正數,支出記為負數)',
  `category` varchar(32) NOT NULL DEFAULT '' COMMENT '收支類別',
  `remark` varchar(100) NOT NULL DEFAULT '' COMMENT '收支具體類目',
  PRIMARY KEY (`id`),
  KEY `idx_user_date` (`user_id`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日常收支';

開發Dify工具插件實現MySQL數據庫操作

以windows開發環境為例:

1) 下載插件開發腳手架工具

https://github.com/langgenius/dify-plugin-daemon/releases下載適用于windows的dify-plugin-windows-amd64.exe。把程序所在目錄加到系統PATH路徑下,方便執行命令。運行命令查看版本信息,有輸出版本信息則說明安裝成功。

圖片

2) 創建項目

執行命令dify-plugin-windows-amd64.exe plugin init創建項目,輸入插件名(mysql),作者和描述

圖片

按Enter確認后,選擇python做為開發語言

圖片

按Enter確認后,選擇插件類型,這里我們選tool

圖片

按Enter確認后,選擇插件權限。mysql插件不需要勾選任何權限,一直按down鍵移到最后一行,然后按回車即可完成項目創建,系統將自動生成插件項目代碼,目錄為mysql。

圖片

生成的目錄結構如下:

圖片

3) 創建python虛擬環境

進入生成的目錄mysql,修改生成的requirements.txt,添加用到的python包: mysql-connector-python。

圖片

創建python虛擬環境并安裝依賴包:

python -m venv .venv
# 激活環境
.\.venv\Scripts\activate
# 安裝依賴包
pip install -r requirements.txt

4) 封裝數據庫功能

在tools目錄下增加db.py,通過類DbManagerSingleton封裝數據庫操作。DbManagerSingleton實現為單例模式,以便插件內不同的代碼共用類的實例對象。

import json
import mysql.connector
from contextlib import contextmanager
from threading import Lock


# 單例模式
class DbManagerSingleton:
    _instance = None
    _lock = Lock()  # 線程鎖,確保線程安全

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            with cls._lock:
                if not cls._instance:
                    cls._instance = super().__new__(cls)
                    cls._instance.__init__(*args, **kwargs)
        return cls._instance

    def __init__(self, host, port, user, password, database):
        self.connection_pool = mysql.connector.pooling.MySQLConnectionPool(
            pool_name="db_pool",
            pool_size=5,
            pool_reset_sessinotallow=True,
            host=host,  # 數據庫服務器Host
            port=port,  # 數據庫服務器端口
            user=user,  # 數據庫用戶名
            password=password,  # 數據庫密碼
            database=database,  # 數據庫名
        )

    @contextmanager
    def get_cursor(self):
        with self.connection_pool.get_connection() as connection:
            cursor = None
            try:
                cursor = connection.cursor()
                yield cursor
                connection.commit()
            except Exception as e:
                connection.rollback()
                raise e
            finally:
                if cursor:
                    cursor.close()

    def execute_sql(self, sql: str) -> str:
        with self.get_cursor() as cursor:
            cursor.execute(sql)
            if cursor.description is not None:
                rows = cursor.fetchall()
                result = {
                    "columns": [desc[0] for desc in cursor.description],
                    "rows": rows,
                }
                return json.dumps(result, default=str)
            else:
                return f"row affected:{cursor.rowcount}"

5) 實現授權配置

修改provider/mysql.yaml。其中,credentials_for_provider的信息用于配置插件授權(配置數據庫連接相關信息)。內容如下:

identity:
  author: testuser
  name: mysql
  label:
    en_US: mysql
    zh_Hans: mysql
  description:
    en_US: mysql tools
    zh_Hans: mysql tools
  icon: icon.svg
tools: # 插件包含的工具列表
  - tools/get_table_definition.yaml
  - tools/execute_sql.yaml

extra:
  python:
    source: provider/mysql.py

credentials_for_provider:
  host: # 數據庫HOST
    type: text-input # 輸入類型為普通文本
    required: true # 此憑證是必需的
    label:  # 在 Dify UI 中顯示的標簽 (支持多語言)
        en_US: MySQL Server Host
        zh_Hans: MySQL Server主機
  port: # 數據庫端口
    type: text-input # 輸入類型為普通文本
    required: true # 此憑證是必需的
    label: # 在 Dify UI 中顯示的標簽 (支持多語言)
        en_US: MySQL Server Port
        zh_Hans: MySQL Server端口
  user: # 數據庫用戶名
    type: text-input # 輸入類型為普通文本
    required: true # 此憑證是必需的
    label: # 在 Dify UI 中顯示的標簽 (支持多語言)
        en_US: user name
        zh_Hans: 用戶名
  password: # 數據庫密碼
    type: secret-input # 輸入類型為密碼框
    required: true # 此憑證是必需的
    label: # 在 Dify UI 中顯示的標簽 (支持多語言)
        en_US: password
        zh_Hans: 密碼
  database: # 數據庫名
    type: text-input # 輸入類型為普通文本
    required: true # 此憑證是必需的
    label: # 在 Dify UI 中顯示的標簽 (支持多語言)
        en_US: database name
        zh_Hans: 數據庫名

修改provider/mysql.py,實現配置校驗,通過建立連接執行show tables驗證參數是否正確。代碼如下:

from typing import Any

from dify_plugin import ToolProvider
from dify_plugin.errors.tool import ToolProviderCredentialValidationError


class MysqlProvider(ToolProvider):
    def _validate_credentials(self, credentials: dict[str, Any]) -> None:
        try:
            """
            IMPLEMENT YOUR VALIDATION HERE
            """
            from tools.db import DbManagerSingleton

            dbManager = DbManagerSingleton(
                host=credentials["host"],
                port=credentials["port"],
                user=credentials["user"],
                password=credentials["password"],
                database=credentials["database"],
            )
            dbManager.execute_sql("show tables")
        except Exception as e:
            raise ToolProviderCredentialValidationError(str(e))

6) 實現工具get_table_definition獲取表結構定義

provider/mysql.yaml的tools字段定義了插件包含的工具列表。

tools: # 插件包含的工具列表
  - tools/get_table_definition.yaml
  - tools/execute_sql.yaml

每個工具需要一個yaml文件進行描述,包含工具的名稱、描述、參數列表等。

將自動生成的tools目錄下的mysql.yaml和mysql.py分別重命名為get_table_definition.yaml和get_table_definition.py

get_table_definition.yaml修改為如下內容:

identity:
  name: get_table_definition
  author: testuser
  label: # 在 Dify UI 中顯示的工具名稱 (多語言)
    en_US: get database table definition
    zh_Hans: 獲取數據庫表定義
description:
  human: # 給人類用戶看的工具描述 (多語言)
    en_US: get database table definition
    zh_Hans: 獲取數據庫表定義
  llm: get database table definition # 給 LLM 看的工具描述 (用于 Agent 模式) 
parameters: # 定義工具的輸入參數列表
  - name: table
    type: string
    required: true
    label: # 在 Dify UI 中顯示的參數標簽 (多語言)
      en_US: database table name
      zh_Hans: 數據庫表名
    human_description: # 給人類用戶看的參數描述 (多語言)
      en_US: database table name
      zh_Hans: 數據庫表名
    llm_description: database table name # 給 LLM 看的參數描述 (指導 Agent 如何填充)
    form: llm # 參數表單類型 ('llm' 或 'form')
extra:
  python:
    source: tools/get_table_definition.py

get_table_definition.py修改為如下內容:

from collections.abc import Generator
from typing import Any
from dify_plugin import Tool
from dify_plugin.entities.tool import ToolInvokeMessage
from tools.db import DbManagerSingleton


class GetTableDefinitionTool(Tool):
    def __init__(self, runtime, session):
        super().__init__(runtime, session)
        self.dbManager = DbManagerSingleton(
            host=runtime.credentials["host"],
            port=runtime.credentials["port"],
            user=runtime.credentials["user"],
            password=runtime.credentials["password"],
            database=runtime.credentials["database"],
        )

    def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:
        table = tool_parameters["table"]
        sql = f"show create table {table}"
        yield self.create_text_message(self.dbManager.execute_sql(sql))

7) 實現工具execute_sql執行SQL語句

在tools目錄新建execute_sql.yaml和execute_sql.py

execute_sql.yaml修改為如下內容:

identity:
  name: execute_sql
  author: testuser
  label: # 在 Dify UI 中顯示的工具名稱 (多語言)
    en_US: execute sql
    zh_Hans: 執行sql語句
description:
  human: # 給人類用戶看的工具描述 (多語言)
    en_US: execute sql
    zh_Hans: 執行sql語句
  llm: execute sql # 給 LLM 看的工具描述 (用于 Agent 模式) 
parameters: # 定義工具的輸入參數列表
  - name: sql
    type: string
    required: true
    label:  # 在 Dify UI 中顯示的參數標簽 (多語言)
      en_US: sql
      zh_Hans: sql語句
    human_description: # 給人類用戶看的參數描述 (多語言)
      en_US: the sql to execute
      zh_Hans: 要執行的sql語句
    llm_description: sql # 給 LLM 看的參數描述 (指導 Agent 如何填充)
    form: llm # 參數表單類型 ('llm' 或 'form')
extra:
  python:
    source: tools/execute_sql.py

execute_sql.py修改為如下內容:

from collections.abc import Generator
from typing import Any
from dify_plugin import Tool
from dify_plugin.entities.tool import ToolInvokeMessage
from tools.db import DbManagerSingleton


class ExecuteSqlTool(Tool):
    def __init__(self, runtime, session):
        super().__init__(runtime, session)
        self.dbManager = DbManagerSingleton(
            host=runtime.credentials["host"],
            port=runtime.credentials["port"],
            user=runtime.credentials["user"],
            password=runtime.credentials["password"],
            database=runtime.credentials["database"],
        )

    def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:
        sql = tool_parameters["sql"]
        yield self.create_text_message(self.dbManager.execute_sql(sql))

8) 修改manifest.yaml

manifest.yaml定義了插件最基礎的信息,包括插件名稱、作者、包含的工具、模型等信息。

本插件雖然沒用到storage持久化存儲的權限,但需要將storage里的size字段從0改為大于等于1024,否則啟動插件時會報錯。

storage:
      enabled: false
      size: 1024

9) 調試

在Dify的插件管理頁面,點擊圖中紅框部分,彈出調試的URL和Key。

圖片

復制.env.example到.env,修改REMOTE_INSTALL_HOST和REMOTE_INSTALL_KEY。

圖片

執行命令python main.py啟動插件,等待至顯示"dify_plugin.plugin:Installed tool",工具安裝成功。

圖片

此時,在Dify的插件管理頁面可以看到mysql插件。選擇mysql插件,在右側點擊“去授權”

圖片

填上相關參數并保存。

圖片

新建測試Agent,添加mysql插件的兩個工具,模型選擇doubao-1.5-pro-32k,模型會根據用戶提問自動調用數據庫工具,并根據工具的響應生成回復。效果如下圖:

圖片

10) 打包

確認插件能夠正常運行后,可以通過以下命令行工具打包插件,生成mysql.difypkg。

dify-plugin-windows-amd64.exe plugin package mysql

圖片

11) 發布

  • 發布到Dify Marketplace參考: https://docs.dify.ai/zh-hans/plugins/publish-plugins/publish-to-dify-marketplace
  • 發布到個人GitHub倉庫參考: https://docs.dify.ai/zh-hans/plugins/publish-plugins/publish-plugin-on-personal-github-repo
  • 本地發布與分享

在Dify的插件管理頁面,點擊“安裝插件”=>“本地插件”。

圖片

選擇打包生成的mysql.difypkg,會提示簽名錯誤。

圖片

需要修改docker/.env,將FORCE_VERIFYING_SIGNATURE改為false,然后重建docker。修改該字段后,Dify平臺將允許安裝所有未在Dify Marketplace上架(審核)的插件,可能存在安全隱患。

docker compose down
docker compose up -d

docker重建后,重新安裝本地插件。

圖片

基于Dify搭建智能體通過插件操作MySQL實現理財助手智能體

1) 安裝Agent策略插件

點擊右上角“插件”按鈕,進入插件頁面,選擇“探索Marketplace“。

選擇插件Dify Agent 策略進行安裝。

圖片

2) 創建應用

  • 創建一個空白應用,類型為Chatflow。

圖片

  • 調整工作流,把默認的LLM節點替換為Agent節點。

圖片

  • 設置Agent節點的Agent策略,并添加MySQL工具策略選擇Function Calling。

圖片

  • Agent節點的模型選擇doubao-1.5-pro-32k
  • 設置Agent節點的指令(系統提示詞)
# 角色
你是記賬助手,可以通過調用數據庫工具完成記錄日常收入和支出并作分析。
為了完成記賬操作,需要先獲取數據庫表finance的定義。
記賬的用戶ID取值為{{#sys.user_id#}}

# 收支類別
收入:工資薪金,勞務報酬,投資收益,分紅收入,租金收入,其它收入
支出:住房,交通,通訊,保險,餐飲,電子產品,日用品,服飾,旅行,娛樂,醫療,學習,其它支出

# 技能
## 技能1:記錄日常開支
將開支信息記錄到數據庫表finance

## 技能2:統計日常開支
根據用戶輸入信息分析統計日常開支

# 限制
僅處理記賬相關問題,不回復其它問題
  • 設置Agent節點的查詢和最大迭代次數Agent完成一項任務可能需要迭代多次調用工具,最大迭代次數設置過小可能導致無法正常完成任務。

圖片

  • 預覽調試輸入“昨天吃飯用了50元,還花了35元買了拖鞋。今天買手機花了2999元,吃飯花了60元”,驗證輸出為成功記錄支出。

圖片

另外,通過數據庫表驗證數據正常插入。

圖片

輸入“匯總各個類別的金額”,驗證數據查詢。

圖片

確認無誤后,點擊右上角的“發布”按鈕發布應用。

總結

本文以實現MySQL數據庫操作插件詳細介紹開發Dify工具插件的全流程,并使用該插件搭建理財智能體,展示了Agent從語義理解到工具調用的完整決策鏈路。

跟MCP工具插件開發比較,Dify工具插件開發步驟相對復雜,且僅能使用Python開發,僅能用于Dify生態。但Dify插件的整體鏈路開銷較MCP插件低,如果你對系統時延和成本更敏感,且無需使用MCP的動態發現工具能力,Dify工具插件也許是個更好的選擇。

完整代碼地址:https://github.com/copilot-coder/dify-plugin-mysql

責任編輯:龐桂玉 來源: AI大模型應用開發
相關推薦

2025-06-19 03:30:00

智能體DifyMCP

2025-06-12 01:30:00

智能體Dify游戲智能體

2025-06-17 01:00:00

Dify智能體RAG

2025-07-22 02:00:00

Dify智能體AI

2025-08-06 09:30:51

AI應用開發智能體開發Dify開發

2025-07-25 13:46:47

2025-05-23 00:01:00

AIDify智能體Java

2025-06-09 01:00:00

2011-08-29 14:50:08

jQuery插件

2024-06-13 09:20:26

2025-03-12 13:04:01

2025-09-03 02:11:00

2023-11-13 18:01:15

開發工具Java

2011-04-19 18:48:25

Windows Emb開發工具嵌入式

2020-10-22 10:34:04

APICloud開發平臺

2025-03-12 12:21:27

2025-04-14 00:22:00

2025-10-27 01:11:00

2022-03-23 15:17:00

Harmony鴻蒙操作系統
點贊
收藏

51CTO技術棧公眾號

日产精品久久久久久久蜜臀| 91夜夜揉人人捏人人添红杏| 精品欧美一区二区久久久| 女生影院久久| 中文字幕一区二区三区四区| 成人黄色在线免费观看| 天码人妻一区二区三区在线看| 国产精品探花在线观看| 欧美久久高跟鞋激| heyzo亚洲| jizz日韩| 成人免费高清在线观看| 4438全国亚洲精品在线观看视频| 911国产在线| 日韩成人午夜| 欧美一区二区三区视频在线观看| 国产精品秘入口18禁麻豆免会员 | 久久精品国产77777蜜臀| 久久6免费高清热精品| 中文字幕免费高清| 国产精选久久| 欧美午夜精品久久久久久超碰 | 精品一区二区三区免费毛片爱| 久久久久中文字幕2018| 国产三级aaa| 国产精品密蕾丝视频下载| 日韩欧美另类在线| 天天干天天玩天天操| 第一福利在线视频| 一区二区三区视频在线看| 色综合视频二区偷拍在线| 天天干天天舔天天射| 国产一区二区按摩在线观看| 国产精品69精品一区二区三区| 国产性一乱一性一伧一色| 日韩一级毛片| 一区二区亚洲精品国产| 国产毛片毛片毛片毛片毛片毛片| 欧美视频三区| 538在线一区二区精品国产| 毛葺葺老太做受视频| 国产传媒在线| 婷婷丁香久久五月婷婷| 欧洲精品在线播放| 麻豆电影在线播放| 国产精品国产三级国产a | 亚洲成人激情小说| 91麻豆精品| 4438x亚洲最大成人网| 中文字幕有码av| 中文字幕日本一区二区| 色综合久久久久久久| 欧美日韩亚洲一| 丝袜老师在线| 欧美性极品xxxx做受| 国产亚洲精品网站| 97成人资源| 日本精品免费观看高清观看| 日本一极黄色片| 性感美女一区二区在线观看| 日韩欧美国产骚| 日本男人操女人| 日本美女久久| 制服丝袜成人动漫| 在线观看网站黄| 丁香婷婷成人| 亚洲乱码av中文一区二区| 实拍女处破www免费看| 国产精品日韩精品中文字幕| 中文字幕亚洲一区| 国产精品国产精品88| 午夜电影亚洲| 2019中文字幕在线观看| 久久久蜜桃一区二区| 视频在线在亚洲| 国产区精品视频| 亚洲AV午夜精品| 9i在线看片成人免费| 欧美高清视频一区| 天堂а√在线资源在线| 亚洲欧美另类图片小说| 成人一级生活片| 欧美xo影院| 69p69国产精品| 日韩av无码一区二区三区不卡 | 天天爽夜夜爽夜夜爽精品| 久久综合中文| 亚洲a中文字幕| 少妇av一区二区| 日本一区二区成人| 真人做人试看60分钟免费| 蜜桃视频在线观看播放| 欧美熟乱第一页| 亚洲少妇中文字幕| 精品国产一区二区三区四区 | 人人草在线视频| 欧美日韩免费一区二区三区视频| 亚洲欧美综合视频| 久久福利影院| 97在线视频免费看| 中文字幕一区二区三区波野结 | 亚洲第一综合网| 欧美国产91| 国产精品视频在线观看| 亚洲高清精品视频| 中文字幕的久久| 免费不卡av在线| 日韩午夜电影免费看| 日韩不卡在线观看| 午夜国产福利一区二区| 天堂精品中文字幕在线| 99国产超薄丝袜足j在线观看| 黄色av免费在线观看| 一区二区三区日韩欧美精品| 亚洲中文字幕久久精品无码喷水| eeuss鲁片一区二区三区| 最近2019免费中文字幕视频三| 日韩aaaaaa| 国产成人免费视频网站| 一区二区免费在线视频| 久久久一本精品| 日韩电视剧免费观看网站| 欧美三级黄色大片| 美女脱光内衣内裤视频久久网站 | 亚洲一区二区免费| h视频在线免费| 欧美丝袜美女中出在线| 亚洲视频 中文字幕| 综合激情网站| 国产美女精品视频免费观看| 黄色毛片在线观看| 欧美性xxxxx| 好吊一区二区三区视频| 极品裸体白嫩激情啪啪国产精品| 成人黄色av网| 秋霞影院午夜丰满少妇在线视频| 欧美在线观看一二区| 短视频在线观看| 国产一区二区精品| 国产偷久久久精品专区| 黄色在线免费观看网站| 亚洲成成品网站| 九九热国产视频| 成人h动漫精品一区二区| 亚洲精品少妇一区二区| 日韩精品免费视频一区二区三区| 久久亚洲精品视频| 国产精品伦一区二区三区| 国产精品毛片大码女人| xxxx一级片| 日韩av密桃| 国产日韩专区在线| 国产秀色在线www免费观看| 欧美日韩视频不卡| 视频国产一区二区| 国内精品自线一区二区三区视频| 超碰97免费观看| 国产专区精品| 国产综合在线视频| 午夜福利一区二区三区| 色综合天天综合狠狠| 久久婷婷五月综合| 老色鬼精品视频在线观看播放| 一区二区成人国产精品| 日本一区影院| 91精品国产自产91精品| 美州a亚洲一视本频v色道| 欧美在线看片a免费观看| 91成人精品一区二区| 极品少妇一区二区| 亚洲熟妇无码av在线播放| 看全色黄大色大片免费久久久| 91精品国产高清久久久久久久久| 欧美欧美欧美| 91麻豆精品国产91久久久久久久久 | 精品magnet| 欧美做受高潮6| 国内成人免费视频| 亚洲色成人www永久在线观看 | 亚洲福利小视频| 中文字幕视频网| 国产精品进线69影院| 亚洲av综合色区无码另类小说| 精品99视频| 日本一区二区在线视频| 91精品在线免费视频| 久久人人爽人人爽人人片av高清| 欧美日韩伦理片| 91麻豆精品国产无毒不卡在线观看| 久久这里只有精品免费| 国产女主播视频一区二区| 天堂av手机在线| 国产欧美日韩一级| av电影一区二区三区| 欧美日韩一区二区三区四区不卡| 国产精品久久久久久久久久99| av网址在线| 亚洲欧美精品一区| 亚洲AV无码一区二区三区性| 一本色道久久综合亚洲精品按摩 | 精品久久久久久国产| 亚洲欧美日韩第一页| 成人久久视频在线观看| www.com黄色片| 亚洲精品国产日韩| 中文字幕中文字幕在线中一区高清| 欧美三级午夜理伦三级在线观看| 国产美女久久精品| 另类专区亚洲| 久久免费视频网站| 国产91在线视频蝌蚪| 国产一区二区久久精品| 日本久久一级片| 91精品国产综合久久福利| 久久精品无码av| 亚洲一区二区三区四区中文字幕| 色噜噜噜噜噜噜| 久久久国产精品不卡| 久久久久久久久久久久国产精品| 精品一区二区三区在线播放视频 | 日韩专区视频网站| 热门国产精品亚洲第一区在线| 青青青国内视频在线观看软件| 色多多国产成人永久免费网站 | 97人人澡人人爽91综合色| 91精品久久久久久久久久久久久久| www.九色在线| 欧美激情在线狂野欧美精品| 免费观看成人高潮| 丝袜亚洲另类欧美重口| 91网页在线观看| 亚洲香蕉成视频在线观看| 色视频在线观看福利| 亚洲国产欧美一区二区三区同亚洲 | 欧美人与禽猛交乱配| 久久福利网址导航| 日本在线视频站| 视频直播国产精品| 麻豆传媒在线免费看| 日韩一区二区三区xxxx| freemovies性欧美| www.国产一区| 成人在线网址| 欧美精品日韩www.p站| 亚洲小说区图片区都市| 九九九热精品免费视频观看网站| 免费av网站在线看| 欧美成aaa人片在线观看蜜臀| 国产精品实拍| 久久国产精品久久国产精品| 午夜影院免费在线| 欧美激情亚洲激情| av资源在线看片| 欧美性视频网站| 欧美日韩视频网站| 国产女精品视频网站免费| 亚洲午夜剧场| 91一区二区三区| 精品精品国产三级a∨在线| 久久久com| 激情综合网站| 久久精品国产精品亚洲精品色| 牛牛国产精品| 欧美啪啪免费视频| 石原莉奈在线亚洲二区| 欧美特黄aaa| 国产美女精品人人做人人爽| 伊人av在线播放| 91在线国产观看| 免费福利视频网站| 亚洲另类在线视频| 好吊妞视频一区二区三区| 91黄色小视频| 国产高清视频免费| 日韩成人久久久| 9i精品一二三区| 欧美大荫蒂xxx| av资源亚洲| 成人久久一区二区三区| 国产精品一线| 日韩精品大片| 欧美日韩午夜| 99久久国产宗和精品1上映| 国产一区二区三区综合| 丰满大乳奶做爰ⅹxx视频| 国产免费久久精品| 久久久国产精华液| 欧美中文字幕一二三区视频| 国产欧美久久久精品免费| 日韩av在线直播| 毛片在线看网站| 91干在线观看| 自拍偷拍亚洲| 欧美性xxxx69| 自拍日韩欧美| jizz欧美性11| av一二三不卡影片| 看黄色录像一级片| 精品美女永久免费视频| 国产又粗又黄又爽的视频| 亚洲黄色在线看| 国产精品剧情一区二区在线观看| 45www国产精品网站| 99精品视频在线免费播放| 久久天天狠狠| 国产精品v亚洲精品v日韩精品| av免费网站观看| gogo大胆日本视频一区| 国产美女福利视频| 欧洲国产伦久久久久久久| 免费av一级片| 久久亚洲精品网站| 久久久久黄色| 欧美凹凸一区二区三区视频| 欧美片第1页综合| 思思久久精品视频| 亚洲国产成人一区二区三区| 日韩手机在线观看| 日韩欧美一区二区久久婷婷| 国产精品毛片一区二区三区四区| 国内外成人免费激情在线视频| 不卡一区视频| 一区二区三区国| 日本欧美一区二区| wwwwww日本| 欧美午夜激情视频| 天天干视频在线| 91精品国产乱码久久久久久蜜臀| 日韩欧美一级| 精品一区二区三区毛片| 蜜臀精品一区二区三区在线观看 | 亚洲成va人在线观看| av中文字幕播放| 久久久精品在线| 国产精品2区| 日本精品福利视频| 国产综合成人久久大片91| 中文字幕资源站| 欧美日韩成人激情| 日韩精品成人av| 成人在线中文字幕| 97欧美在线视频| 中文av字幕在线观看| 亚洲欧美怡红院| 国产色在线视频| 美日韩精品免费视频| 日韩视频1区| 免费看毛片的网址| av一区二区三区| 91精品国产综合久久久蜜臀九色| 日韩毛片在线看| 毛片无码国产| 亚洲欧洲一二三| 国内精品写真在线观看| 极品盗摄国产盗摄合集| 欧美一级高清片在线观看| 人妖欧美1区| 久久av一区二区三区漫画| 亚洲伊人网站| 手机毛片在线观看| 在线播放亚洲一区| 七七久久电影网| 精品乱码一区| 奇米精品一区二区三区在线观看一| 国产精品情侣呻吟对白视频| 3atv在线一区二区三区| 女同视频在线观看| 久久手机视频| 精品一区二区日韩| 九九热国产视频| 中文字幕久久久av一区| 欧美日本三级| 男女av免费观看| ...av二区三区久久精品| 亚洲av无码一区二区三区性色| 97视频在线观看视频免费视频| 狠狠做六月爱婷婷综合aⅴ| 日韩在线不卡一区| 午夜精品一区在线观看| 噜噜噜噜噜在线视频| 91色琪琪电影亚洲精品久久| 在线成人欧美| 久久日免费视频| 亚洲缚视频在线观看| 亚洲日本在线观看视频| 中国女人做爰视频| 国产网站一区二区| 精品黑人一区二区三区在线观看| 欧美影院久久久| 91精品1区| 最近中文字幕免费视频| 欧美一级二级在线观看| 成人短视频app| 国产一区二区三区播放| 久久精品一区二区三区不卡牛牛 | 成人四虎影院| 黄色大片在线免费看| 最新国产精品久久精品| 四虎国产精品永远| 国产精品自产拍高潮在线观看|