精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

成人手机电影网| www.桃色av嫩草.com| 国产精品午夜一区二区三区| 欧美在线免费视屏| 视频一区二区三| 国产露脸无套对白在线播放| 亚洲美女啪啪| 在线视频欧美性高潮| 乳色吐息在线观看| 天天免费亚洲黑人免费| 亚洲私人影院在线观看| 成人免费91在线看| caoporn国产| 综合久久亚洲| 亚洲视频一区二区三区| 超碰91在线播放| 日韩电影av| 亚洲欧美国产三级| 美女亚洲精品| 国产夫妻性生活视频| 欧美 日韩 国产精品免费观看| 精品亚洲aⅴ在线观看| 亚洲三级视频网站| av在线最新| 国产精品久久久久久户外露出 | 澳门av一区二区三区| 亚洲你懂的在线视频| 日本精品一区| 国产wwwxxx| 国产欧美激情| 久久久久久久久久久久av| 国产黄色录像片| 精品国产乱码久久久久久果冻传媒| 欧美一级在线视频| 污污网站在线观看视频| 影视一区二区三区| 亚洲a一区二区| 国产精品8888| 黄色免费在线观看网站| 欧美激情中文不卡| 久久久久久久有限公司| 亚洲视频中文字幕在线观看| 麻豆久久精品| 欧美与欧洲交xxxx免费观看| 国产va在线播放| 久久视频在线| 亚洲石原莉奈一区二区在线观看| 国产十八熟妇av成人一区| 日韩一区二区三区在线免费观看| 欧美性xxxxx| 97av视频在线观看| 777777777亚洲妇女| 欧美亚洲动漫精品| 精品免费日韩av| 国产精品高潮呻吟久久| 欧美欧美一区二区| 日本护士...精品国| 国产成人精品一区二| 亚洲xxx大片| 国产女18毛片多18精品| 日韩中文欧美在线| 国产精品亚洲欧美导航| 国产又粗又猛又黄又爽| 黄色日韩网站视频| 亚洲aⅴ男人的天堂在线观看| 国产欧美日韩综合精品一区二区三区| 久久99国产精品免费| 亚洲一区中文字幕在线观看| 性欧美videos另类hd| 国产成人精品aa毛片| 国产精品黄页免费高清在线观看| 中文字幕日本视频| 精品在线免费观看| 97人人模人人爽人人少妇| 国产一区二区女内射| 国产精品99久久久久久久vr| 成人一区二区三区四区| 亚洲人午夜射精精品日韩| 国产日产欧产精品推荐色| 欧美日韩精品免费看| 黄色大片在线免费观看| 亚洲欧洲精品一区二区三区 | 中文字幕一区二区免费| 久久99久久精品| 国产高清一区视频| 男女av在线| 国产精品国产三级国产aⅴ无密码| 强伦女教师2:伦理在线观看| 97人澡人人添人人爽欧美| 福利二区91精品bt7086| 天天操,天天操| 亚洲精品午夜| 精品视频www| 中国一级片在线观看| 好吊日精品视频| 国产成+人+综合+亚洲欧美丁香花| 欧美bbbbbbbbbbbb精品| 老司机一区二区| 精品在线视频一区二区| 亚洲三区在线播放| 91啦中文在线观看| 只有这里有精品| 欧美一区久久久| 日韩亚洲电影在线| 日韩在线免费观看av| 美女av在线免费看| 亚洲成年人网站在线观看| jizzjizzxxxx| 97久久综合精品久久久综合| 伊人久久综合97精品| 69精品久久久| 韩国三级在线一区| 青娱乐国产91| 国产美女高潮在线观看| 欧美性受xxxx| 亚洲AV无码国产精品| 婷婷激情图片久久| 国产成人精品a视频一区www| 欧美一区二区公司| **性色生活片久久毛片| 丰满少妇在线观看| 日韩福利视频一区| 日韩在线观看你懂的| 亚洲天堂av片| 成人丝袜18视频在线观看| 综合国产精品久久久| 成人香蕉视频| 亚洲精品国产suv| 国产一级免费观看| 日韩精品一二三| 久久综合久久久| 成人三级高清视频在线看| 欧美一区日韩一区| 国产全是老熟女太爽了| 国产日韩欧美一区| 成人在线免费网站| 77777影视视频在线观看| 一本到高清视频免费精品| 天堂久久久久久| 一本色道久久综合| 久久精品日产第一区二区三区精品版 | 一区在线视频观看| 99国精产品一二二线| 黄在线免费观看| 色8久久人人97超碰香蕉987| 亚洲av成人无码一二三在线观看| 国产一区美女| 国产精品一区二区av| 波多野结衣久久| 91精品国产综合久久蜜臀| 情侣偷拍对白清晰饥渴难耐| 久久99国产精品麻豆| 自拍另类欧美| 视频精品一区二区三区| 久久精品精品电影网| 国产乱色精品成人免费视频| 亚洲欧美偷拍卡通变态| 苍井空张开腿实干12次| 欧美日韩免费| 国产精品久久九九| av有码在线观看| 精品视频在线播放| 亚洲 欧美 日韩 在线| 国产欧美日韩麻豆91| 欧美女人性生活视频| 欧洲福利电影| 成人乱人伦精品视频在线观看| 成人av福利| 精品国产乱码久久久久久老虎| 妺妺窝人体色www在线下载| 成人久久视频在线观看| 日本日本19xxxⅹhd乱影响| 国产99久久久国产精品成人免费| 国产精品国产三级国产aⅴ浪潮 | 欧美激情亚洲国产| 日韩一级片免费在线观看| 狠狠色香婷婷久久亚洲精品| 色欲狠狠躁天天躁无码中文字幕| 黄网站免费久久| 99视频精品全部免费看| 另类在线视频| 国产精品第七影院| 中文国产字幕在线观看| 亚洲国产古装精品网站| 一级一片免费看| 亚洲少妇屁股交4| 亚洲妇女无套内射精| 宅男噜噜噜66国产日韩在线观看| 欧美在线播放一区| 2020国产精品小视频| 欧美—级高清免费播放| 亚洲 欧美 激情 另类| 欧美日韩一区二区三区| 青青青视频在线免费观看| 国产一区二区三区黄视频 | 欧美精品国产精品久久久 | 国产91aaa| 国产综合色区在线观看| 日韩在线视频导航| 好吊色在线观看| 欧美三级在线看| 日产亚洲一区二区三区| 国产精品视频第一区| 日本在线不卡一区二区| 奇米一区二区三区| 亚洲欧洲日韩综合二区| 啪啪激情综合网| 国产男女猛烈无遮挡91| 在线观看涩涩| 欧美高清激情视频| 午夜不卡视频| 亚洲精品久久7777777| 97超碰国产在线| 日本久久电影网| 久久精品一级片| 国产精品九色蝌蚪自拍| 91网站免费入口| 成人福利在线看| 手机看片国产精品| 青娱乐精品视频| 日韩在线视频在线观看| 亚洲视频免费| 欧洲xxxxx| 久久人人88| 日韩视频在线播放| 亚洲理论电影| 精品999在线观看| aiss精品大尺度系列| 成人妇女淫片aaaa视频| 国产精品黄色片| 国产成人拍精品视频午夜网站| 9999在线视频| 中文字幕日韩精品有码视频| 可以在线观看的黄色| 日韩av在线高清| 日韩一级免费视频| 亚洲国产精品久久久久久| 亚洲不卡免费视频| 日韩一区二区在线观看| 国产免费无遮挡| 欧美二区三区91| 国产一区二区视频免费| 日韩欧美极品在线观看| 亚洲天堂一区在线观看| 懂色av影视一区二区三区| 国产精品suv一区二区69| 亚洲少妇30p| 日本一级二级视频| 亚洲欧美另类小说| 久草视频中文在线| 亚洲国产精品自拍| 国产精品自拍视频一区| 亚洲欧美福利一区二区| 久久久久久久久久一区二区三区| 亚洲激情校园春色| 加勒比av在线播放| 亚洲一区二区视频| 97超碰人人干| 一本色道a无线码一区v| 久久久久女人精品毛片九一| 欧美日韩激情视频| 乱子伦一区二区三区| 欧美在线啊v一区| 黄色在线视频网址| 欧美三级中文字幕| 不卡的日韩av| 日韩视频一区二区三区在线播放 | 免费观看亚洲| 78色国产精品| 日韩性xxx| 日本国产高清不卡| 国内自拍亚洲| 99久久99| 亚洲欧洲av| 在线观看欧美亚洲| 一区二区电影在线观看| 精品无码国模私拍视频| 久久久久久久高潮| 欧美日韩亚洲自拍| 水野朝阳av一区二区三区| 亚洲人视频在线| 成人午夜在线播放| 成人黄色免费网址| ...中文天堂在线一区| 日本五十熟hd丰满| 在线看日本不卡| 国产乱人乱偷精品视频| 欧美日韩午夜在线| 亚洲乱码国产乱码精品精软件| 亚洲精品乱码久久久久久按摩观| 国内三级在线观看| 久久国产精品亚洲| 在线天堂新版最新版在线8| 国产精品视频yy9099| 国产伦精品一区二区三区免费优势| 国产欧美欧洲| 91亚洲人成网污www| 青青草视频在线免费播放| 麻豆精品视频在线| 伊人网综合视频| 亚洲视频每日更新| 在线观看 亚洲| 欧美成人一区二区| porn亚洲| 午夜精品久久久久久久久久久久久| av在线日韩| 成人欧美一区二区| 日韩精品一区二区三区免费观影| 国产精品视频一二三四区| 美女国产一区| av天堂一区二区| 国产精品国产精品国产专区不片| 青青操免费在线视频| 欧美伦理视频网站| 电影在线一区| 奇米成人av国产一区二区三区| 色天使综合视频| 999国内精品视频在线| 日韩1区在线| 久久无码高潮喷水| 粉嫩aⅴ一区二区三区四区五区| 网爆门在线观看| 欧洲在线/亚洲| 天天综合天天综合| 久久国产精品免费视频| 亚洲精品69| 亚洲人成网站在线播放2019| 久久久成人网| 在线观看国产网站| 亚洲国产一区视频| 国产免费一区二区三区最新不卡 | 成人高清在线观看视频| 日本一区二区三区国色天香| 免费黄色网址在线| 日韩免费视频线观看| av在线free| 国产精品久久久久久久久久ktv | 成人97精品毛片免费看| 视频在线99| 久久亚洲一区| 3d动漫精品啪啪一区二区下载| 舔着乳尖日韩一区| 亚洲色偷精品一区二区三区| 午夜精品蜜臀一区二区三区免费| 国产香蕉精品| 国产97在线 | 亚洲| 99久久99久久精品免费观看| 国产午夜激情视频| 欧美日本一区二区三区四区| 国产在线观看网站| 欧洲美女7788成人免费视频| 国产欧美亚洲精品a| 欧美日韩亚洲一| 欧美激情中文字幕一区二区| 姑娘第5集在线观看免费好剧| 亚洲欧美综合另类中字| 欧美理论影院| 欧美亚洲免费高清在线观看| 免费看亚洲片| 国产精品一二三区在线观看| 在线观看日韩毛片| 高清美女视频一区| 国产精品久久久久影院日本| 欧美国产一区二区三区激情无套| 两性午夜免费视频| 亚洲成av人片| 在线观看xxx| 久久久伊人日本| 日韩人体视频| 午夜在线观看av| 亚洲激情男女视频| 性一交一乱一乱一视频| 97视频在线观看播放| 你微笑时很美电视剧整集高清不卡| av丝袜天堂网| 亚洲精品福利视频网站| 天堂av2024| 国产精品久久久久久久美男| 亚洲国产精品成人| 久久久久久久久久久影视| 婷婷综合五月天| 在线观看a视频| 国产传媒一区二区| 亚洲综合国产| 日本精品在线免费观看| 亚洲第一网站免费视频| 草莓视频成人appios| 亚洲一区二区三区四区中文| 国产成人在线网站| 国产真人无遮挡作爱免费视频| 久久影视电视剧免费网站| 美女扒开腿让男人桶爽久久动漫| av免费网站观看| 日韩一区在线免费观看| 天天插天天干天天操| 国产一区视频在线| 亚洲高清激情| 久久嫩草捆绑紧缚| 精品国产91久久久久久久妲己| 国产福利亚洲|