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

DeepSeek本地部署詳細(xì)指南!從 Ollama 到個(gè)人知識(shí)庫(kù)應(yīng)用

開(kāi)發(fā) 人工智能
通過(guò)對(duì)DeepSeek本地部署詳細(xì)講解,希望每個(gè)人都能擁有專(zhuān)屬 AI 助手,安全高效,開(kāi)啟智能化知識(shí)管理新體驗(yàn)。

作者:lushen

一、系統(tǒng)介紹

mbp pro:

二、Ollama 安裝與配置

1. 跨平臺(tái)安裝指南

Ollama 作為本地運(yùn)行大模型的利器,支持三大主流操作系統(tǒng):

# macOS一鍵安裝
# Windows用戶(hù)
訪(fǎng)問(wèn)官網(wǎng) https://ollama.com/download 下載安裝包

# Linux安裝(Ubuntu/Debian為例)
curl -fsSL https://ollama.com/install.sh | sudo bash
sudo usermod -aG ollama $USER  # 添加用戶(hù)權(quán)限
sudo systemctl start ollama    # 啟動(dòng)服務(wù)

2. 服務(wù)驗(yàn)證

ollama -v

# 輸出ollama version is 0.5.7

出現(xiàn)上述則表示安裝成功,可瀏覽器訪(fǎng)問(wèn)http://localhost:11434/驗(yàn)證。

三、Deepseek 模型部署

1. 模型下載與加載

以 deepseek r1 模型為例:

(1) 訪(fǎng)問(wèn)https://ollama.com/library/deepseek-r1,默認(rèn)為 7b 模型,如需其他模型,可以在當(dāng)前頁(yè)搜索所需模型

(2) 模型詳情頁(yè)復(fù)制安裝命令ollama run deepseek-r1 

(3) 安裝完成后在終端執(zhí)行:

ollama run deepseek-r1
# 執(zhí)行后
pulling manifest
pulling 96c415656d37... 100% ▕██████████████▏ 4.7 GB
pulling 369ca498f347... 100% ▕██████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████▏ 148 B
pulling 40fb844194b2... 100% ▕██████████████▏ 487 B
verifying sha256 digest
writing manifest
success
> > > Send a message (/? for help)
> > > `
> > > 當(dāng)看到上述提示,即可開(kāi)始模型對(duì)話(huà)。
  • mac 后臺(tái)標(biāo)識(shí)

  • win 后臺(tái)標(biāo)識(shí)見(jiàn)任務(wù)欄托盤(pán)區(qū)

2. 模型驗(yàn)證測(cè)試

運(yùn)行交互式對(duì)話(huà)測(cè)試:

請(qǐng)用Python寫(xiě)一個(gè)快速排序算法

當(dāng)看到完整代碼輸出,說(shuō)明模型已成功加載。

硬件要求建議:

  • 最低配置:16GB 內(nèi)存 + 8GB 顯存
  • 推薦配置:32GB 內(nèi)存 + 16GB 顯存(RTX 3060 級(jí)別)

四、安裝交互 ui

1. chatbox

(1) 下載地址chatboxai.app

(2) 配置本地模型

  • 進(jìn)入設(shè)置頁(yè)面

  • 選擇 ollama api (本地部署)
  • 配置本機(jī)地址,默認(rèn)http://127.0.0.1:11434

至此即可開(kāi)啟問(wèn)答模式。

2. Page Assist 瀏覽器插件 

  • 安裝地址Page Assist - 本地 AI 模型的 Web UI
  • 安裝后簡(jiǎn)單配置即可開(kāi)啟問(wèn)答模式,功能豐富,可以參考官方引導(dǎo)
  • 本插件支持本地知識(shí)庫(kù)建設(shè),因本次使用 Dify 建設(shè),在此不贅述。

五、Dify 知識(shí)庫(kù)搭建

參考文檔地址Docker Compose 部署

1. 環(huán)境準(zhǔn)備

(1) 拉取源代碼,準(zhǔn)備環(huán)境

# mac os
# 克隆 Dify 源代碼至本地環(huán)境。
git clone https://github.com/langgenius/dify.git

# 進(jìn)入 Dify 源代碼的 Docker 目錄
cd dify/docker

# 復(fù)制環(huán)境配置文件
cp .env.example .env

(2) 啟動(dòng) Docker 容器(需要先安裝 D ocker)

docker compose up -d
# 如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d

# 正常返回
[+] Running 74/9
 ? db Pulled                                                    834.2s
 ? sandbox Pulled                                              1120.7s
 ? weaviate Pulled                                              526.5s
 ? web Pulled                                                   174.0s
 ? redis Pulled                                                 893.7s
 ? api Pulled                                                  2919.8s
 ? worker Pulled                                               2919.8s
 ? ssrf_proxy Pulled                                            494.0s
 ? nginx Pulled                                                 184.7s
[+] Running 11/11
 ? Network docker_default             Created                     0.0s
 ? Network docker_ssrf_proxy_network  Created                     0.0s
 ? Container docker-db-1              Started                     1.1s
 ? Container docker-web-1             Started                     1.1s
 ? Container docker-redis-1           Started                     1.1s
 ? Container docker-sandbox-1         Started                     1.1s
 ? Container docker-weaviate-1        Started                     1.1s
 ? Container docker-ssrf_proxy-1      Started                     1.1s
 ? Container docker-api-1             Started                     0.7s
 ? Container docker-worker-1          Started                     0.7s
 ? Container docker-nginx-1           Started                     0.8s

在此階段可能會(huì)遇到下列失敗的情況,可以嘗試切換源解決我當(dāng)時(shí)的條件。

  • 修改配置后重啟 docker
  • 辦公網(wǎng)環(huán)境下
docker compose up -d

[+] Running 9/9
 ? web Error        context canceled                             14.9s
 ? redis Error      context canceled                             14.9s
 ? db Error         context canceled                             14.9s
 ? nginx Error      context canceled                             14.9s
 ? ssrf_proxy Error context canceled                             14.9s
 ? sandbox Error    Head "https://registry-1.do...               14.9s
 ? api Error        context canceled                             14.9s
 ? worker Error     context canceled                             14.9s
 ? weaviate Error   context canceled                             14.9s
Error response from daemon: Head "https://registry-1.docker.io/v2/langgenius/dify-sandbox/manifests/0.2.10": Get "https://auth.docker.io/token?scope=repository%3Alanggenius%2Fdify-sandbox%3Apull&service=registry.docker.io": EOF

解決方法:

  • 右上角齒輪圖標(biāo)進(jìn)入設(shè)置 -> Docker engine,在配置中添加
  • 寫(xiě)入以下內(nèi)容 ocker)
{
  // ...
  "registry-mirrors": [
    "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io",
    "https://docker.unsee.tech",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "http://mirror.azure.cn",
    "https://dockerpull.org",
    "https://dockerhub.icu",
    "https://hub.rat.dev"
  ]
}

2. Dify 創(chuàng)建聊天

(1) 訪(fǎng)問(wèn)http://localhost/(默認(rèn) 80 端口) 進(jìn)入 dify

(2) 首次進(jìn)入初始化設(shè)置賬號(hào)密碼

(3) 點(diǎn)擊 Dify 平臺(tái)右上角頭像 → 設(shè)置 → 模型供應(yīng)商,選擇 Ollama,輕點(diǎn)“添加模型”。

在配置 url 時(shí),因?yàn)槭?docker 服務(wù),http://localhost:11434 存在無(wú)法訪(fǎng)問(wèn)的情況,可以嘗試http://host.docker.internal:11434。

(4) 至此,可以開(kāi)始創(chuàng)建應(yīng)用,在主頁(yè)選擇 全部 -> 創(chuàng)建空白應(yīng)用 -> 填入應(yīng)用信息即可

3. Dify 知識(shí)庫(kù)創(chuàng)建

主頁(yè)選擇 知識(shí)庫(kù) -> 創(chuàng)建知識(shí)庫(kù) -> 上傳知識(shí) -> 等待處理完成

進(jìn)入聊天應(yīng)用,選擇剛才創(chuàng)建的知識(shí)庫(kù),即可開(kāi)始帶有私域知識(shí)的溝通。

六、應(yīng)用測(cè)試

1. 翻譯場(chǎng)景

(1) 本地客戶(hù)端具有部分國(guó)際化測(cè)試文件需要執(zhí)行翻譯,格式示例如下,多層嵌套的 json 格式,value 為string類(lèi)型。需要利用大模型對(duì)整個(gè) json 文件進(jìn)行翻譯,將中文翻譯為英文后按原格式返回

// zh.json
{
  "window": {
    "willUnload": {
      "title": "確認(rèn)刷新當(dāng)前頁(yè)面嗎?",
      "message": "系統(tǒng)可能不會(huì)保存您做的更改",
      "unload_bt": "重新加載",
      "cancel_bt": "取消"
    }
  }
}
ocker)

(2) 實(shí)際應(yīng)用測(cè)試,以deepseek-r1:7b/14b模型做測(cè)試。得到結(jié)果如下

(3) 執(zhí)行腳本trans.js 

const fs = require("fs");
const axios = require("axios");

// 1. 讀取本地JSON文件
const readJsonFile = (filePath) => {
  return new Promise((resolve, reject) => {
    fs.readFile(filePath, "utf8", (err, data) => {
      if (err) {
        reject(err);
      } else {
        resolve(JSON.parse(data));
      }
    });
  });
};

const MODEL = "deepseek-r1:14b";

// 2. 調(diào)用本地大模型接口進(jìn)行翻譯
const translateText = async (text, key) => {
  let response;
  try {
    console.time(`run worker ${key}`);
    response = await axios.post("http://localhost:11434/api/generate", {
      // model: 'deepseek-r1:7b',
      model: MODEL,
      prompt: `有部分客戶(hù)端國(guó)際化的配置文件,內(nèi)容為json格式,需要翻譯,要求按步驟進(jìn)行翻譯:
      1. 將中文翻譯為英文
      2. 保持原有json格式不變,將value替換成翻譯后的文本
      3. 你始終以合法的JSON格式響應(yīng),返回結(jié)果格式如: {"key1":"翻譯后的文本1","key2":"翻譯后的文本2"},直接返回結(jié)果,不需要符號(hào)包裹
      配置文件
      """${JSON.stringify(text)}"""`,
      stream: false,
    });
    console.timeEnd(`run worker ${key}`);

    const splitText = "</think>";
    const startIndex = response.data.response.indexOf(splitText);
    const result = response.data.response
      .slice(startIndex + splitText.length)
      .trim()
      .replace(/<<+|>>+/g, "");
    // console.log('response.data.response:', response.data.response, JSON.parse(result), result)
    return JSON.parse(result); // 假設(shè)接口返回的翻譯結(jié)果在response.data.translatedText中
  } catch (error) {
    console.error("翻譯出錯(cuò):", key);
    return translateText(text, key); // 如果翻譯失敗,返回原文
  }
};

// 3. 并行翻譯邏輯(手動(dòng)控制并發(fā))
const translateJson = async (jsonData, concurrency = 5) => {
  const entries = Object.entries(jsonData);
  const translatedData = {};
  let currentIndex = 0; // 當(dāng)前處理的任務(wù)索引

  // 定義工作線(xiàn)程:每個(gè)線(xiàn)程不斷處理下一個(gè)任務(wù)
  const worker = async () => {
    while (currentIndex < entries.length) {
      const index = currentIndex++;
      if (index >= entries.length) break; // 所有任務(wù)已完成
      const [key, value] = entries[index];
      try {
        translatedData[key] = await translateText(value, key);
      } catch (error) {
        translatedData[key] = value; // 保留原文
      }
    }
  };

  // 啟動(dòng)指定數(shù)量的工作線(xiàn)程
  const workers = Array(concurrency).fill(null).map(worker);
  await Promise.all(workers); // 等待所有線(xiàn)程完成

  const result = {};

  // 保持原有順序
  entries.forEach(([key, value]) => {
    result[key] = translatedData[key] || value;
  });

  return result;
};

// 4. 將翻譯后的內(nèi)容生成新的文件
const writeTranslatedJson = (filePath, data) => {
  return new Promise((resolve, reject) => {
    fs.writeFile(filePath, JSON.stringify(data, null, 2), "utf8", (err) => {
      if (err) {
        reject(err);
      } else {
        resolve();
      }
    });
  });
};

function compareObjectsWithPath(obj1, obj2, path = "") {
  // 類(lèi)型不同時(shí)直接返回路徑
  if (typeof obj1 !== typeof obj2) {
    return { success: false, path: path || "root" };
  }

  // 處理可遍歷對(duì)象(對(duì)象或數(shù)組)
  if (typeof obj1 === "object" && obj1 !== null && obj2 !== null) {
    const isArr1 = Array.isArray(obj1);
    const isArr2 = Array.isArray(obj2);

    // 數(shù)組類(lèi)型不一致
    if (isArr1 !== isArr2) {
      return { success: false, path: path || "root" };
    }

    if (isArr1) {
      // 數(shù)組長(zhǎng)度不同
      if (obj1.length !== obj2.length) {
        return { success: false, path: path || "root" };
      }

      // 遞歸檢查數(shù)組元素
      for (let i = 0; i < obj1.length; i++) {
        const currentPath = `${path}[${i}]`;
        const result = compareObjectsWithPath(obj1[i], obj2[i], currentPath);
        if (!result.success) return result;
      }
      return { success: true };
    } else {
      // 檢查是否為純對(duì)象(字面量對(duì)象)
      const isPlainObj1 = isPlainObject(obj1);
      const isPlainObj2 = isPlainObject(obj2);

      if (isPlainObj1 !== isPlainObj2) {
        return { success: false, path: path || "root" };
      }

      // 非純對(duì)象(如 Date、RegExp)需檢查是否均為字符串
      if (!isPlainObj1) {
        return typeof obj1 === "string" && typeof obj2 === "string"
          ? { success: true }
          : { success: false, path: path || "root" };
      }

      // 合并所有 key 并檢查數(shù)量
      const keys1 = Object.keys(obj1);
      const keys2 = Object.keys(obj2);
      const allKeys = new Set([...keys1, ...keys2]);

      if (allKeys.size !== keys1.length || allKeys.size !== keys2.length) {
        return { success: false, path: path || "root" };
      }

      // 遞歸檢查每個(gè)屬性
      for (const key of allKeys) {
        const currentPath = path ? `${path}.${key}` : key;

        if (!keys1.includes(key) || !keys2.includes(key)) {
          return { success: false, path: currentPath };
        }
        const result = compareObjectsWithPath(
          obj1[key],
          obj2[key],
          currentPath
        );
        if (!result.success) return result;
      }
      return { success: true };
    }
  } else {
    // 基本類(lèi)型:檢查是否均為字符串
    return typeof obj1 === "string" && typeof obj2 === "string"
      ? { success: true }
      : { success: false, path: path || "root" };
  }
}

// 判斷是否為純對(duì)象(字面量對(duì)象)
function isPlainObject(value) {
  return Object.prototype.toString.call(value) === "[object Object]";
}

// 主函數(shù)
const main = async () => {
  console.time("run main");

  const inputFilePath = "./locales/zh.json"; // 輸入的JSON文件路徑
  const outputFilePath = `output_${MODEL}.json`; // 輸出的JSON文件路徑

  try {
    // 讀取JSON文件
    const jsonData = await readJsonFile(inputFilePath);

    // 翻譯JSON內(nèi)容
    const translatedData = await translateJson(jsonData);

    // 將翻譯后的內(nèi)容寫(xiě)入新文件
    await writeTranslatedJson(outputFilePath, translatedData);

    console.log(
      "翻譯完成,結(jié)果是否存在遺漏項(xiàng):",
      compareObjectsWithPath(jsonData, translatedData)
    );
    console.log("翻譯完成,結(jié)果已寫(xiě)入:", outputFilePath);
  } catch (error) {
    console.error("處理過(guò)程中出錯(cuò):", error);
  }
  console.timeEnd("run main");
};

// 執(zhí)行主函數(shù)
main();

7b:

run worker window: 1:16.909 (m:ss.mmm)
翻譯出錯(cuò): window
run worker contextMenu: 1:19.915 (m:ss.mmm)
翻譯出錯(cuò): contextMenu
run worker autoUpdater: 1:24.182 (m:ss.mmm)
run worker menu: 1:54.272 (m:ss.mmm)
run worker openWindowWarn: 2:08.219 (m:ss.mmm)
翻譯出錯(cuò): openWindowWarn
run worker contextMenu: 54.257s
翻譯出錯(cuò): contextMenu
run worker createPreloadFileWarn: 1:05.595 (m:ss.mmm)
翻譯出錯(cuò): createPreloadFileWarn
run worker window: 1:13.320 (m:ss.mmm)
翻譯出錯(cuò): window
run worker openWindowWarn: 42.933s
run worker renderer: 1:06.620 (m:ss.mmm)
run worker contextMenu: 58.129s
run worker createPreloadFileWarn: 51.205s
run worker window: 1:10.067 (m:ss.mmm)
翻譯出錯(cuò): window
run worker window: 17.583s
翻譯出錯(cuò): window
run worker window: 16.479s
翻譯出錯(cuò): window
run worker window: 53.783s
翻譯完成,結(jié)果是否存在遺漏項(xiàng): { success: false, path: 'menu' }
翻譯完成,結(jié)果已寫(xiě)入: output_deepseek-r1:7b.json
run main: 5:08.166 (m:ss.mmm)
![img_1.png](img_1.png)

----------------
run worker openWindowWarn: 27.835s
翻譯出錯(cuò): openWindowWarn
run worker window: 47.317s
翻譯出錯(cuò): window
run worker contextMenu: 1:00.365 (m:ss.mmm)
翻譯出錯(cuò): contextMenu
run worker openWindowWarn: 42.320s
run worker window: 1:00.580 (m:ss.mmm)
翻譯出錯(cuò): window
run worker menu: 2:01.575 (m:ss.mmm)
翻譯出錯(cuò): menu
run worker contextMenu: 1:05.158 (m:ss.mmm)
run worker autoUpdater: 2:08.553 (m:ss.mmm)
run worker createPreloadFileWarn: 1:41.123 (m:ss.mmm)
run worker window: 1:28.518 (m:ss.mmm)
翻譯出錯(cuò): window
run worker renderer: 1:46.725 (m:ss.mmm)
run worker menu: 1:54.031 (m:ss.mmm)
翻譯出錯(cuò): menu
run worker window: 57.867s
run worker menu: 1:16.267 (m:ss.mmm)
翻譯完成,結(jié)果是否存在遺漏項(xiàng): { success: false, path: 'menu' }
翻譯完成,結(jié)果已寫(xiě)入: output_deepseek-r1:7b.json
run main: 5:11.880 (m:ss.mmm)
![img_2.png](img_2.png)

翻譯結(jié)果:

"window": {
   "willUnload": {
     "title": "What should you confirm before refreshing the current page?",
     "message": "the system might not save your changes",
     "unload_bt": "Reload",
     "cancel_bt": "Cancel"
   }
 },

14b:

run worker window: 2:15.983 (m:ss.mmm)
run worker contextMenu: 2:17.554 (m:ss.mmm)
run worker autoUpdater: 3:02.960 (m:ss.mmm)
run worker menu: 4:06.753 (m:ss.mmm)
run worker openWindowWarn: 4:14.074 (m:ss.mmm)
run worker createPreloadFileWarn: 2:04.443 (m:ss.mmm)
run worker renderer: 2:21.099 (m:ss.mmm)
翻譯完成,結(jié)果是否存在遺漏項(xiàng): { success: true }
翻譯完成,結(jié)果已寫(xiě)入: output_deepseek-r1:14b.json
run main: 4:38.673 (m:ss.mmm)


------------------------

run worker autoUpdater: 1:34.068 (m:ss.mmm)
run worker openWindowWarn: 1:57.715 (m:ss.mmm)
run worker window: 2:09.907 (m:ss.mmm)
run worker contextMenu: 2:14.214 (m:ss.mmm)
run worker renderer: 1:38.631 (m:ss.mmm)
run worker createPreloadFileWarn: 2:24.484 (m:ss.mmm)
run worker menu: 4:16.409 (m:ss.mmm)
翻譯出錯(cuò): menu
run worker menu: 2:00.482 (m:ss.mmm)
翻譯完成,結(jié)果是否存在遺漏項(xiàng): { success: true }
翻譯完成,結(jié)果已寫(xiě)入: output_deepseek-r1:14b.json
run main: 6:16.900 (m:ss.mmm)

翻譯結(jié)果:

"window": {
    "willUnload": {
      "title": "Confirm to refresh the current page?",
      "message": "The system may not save your changes.",
      "unload_bt": "Reload",
      "cancel_bt": "Cancel"
    }
  },

(4) 整體體驗(yàn)下來(lái),14b 模型在翻譯工作上比 7b 模型更為準(zhǔn)確,一次性翻譯成功率高。7B 模型翻譯結(jié)果噪聲多,返回結(jié)果可序列化效果差。翻譯結(jié)果遠(yuǎn)遠(yuǎn)不如 14b。

結(jié)論

14b 在 macos 執(zhí)行效率能滿(mǎn)足特定業(yè)務(wù)場(chǎng)景要求。

責(zé)任編輯:趙寧寧 來(lái)源: 騰訊技術(shù)工程
相關(guān)推薦

2025-02-14 00:00:35

2025-02-12 12:12:59

2025-03-26 08:50:00

OllamaFastGPTDeepseek

2025-03-04 09:26:37

2025-02-28 07:11:20

2011-12-13 18:00:54

2025-02-20 09:27:46

2025-04-14 00:22:00

2025-02-11 00:00:25

2025-02-12 08:21:55

OllamaChatboxDeepSeek

2025-02-03 06:00:00

2015-06-25 13:06:48

大數(shù)據(jù)從選擇到應(yīng)用

2024-01-10 09:00:00

OpenAILocalGPT開(kāi)源大模型

2025-10-28 02:00:00

2025-04-21 08:47:18

2025-02-13 08:30:11

2025-03-11 00:25:00

組件接口工具

2023-06-12 07:43:05

知識(shí)庫(kù)性能優(yōu)化
點(diǎn)贊
收藏

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

亚洲自拍欧美精品| 亚洲网站在线| 91精品国产免费久久综合| 久久av秘一区二区三区| 国产情侣在线播放| 激情自拍一区| 这里只有精品丝袜| 色综合久久久无码中文字幕波多| 老司机深夜福利在线观看| 久久亚洲欧美国产精品乐播| 国产欧美日韩精品丝袜高跟鞋| 2018天天弄| 精品一区在线| 欧美成人video| 999在线免费视频| 成人片在线看| 99久久伊人网影院| 91久久久久久久一区二区| 日本网站在线播放| 欧美激情欧美| 亚洲视频在线视频| 美女久久久久久久久| 精品久久福利| 韩曰欧美视频免费观看| 欧美 国产 精品| 电影在线一区| 成+人+亚洲+综合天堂| 国产女同一区二区| 中文字幕高清在线免费播放| 亚洲一区在线| 一区二区三区视频免费| 四虎精品一区二区| 久久精品免视看国产成人| 欧美综合视频在线观看| 免费国产黄色网址| 日本三级在线观看网站| 国产精品久久久久久久久免费相片 | 青青国产91久久久久久| 性欧美在线看片a免费观看 | 午夜精品久久久久久久久久久 | 久久久久国产精品一区三寸| 久久露脸国产精品| 久久成人在线观看| 欧美/亚洲一区| www.美女亚洲精品| av片在线免费看| 欧美日韩中文一区二区| 亚洲图片制服诱惑| 久久精品国产亚洲AV熟女| 美女av一区| 欧美精品一区二区三区高清aⅴ| 韩国三级在线播放| 国产情侣一区在线| 日韩一级免费一区| 色男人天堂av| 日本免费一区二区视频| 制服丝袜日韩国产| 伊人影院在线观看视频| 亚洲日本va午夜在线电影| 日韩美女天天操| 久久久久久久穴| 精品成人自拍视频| 精品中文视频在线| 蜜桃av乱码一区二区三区| 最新精品国偷自产在线| 亚洲香蕉成视频在线观看| 亚洲色成人网站www永久四虎| 亚洲自拍电影| 亚洲最大在线视频| gv天堂gv无码男同在线观看 | 国产爆乳无码一区二区麻豆| 最爽无遮挡行房视频在线| 亚洲男女一区二区三区| 男人天堂a在线| 中文在线8资源库| 欧美亚洲日本一区| 一级片免费在线观看视频| 91精品福利观看| 日韩欧美一二三区| 国产精品第七页| 精品理论电影| 久久国产精品99国产精| 日韩网红少妇无码视频香港| 麻豆久久精品| 91精品在线观看视频| 国产1区在线观看| www国产精品av| 日韩欧美激情一区二区| 超碰在线最新| 欧美特黄级在线| 国产熟人av一二三区| 国产95亚洲| 精品小视频在线| 69夜色精品国产69乱| 亚洲福利精品| 国产视频福利一区| 天天干,天天操,天天射| 欧美极品aⅴ影院| 久久精品无码中文字幕| 成人不卡视频| 亚洲国模精品一区| 国产小视频自拍| 国内在线观看一区二区三区| 91高潮精品免费porn| 亚洲午夜在线播放| jiyouzz国产精品久久| 一区二区三区四区欧美| 91桃色在线观看| 在线不卡中文字幕播放| 免费啪视频在线观看| 日韩精品欧美| 欧美中文字幕在线视频| 精品人妻一区二区三区三区四区 | 成人av免费在线观看| 日韩亚洲一区在线播放| mm视频在线视频| 6080yy午夜一二三区久久| 大又大又粗又硬又爽少妇毛片| 亚洲欧美偷拍自拍| 国产精品入口尤物| 日本福利片高清在线观看| 伊人开心综合网| 999精彩视频| 中文精品一区二区| 97久久超碰福利国产精品…| 国产黄a三级三级三级| 国产精品青草久久| 久久久久人妻精品一区三寸| 成人在线视频你懂的| 色婷婷av一区二区三区在线观看| 日韩不卡视频在线| heyzo一本久久综合| 免费网站永久免费观看| 国产一区二区三区免费在线| 中文字幕在线成人| 日韩av免费播放| 久久久不卡影院| 人妻有码中文字幕| 久久动漫网址| 国内精品久久久| 刘亦菲毛片一区二区三区| 亚洲免费观看高清完整 | 9色porny自拍视频一区二区| 免费观看亚洲视频| 麻豆精品国产| 蜜月aⅴ免费一区二区三区| 国产又爽又黄又嫩又猛又粗| 国产精品国产自产拍高清av| 中文字幕 91| 久久免费av| 91久久久久久久久| 在线观看a级片| 日韩女同互慰一区二区| 精品深夜av无码一区二区老年| 国产成人在线观看免费网站| 国产成人亚洲综合无码| 日韩在线精品强乱中文字幕| 色综合视频一区中文字幕| 亚洲第一成人av| 亚洲aⅴ怡春院| 国产又爽又黄无码无遮挡在线观看| 一本一本久久| 欧美中日韩免费视频| 亚洲精品一区三区三区在线观看| 中文字幕日韩精品有码视频| 国产一区二区女内射| 亚洲乱码日产精品bd| 少妇伦子伦精品无吗| 中文日韩欧美| 色噜噜一区二区| 国产999精品在线观看| 欧美极品美女电影一区| 同心难改在线观看| 欧美午夜电影一区| 男人的天堂久久久| 成人av网站免费观看| 中文字幕乱码人妻综合二区三区| 日韩av专区| av一区观看| 综合在线影院| 欧美成人一区二区三区电影| 姝姝窝人体www聚色窝| 色噜噜狠狠色综合欧洲selulu| 99在线视频免费| 国产 欧美在线| 国产精品免费观看久久| 亚洲国产精品日韩专区av有中文| 国产一区二区免费在线观看| 国模一区二区| 欧美激情二区三区| 国产区视频在线| 日韩免费看网站| 精品视频一二三区| 亚洲综合视频网| 97在线观看免费视频| 国产精品18久久久| 九九九在线观看视频| 国产在线不卡| 亚洲精品在线视频观看| 国产suv精品一区| 国产美女精品视频| 国产高清中文字幕在线| xxav国产精品美女主播| 亚洲人视频在线观看| 91精品国产色综合久久久蜜香臀| 青青草免费观看视频| 亚洲精品亚洲人成人网在线播放| 成都免费高清电影| 成人精品电影在线观看| 在线观看日本一区二区| 先锋影音久久久| 久艹在线免费观看| 久久精品国产99久久| 欧美精品v日韩精品v国产精品| 久久视频社区| 久久香蕉视频网站| 欧美色网一区| 欧美第一淫aaasss性| 91在线视频| 日韩风俗一区 二区| 99热这里只有精品1| 在线观看精品一区| 色婷婷av国产精品| 亚洲最快最全在线视频| 亚洲精品一区二区三区在线播放| 久久影院午夜片一区| 精品国产aⅴ一区二区三区东京热| 老汉av免费一区二区三区| 亚洲国产精品久久久久婷蜜芽| 狠狠爱成人网| 男女激烈动态图| 婷婷综合伊人| 在线精品亚洲一区二区| 欧美日韩精品一区二区视频| 欧美精品七区| 亚洲成人一品| 久久伊人资源站| 琪琪久久久久日韩精品| 国产伦精品一区二区三区视频孕妇 | 91中文字幕永久在线| av一区二区三区四区| 亚洲一二三四五| 成人黄色在线网站| 国产污在线观看| 成人av电影免费在线播放| 四虎成人免费视频| 成人av午夜电影| 毛茸茸free性熟hd| 91在线视频网址| 国产福利短视频| 久久精品男人的天堂| 欧美做受xxxxxⅹ性视频| 久久久777精品电影网影网| 日韩人妻无码精品综合区| 国产欧美一区二区精品性| 91激情视频在线观看| 亚洲国产精华液网站w| 久久久久亚洲AV成人无在| 国产精品看片你懂得| 熟女少妇a性色生活片毛片| 亚洲欧美另类图片小说| 九九九在线视频| 亚洲超碰97人人做人人爱| 五月婷婷中文字幕| 色94色欧美sute亚洲线路一久 | 亚洲一区二区三区精品动漫| 四季av一区二区凹凸精品| 特色特色大片在线| 激情欧美一区| 少妇性l交大片| 久久成人免费网| 麻豆av免费看| 26uuu久久天堂性欧美| 国产精品av久久久久久无| 中文字幕一区二区三区不卡在线| 欧美成人精品激情在线视频| 午夜免费久久看| 精品一区二区无码| 欧美一区二区三区在线观看 | 丝袜美腿亚洲一区二区| www.久久ai| 国产91对白在线播放| 国产精品亲子伦av一区二区三区| 亚洲va国产va天堂va久久| 卡通动漫国产精品| 亚洲国内在线| 伊人成人在线视频| 男女污污的视频| 懂色av一区二区夜夜嗨| 久久只有这里有精品| 亚洲黄色在线视频| 波多野结衣视频在线看| 日韩欧美一二三| 成人在线免费电影| 欧美激情视频免费观看| 成人不卡视频| 国产一区二区三区免费不卡| 大片网站久久| 黄色一级视频片| 国产又粗又猛又爽又黄91精品| yy6080午夜| 亚洲素人一区二区| 午夜精品免费观看| 亚洲成人性视频| 成人在线网址| 国产精品户外野外| 美女网站色精品尤物极品姐弟| 一本一本久久a久久精品综合妖精| 亚洲激情综合| 亚洲一区二区中文字幕在线观看| 久久女同互慰一区二区三区| 国产盗摄x88av| 欧美色电影在线| 日韩国产福利| 久久久久久97| 欧美三级一区| 自拍视频一区二区三区| 天堂久久一区二区三区| 人妻av一区二区| 亚洲精品久久嫩草网站秘色| 中文字幕视频在线播放| 亚洲摸下面视频| 国产理论在线| 国产精品制服诱惑| 欧美人成在线| 亚洲一区二区偷拍| 国产精品久久久久久久久搜平片| 精品一区二区无码| 国产亚洲精品美女| 欧美性xxx| 欧美日韩国产三区| 性8sex亚洲区入口| 一本加勒比波多野结衣| 亚洲午夜在线视频| 亚洲精品福利网站| 欧美日韩福利电影| 天堂va在线高清一区| 熟女视频一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 91久久久久久久久久久久久久| 欧美性感一类影片在线播放| 国产区在线视频| 国产精品主播视频| 日韩成人精品一区| www.久久久精品| 综合激情成人伊人| 国产三级伦理片| 欧美大学生性色视频| 91亚洲精品视频在线观看| 欧美无砖专区免费| jvid福利写真一区二区三区| 黄色免费av网站| 亚洲性无码av在线| 高清在线一区| 国产精品夜夜夜爽张柏芝| 国产精品一区在线| 久久精品国产亚洲AV无码麻豆| 精品国产a毛片| 擼擼色在线看观看免费| 热re99久久精品国99热蜜月| 日韩成人一级大片| 成人一级黄色大片| 日韩精品一区二区三区在线| a级片在线免费观看| 欧美日韩在线高清| 久久精品国产99国产| 在线免费观看亚洲视频| 亚洲精品一区二区三区四区高清 | 国产一区亚洲| 青青草福利视频| 欧美日韩极品在线观看一区| av在线下载| 久久大香伊蕉在人线观看热2| 视频一区二区三区入口| 日本午夜在线观看| 亚洲第一综合天堂另类专| 欧洲亚洲两性| 中文字幕一区二区三区在线乱码| 国产mv日韩mv欧美| 伦av综合一区| 久久精品国产精品| 伦理一区二区三区| 99热一区二区| 激情成人中文字幕| 日本中文字幕视频在线| 国产精品国产精品国产专区不卡| 美女诱惑一区| 欧美成人三级视频| 亚洲天堂免费视频| 无码国模国产在线观看| 日韩av资源在线| 一区二区三区四区乱视频| 男人天堂网在线| 亚洲已满18点击进入在线看片| a91a精品视频在线观看| jizz日本在线播放| 亚洲精品久久久久| 国产精品3区| 久久黄色免费看| 亚洲国产成人高清精品|