欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

用LLM把Emacs內(nèi)置瀏覽器EWW升級為AI閱讀助手

用LLM把Emacs內(nèi)置瀏覽器EWW升級為AI閱讀助手 總有人問Emacs 里那個復(fù)古的瀏覽器到底還能不能派上用場說實話內(nèi)置的 EWW 用來打開文檔頁、閱讀純文本、快速看一眼網(wǎng)頁結(jié)構(gòu)確實很輕量但遇到內(nèi)容冗長、信息密度低的頁面時閱讀體驗就談不上多好了。本文要做的就是利用大語言模型LLM把 Emacs 的內(nèi)置瀏覽器“改造”成能生成摘要、提煉要點、回答頁面相關(guān)問題的工具讓它在信息獲取層面重新變得好用。我寫這篇文章的思路很直接不打算做一個重型的瀏覽器插件而是基于 Emacs 的擴展能力和 LLM 的文本理解能力搭建一套“頁面正文提取 → 調(diào)用 LLM 接口 → 結(jié)果回填 Emacs”的完整鏈路。這套方案適合 Emacs 老用戶、技術(shù)寫作者也適合對 LLM 應(yīng)用感興趣的開發(fā)者。本文會包含完整的 Emacs Lisp 代碼、Python 服務(wù)腳本、配置步驟和常見問題排查你在自己的環(huán)境里照著配置一遍就能把 EWW 升級成一個帶有“AI 閱讀助手”的瀏覽器。1. 為什么用 LLM 增強 Emacs 瀏覽器1.1 Emacs 自帶瀏覽器到底缺什么Emacs 內(nèi)建了一個非常輕量的網(wǎng)頁瀏覽器叫 EWWEmacs Web Wowser。它不依賴外部瀏覽器內(nèi)核直接用 Emacs 的文本渲染引擎展示網(wǎng)頁。它的優(yōu)點非常明顯啟動快、和編輯環(huán)境深度集成、可以像操作普通文本一樣搜索復(fù)制也能和 org-mode 配合。但缺點也肉眼可見很多網(wǎng)頁結(jié)構(gòu)復(fù)雜正文夾在導(dǎo)航、廣告、推薦位和腳本標簽里面閱讀的時候經(jīng)常要翻很久才能看到真正有用的內(nèi)容。另外EWW 沒有頁面智能分析能力。它展示的是“渲染后的文字”卻無法幫你問一句“這篇文章的核心觀點是什么”“這個文檔的安裝步驟有幾步”“這篇論文的方法部分講了什么”。這些工作原本需要人肉閱讀但正好是 LLM 最擅長的東西。所以與其把 Emacs 的瀏覽器替換成另一個瀏覽器不如在現(xiàn)有流程里增加一層“AI 提取與總結(jié)”。這也是近年來很多人提到的 LLM Agent 思路在 Emacs 里的一個落地場景讓模型承擔信息篩選和歸納的重復(fù)勞動用戶只保留最終的閱讀和判斷。1.2 與 LLM Wiki 范式的關(guān)系這里要提一下 Andrej Karpathy 提出的 LLM Wiki 范式。簡單來說這個范式強調(diào)的不只是“用提示詞讓 AI 寫一段話”而是把 LLM 當成一個可以持續(xù)交互的數(shù)據(jù)處理引擎圍繞它構(gòu)建知識整理、內(nèi)容過濾、結(jié)構(gòu)抽取的工作流。放到 Emacs 瀏覽器里意思就是當你打開一個網(wǎng)頁不是把整個頁面一股腦塞給模型而是先做頁面結(jié)構(gòu)分析再讓模型針對特定任務(wù)輸出結(jié)構(gòu)化結(jié)果最后再進入你的筆記體系或閱讀流程。比如可以設(shè)計三種不同的處理目標摘要模式、問答模式、結(jié)構(gòu)化提取模式。摘要模式適合快速瀏覽新聞和技術(shù)博客問答模式適合拿不準頁面里某個細節(jié)時直接問結(jié)構(gòu)化提取模式適合把一篇文章變成 org-mode 格式的大綱或行動項。這些模式在實現(xiàn)上只是 prompt 不同但帶來的體驗差異非常大。1.3 適用范圍與預(yù)期效果這套方案適合本地有 Python 環(huán)境的用戶也適合那些已經(jīng)在用 OpenAI 兼容 API 的開發(fā)者。你不一定需要極高性能的機器因為推理發(fā)生在服務(wù)端本地只負責頁面提取和結(jié)果展示。最終效果是在 EWW 中打開任意網(wǎng)頁一鍵生成摘要自動提取正文并保存到臨時文件模型返回的結(jié)果以獨立 buffer 形式展示不影響當前瀏覽頁面。2. 環(huán)境準備與方案設(shè)計2.1 環(huán)境依賴說明在開始之前先明確一下環(huán)境需要哪些組件Emacs建議使用 27 以上版本EWW 功能已經(jīng)內(nèi)置不需要額外安裝包。示例中我用的是 Emacs 29 環(huán)境配置語法在 27 和 28 上基本兼容。Python建議 3.8 以上。示例腳本只使用標準庫不需要安裝第三方 HTTP 庫。LLM API需要一個 OpenAI 兼容的接口地址和 API Key。模型名稱、接口地址需要根據(jù)你實際使用的服務(wù)進行調(diào)整不要讓示例代碼里的占位符直接用于生產(chǎn)環(huán)境。如果你的系統(tǒng)里沒有 Python或者不喜歡用外部進程也可以直接在 Emacs Lisp 里用url-retrieve調(diào)用 API但那樣處理 JSON 轉(zhuǎn)義、長文本截斷會比較麻煩。用 Python 腳本負責“抓取正文 請求 LLM 輸出結(jié)果”Emacs 負責“獲取鏈接 調(diào)用進程 展示結(jié)果”職責更清晰也更容易調(diào)試。2.2 整體流程拆解整套鏈路可以拆成以下幾步在 EWW 頁面中用戶可以手動觸發(fā)命令。Emacs 獲取當前頁面的 URL 和標題并將 URL 傳給 Python 腳本。Python 腳本下載網(wǎng)頁 HTML用簡單規(guī)則提取正文文本。Python 腳本把正文和任務(wù)指令組裝成請求發(fā)送給 LLM API。Python 腳本拿到模型輸出后將結(jié)果寫入標準輸出。Emacs 使用異步進程讀取腳本輸出并將內(nèi)容展示在新的 buffer 中。流程圖可以簡化成EWW 頁面 → 地址傳遞 → 正文提取 → Prompt 組裝 → API 調(diào)用 → 結(jié)果展示。這里有一個設(shè)計細節(jié)要注意直接用 EWW 當前緩沖區(qū)里的文本不是最可靠的做法。EWW 渲染后的文本中可能包含頁面底部的大量無關(guān)鏈接、版權(quán)信息、推薦內(nèi)容直接用這些內(nèi)容會浪費 token也會干擾模型判斷。更好方式是讓 Python 腳本重新請求原始 HTML然后提取p標簽內(nèi)文本再截斷到一定長度。2.3 關(guān)鍵技術(shù)點實現(xiàn)過程中有三個關(guān)鍵點第一正文提取的質(zhì)量決定了 LLM 輸出的上限。我選用的規(guī)則比較樸素優(yōu)先提取article標簽區(qū)域如果沒有就收集所有p標簽文本隨后去掉過短的句子和明顯是導(dǎo)航的文本。第二API 請求不能阻塞 Emacs 界面。如果使用call-process同步調(diào)用頁面會在等待過程中卡住。必須使用make-process或start-process做異步調(diào)用。第三長文本需要做截斷?,F(xiàn)代模型的 context 窗口很大但并不是所有模型都支持無限輸入。示例中會按字符數(shù)截斷正文并保留前后內(nèi)容確保 prompt 結(jié)構(gòu)完整。3. 編寫 Python 側(cè)加強腳本3.1 腳本職責與文件位置我建議在 Emacs 配置目錄下創(chuàng)建llm_eww.py文件路徑示例為~/.emacs.d/llm_eww.py。這個腳本不做復(fù)雜工程只完成三件事根據(jù) URL 抓取網(wǎng)頁、提取正文、調(diào)用 LLM API。3.2 完整代碼實現(xiàn)先給出完整代碼再逐段解釋#!/usr/bin/env python3 # -*- coding: utf-8 -*- llm_eww.py 用于從 Emacs EWW 調(diào)用 LLM 服務(wù)的輔助腳本。 功能 1. 接收 URL 和任務(wù)參數(shù) 2. 下載網(wǎng)頁 HTML 并抽取正文 3. 構(gòu)造 prompt 調(diào)用 OpenAI 兼容接口 4. 將模型輸出寫入 stdout供 Emacs 捕獲 import argparse import json import re import sys import urllib.request from html import unescape def fetch_html(url, timeout15): 下載網(wǎng)頁 HTML返回解碼后的字符串。 request urllib.request.Request(url, headers{ User-Agent: Mozilla/5.0 (Emacs EWW LLM; compatible; https://example.org) }) with urllib.request.urlopen(request, timeouttimeout) as resp: raw resp.read() # 優(yōu)先按 UTF-8 解碼失敗時使用 ISO-8859-1 兜底 try: return raw.decode(utf-8) except UnicodeDecodeError: return raw.decode(iso-8859-1) def strip_tags(html_text): 去除 HTML 標簽返回純文本。 # 去除 script 和 style 塊 text re.sub(r(?is)(script|style).*?.*?/\1, , html_text) # 去掉所有標簽 text re.sub(r[^], \n, text) # 反轉(zhuǎn)義常用實體 text unescape(text) # 將多個空白行合并 text re.sub(r\n\s*\n, \n, text) return text.strip() def extract_main_content(html_text, max_chars8000): 簡易正文提取優(yōu)先取 article其次取 p 標簽序列。 # 方案一優(yōu)先使用 article 區(qū)域 article_match re.search(r(?is)article[^]*(.*?)/article, html_text) if article_match: plain strip_tags(article_match.group(1)) if len(plain) 200: return plain[:max_chars] # 方案二提取所有 p 標簽 paragraphs re.findall(r(?is)p[^]*(.*?)/p, html_text) cleaned_paragraphs [] for para in paragraphs: text strip_tags(para).strip() # 過濾短句子和導(dǎo)航類文本 if len(text) 20: continue cleaned_paragraphs.append(text) plain \n.join(cleaned_paragraphs) return plain[:max_chars] def call_llm(api_url, api_key, model, prompt, temperature0.3, max_tokens800): 調(diào)用 OpenAI 兼容的 chat/completions 接口。 payload { model: model, messages: [ {role: system, content: 你是一個專業(yè)的信息提取和摘要助手。}, {role: user, content: prompt} ], temperature: temperature, max_tokens: max_tokens } data json.dumps(payload).encode(utf-8) request urllib.request.Request(api_url, datadata, headers{ Content-Type: application/json, Authorization: fBearer {api_key} }) with urllib.request.urlopen(request, timeout60) as resp: result json.loads(resp.read().decode(utf-8)) # 解析 OpenAI 兼容返回結(jié)構(gòu) return result[choices][0][message][content].strip() def main(): parser argparse.ArgumentParser(descriptionEWW LLM helper) parser.add_argument(--url, requiredTrue, help目標網(wǎng)頁 URL) parser.add_argument(--task, defaultsummary, choices[summary, outline, qa], help任務(wù)類型summary/outline/qa) parser.add_argument(--question, default, helpqa 模式下的問題) parser.add_argument(--api-url, defaulthttps://api.openai.com/v1/chat/completions, helpOpenAI 兼容接口地址) parser.add_argument(--api-key, default, helpAPI Key) parser.add_argument(--model, defaultgpt-4o-mini, help模型名稱) parser.add_argument(--max-chars, typeint, default8000, help正文最大字符數(shù)) args parser.parse_args() api_key args.api_key or None if not api_key: # 嘗試從環(huán)境變量讀取 import os api_key os.environ.get(LLM_API_KEY, ) if not api_key: print(ERROR: 缺少 API Key請在參數(shù)中傳入或設(shè)置環(huán)境變量 LLM_API_KEY, filesys.stderr) sys.exit(1) # 獲取正文 try: html_text fetch_html(args.url, timeout15) except Exception as exc: print(fERROR: 頁面抓取失敗: {exc}, filesys.stderr) sys.exit(1) content extract_main_content(html_text, max_charsargs.max_chars) if not content: print(ERROR: 未能提取到有效正文, filesys.stderr) sys.exit(1) # 根據(jù)任務(wù)構(gòu)造 prompt if args.task summary: prompt f請閱讀以下網(wǎng)頁正文用中文生成一份不超過 300 字的摘要。\n\n正文\n{content} elif args.task outline: prompt f請閱讀以下網(wǎng)頁正文提取出結(jié)構(gòu)化的大綱用 Markdown 列表輸出。\n\n正文\n{content} elif args.task qa: if not args.question: print(ERROR: QA 模式需要提供 --question 參數(shù), filesys.stderr) sys.exit(1) prompt f請閱讀以下網(wǎng)頁正文回答問題{args.question}\n\n正文\n{content} else: prompt f請閱讀以下網(wǎng)頁正文生成摘要。\n\n正文\n{content} # 調(diào)用 LLM try: answer call_llm(args.api_url, api_key, args.model, prompt) print(answer) except Exception as exc: print(fERROR: LLM 調(diào)用失敗: {exc}, filesys.stderr) sys.exit(1) if __name__ __main__: main()這段腳本有幾個細節(jié)值得說明請求頭里的User-Agent是模擬常規(guī)瀏覽器的標識有些網(wǎng)站會拒絕空 User-Agent 的請求。extract_main_content里用re.search定位article標簽如果沒有 article 就退回p標簽聚合。這個策略適合大多數(shù)博客和文檔站。call_llm里的返回結(jié)構(gòu)按 OpenAI 兼容格式解析choices[0].message.content是幾乎所有兼容服務(wù)的標準返回路徑。腳本使用sys.stderr輸出錯誤信息Emacs 端只捕獲 stdout 的正常內(nèi)容這樣調(diào)試時不會讓錯誤信息混入模型輸出。3.3 單獨測試 Python 腳本具體配置前建議先在終端里跑一次腳本確認接口可用。假設(shè)你的 API 接口兼容 OpenAI 格式可以執(zhí)行python3 ~/.emacs.d/llm_eww.py \ --url https://www.gnu.org/software/emacs/ \ --task summary \ --api-url https://api.openai.com/v1/chat/completions \ --api-key 你的API Key \ --model gpt-4o-mini如果一切正常終端會打印出模型生成的摘要文本。這一步能提前排除 Python 腳本、網(wǎng)絡(luò)、API Key 等問題方便后續(xù)集成到 Emacs 時更專注地排查 Emacs Lisp 部分。如果你使用的服務(wù)兼容 OpenAI 格式但接口地址不同只需要把--api-url換成實際地址即可。注意不要把 API Key 寫在代碼里建議使用環(huán)境變量export LLM_API_KEY你的API Key4. 在 Emacs 中集成 LLM 瀏覽器助手4.1 編寫 Emacs Lisp 配置下面這段配置是整個集成方案的核心。它會定義三個交互命令分別是llm-eww-summary生成當前頁面摘要。llm-eww-outline生成當前頁面大綱。llm-eww-ask針對當前頁面提問。配置中需要指定 Python 腳本路徑、模型名稱、API 地址等信息。建議把這些參數(shù)放到一個單獨的 custom 組里方便管理。;; 文件路徑~/.emacs.d/init.el 或你現(xiàn)有的配置文件中 (defgroup llm-eww nil LLM enhancements for EWW. :group eww) (defcustom llm-eww-python-script ~/.emacs.d/llm_eww.py Python 輔助腳本的路徑。 :type string :group llm-eww) (defcustom llm-eww-api-url https://api.openai.com/v1/chat/completions OpenAI 兼容 API 地址。 :type string :group llm-eww) (defcustom llm-eww-api-key API Key。留空時讀取環(huán)境變量 LLM_API_KEY。 :type string :group llm-eww) (defcustom llm-eww-model gpt-4o-mini 用于網(wǎng)頁總結(jié)的模型名稱。 :type string :group llm-eww) (defcustom llm-eww-max-chars 8000 傳給模型的最大正文字符數(shù)。 :type integer :group llm-eww) (defcustom llm-eww-buffer-name *LLM EWW Result* 結(jié)果展示 buffer 名稱。 :type string :group llm-eww) (defun llm-eww--get-url () 獲取當前 EWW 頁面的 URL。 (if (eq major-mode eww-mode) (plist-get eww-data :url) (error 當前 buffer 不是 EWW 頁面))) (defun llm-eww--get-title () 獲取當前 EWW 頁面的標題。 (if (eq major-mode eww-mode) (plist-get eww-data :title) Untitled)) (defun llm-eww--run (task optional question) 異步調(diào)用 Python 腳本任務(wù)類型為 TASK可附帶 QUESTION。 (let* ((url (llm-eww--get-url)) (title (llm-eww--get-title)) (script (expand-file-name llm-eww-python-script)) (buffer (get-buffer-create llm-eww-buffer-name)) (args (list --url url --task task --api-url llm-eww-api-url --model llm-eww-model --max-chars (number-to-string llm-eww-max-chars)))) ;; 如果配置了 API Key則傳給腳本否則依賴環(huán)境變量 (unless (string-blank-p llm-eww-api-key) (setq args (append args (list --api-key llm-eww-api-key)))) (when (and (string-equal task qa) question) (setq args (append args (list --question question)))) ;; 清空結(jié)果 buffer準備寫入新內(nèi)容 (with-current-buffer buffer (erase-buffer) (insert (format 任務(wù)%s\n頁面%s\nURL%s\n\n task title url)) (insert 正在請求 LLM請稍候...\n)) ;; 使用 make-process 實現(xiàn)異步調(diào)用 (make-process :name llm-eww-process :buffer buffer :command (append (list python3 script) args) :sentinel (lambda (proc _event) (when (string-equal (process-status proc) exit) (with-current-buffer (process-buffer proc) (goto-char (point-max)) (insert \n\n[完成]))))))) (defun llm-eww-summary () 生成當前 EWW 頁面的摘要。 (interactive) (llm-eww--run summary)) (defun llm-eww-outline () 生成當前 EWW 頁面的大綱。 (interactive) (llm-eww--run outline)) (defun llm-eww-ask (question) 針對當前 EWW 頁面提問。 (interactive s問題) (llm-eww--run qa question)) ;; 快捷鍵綁定 (global-set-key (kbd C-c e s) #llm-eww-summary) (global-set-key (kbd C-c e o) #llm-eww-outline) (global-set-key (kbd C-c e a) #llm-eww-ask)這段配置里最核心的 API 是make-process。它啟動一個外部 Python 進程并讓 Emacs 在進程運行期間繼續(xù)保持響應(yīng)。sentinel是進程結(jié)束時的回調(diào)用來在結(jié)果后追加完成標記。llm-eww--run函數(shù)內(nèi)部先獲取當前 EWW 頁面的 URL 和標題然后把參數(shù)組裝成列表傳給 Python。注意make-process的:command參數(shù)要求是一個列表其中第一個元素是程序名后面的元素是參數(shù)。4.2 快捷鍵與使用方式配置完成后重新加載 Emacs 配置M-x eval-buffer或者重啟 Emacs讓配置生效。之后在 EWW 里打開一個網(wǎng)頁按C-c e s就會生成摘要。生成過程要等幾秒到幾十秒取決于正文長度和模型響應(yīng)速度。期間可以繼續(xù)編輯其他 buffer不會被阻塞。4.3 擴展把結(jié)果插入當前頁面有些時候把結(jié)果放到獨立 buffer 里并不是最方便的。另一個思路是把生成的摘要直接插入到 EWW 頁面的頂部這樣瀏覽時能直接看到概括再往下滾動看細節(jié)。可以寫一個輔助函數(shù)從結(jié)果 buffer 中提取剛生成的文本插入到當前位置(defun llm-eww-insert-summary-at-point () 將最近的 LLM 摘要插入到當前光標位置。 (interactive) (let ((result-buffer (get-buffer llm-eww-buffer-name))) (if (not result-buffer) (message 還沒有生成結(jié)果) (with-current-buffer result-buffer (goto-char (point-min)) ;; 跳過任務(wù)信息頭只復(fù)制模型生成的正文部分 (if (search-forward \n\n\n nil t) (let ((content (buffer-substring-no-properties (point) (point-max)))) (when (string-match-p \\[完成\\] content) (setq content (replace-regexp-in-string \n\\[完成\\] content))) (insert content)))))))這個函數(shù)可以直接綁定到另一個快捷鍵例如C-c e i。當然因為 EWW buffer 本質(zhì)上是只讀渲染視圖直接插入文本可能需要先調(diào)用read-only-mode關(guān)閉只讀屬性。這里只提供思路不強制要求你一定使用。5. 針對不同任務(wù)的 Prompt 設(shè)計5.1 摘要模式摘要模式最適合技術(shù)博客、新聞頁面。Prompt 的核心要求是“使用中文、不超過 300 字、提煉核心觀點”。也可以根據(jù)實際需要改成英文摘要、多段式摘要。如果你希望摘要更結(jié)構(gòu)化可以把 prompt 改成請閱讀以下網(wǎng)頁正文完成以下任務(wù) 1. 用三句話概括核心內(nèi)容 2. 列出文中提到的關(guān)鍵技術(shù)點 3. 給出一句話的閱讀建議這種 prompt 的輸出更適合直接進入知識管理流程。5.2 大綱模式大綱模式適合論文、文檔、官方手冊等長頁面。我們利用 LLM 從正文中提取出層級結(jié)構(gòu)并輸出 Markdown 列表Emacs 的 markdown-mode 或 org-mode 都能直接顯示這種格式。注意大綱模式不是簡單地把標題復(fù)制出來而是讓模型基于正文語義重新組織出有條理的框架。5.3 問答模式問答模式是三個模式中最靈活的。用戶輸入一個問題比如“這個頁面里提到的安裝步驟有幾步”Python 腳本會把頁面正文和問題一起組裝成 prompt模型只輸出與問題相關(guān)的部分。這個模式在閱讀英文資料時很有用相當于給 EWW 接了一個“頁面內(nèi)知識助手”。由于不同模型對 prompt 的敏感度不同建議在第一次使用前先用小段正文測試一下輸出質(zhì)量。如果輸出偏離主題可以適當修改 Python 腳本里的 system prompt 或任務(wù)描述。6. 常見問題與排查思路6.1 Python 腳本直接運行正常但 Emacs 里沒有輸出這種情況大多是因為 Emacs 環(huán)境變量和終端不一致。Emacs 啟動時不一定繼承 shell 里設(shè)置的LLM_API_KEY尤其是 mac 上通過 GUI 啟動的 Emacs 經(jīng)常存在這個問題。建議先確認 API Key 配置方式要么在 Emacs 配置里直接寫入llm-eww-api-key變量要么在 Emacs 啟動腳本里顯式setenv環(huán)境變量(setenv LLM_API_KEY 你的API Key)也有可能是因為make-process的命令參數(shù)有問題??梢栽诮Y(jié)果 buffer 里查看輸出如果進程失敗Emacs 會把 stderr 顯示在 buffer 中。排查時可以臨時把腳本里的print(..., filesys.stderr)改成普通print看看能否輸出錯誤。6.2 模型返回內(nèi)容被截斷如果摘要只生成一半常見原因是max_tokens設(shè)置太小。Python 腳本默認是 800對于更長的摘要或問答場景可以適當調(diào)大。也可以在 Emacs 配置里新增一個變量專門控制max_tokens參數(shù)。另一種可能是正文過長超出了模型上下文的限制??梢哉{(diào)低llm-eww-max-chars例如減少到 4000。通常來說一篇技術(shù)博客的核心信息在前 4000 字符內(nèi)就能體現(xiàn)出來。6.3 頁面抓取被反爬限制有些網(wǎng)站對非瀏覽器請求會拒絕訪問返回 403。此時腳本會打印“頁面抓取失敗”。解決方案有兩個方向一是模擬更完整的瀏覽器請求頭比如增加Accept、Accept-Language字段。二是改為把 EWW 當前 buffer 的文本內(nèi)容傳給腳本不走重新抓取流程。第二種方案實現(xiàn)上需要修改 Emacs Lisp 函數(shù)在調(diào)腳本時直接傳入buffer-substring而不是 URL。6.4 結(jié)果 buffer 中顯示亂碼中文亂碼通常來自編碼問題。Python 腳本輸出到 stdout 時如果系統(tǒng)默認編碼不是 UTF-8可能產(chǎn)生亂碼。建議在 Python 腳本開頭加上import sys sys.stdout.reconfigure(encodingutf-8)另外Emacs 側(cè)也要確保 buffer 的編碼格式為 UTF-8可以在配置中設(shè)置(prefer-coding-system utf-8)6.5 常見問題速查表問題現(xiàn)象常見原因解決思路Emacs 中沒有輸出API Key 未配置或環(huán)境變量缺失在 Emacs 里 setenv或在配置里顯式填寫 API Key報錯“頁面抓取失敗”網(wǎng)站拒絕請求或網(wǎng)絡(luò)不通增加 User-Agent 頭或在本地網(wǎng)絡(luò)可達的環(huán)境中使用摘要內(nèi)容斷在中間max_tokens 太小調(diào)大 Python 腳本中的 max_tokens 參數(shù)輸出內(nèi)容不相關(guān)Prompt 結(jié)構(gòu)不合理調(diào)整 task 對應(yīng)的 Prompt 文本接口返回 404API 地址不正確確認服務(wù)商提供的兼容接口完整路徑中文亂碼編碼不一致統(tǒng)一使用 UTF-8 編碼7. 最佳實踐與工程建議7.1 不要把 API Key 寫入配置倉庫無論你把 Emacs 配置放在 Git 倉庫還是同步到多個設(shè)備都不要把 API Key 硬編碼進init.el。更安全的做法是使用環(huán)境變量或者在本地創(chuàng)建一個~/.emacs.d/secrets.el文件內(nèi)容不提交到版本控制。例如在~/.emacs.d/init.el末尾加(load-file ~/.emacs.d/secrets.el)secrets.el內(nèi)容示例(setq llm-eww-api-key 你的API Key)同時在.gitignore中加入secrets.el。這樣既方便本地使用又避免密鑰泄露。7.2 控制傳入模型的正文長度雖然很多模型支持長上下文但輸入越長單次請求的耗時和成本越高。從工程角度看應(yīng)該盡量用最少的 token 完成任務(wù)。建議先做正文提取再做截斷最后傳給模型。示例中已經(jīng)寫了max_chars參數(shù)實際操作時可以根據(jù)場景調(diào)整。如果想進一步節(jié)省 token可以在 Python 腳本里做更精細的清洗比如刪除空白字符、壓縮換行、去掉版權(quán)聲明等。7.3 異步操作避免卡死Emacs 是單線程的同步網(wǎng)絡(luò)請求會導(dǎo)致整個界面卡住。本文示例中使用make-process這是正確做法。如果你后續(xù)要擴展為更復(fù)雜的交互例如連續(xù)追問、多輪對話建議繼續(xù)使用異步方式避免影響其他編輯工作。7.4 增加緩存提升體驗對于同一 URL如果模型返回的摘要變化不大完全沒必要重復(fù)請求??梢栽?Python 腳本中加入簡單的文件緩存以 URL 的哈希值作為緩存文件名有效期設(shè)置為一周。這一步能顯著降低 API 調(diào)用成本也縮短了等待時間。簡單的緩存思路如下import hashlib import os def get_cache_path(url): cache_dir os.path.expanduser(~/.cache/llm_eww) os.makedirs(cache_dir, exist_okTrue) url_hash hashlib.md5(url.encode(utf-8)).hexdigest() return os.path.join(cache_dir, url_hash .txt)讀取緩存時判斷文件存在性和時間戳即可。這個功能不復(fù)雜卻非常實用。7.5 隱私與數(shù)據(jù)邊界把網(wǎng)頁正文發(fā)送給外部模型服務(wù)前需要確認頁面內(nèi)容不包含敏感數(shù)據(jù)。凡是涉及內(nèi)部系統(tǒng)、未公開文檔、個人隱私的頁面都不應(yīng)該使用外部 LLM 接口處理。如果模型服務(wù)商支持私有化部署或者你有合規(guī)要求可以把--api-url改成內(nèi)部服務(wù)的地址整體流程無需大改。7.6 調(diào)試技巧開發(fā)過程中建議先用 Python 腳本手動跑一遍命令確認輸出正常后再回到 Emacs 里測試。如果 Emacs 端沒有結(jié)果可以在結(jié)果 buffer 中查看錯誤信息。也可以臨時把make-process換成call-process同步調(diào)用這樣雖然在等待時會卡住但錯誤提示更直觀方便排查。8. 再進一步把 LLM 瀏覽器能力融入日常知識管理8.1 與 org-mode 結(jié)合生成摘要后最簡單的高效用法就是把它粘貼到 org-mode 的筆記里。結(jié)合 org-capture 模板可以一鍵把 URL、標題、摘要、時間戳寫入指定的 org 文件。例如在init.el中配置一個 capture 模板(org-capture-add-template (w Web summary with LLM entry (file ~/org/notes.org) * %(plist-get eww-data :title) :web:\n:PROPERTIES:\n:URL: %(plist-get eww-data :url)\n:CREATED: %U\n:END:\n\n%? :empty-lines 1))實際使用時先把 LLM 摘要復(fù)制到剪貼板然后調(diào)用org-capture選擇w模板粘貼摘要。這個流程雖然需要手動幾步但勝在穩(wěn)定也能強迫你在保存時再讀一遍摘要加深理解。8.2 多語言翻譯同樣一套能力也可以把 prompt 改成翻譯任務(wù)。比如新增一個translate任務(wù)讓模型把當前頁面翻譯成中文。很多 Emacs 用戶有閱讀英文文檔的需求這個功能能明顯降低閱讀門檻。把 Python 腳本里的任務(wù)選項擴一下就行--task translate對應(yīng) prompt 可以是prompt f請將以下網(wǎng)頁正文翻譯成中文保持專業(yè)術(shù)語準確。\n\n正文\n{content}8.3 從單頁到批量如果你經(jīng)常收集技術(shù)資料可以把這套思路擴展到批量抓取。寫一個 Emacs Lisp 函數(shù)讀取一個保存了 URL 列表的文件依次調(diào)用 Python 腳本最終生成一個 Markdown 匯總文件。這個過程中同樣要注意異步和并發(fā)控制不要讓請求數(shù)量過大導(dǎo)致接口限流。9. 寫在最后這篇文章從 Emacs 內(nèi)置瀏覽器 EWW 的痛點出發(fā)完整實現(xiàn)了一套“LLM Emacs Web Browser”的增強方案。核心是把頁面正文提取和 LLM 調(diào)用放到 Python 腳本里Emacs 端用異步進程調(diào)用腳本并通過自定義命令展示摘要、大綱和問答結(jié)果。整個過程不需要替換瀏覽器不需要額外安裝復(fù)雜的 Emacs 包成本低落地快。雖然示例中依賴 OpenAI 兼容 API但你可以很輕松地替換成其他模型服務(wù)只要接口兼容 chat/completions 格式即可。另外像 Karpathy 提出的 LLM Wiki 范式一樣真正有價值的不是一次摘要生成而是把 LLM 能力嵌入到日常記錄和閱讀循環(huán)里打開頁面、生成摘要、寫入筆記、定期回顧。這樣Emacs 就不再只是一個古老文本編輯器而是變成了一個帶 AI 閱讀助手的信息工作臺。如果這篇文章對你有幫助歡迎收藏備用。實踐過程中遇到問題可以從常見問題表開始排查也可以根據(jù)上面的思路繼續(xù)擴展你自己的功能。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99热色精品| 夜夜骑福利资源| 五月天伊人| 激情五月激情综合网一级丸片| 天天日日夜夜| 99ri精品在线| www.99色| 97色欧美| 免费啪啪啪网站| 成人丁香五月| 婷婷久久五月丁香| 婷婷久久精品| 人人爱国产| 国产精品操| 五月婷婷色| 五月婷婷六月丁香在线| 开心五月丁香婷婷| 狠狠色婷婷7| 久xxxx| 狠狠干婷婷| 婷婷色成人| 久久久久9999| 99欧州偷拍视频| 99A片| 婷婷亚洲色| 播五月丁香六月| 婷婷五月激情四月综合| 99啪啪视频| www.cao.com久久| 91超碰人人操| 五月丁香影院| 丁香六月啪| 色婷婷狠狠| 婷婷六月网| 97婷婷狠狠| 少妇被下春药玩弄A片| 91丨九色丨熟女|新版| 久久久久99精品成人片| 三级大香蕉网| 色噜噜婷婷| 操91| 色之综合网| 婷婷情色五月天| 色婷综合| 婷婷色五月天色| 国产精品色情AAAAA片软件| 91碰| 亚洲综合色色色| 欧美丁香五月| 亚洲黄色精品| 丁香五月婷婷色| 超碰人人干| 激情五月四色| 女人被男人吃奶到高潮| 99日在线视频| 激情五月综合亚洲另类| 免费视频WWW在线观看网站| 婷婷色综合| 一级精品999WWW| 久久免片| www999日韩精品| 色色色热| 淫视馆aV二区一区| 疯狂做受XXXX高潮A片动画| 免费亚洲婷婷| 三级片AAA久久久AAA久久久AAA | 成人综合网站| 六月婷综合| 成人在线二区| 日韩视频女神99| 99少妇精品| 欧美在线视频9| 婷婷丁香五月91| 思思99久久| 五月天婷婷网站888| 97性视频| 丁香五月网在线观看| 亚洲色亚洲精品| 久久a热| 天天色天天操天天射| EEUSS鲁片一区二区三区| www.色9| 狠狠色婷婷7777久| 久久六月婷婷| 色五月激情网| 欧美成人网99网| 色情成人五月天| 超碰在线精品| 十二区无码| 色99www.| 天天干天天日日| 天天爽天天爽夜夜爽| 国产片色| 丁香婷婷五月综合色情| 久久丁香网| 五月间天堂综合| 色婷婷在线播放| 丁香婷婷综合精品六月初| 夜夜骑日日夜夜| 五月天国产| 香蕉婷婷| AV网在线观看| 五月丁香婷婷激情| 五月天成人小说| 在线播放人妻| www.婷婷五月天,com| 精品99爱免费视频在线观看| 九九久久99| 天天干天天插| 久久婷婷网| 亚洲五月天天| 精品人妻久久久久久| 五月四色激情| 五月丁香好婷婷A片网| 天天做天天爱天天爽| 久9视频| yw国产AV| 五月婷婷色男女| 99热首页| 婷婷丁香六月| 九九九九中文字幕| 五月丁香六月婷婷的女人| 99热综合网| 婷婷情色开心五月天99| 99热这里只有在线播放| 久久精典| 婷婷激情久久| 丁香八月综合激情| 最近中文字幕大全免费版在线 | 亚洲欧美999| 色婷婷丁香| 九九婷| 亚洲碰碰碰| 综合性视频99| 欧美性猛交99久久久久99按摩| 草榴成人影片| 激情五月天激情综合网| 超碰熟女农村在线69| 色情五月丁香| 国产激情视频在线观看| 久久婷婷成人| 97久久精品| 美女爆乳18禁www久久久久久| 婷五月丁香俺| 超碰91在线| 五月天丁香久久| 久久开心五月天激情| 国产真人做爰视频免费| 狠狠久久婷五月综合色| 八戒青柠影视剧在线观看| 欧美日朝成人| 任你爽视频| 久久精品视频99| 欧美超级视频97| 99热在线观看| 啪啪激情网站| 中文AⅤ大全| 五月婷丁香亚洲| 色玖玖| 国产五月丁香在线| 99丁香婷婷综合网| 婷婷丁香五月综合网上| 99在线综合视频| 天天摸天天高潮天天爽| 1024久婷| 超碰色综合| 99亚洲精品视频| 五月天网站免费欧美| Av中文在线| 六月丁香啪| www.夜夜| 色婷婷a三区麻| 国产黄色在线| 色情五月综合婷婷| 天天日天天做天天舔| 91热在线| 亚洲综合色丁香婷婷六月| 午夜性做爰电影| 五月综合婷婷开心网| 国产看真人毛片爱做A片| 丁香六月婷婷五月天| 天干夜夜操| 色狠狠五月天| 99爱在线| 人人爱操| 亚洲色A| 日日操无码| 色五月婷婷很很操| 婷婷色五月综合丁香| 超碰免费在线| 婷婷开心激情| 激情文学天天| 久久六月综合| 综合色图区| 好吊丝aV| 99热播放| 丁香五月玖玖| 亚洲色网络| 婷婷五月天亚洲激情戏精品| 久久五月激情| 996re热精品视频| www.9797国产| 婷婷射图五月天| 五月丁香人妻| 97日韩无套内| 五月丁香啪| 人人人人人人人人人草| www.maotanji.com| 欧美黄色一级| 五月天综合网| 欧美精品啪啪| 欧美日韓成人亚洲精品另类| 人人综合久| 亚洲精品久久久久久久久久飞鱼| Av大香蕉| 99福利视频| 91狠狠色色丁香婷婷综合久久| 色情综合网| 午夜丁香婷婷| 99色色网站| 99热精品超碰| 婷婷五月天大香蕉在线视频观看| 五月丁香色综合| 开心激情婷婷| 国产裸舞表演WWWW| 五月婷婷免费| 激情99。| 在线网黄| 九九色播五月丁香| 青青色com久久| 成人午夜无码视频| 人妻中文在线| 五月丁香啪综合| 日日做天天操夜夜爽| 久久丝袜婷婷| 亚洲色图81p| 91色性感五月婷婷丁香| 免费看欧美成人A片无码| 久久久久婷 | 五月丁香六月激情网| 色哟哟性爱av| 7777精品伊人久久久大香线蕉最新版| 久久密臀婷婷| 激情超碰网| 色五月激情婷婷| 婷婷五月天伊人| xfplayav在线| 天天舔天天摸视频| 深爱五月网| 熟女五月天久久综合| 久久精品爱爱| 婷婷五月天xxx| 色五月婷婷婷婷婷婷婷婷婷婷| 婷婷玖玖五月天| 一本九九色| 97人人操人人插| 精品一二三区久久AAA片| 激情久久久久久久久久久| 五月婷婷丁香伦理网| www.激情五月天。com| 中文字幕欧美久久| WWW.99热| 很很操96| 开心五月婷| 天天爽曰日爽| 狠狠色官网| 天天爱天天做天天舔| 第2色五月婷| 丁香 婷婷 激情 综合 五月| 久热这里只有精品在线观看 | 五月婷婷综合激情| 玖玖婷婷五月天| 99热地址| 国产av一区二区三区| 亚洲精品国产A久久久久久| 婷婷五月天在线观看| 亚州美女| 丁香五月婷婷影院| 欧美日韩成人免费在线| 丁香五月网络网络| 无月播播激情在线观看视频| 六月天丁婷婷| 成人网在线视频| 大香蕉综合| 综合网激情| 中文字幕无码人妻少妇免费视频| 精品AV无码超碰| 五月丁香亭亭AV女优| 五月婷婷国产| 凹凸7777操操操| 丁香婷婷激情五月色| 婷婷五月色播网| 精品婷婷五月天| 五月天精品综合在线| 激情网婷婷婷| 五月丁香香蕉| 丁香五月影| 五月婷中文娱乐综合| 婷婷久久免费| 99色热视频| 这里只有精品视频免费在线观看| 久久激情视频| 国产AV不卡福利| 五月伊人网| 99久久黄色顶级视频| 5月丁香六月婷婷| 久久激情五月婷婷| 精品无码久久久久久久久| www色哟哟| www.综合久久.com| 另类激情五月| 天天天天天天操| 91九色PORNY肉丝在线| 激情文学第四色婷婷丁香五月| 热99精品视频在线观看| 丁香桃色网| 色婷婷五月天在线观看| 91啪啪网| 亚洲成人在线五月天| 99久re热视频精品98| 激情内射人妻1区2区3区| 日韩高清久久| 性生活视频98791| 欧美丁香五月97色| www99xxxx五月丁| 婷婷激情五月天天天开心| 婷婷五月天亚洲色| 丁香五月欧美| 91九色国产| 成人网丁香五月| 日日噜噜夜夜狠狠久久丁香六月| 91在线人| 久热这里这里有精品| 人妻精品一区二区三区| 五月婷婷色在线| 冬月かえでAV无码播放| 五月丁香婷爱在线| 狠狠色 综合色区| 丁香激情网| 99热这里只有精品最新网址| 日韩无码AV电影网站| 伊人婷婷大香蕉| 思思热99在线视频| 91女人18毛片水多国产| 丁香婷婷久久老熟女综合网| 国产精品人人做人人爽人人添| 五月丁香综合影院| 天天做天天爱天天高潮| 最新AV在线观看| 激情九九综合网| 久久婷婷视频| 婷婷丁香色五月亚洲| 98永久精品| 日本色超碰| 五月婷婷丁香五月亚洲色| 久久久久久久97| 日本乱论99| 丁香五月亚洲| 久久一级免费黄色片| 丁香五月 六月婷婷首页| 第九色区av天堂| 激情五月天色| 亚洲精品字幕在线观看| 婷婷六月开心网| www.狠狠| 激情综合网 激情五月天| 五月色丁香| 无码一区二区日韩| 天海翼中文字幕高| 日本久久爱| 久婷狼色诱惑在线| 五月丁香六月情婷婷久久| 91九色网| 五月丁香亚洲五月| 免费色婷婷| 九一99| 99视频热99| 天天做 天天爱| 91呦呦呦| 99色视频| 婷婷五月天激情网址| 夜夜谢天天干| 2020夜夜操天天爽| 色色色色色色五月婷婷| 91精品久久久久久77777| 九九自拍网| 亚洲中文字幕AV| 五月天日日操夜夜操| www.五月天婷婷| 99er6| 成人网在线观看视频| 五月婷婷手机在线| 久久新| 五月丁香六月婷婷啪啪| 婷婷五月天成人导航| 亚洲激情四射| 激情五月小说婷婷| 五月天激情综合首页| 亚洲乱码日产精品BD| A网在线欧洲| 91精品国产综合久久蜜芽解析速度| 亚洲久热无码| www九九热| 极品少妇XXXX精品少妇偷拍| 五月天婷久精视频| 色婷婷五月天亚洲| 亚洲精品又粗又大又爽A片| 亚洲国产成人裸舞| 99热综合在线| 狠狠色噜噜狠| 啊V视频在线观看| 最新午夜理论片| 99热九九九九| 99色视频| 99激情| 久久婷婷五月综合97色一本| 激情五月婷婷她| 色五月激情综合网| 激情五月天色婷婷| 色婷婷五月天激情久久| 激情亭亭五月| AV在线不卡播放| 永久免费视频| 色女伊人| 日本va欧美va精品发布视频| …亚洲黄色在线播放日韩、av中文a…| 五月婷婷久久综合| 亚洲精品视频电影| 九九综合久久| 色婷婷五月基地在线| 婷婷五月色情| 久久丁香网| 六月丁香五月婷婷| 99色在线观看视频| 97五月天婷婷午夜| 91精品婷婷国产综合久久| 热久久999| 大香蕉av在线| 毛片新网地| 亚洲丁香五月在线观看| 天堂婷婷五月色| 97碰| 一本久道综合99| 五月天激情小说网| 五月天色丁香| 丁香五月影院| 影音先锋噜一噜| 青草青青草| 伊人国产婷婷五月天| 色五月激情网| 噜噜噜狠狠色综| 亚洲爱婷婷| 九九色婷| 天天色综网| 五月丁香综合| 91五月天| 久久久久久久人妻| 国产一级片| 五月丁查人人| 色吧五月婷婷| 亚洲天天操| 丁香五月婷婷色| 99色播| 好好日激情五月天| 成人小说 五月天 婷婷| 亚洲婷婷开心五月| www,婷婷五月天,com| 五月天免费色| 五月丁香激情综合网官网| 五月丁香 六月婷婷a| 亚洲中文字幕av| 久久92| 亚洲无码影音| 三人荫蒂添的好舒服A片| 六月丁丁香| 婷婷五月天电影网| 欧美搡BBBBB摔BBBBB| 婷婷五月激情小说| 极品人妻XXXXOOOO| 精品热九九| 在线成人国产| 色天堂在线| 中美月韩免费A片| 亚洲在线成人| 日日噜噜夜夜狠狠久久丁香六月| 视频一二区| 99玖玖免费视频| 情一色一乱一伦一91A| 色哟哟性爱av| 色婷婷av在线观看| 激情久久五月网| 丁香六月亚洲综合| 色婷另类| 国产67194| 丰满少妇乱A片无码| 91男女视频在线观看| 好叼操在线观看| 五月天久久激情| 玖玖午夜视频| 亚洲色激婷| 亚洲激情免费视频| 丁香五月日韩| 亚洲日韩一页精品发布| 一级性爱大片| 五月丁香婷婷基地| 婷婷夜夜夜夜| 精品成人在线观看| 乱乱av| www.精品久9| 91 九色 熟女| 久久精品亚洲一级牲爱综合| 99热老网站| 国自产拍偷拍精品啪啪一区二区| 激情婷婷丁香色五月| 秋霞A V毛片| 91婷婷搞| 岛国av电影网站| 999九九九久久久99HD| 久久久久网站| 丁香五色月婷婷网| 99毛片| 色婷婷成人做爰A片免费看网站 | 色婷婷色丁香色欲av| 亚洲综合在线播放| 国模淫穴色图| 婷婷丁香小说| 无码AV久久久久久久久| 秋霞日本免费毛片A片| 人妻射精AV| 色色AV色色色东莞| 202丰满熟女妇大| 人人妻人人澡人人爽| 丁香五月丐人妻| 有哪些A片网站| 色99色| 五月丁久久| 久99久精品| 五月丁香激情婷婷综合| 91一起操| 久久久WWW| 天天综合天天做天天综合| 97色色综合| 99九九精品视频推荐| 色色日韩| 99久久综合网| 国产91九色| 六月婷婷影院| 极品少妇XXXX精品少妇偷拍| 五月丁香久久丝袜啪啪| 996热re视频精品视频这里| 99热在线观看精品| 色婷婷丁香社综合| 五月婷婷丁香在线| 伊人五月婷| 五月天天丁香婷婷在线中| 丁香六月婷婷| 五月香蕉网| 丁香婷婷六月在线资源观看| 青草视频在线播放| 五月丁香婷婷综合激情基地| 热九九精品| 色色色99| 亚洲六月色| 亚洲av网址| 丁香五月综合网亚洲综合欧美狠狠| 大香蕉啪啪啪| 婷婷狠狠久久| 丁香婷婷综合激情五月色| 91狠狠综合久久| 伊人狠狠丁香婷婷综合尤物| 亚洲成人在线综合| 天天肏在线观看| 中文在线成人| 日本天堂爱爱| 婷婷五月丁香久久| 99热8| 五月丁香啪啪啪| 久久ab| 九九热在线观看6| 五月婷婷在线免费观看| 性爱七区| 五月天色综合| 激情综合网五月在线播放| 激情九月综合| 色 免费网站视频| 青青草成人网| 五月天激情图片| 大香蕉久操| 人妻AV在线| 久操热线| 色高清无码视频| 久久无码成人| 丁香婷婷成人网站| 黄网网站在线播放| 99热综合| 丁香五月停停av| 大香蕉在线观看9| 色婷婷精品视频| 性视频久久| 俺去也综合| 美女要搞搞天天搞搞搞网站| 五月丁香综合色婷婷| 五月婷婷就去色| 97日韩无套内| 这里只有精彩视频| 综合玖玖性爱免费视频| 亚洲国产精品二二三三区 | 五月婷婷在线免费观看 | 综合逼五月激情婷婷| 久9热| 五月停停丁香| 操操人人| 久久五月婷天天干| 久久婷婷国产| 五月婷婷开心激情六月蜜桃| 欧美日韩成人在线免费| 六月丁香婷| 99er久久| 激情综合5| 亚洲成AV人片在线观看| 五夜婷婷| 五月WWW| 91色综合网| 性色做爰片在线观看WW| 看全色黄大色大片| 狠狠狠人妻| 久久婷婷五月天激情| 99综合免费视频| 丁香丝袜五月| 精品在线| 9热在线观看| 白人荫道BBWBBB大荫道| 久热这里| 久久五月婷天天干| 综合亚洲六月婷婷在线| 啪啪五月综合| 少妇大叫太大太粗太爽了A片| 色播五月婷婷| 五月婷婷久久网| 五月婷婷中文字幕| 激情婷婷黄色五月| 国产毛多水多女人A片| 超碰国产AV| 亚洲99手机免费看视频| 思思99热这里只有精品| 六月激情丁香一道本7777| 天天干天天干天天干| 成人免费在线电影| 婷婷丁香五月综合激情视频| 丁香五月激情欧欧美| 激情亚洲婷婷| 97人人操com| 国内一级片| www.色婷婷| 丁香婷婷色色| 五月天另类视频| 岛国av网| 天天成人综合| 天天综合久久| 9999久久久久| 黄色五月婷婷| 久久久jd| 五月丁香人妻| 大香蕉丁香| 人妻在线观看视频| 婷婷色综合| 噜噜狠狠色综无码久久合欧美| 五月丁香 啪啪啪| XXXX岛国| 99 色色吧| 天天做天天爱高潮片| www.久久99热地址发布| 99色久| 99ri6在线视频| 久久久五月天| 激情久久久| 99热成人| 色丁香五月婷婷| 91精品久久久久久77777| 超碰免费在线| 激情综合色图| 亚洲中文字幕AV| 97干视频| 色综合激情| 久久98| 日日夜夜婷婷| 亚洲精品成人| 亚洲激情五月| 久久思思热| 粉嫩AV久久一区二区三区| 色色色干| 丁香六月婷婷综合| 激情涩播| 色九月婷婷丁香| 大香蕉综合| 色综合xx| 五月天激情小说欧美激情| www.色婷婷| 激情综合久久| 成人中文网| 婷婷五月丁香性爱| 六月婷婷啪啪| 激情综合自拍五月婷婷色五月| 久久只有精品| 欧美日韩aaaa| 91人人爽久久涩噜噜噜| AV成人在线播放| 综合色久| 99色色| 五月天久久婷| 玖玖婷婷精品| WWW色综合| 思思热在线视频99| 另类激情五月在线视频欧美| 大香蕉久久| 亚洲成av人影院| 超碰A V在线| 五月丁香网站| 五月激情婷婷开心五月| 五月天社区狠狠| 91人操| 五月丁香亭亭| 五月亭亭色| 看黄的网站18禁| 五月丁香婷婷综合网色欲| WWW.婷婷| 激情五月综合网| 三级黄色大片视频| 九九热婷婷| peg 2区三区四区的| 色婷婷五月天在线观看| 久久五月天激情| 天天色图| AV人人操| 婷婷丁香91综合| 婷婷久久久| 人妻操逼视频| 日本精品人妻无码77777| 中文字幕丰满人妻无码专区| 丁香丝袜五月| 日本乱子人伦在线视频| 五月天丁香成人社| 日韩色五月| 熟妇内谢69XXXXXA片| 激情五月丁香社区| 激情五月六月婷婷| 国产69久久久欧美黑人A片| 热99精品视频五月| 丁香五月激情婷婷婷婷在线观看| 白人荫道BBWBBB大荫道| 丁香五月天啪啪| 激情av在线| 另类婷婷五月天啪帕帕| 亚洲综合干| 五月天激情婷婷| 香蕉国产2013| 人人干99| 五月婷婷|欧美| 亚洲无码色色| 一级性感毛片| 日日.c| 五月婷护士| 久久这里只有精品网| 激情丁香五月| 少妇丁香婷婷| 五月丁香综合激情| 亚洲性天天| 亚洲国产99| 欧美日韩999| 99久在线精品99re8热| 色v综合网| 六月婷婷久久| 综合另类视频| 五月丁香六月婷| 五月婷婷影院| 久热99| 激情婷婷五月天| 色色色图| 人妻性爱| 99精品偷自拍| 热久久视频99| 久久久日韩特色特黄AAAA| 色色cOm| 碰超在线九色| 色偷偷色婷婷| 丁香婷婷啪啪| 激情婷婷五月天| 日在线V视频在线播放| 逼特逼在线免费播放| 爱婷婷五月| 激情丁香久久| 成人av免费观看| 综合激情五月丁香9999久久精| 中文成人在线| 五月丁香龟婷婷| 99热超| 伊人久久五月天| 九九热只有这里精品| 中字幕视频在线永久在线观看免费| 婷婷中文字幕版| 97涩婷婷婷婷基地| 色五月五月婷婷| 密黄站| 婷婷丁香五月天综合在线日韩| 香蕉AV777XXX色综合一区| 久久玖玖综合| 人人摸人人干| 五月婷婷久草在线视频综合| 日本婷婷在线| AA丁香综合激情| www色中色综合| 久热91精品| 被强行糟蹋的女人A片| 天天撸天天干天天插| 99热e| 亚洲春色奇米影视| 99碰网站| 亚洲 在线 性爱 | 玖玖爱综合网| 青草视频在线播放| 天天日天天舔| 求可以看的AV网址| 婷婷激情人妻| 国产无套精品一区二区| 天天日夜夜| 这里只有精品热| 婷婷丁香先锋资源网站| 99久久综合网| 俺去也综合| 亚洲亚洲激情| 婷婷五月色图| 亚洲中字AV电影在线网站| 婷婷久久免费| 久久这里只有精品16| 五月婷婷丁香大陆免费| 九九综合九| 久久婷狠狠色| 婷婷丁香五月综合激情视频| 久久综合激情五月天| 丁香狠狠操| 亚洲精品V天堂中文字幕| 丁香激情五月| 九九热视频思思| 99色6爱9热| 婷婷五月综合啪| 五月激情丁香啪啪| 激情小说在线视频| 开心激情站| 99热在线观看免费| 五月婷婷综合激情| 91干| 97色操| 色婷婷播放| 国外亚洲成AV人片在线观看| 久久激情五月天| 99热这里只有免费精品| 久久激情综合| 色色操| 久久98热re| 99热色综合| 久久婷婷五月天| 超碰超碰在线| 午夜丁香综合婷婷| 青草激情综合| 丁香五月激情澎湃一区| Av性爱网站| 激情99热| 成人婷婷| 欧美日韩日韩成人| 91碰操| 婷婷五月久久| 噼里啪啦在线观看免费完整版视频| 日韩成人AV在线播放| 丁香五月婷中字幕| 日韩十国产极品久久| 99热这里只有精品亚洲| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 99热天堂| 欧美啪啪网| 免费操超碰| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 天天摸天天舔在线视频| 婷婷中文无码| 激情伊人网| 婷婷九月在线| 婷婷五月天 丁香五月天 裸体| 婷婷在线视频| 国产激情久久| 五月婷婷激情| 五月综合激情网| 婷婷色播婷婷| 专区无日本视频高清8| 婷婷色婷婷| 五月丁香777| www.夜夜操| 六月婷婷激情| 免费看欧美成人A片无码| 国产成人精品一区二三区熟女在线| 日韩成人精品中文字幕| 五月天综合| 久久婷婷五月综合| 色五月av| 无人区码一码二码三码医生系列| www,婷婷,com| 久久综合五月天激情小说网站 | 思思色综合网站| www.十八禁不禁AV.com| 激情五月天色婷婷| 这里只有精品网| 九九热精品视频在线观看| 99操逼视频| 色一情一乱一乱一区91Av| 五月天激情国产综合婷婷婷| 播播网色播播| 色色色色丁香| 五月婷婷丁香综合,亚洲天堂| 伊人婷婷91| 色五月成人| 色婷婷狠狠干| 天天综合网网欲色| 成人在线99| 这里只有精品视频在线| 色婷婷8| 色情五月| 久久99免费视屏| 99热成人精品| 日韩无码色色| 亚洲激情五月| 韩日另类| 久9热视频在线观看| 亚洲五月天,激情视频| 婷婷五月天熟妇| 丁香婷五月天开心六月| 五月婷婷激情综合网| 五月天婷婷色播综合在线| 婷婷激情六月中文| 婷婷伊人网| 丁香九月婷婷色| 天堂综合久久 | 国产69久久久欧美黑人A片| 91大操| 99无码超碰| 日韩黄黄| 九九色热视频| 婷婷六月丁香五月| 春色激情| 六月丁香花婷婷| 色情五月停停丁香| 九九99精品视频在线观看| 九久久婷婷| 五月天婷婷基地综合网| www,婷婷五月天777me,com| 久热99热| 欧美性生交A片免费看| 国产综合婷婷| 丁香六月视频| 丁香成人五月天| 日噜噜色| 五月婷婷开心深| 26uuu欧美| 97久久综合网| 91丨九色丨大屁股| 丁香六月婷婷色XXXXX| 久久精品这里只有精品免费首页| 亚洲精品网址| 五月开心激情网| 9l视频自拍9l九色成人| av人人操| 久久网站观看免费欧洲国产| 无码区婷婷五月花开| 九九色情网五月天| 婷婷五月综合欧美在线播放| 操操国产| 日韩AV中文字幕在线| 婷婷丁香五| 色色色图| 激情图片婷婷丁香五月| 伊人色综在线| 亚洲国产精品VA在线看黑人| 色欲天天综合| 五月婷婷六月激情| 人妻中文字幕精品| 色情播放| 国产毛片精品一区二区色欲黄A片| 性热视频99精品| 婷婷综合精品视频97| 久久性爱99国产| 丁香色五月直播| 九九色婷婷| 男人天堂99| 夜夜夜夜撸夜夜操| 久久久五月天婷婷| 婷婷六月插屄激情| 中文字幕无码人妻少妇免费视频 | 婷婷五月天六月| 天天日天天久久青青| 丁香婷婷偷拍| 丁香五月婷婷影院| 99久视频| 婷婷狠狠干| 五月婷婷熟女| 日日噜噜夜夜狠狠久久丁香六月| 极品少妇婷婷五月| 五月婷亚洲精品| 婷婷久久在线| 日韩在线婷婷五月天综合| 精品自拍97| 天天草比天天爽| 淫视馆av三区| 婷婷五月激情天| 欧美日韩中国| 天天插,天天射| 综合久久久婷| 这里只有精品,日韩视频| 欧美成人精品A片免费一区99| 思思热99er在线视频| 五月天综合| 思思热思在线精品视频| 日韩无码专区| 五月丁香伊人网| 开心婷婷五月综合| 99热综合网| 超碰AV成人| 97视频91| 538在线| 激情婷婷五月天| 久久九九99字幕| 玖玖婷婷免费| 六月丁香激情网| 日本三级毛片| 狠狠插狠狠操| 久久9热| 五月天婷婷综合免费| 成人做爰A片免费看网站找不到了 国产露脸150部国语对白 | 夜夜爽天天日| 激情五月综合久久| 欧美日韩成人免费在线| 天天做天天要天天爱| 野战J办公桌椅H| 五月婷婷欧美激情| 欧美三级黄色片久久| 色5月婷婷| 性热视频99精品| www.婷婷六月天| www好屌操| 99热 在线播放| 久久99网| 婷婷 亚洲图片 丁香| 色黄啪啪| 能直接看的av网站| 色婷婷丁香AV综合| 99操免费视频| 国产99久久久国产精品免费看| 白天AV月月| 亚洲免费观看高清完整版AV线| 久久婷婷亚洲| 六月丁香婷婷在线波多| 久综合九| 中字幕视频在线永久在线观看免费| 国产精品久久久丁香五月八戒视频| 日韩黄色电影| 人妻丰满精品一区二区A片| 情久久综合五月天| 亚洲婷婷五月天在线激情综合网| 天堂久久久久天堂网| 九九无码| 超碰AAAAAAV| 丁香五月最新地址| 国产毛片精品一区二区色欲黄A片| 激情综合五月婷婷六月丁香| 久久只有这里精品免费| 五月 婷 久| 26uuu欧美| 97色色视频| 日韩抽插操逼| 色婷婷影| 噢美99| 5月丁香六月婷婷| 快乐激情五月色婷婷| 97操在线资源| 少妇高潮呻吟A片免费看软件| 99免费在线视频| 五月天玖玖狠狠色色| 狠狠爱综合网| 色综合99色| 97五月天| 日韩欧洲亚洲| 久久免费婷婷视频| 丁香五月成人论坛| 人妻人人操| 狠狠色婷婷综合开心影视| 五月婷婷综合激情| 色狠狠综合网| 夜夜爽天操| 五月婷婷久久内射| 六月丁香婷婷拍拍| 久碰综合| 人人97操| 婷婷激情六月中文| 熟女人妻一区二区三区免费看| 久99热在线观看| 五月激情婷婷在线| 色区域网站视频| 婷婷久久午夜网| 亚洲综合婷婷| 超级碰碰91| 日本一区二区三区精品视频| 草草女人亚洲| 亚洲成av人影院| 激情综合一| 婷婷五月丁香六月| 激情小说视频图片| 亚洲色婷婷视频| 五月婷婷和六月| 久久精品国产色| 欧洲永久精品| 色综合九九色综合88| 久久婷婷激情四射五月天| 婷婷狠狠爱| 婷婷婷婷婷婷婷婷婷婷丁香| 99久久国产宗和精品1上映| 激情五月天综合网| 思思热在线| 可以看的AV| 99性色| 五月婷婷影院| 九九99久久| 五月天综合久久| 六月激情网| 婷婷五月天精品| 婷婷激情图片| 色婷婷综合网| www.五月天| 99只有精品| 免费无码毛片一区二区A片| 任你躁XXXXX麻豆精品| 狠狠综合| caop视频| 97se在线视频| 97干在线观看| 高清国产AV| 99熟女视频| 丁香六月婷婷激情综合| 玖玖婷婷五月天| 开心婷婷五月激情网小说| 99热精品少| 另类色视频| 成年AAAA色情| 一本伊人色婷| 五月综合婷婷五月| 日韩AAAAA| 色婷婷亚洲| 120分钟婬片免费看| 无遮羞AV| 91人人看| 91人妻人人操人人爽| 六月婷婷天天操夜夜爽视频| 中美月韩免费A片| 色婷婷综合久色AV五色最新| 婷婷色色播五月天| 五月天综合在线观看| 久色激情| 六月丁香网| 性色九九| 色婷婷88| 9er热在线精品视频| 热99re| 久草狼人| 婷婷六月丁香五月| 老师高潮流白浆喷水的A片| 日91高清无玛| 亭亭丁香aV| 人妻久久久久久久久| 久久婷婷五月天蜜桃| 26uuu最新地址| 久久久全国免费视频| 欧美月久久| 色色色精品无码区| 激情五月天婷婷丁香| 天天干天天操天天拍| 六月丁香五月婷婷| 97婷婷五月丁香| 色综合婷婷| 婷婷五月天色网久| 日本一级一片免费视频| 92久久精品一区二区| 五月婷婷九九热| 热九九在线| 亚洲美女网Va| www.色婷婷| 秋霞日本免费毛片A片| 五月婷婷激情综合在线| 五月色天情| 亚洲成人综合在线| 国产99久9在线| 99热免费网站| 色五月 五月婷婷| 国产偷人爽久久久久久老妇APP | 人碰人人人玩91| 久久久精品视频79| 狠狠色婷婷六月激情网| 国产无套精品一区二区| 久久五月丁香| 色婷婷久久| ww超碰在线| 天天狠狠插| 色婷婷操逼| 99久高清视频| 亚洲激情网站无码| 人妻精品在线| 国产91在线视频| 天天干,噜噜色,狠狠色| 久婷五月| 婷婷婷久久| 久久五月网| 狠狠搞狠狠操| 色99婷婷五月天| 校园激情 亚洲| 日本久久天堂| 日本啪啪天堂| 五月丁香婷婷成人综合网| 久久婷婷五月天| 午夜丁香| 激情四射婷婷色色色| 婷婷色五月噜噜| 色玖玖综合网| 国产44页| 久久这里只有精品1| 亚洲欧美婷婷五月色综合| www.色综合.com| 色久丁香五| 天啪天啪天啪天啪| 天天摸天天舔天天爽| www.夜夜操.com| 久热 91| 亚洲激情另类| 97超级碰人人| 涩五月丁香| 亚洲欧洲中文日韩久久AV乱码| 天天射影| 日屌日日操日日色| 五月婷狠狠| 日日夜夜小色哥| 97人碰人操| 综合综合网| 国外亚洲成AV人片在线观看| 99热情这里只有精品在线播放| 婷婷五月丁香综合| 激情婷婷丁香五月天| 五月亭亭网成人在线视频| 久久99jiu9| 激情五月天在线视频| 午夜福利8055| 天天摸人人摸| 丁香五月婷婷久久久| 丁香婷婷婷五月| 99婷婷色| 五月婷丁香| 色情五月| 五月丁香自拍| 五月丁香婷婷在线| 五月丁香六月婷婷网| 婷婷精品在线| 天天日天天插| 极品 少妇 内射| 色综合网页|