精品欧美一区二区三区在线观看 _久久久久国色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)

国产欧美第一页| 99久久婷婷国产综合精品青牛牛 | 亚洲女同二女同志奶水| 色噜噜久久综合伊人一本| 999精品视频| 99福利在线观看| 亚洲一区二区三区国产| 国产剧情久久久| 国产在线观看精品一区二区三区| 天堂av在线一区| 夜夜爽8888| 欧美日韩精品不卡| 亚洲午夜一区二区三区| 成人精品动漫| 中文字幕在线观看二区| 中文字幕亚洲字幕| 国产日韩亚洲| www.成人免费视频| 台湾成人av| 欧美色大人视频| 最新亚洲精品| 日韩精品一区二区亚洲av| 91精品视频在线| www.成人在线| sm国产在线调教视频| 99日在线视频| 久久91亚洲精品中文字幕奶水 | 日韩一区二区在线播放| 国产一区网站| 伊人久久久久久久久久久久| 久久久久久久久四区三区| 亚洲妇女屁股眼交7| 警花av一区二区三区| 精品人体无码一区二区三区| 国产极品精品在线观看| 国产精品婷婷午夜在线观看| 国产综合色在线观看| 视频国产一区二区| 92国产精品久久久久首页| 亚洲综合一区二区| 亚洲精品a区| 99久久精品国产亚洲| 欧美日韩一区二区视频在线| 欧美日韩亚洲另类| 一本一本久久a久久综合精品| 不卡视频免费在线观看| 中国老女人av| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 午夜精品久久久久久久白皮肤| 国产乱人伦偷精品视频免下载| 黄页网站在线| 91成人破解版| 国产精品男人的天堂| 一区在线观看免费| 亚洲国产一区二区三区网站| 国产成人无码一区二区三区在线| 91美女片黄在线观看游戏| 国产精品66部| 精品国产丝袜高跟鞋| 午夜不卡久久精品无码免费| 国产精品自拍网| 色综合天天综合网天天看片| 国内精品福利| 高h视频在线观看| 少妇大叫太粗太大爽一区二区| 亚洲综合视频1区| 欧美日韩亚洲网| 激情综合网址| 18videosex性欧美麻豆| 综合五月激情网| 亚洲精品一品区二品区三品区| 在线播放国产精品二区一二区四区 | 国产男人精品视频| 色视频一区二区| 久久久噜噜噜| 午夜av成人| 伊人久久成人网| 日韩在线一区视频| 777777777亚洲妇女| 午夜电影网一区| 99在线观看免费视频精品观看| hd国产人妖ts另类视频| 欧美极品aaaaabbbbb| a级黄色片免费| 久久亚洲精品毛片| 午夜精品福利一区二区蜜股av| 精品动漫3d一区二区三区免费| 欧美1234区| 日日夜夜操视频| 最近免费中文字幕中文高清百度| 国产激情999| 91精品国产综合久久香蕉的特点| 国产精品系列在线观看| 窝窝社区一区二区| 92国产在线视频| 国产污片在线观看| 天堂在线资源视频| 成人动漫在线观看视频| 亚洲人成在线观| 最新热久久免费视频| 在线成人激情| 国产精品高潮久久| 亚洲人午夜射精精品日韩| 国产精品夜夜夜爽阿娇| 欧美 日韩精品| 91久久国产精品| 国产亚洲精品成人av久久ww| 亚洲国产综合视频在线观看| 久久激情综合网| 精品国产a一区二区三区v免费| 天堂资源在线中文| 日韩免费av网站| 另类调教123区| 操欧美老女人| 中文另类视频| 男人天堂综合| 超碰在线观看91| 国产亚洲色婷婷久久99精品91| 日韩精品福利片午夜免费观看| 国产精品成人免费视频| 亚洲天堂男人天堂| 欧美性高潮在线| 精品亚洲aⅴ乱码一区二区三区| 精品久久综合| avav成人| 在线黄色网页| 亚洲爱情岛论坛永久| 日韩欧美综合视频| 不卡av免费在线| 一区二区三区四区欧美日韩| 国产日韩欧美91| 日韩视频在线观看免费| 日韩欧美中文字幕精品| 亚洲午夜激情av| 91在线观看视频| 葵司免费一区二区三区四区五区| 中国av一区| 成人软件在线观看| 免费网站看v片在线a| 精品久久久久成人码免费动漫| 欧美日韩生活片| 中国男女全黄大片| aⅴ在线免费观看| 天天做天天爱天天高潮| 国产精品乱码视频| 欧美黑人国产人伦爽爽爽| 日韩一区和二区| 欧美性猛交xxxx久久久| 亚洲男人天堂av网| 91网上在线视频| 国产一区二区美女| 国产精品日韩久久久| 国产精品一线天粉嫩av| 91九色综合| 综合日韩av| 爱福利在线视频| 国产原创精品视频| 亚洲欧美视频一区二区| 深夜福利影院在线观看| 国产农村妇女精品久久| 国产午夜福利100集发布| 天天综合中文字幕| 日本一区免费在线观看| 国产日韩精品一区观看| 成人国产精品色哟哟| 国产精品一区二区女厕厕| 91精品国产99| 久久五月情影视| www.日韩视频| 久久综合久久88| 色偷偷噜噜噜亚洲男人的天堂| 亚洲欧美视频在线| 亚洲欧美一区二区精品久久久 | 亚洲一区影院| 先锋影音网一区| 2019中文字幕在线免费观看| 3d动漫精品啪啪| 亚洲高清视频的网址| 国产精品一区二区三区99| av不卡在线看| 欧洲大片精品免费永久看nba| 超碰国产在线| 99re只有精品| 亚洲网站在线免费观看| 日本视频www| 久久网免费视频| 日韩国产第一页| 欧日韩不卡视频| 美国黄色特级片| 五月天免费网站| 欧美熟妇激情一区二区三区| 国产老熟女伦老熟妇露脸| 思思久久精品视频| 中文字幕欧美视频| 国产精品igao网网址不卡| 午夜国产福利在线观看| 日韩手机在线观看视频| 欧美大尺度做爰床戏| 别急慢慢来1978如如2| www午夜视频| 国内外免费激情视频| 国产精品99久久免费黑人人妻| 欧美 日韩 国产一区| 成人性做爰aaa片免费看不忠| 青青草原成人网| 国产精品无码专区av在线播放| 国产精品久久a| 亚洲美女高潮久久久| 影音先锋资源av| 日本精品久久久久中文| 成人观看免费视频| 破处女黄色一级片| 欧美88888| 日本a级片视频| 麻豆影视在线播放| 中文字幕国产在线观看| 一本一道人人妻人人妻αv| 国产又粗又猛又黄又爽| 先锋av资源站| 91九色美女在线视频| 伊人久久综合一区二区| 亚洲一区导航| 日本福利一区| 一本色道久久综合亚洲精品不卡| 青青国产91久久久久久| 精品一区二区在线观看| a级高清视频欧美日韩| 午夜日韩在线观看| 精品1区2区在线观看| 美女999久久久精品视频| 日韩免费av在线| 亚洲va久久久噜噜噜久久狠狠 | 色婷婷精品大在线视频| 精品毛片乱码1区2区3区| 久久亚洲成人精品| 久久久久中文字幕| 亚洲va电影大全| www亚洲国产| 久久无码人妻一区二区三区| 国产人妻黑人一区二区三区| 国产三级aaa| 在线观看中文字幕2021| 91在线高清| 精品国产第一国产综合精品| 第一会所亚洲原创| 日韩精品亚洲专区| 国产精品成人一区二区艾草| 欧美影院午夜播放| 中文字幕精品久久| 91亚洲国产精品| 免费视频爱爱太爽了| 97伦伦午夜电影理伦片| 国产毛片aaa| 欧洲成人一区二区三区| 国产嫩草在线视频| 国产精品自拍区| 国产精品综合色区在线观看| av在线播放不卡| 五月婷婷欧美视频| 日韩专区在线观看| 欧洲日本亚洲国产区| 国产精品一区二区a| 国产午夜大地久久| youjizz.com国产| 日韩欧美亚洲国产| 黄色大片在线看| 小早川怜子影音先锋在线观看| 日产精品一区二区| 久久69国产一区二区蜜臀| 国产91精品免费| 色婷婷av一区二区三区软件 | 国产欧美精品久久久| 久久精品视频16| 二区三区四区视频| 第三区美女视频在线| 亚洲国产高清在线观看| 国模少妇一区二区三区 | 日韩在线观看你懂的| 日本三级中国三级99人妇网站| 一级欧美一级日韩片| 黄色av一区二区三区| 欧美专区一区| 国产mv日韩mv欧美| 精品电影一区二区| 久久青青草综合| 香蕉视频免费网站| www.久久久久久| 国语精品视频| 久久国产精品99久久人人澡| 欧美三级中文字| 国产日韩精品在线播放| 亚洲精品性视频| 一级做a爱片性色毛片| 成人日韩在线观看| 亚洲女优在线| 欧美性精品220| 国产精品天天狠天天看| 一区二区三区韩国| 日韩欧美三级视频| www.九色在线| 天堂久久久久va久久久久| 午夜免费久久看| 91精品国产91久久久久久久久| 亚洲色欲综合一区二区三区| 亚洲av综合一区| 一区二区三区亚洲变态调教大结局| 精品综合免费视频观看| 亚洲精品v天堂中文字幕| 久久精品国产理论片免费| 欧美一区二区三区粗大| av中文字幕在线看| 日韩av一级电影| 亚洲第一视频网站| 亚洲国产激情一区二区三区| 欧美人妻一区二区| 深夜日韩欧美| 国产午夜精品理论片a级大结局 | 欧美一区二区三区粗大| 97超碰在线公开在线看免费| 美女久久网站| 日韩午夜三级在线| 欧美日本韩国国产| 免费无遮挡无码永久在线观看视频 | 无码专区aaaaaa免费视频| 成年人晚上看的视频| 国产精品igao视频网网址不卡日韩| 成人久久视频在线观看| 日韩在线视频网站| 色七七在线观看| 国产v在线观看| 伊人精品久久| 成人欧美一区二区三区黑人麻豆| 国模精品一区二区三区色天香| 亚洲制服在线观看| 午夜激情视频在线| 琪琪一区二区三区| 最近中文字幕2019免费| 国产特级淫片高清视频| 国产一二在线观看| 久久九九99| 亚洲精品国精品久久99热一| 国产精品动漫网站| 成人激情电影在线看| 99亚洲一区二区| 国产视频在线一区二区| 50路60路老熟妇啪啪| 亚洲精品国产av| 久久久亚洲人| 九九久久久久久久久激情| 无套内谢丰满少妇中文字幕 | 亚洲区小说区图片区qvod| 色噜噜狠狠成人中文综合| 天堂一区二区三区| 国产精品一区二区av白丝下载| 欧美视频一区| 日韩av在线资源| 天天做天天干天天操| av蜜臀在线| 久久综合色天天久久综合图片| 国内外成人免费激情在线视频网站| 三年中文在线观看免费大全中国| 手机在线免费看av| 中文字幕va一区二区三区| 亚洲一区二区中文| 337p粉嫩色噜噜噜大肥臀| 午夜亚洲福利| 久久在线免费观看视频| 蜜臀久久99精品久久久久久| 精品一区二区男人吃奶| 欧美不卡视频一区| 先锋资源在线视频| 视频欧美精品| 欧美日韩精品三区| 国产肉体ⅹxxx137大胆| 高清在线观看av| 国产欧美一区二区在线| 国产欧美日韩在线播放| 国产a级免费视频| 国产成人久久精品77777最新版本| 国产精品丝袜久久久久久不卡| 成人毛片一区二区三区| 老鸭窝毛片一区二区三区 | 中文字幕亚洲不卡| 伊人久久大香线蕉av一区| 性开放的欧美大片| 亚洲欧美日韩精品久久久久| 日韩电影免费观看在| 经典三级在线| 国产欧美一区二区精品秋霞影院| 欧美一级片免费观看| 国家队第一季免费高清在线观看| 国产精品久久毛片| 午夜久久久久久久久久久| 大桥未久在线播放| 亚洲最新在线观看| 欧美日韩亚洲一| 亚洲国产一区二区久久| 欧美三级韩国三级日本三斤| 极品白嫩少妇无套内谢| 天堂俺去俺来也www久久婷婷|