欧美成人午夜精品久久久,国产?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
返回資訊列表
四月婷婷五月色综合| 日本3级片偷拍网站| 久久这里99| 欧美日本韩国亚洲| 99热这里全是精品| 六月婷欧美| 香蕉操亚洲| AAA久久久| www.99热在线观看| 欧洲婷婷五月天| 天天插天天射| www.深爱激情| 色婷婷888| 九九热视频精品| 色噜噜狠狠色综| 激情五月天色色| 婷婷区日本| 久久A极片| 亚洲人妻五月丁香婷婷| 久9免费视频| 色婷婷亚洲精品天天综| 99热精品少| 99视频这里有精品| 色欲婷婷五月天丁香| 97操碰视频| 五月激情六月宗合| 色9999日韩国产| 五月天激情小说| 亚洲AV激情五月综合网| 99玖玖精品| 色五月成人| 伊人五月天97| 年轻的妺妺伦理HD中文| 婷婷丁香十月| 思思99热热热99| 在线看的免费网站| 99热免费精品| 操操操av| 亚洲成人在线综合| 久久久久亚洲AV综合| 久热精品视频| 天天操夜夜爽天天操| 国产99热| 色婷婷国产精品综合在线观看| 99在线热| 热99热久| 六月欧美综合色情| 丁香六月天婷婷在线| 青青艹b| 狠狠色综合网站久久久久| 超碰人人99| 色天天综合| 色9月| 99操碰| 综合五月亭亭9| 色444综合网| 涩综合网| 激情五月www| 狠狠人妻色综合| 99精品无码| 99热6色| 日日噜狠狠| 精品香蕉99久久久久网站| 99热这里只有免费精品| 另类五月婷婷| 涩综合网| 亚洲成人网站在线观看| 最新av在线观看| 天色综合网站| 婷婷色婷婷亚洲成人| 大香蕉在九| 五月婷啪啪| 婷婷五月天综合蜜桃| 色欧美一级| 五夜丁香| 五月天婷婷视频| 婷婷五月色| 色色综合五月| 蜜乳av一级av| 伊人91| 类似婷婷激情综合网站| 亚洲日日操| 天天操夜夜操| 久久草婷婷丁香网站| 久久婷青青草原| 操99| 色综合天堂| 亚洲va在线∨a天堂va欧美va| 天天摸天天肏| 亚洲国产成人在线| 亚州综合色| 婷婷97狠狠成人网站| AV色婷婷| 色五月涩涩婷婷| 青青草六月丁香| 婷婷激情中文综合| 九热...av| 婷婷黄色网| 日韩成人精品中文字幕| 中文AV网| 99热亚洲精品| www婷婷| 天天做天天爱天天综合| 99热欧| 久9久9热久热| 五月天开心色情网| 丁香婷婷五月激情| 99热爱爱干干日| 日韩精品无码AV| 超碰日韩成人| AA片在线观看视频在线播放| 国产AV一区二区三区最新精品| 丁香婷婷色五月| 精品久热69| 久久这里只| 97操在线资源| 天天色图| 天天碰夜夜爽| 日本天堂免费99| 丁香婷婷六月| 婷婷中文字幕欧美| AV变态另类一区二区| 人妻内射一区二区在线视频| 超碰在线50| 专区无日本视频高清8| 开心激情网五月天| 天天综合亚洲综合| 色婷婷激情| 婷婷在线免费| 伊人五月天| 五月丁香网站| 激情久久肏屄视频| 国产日日操夜夜操的肉棒视频| 五月婷婷六月丁香激情深爱| 久久99热这里| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 婷婷五月色花丁香社区| 五月天婷a在线| 婷婷五月丁香四射| ww超碰在线| 九九99精品| 日韩成人精品中文字幕| 久久婷婷影院| 婷婷六月天国产综合| 欧州婷婷五月天综合| 777精品久无码人妻蜜桃| 午夜不卡成人一区二区| 亚洲综合99| 青草五月天| 天天综合在线网| 色偷偷综合| 97干在线| 久久婷综合| 中文字幕日产A片在线看| 91九色熟女| 丁香六月啪啪| www,黄色在线,con| 五月丁了香蕉综合| www。五月天激情| 99热 免费| 欧美Va在线| 人人草人人爱手机视频看看| 五月天婷婷色色网| 五月婷婷色| 青青草婷婷五月天| 99色日本| 99热这里只有精品亚洲| 伊人五月天在线| 色欲久久久久久综合网综合网| 日韩婷婷| 亚洲综合五月天| 成人中文网| 9999热精品| 91人人网| 26UUU精品一区二区c〇m| 久久机热思思热| 五月婷婷,狠狠操| 99色网站| 婷婷五月激情综合啪啪| 欧美色99| 丁香五月婷婷成人网| 九九婷婷网五月天| 成人做爰高潮A片免费视频 | 精品99在线看| 69午夜成人影片| 99r这里| 天天天天干| 婷婷丁香五月激情| 欧美性猛交99久久久久99按摩| 色五月婷婷丁香凹凸| 97日在线视频| 天天综合亚洲综合| 天天日夜夜拍| 97久久婷婷色| 中文网AV| 97超碰在线免费观看| 亚洲精品99| 久久综合香蕉国产国产蜜臀AV| 亚洲成人av在线| 99色色最新视频| 婷婷五月无码| 久草五月| 色婷婷播放| 五月婷婷深深爱| 五月天久久激情| 婷婷放心五日爱| 五月花综合网| 激情99| 成人精品视频99在线观看免费| 第1影院之五月婷婷| 成久综合视频| 激情欧美五月丁香| 99在线精品观看99| 久久99婷婷| 久久综合激情婷婷激情| 人妻丰满精品一区二区A片| 九九在线热九九在线热99热| 一起草无码视频| 日本狠狠网| 天天综合区| 亚洲操女| 五月丁香六月婷婷中合网| 五月天天视频| 九热网站| 丁香五月日本| 亚洲激情综合| 亚洲午夜视频| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 99在线资源视频| 激情小说五月天社区丁香| 人人干av| 超碰免费电影| 国产精品激情五月天色婷婷| 国色天香成人网| 九九精品热播| 五月丁香激情综合网| 亚洲精品白浆高清久久久久久| 久久精品视频99| 婷婷伊人网| 精品一二三区久久AAA片| 大香蕉五月天婷婷| 天天噜日日噜综合无码| 五月天天丁香婷婷| 婷婷五月天深爱| 亚洲这里只有精品| 这里只有精品在线视频精品| 五月天综合婷婷| 激情五月综合久久| 丁香 亚洲 久久| 涩涩激情五月婷婷| 丁香六月色婷婷| 婷婷丁香九色| 天天日天天操天天干| 国产成人网站在线观看| 深爱五月婷婷开心中文字幕| 天天色播| 成人欧美一区二区三区在线观看| 色吧五月婷婷| 婷婷日在线观看| 婷婷久久网| 麻豆雪千夏| 热久久视频99| av婷婷丁香| 亚洲精品五月| 两性婷婷丁香五月| 99热这里只有精品搜| 91色色五月天| 99思思热只有在这里看| 爱狠射| 婷婷激情五月天小说校园| 亚洲在线免费成人| 天天视频亚洲| 伊人玖玖网| 婷婷五月天六月丁香| 偷拍九九热| 国产热精品| 黄色国久久| 激情五月天免费视频| 国产av一区二区三区| 欧洲亚洲欧洲99久久| 午夜天堂一区人妻| 一级操逼内射在线视频| 婷婷综合日本| 91一起操| 干亚洲天堂| 国产日韩欧美| 婷婷五月成人系列| 98色花堂98t.R| 婷婷丁香激情综合色情| 日日操夜夜操狠狠操| 在线观看免费视频| 久久视频这里99| 色九九中文字幕| 91人人爽久久涩噜噜噜| 色欲天天综合| 久久久国产精品黄毛片| 欧洲激情精品婷婷| 色婷五月天| 亚洲激情综合| 天天干com| 久热天堂| 色婷婷五月综合| 狠狠五月丁香色婷| 欧美色碰| AV大香蕉| 欧美色色网| 亚洲视频操| VA婷婷| 久婷视频| 狠狠色综合网| 久久草人妻| 国产肥白大熟妇BBBB视频| 99免费视频在线观看爱| 欧美97色| 99热 日韩| 九九九九大香蕉| 丁香婷婷五月人体| 五月天停停日日| 色XX综合网| 91色色五月天| 激情五月com| 婷婷午夜综合| 国产va在线视频| 久热精彩视频98| 欧美色色色色色色色| 思思久久网| 婷婷五月综合性爱| www.色五月| 婷婷色日本| 夜色综合网| 色色色色综合网| 丁香婷在线| 婷婷午夜精品久久久| 69精品人人人人| 激情五月婷婷丁香| 干婷婷五月天| aaa久久| 99色综合| 日韩精品一区二区亚洲AV观看 | 伊人激情| 五月婷婷之综合激情| 99精品在线| 日本在线观看aaa 99| 日韩操人| 久久婷婷五月| 五月婷婷在线网站| 色情婷婷| 六月丁香婷婷色狠狠久久| 香蕉久久国产AV一区二区| 久久婷婷综合五月趴| 精品99这里有| 男人的天堂五月丁香| 亚洲V国产V欧美V久久久久久| 国产精品色色| 五月宗合激情网| 婷婷八月激情| 色欲九区| 丁香五月婷婷天堂大香蕉| 一级黄色影片| 色激情五月| 思思热99热| 五月天小说激情| 亚洲最大在线| 97碰碰视频| 久9综合| 婷婷五月综合在线| 极品人妻VIDEOSSS人妻| 日本色五月| 婷婷六月天| 五月丁香六月婷婷色日| 亚洲精品V天堂中文字幕| 五月天第四色开心色播| 婷婷D区| 97人妻碰碰中文无码久热丝袜| 精品久久久人妻| 欧美久久婷婷| 色五月婷婷1| 丁香婷婷激情网站| 日本熟妇乱妇熟色A片蜜桃| 五月综合色| 亚洲激情综合免费| 天天舔天天插天天干| www.婷婷五月天,com| 懂色av蜜臀av粉嫩av永陈冠希| 99精品成人无码A片观看金桔| 少妇达人正片在线播放_ikun_福利吧| 天天檫天天爽| renre人人操国产超碰在线| 激情五月综合色| 人人干99| 五月玖玖| 任你操精品免费| 99色在线视频观看| 丁香五月婷综合| 开心五月网| 婷婷六月天激情影院| 九久9精品| 色色色区| 五月天成人综合| 久久激情五月网| 夫妻超碰在线| 二区成人视频| 超碰色碰碰| 超碰天堂网| 精品成人在线| AV亚洲在线| 91操黄| 最新无毒无码AV| 亚洲妇女熟BBW| 少妇性BBB搡BBB爽爽爽视頻| 农村熟妇高潮精品A片| 激情第四色| 亚洲精品视频在线| 日韩一本操| 激情综合五月| 五月丁香免费看| 婷婷开心激情| 九九热视频在线观看| 丁香婷婷基地| 欧美 日韩 成人在线| 天天操人人干| 九九热在线精品视频| 色婷婷五月六月丁香综合视频| 国外亚洲成AV人片在线观看| 亚洲AVDVD| 性爱激情五月| 99热香港| 丁香伊人五月色婷婷五十路| 色色色97| 亚洲艹网| 99秘 在线| 这里只有精品在线免费视频| 色99在线| 人人播| 天天日日夜夜| 久久XX| 亚洲av| 黄色AAAAAAA| 日韩高清久久| yellow视频在线观看91| 久久这有这里精品| 亚洲五月天婷婷在线| 婷婷五月天色播| 99.色| 欧美成人五月天| 久久精品人妻| 99色热| 精品AV无码超碰| 香蕉乱插| 夜夜躁狠狠| 婷婷五月天激情AV影院| 婷婷综合色色| 99久久思思| 激情五月小说婷婷| 任你爽精品免费视频6| 99热精品在线| 超碰93在线观看| 九色婷婷| 人人看人人97| 小视频在线亚洲| 这里只精品热在线18| 色欲午夜无码久久久久久张津瑜| 777精品久无码人妻蜜桃| 怡春院天天干| 综合狠狠伊人| 久草五月天| 五月天精品视频| 婷婷五月天综合亚洲| 亚洲AV无码电影| 久9久9久9久9久9久9| 深爱激情网婷婷| 婷婷五月色天| www久| 狠狠综合| 色99婷婷五月天| 亚洲激情亚洲激情| 熟女五月天久久综合| 丁香六月天| 国产精产国品一二三在观看| 97欧美在线| 五月天婷婷爱丁香中文字幕| 殴美激情综合网| 97在线视频观看| 狠狠色婷婷丁香五月| 婷婷色网| 婷婷爱五月| 第九色区av天堂| 丁香五婷| 丁香美女主播视频在线观看| www.丁香五月| 婷婷丁香97| 激情婷婷五月基地| 国产99久久久国产精品免费看| 日韩熟女啪啪视频| 精品五月丁香| 五月丁香啪啪激情| 超碰京东热av男人的天堂| 国庆精品久久| 久久久WWW| 热久91| 五月六月丁香婷婷在线观看| 九久9精品| 96色婷婷| 久久久久人妻中文| 午夜天堂一区人妻| 五月总合激情网| 天天综合色| 精品色色| 天天操夜夜爽天天操| 另类激情综合| 五月色婷丁香| 特级片神马电影| 五月丁香婷婷色| 激情综合网五月丁香| 色吧五月婷婷| 91碰碰视频在线观看| 翔田千里aV中文字幕| 97av在线视频| 中文字幕,综合,91| 激情www| 99热综合在线观看| 久久久精久人妻| www激情| 亚洲一级色电影| 日韩色色视频| 丁香五月婷婷综合91| 婷婷五月天综合中文| CHINESE熟女老女人HD视频| 久狠日av| 亚洲美女裸体被操在线观看| 五月开心婷婷| 久久99最新地址| 桃色激情婷婷伊人网| 色丁香五月婷婷| 久久98| 婷婷欧美综合| 五月婷婷色综图片| 超碰人人操在线| 免费视频99| 啪啪91| 午夜婷婷六月天| 九月丁香欧美综合| 婷婷午夜精品久久久| 69人人操人人爽| 久久久区区一久久久久久| 四LLL少妇BBBB槡BBBB| 六月色日韩| 99热超碰在线| 激情欧美婷婷| 婷婷丁香六月| 五月丁香网站在线播放| 影音先锋91网站在线观看| 欧美丁香六月激情视频| 99热超碰人| 99日这里只有精品| 色婷婷文字幕| 噜噜色五月| 91丨九色丨熟女|新版| 99久久婷| 综合久久婷婷五月丁香| 丰满少妇猛烈A片免费看观看| 天天在线天天综合网色| 国产精品天天狠天天看| 四月婷婷丁香| 嫩草视频观看| 狠狠干天天日| 春色激情第四色| www.丁香黄色五月天人与| 五月婷导航| 色射7856五月天激情四射| 亚洲视频色婷婷| av在线中文| 五月丁香六月激情欧美综合| 色国产五月| 91婷婷视频| 激情文学五月丁香六月婷婷| 九九超日本| 色五月婷婷激情| 久久99看免费| 久热这里| 五月丁香花开综合网| 七七色色综合| Va另类视频| 色情成人五月天| 开心婷婷五月| 丁香色情五月综合激情| 亚洲V国产V欧美V久久久久久| 99热国产在线| 97香蕉久久超级碰碰高清版| 无码人妻少妇色欲AV一区二区| 五月婷婷自拍视频| 五月丁香六月激情综合| 国产AV一区二区三区最新精品| 五月婷婷精品无在线| 91精产一区三区免费观看| 精品色| 99这里精品| 丁香五月天堂亚洲社区| 五月婷婷影院| 亚洲日韩26uuu| 99视频在线观看视频| 五月天激情四射| 久久久五月激| 久久99久久久久久久噜噜| 天天肏夜夜肏| 色色综合视频| av在线资源| 婷婷色色综合| 超碰大香蕉网| 欧美成人精品一区二区| 超碰人人色| 最近韩国日本免费高清观看| 久久色亭亭五月天| 五月天成人伊人| 欧美狠狠色| 五月天婷婷久久| 婷婷基地成人五月天| 色色色视频| 播五月婷婷开心| www.色婷婷| 青青草视频免费观看| 五月丁香网站| 五月婷综合| 婷婷免费精品视频| 丁香五月婷婷无码AV| 色五月婷婷基地| 狠狠色综合五月| 五月大香蕉| 久久99久久99www| 色五月激情五月| VA婷婷| 91精品国产综合久久蜜芽解析速度| 婷婷成人五月天| 综合色播| 五月丁香六月婷婷a v| 婷婷久久五月丁香| 婷婷综合在线播放| 人妻AV在线| 色婷五月天激情| 激情五月综合免费| 久久五月网| 五月色激情综合网| 91人久| 91免费看片| 九九青草热| 丁香视频| 婷婷五月色综合香五月| 狠狠五月天| 五月婷婷三级| 欧美日韩123| 激情图片婷婷| 成人五月天婷婷| 五月婷婷激情久久| 啪啪日热| 无码人妻丰满熟妇奶水区码| 婷婷婷婷色| 五月天激情小说网| 色J香五月天| 99热综合在线观看| 日本va欧美va精品发布视频| 天天日天天做天天舔 | 五月婷婷激情色情网| 色色色色热热| 激情小说五月天社区丁香| 成人一级片| 91丨九色丨首页| 精品国产一区二区三区四区阿崩| www.狠狠| 国产成人综合网| 婷婷金品综合视频| 激情综合亚洲| 色啪网| 4399亚洲视频| www色五月| 99视频在线播放大全| 特级操b片| 色色综合五月| 人妻丰满精品一区二区A片| 91丨九色丨43老版熟女| 色9999日韩国产| 综合久久久| 久婷久婷| VA色婷婷| 成人五月天丁香婷| 丁香五月影视| 操人无码| 国产在这里只有精品| 91丨九色丨东北熟女| 色噜噜狠噜噜视频| 婷婷五月天综合AV| 五月婷婷与六月丁香图片激情| 久久玖玖综合| 欧美大香蕉视频| 99热在线精品观看| 中文字幕,综合,91| 日韩狠狠色| 五月婷婷av| 色情五月婷婷| 五月丁香成人网| 日韩精品AV一区二区三区| 精品国产乱码久久久久夜深人妻 | 五月天色色网站| 五月丁香| 丁香五月瑟瑟| 99热在线观看这里只有精品| 久机视频这只有精品| 久久久久久人妻| 婷婷五月天色| 国产伦亲子伦亲子视频观看| 婷婷伊人綜合| 啪啪91| 天天综合图片| 五月丁香啪啪| 丁香五月综合| 精品五月花| 久草五月婷婷| 六月五月久久丁香| www.婷婷五月天| 99色网站| 97人人操人人拍| 成人欧美日韩| 婷婷天天综合| 91视频一起草| 中文字幕无码AV| 99爱爱网| 六月婷五月丁香| 亚洲精品婷婷| 丁香五月影院| 五月天停婷基地| 美女亚洲五月丁香| 色综合激情| 五月激情六月宗合| 99操网站| 久热久色| 99热97| 色激情五月天| 99精品超在线播放| 成人婷婷深爱综合网| 免费观看的av| 欧美日本免费一道免费视频 | 色丁香久久| 色婷婷伊人激情在线观看| 熟女网站久久| 五月天在线视频尤物视频在线看| 97人人操| 综合久久9| 玖玖婷婷色欲| 欧美va国产va| 激情五月综合六月丁香婷婷狠狠干| 色婷婷狠狠18| 天天干,夜夜爽| www91精品| 九九九成人在线视频| 大香蕉婷婷丁香视频在线| 狠狠干最新地址| 综合色色网| 婷婷综合精品视频97| 精品久久人妻| 啪啪六月婷婷| 午夜婷婷五月天| 99爱爱| 99啪啪网| 婷婷噜噜| 色狠狠色噜噜AV天堂五区| 婷婷久久久久| 狠狠草在线观看| 大伊香蕉精品视频在线| 色色五月天婷婷| 欧美性色视频| 91在线精品一区二区| 久久性爱视频免费| 九九亚洲视频| 九九综舍久久| 丁香五月婷中字幕| 深夜婷婷 丁香| www.婷婷网| 久久综合五月天| 停停六月 综合| 婷婷色色网| 色婷婷五月综合| 国产成人av在线| 五月丁香六月婷| 大香蕉太香蕉视频97| 亚洲看av的网站| 日本色婷婷| 久热九九| 91超碰在线观看| 色综合色色色色| 99re热视频这里只精品5| 黄色视频网站在线播放| 国产在线6| 色五月亚洲| 丁香五月影院| 婷婷激情五月天天天开心| 天天搞天天爽| 九九青草热| 婷婷五月天开心网| 久草五月丁香婷婷综合| 米奇影视五月天| 91打屁股免费看| 成人色五月天| 伊人激情AV一区二区三区| 久久天天天| 五月叮香啪| 丁香婷婷五月天校园春色| 色欲天天综合网| xxxx久| 97人妻碰碰碰久久香蕉| 狠狠色丁香婷婷久久综合| 丁香五月天亚洲视频| 色婷婷文字幕| 久久久免费精彩视频| 精品动漫 无码av| 欧美丁香婷婷五月| 人妻操日日| 五月天成人小说| 国产色香蕉精品五夜婷| 丁香婷婷基地| 激情五月天的婷婷| 色三级色三级| 亚洲成人免费在线| 俺去也综合| .操區COm| 国产FREESEXVIDEOS性中国 | 思思热99er在线视频| 精品人妻伦九区久久AAA片| 丁香激情合作五月| 狠狠婷婷综合| 国产精品视频久久99| 日韩三十六页| 婷婷五月丁香综合激情| www,超碰| 久久久久久久97| 99热九九这里只有精品| 99日韩| 狠狠色狠狠鲁| 伊人大香蕉毛片| 五月激情影视| 亚洲成人AV在线观看| 色色性爱视频| 欧美五月丁香在线观看| 9 7总站超级碰免费视频| 九九热只有精品| 婷婷五月网图片区| 九九九九国产| 亚洲人人96@| 色色综合网www| 婷婷五月天视频亚洲| 3p久久| 色色色色色综合| 婷婷操逼网| 丁香六月婷婷久久亚洲天堂| 991国产精选视频在线播放下载| 99热老司机| 五月激情天| 99热12| 婷婷久久性爱| 欧美色色色| 五月天社区狠狠| 天天肏高清在线| 五月婷在线观看| 人人做人人看人人摸| 69色婷婷| 丁香九月激情| 婷婷丁香五月亚洲综合网在线视频观看| 99热999| 丁香五月电影| 东北婷婷五月天| 婷婷综合九月| 婷婷综合激情| 六月丁香六月婷婷欧美| 9久精品| 婷婷的五月天另类视频| 人人摸人人干| 丁香五月成人论坛| 成人网页在线观看| A久久| 五月天久久网站| 丁香五月电影| 九九综合九色欧美狠狠| 色婷婷久久综合| 色青青视频| 日本综合色图| 五月丁香直播| 香蕉久久国产av一区二区| 婷婷五月成人| 久久免费精彩视频| 日本精品。999| 7777精品伊人久久久大香线蕉最新版| 99久久久久| 天天插综合| 人妻乱码久久久| 成人在线网站| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 色情综合网| 六月丁香婷婷五月天| 微拍92| 久久久com| 婷婷五月色激情欧美激情| 激情五月天开心网丁香无码| 人妻激情视频| 亚洲黄色网址| a网站免费观看| 91九色国产| 激情AV在线| Va另类视频| 91精品丝袜久久久久久| 婷婷九九色| 色色婷婷丁香| 激情综合色图| 丁香五月婷婷色播艳门照| 538午夜激情| 色五月婷婷激情基地| 图片区 小说区 区 亚洲五月| 综合久久97| 深爱婷婷丁香五月激情| 五月天婷婷色播综合在线| 久久总和99| 色播色丁香五月| 国产AV一区二区三区最新精品| 色五月91| 开心婷婷中文字幕| 草做免费在线观看| 亚洲色婷婷激情| 99热18| 九九99热| 色婷婷另类| 青青草大香| 91综合在线| 婷婷丁香五月亚洲| 天天综合久久| 婷婷五月激情视频在线| 成人欧美Va| 色A网| 99精品在线观看| 成人电影在线免费试看| 色99视| 五月婷婷性爱网| 97久久人人人干| www.久久| 婷婷五月婷婷| 97人人射| 婷婷激情综合| 91丁香五月| 天天干一干| 可以直接看的av| 日本五月天一页| www.六月丁香看AV| 婷婷五月天99| 五月丁香六月婷婷免费| 色色亚洲无码| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 97婷婷五月丁香| 精品成人在线| 无码激情AAAAA片-区区| 深爱五月天| 伊人久久婷婷| 综合网色| 久久婷婷影院| 五月婷婷六月色| 五月天色丁香| 俺去也综合| av色色国产| 色播五月网| 夜夜躁爽日日| 综合色99| 日日夜夜干| 三男玩一女三A片| 内射爽无广熟女亚洲| 狠狠干狠狠干狠狠干狠狠干| 婷香五月网在线| 黄色大片又大粗又爽| 五月天婷婷综合久久| 九九热视频精品2| 人人草成人视频| 人人操Av| 丁香五月狠狠综合欧美| 这里只有国产精品在线| 亭亭五月激情亚洲在线| 五月婷网站| WWW.婷婷| 丁香久久五月婷综合| 97久久久久| 亚洲情欲| 欧美色色色| 99久久97久久欧美综合网| 九九人人操| 丁香五月综合激情性爱| 五月婷婷啪啪啪| a网站免费观看| 色色色五月婷婷| 成 人片 黄 色 大 片| 丁香狠狠干| 超碰永久在线| 狠狠综合网| 美女五月天| 荡乳尤物3HP1V5| 91视频精品99| A久网| 久久婷婷精品| AV动漫不卡无码免费| 丁香五月天激情小说| 狠狠色综合网| 五月丁香趴趴| 99在线视频精品| 日韩欧美颜射| 欧美啪啪五月天| 欧爱综合视频| 夜夜骑夜夜撸| 99热第一页| 人妻尝试久久久久久久久久久久| 六月激情婷婷| 九九综舍久久| 亚洲精色| 99视频内射三四| 五月婷婷中文字幕| 亚洲精品午夜国产va久久成人| 精品国产AV色一区二区深夜久久| 色热久| 久久婷婷五月| 99操九九网| 久er7久热| 婷婷综合激情| 99精品国产在热久久婷婷| 色丁香五月婷婷在线| 性无码专区无码| 色情综合| 亚洲性爱电影| 日韩精品无码AV| 99性感视频| 熟女人妻一区二区三区免费看| 亚州色婷婷| 国产无人区大片| 亚洲成人AV电影网| 色香五月天| 激情五月天婷婷| 五月五婷婷网| 婷婷五月天综合网| 久久久久激情网| 丁香五月婷老师| 亚洲AV久久久久久久久久久久久久久久| 深爱丁香网| 丁香六月婷婷色XXXXX| 99热亚洲精品| 激情五月天开心| 九九热99精品| 深夜激情网| 婷婷天堂伊人| 婷婷成人小说综合| 激情五月婷婷| AV五月丁香| 天天日日夜夜| ri电影在线| 天天天天干| 综合激情伊人影视在线| 色啪影院| 玖玖无码中文| 久99在线视频| 久超超碰| 五月婷六月| 2017狠狠干| 久久9热| 日韩精品一区二区亚洲AV观看| 色五月激情网| 婷婷五月天AV在| 狠狠搞狠狠操| 大香蕉欧美在线| 婷婷久久综合| 色婷婷五月天成人网| 黄色一级影片| 色色狼人综合| 五月天开心色情网| 色五月成人| 99精品久久| 丁香五月情色| 99色色视频| 综合激情开心五月| 欧美大肥婆大肥BBBBB| 五月丁香啪啪拍| 久久人妻熟女一区二区| 激情综合网激情五月欧美| 色婷青青| 天天做天天摸| 欧美日韩国产一区二区| www.日本91| AV在线大香蕉| 九九热在线观看视频| 深爱五月婷婷开心中文字幕| 婷婷五月天激情小说| 美女要搞搞天天搞搞搞网站| 久久久天堂国产精品女人| AV天堂婷婷五月天| 九月婷婷在线观看| 九九热在线视频| 翔田千里 50岁 无码| 色婷婷小说网| 狠狠擼综合| 五月婷婷啪啪综合网| 91热视频色网站| 丁香五月影院| mmm1717.6dbm人人爱人人操| 天天碰夜夜操| 丁香五月婷婷影院| 色婷婷色九月| 久久久婷婷| 色五月久久成人婷婷| 玖玖婷婷色欲| 五月天婷婷无码| 亚洲旡码| 丁香六月婷| 青青草原99热| 久久婷婷丁香视频网| 大香蕉久| 五月婷婷六月丁香激情综合网| 色99最新网址| 天天弄天天操| 天天日天天做天天舔 | 91av无码| 天天操B| 二人电影免费版在线观看| 超碰婷婷色| 丁香五月手机在线| 成人午夜无码视频| 538在线精品| 国产成人99久久亚洲综合精品| 无码橾| 日日日日日| 日韩精品无码99| 色九亚洲| 99热免费| 五月婷婷真爱激情网| 成人 在线 日韩| 国产XXXX搡XXXXX搡麻豆| 久久精品视频在这里有| 色综合九九| 久久激情中文| 这里只有精品视频| 98毛片| 成片免费观看大全| 狠狠色综合网| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 亚洲av午夜精品一区二区| 亚洲激情网| 久热这里只有精品66| 免费播放片大片| 99热思思| 激情五月婷婷五月| 天天色天天爽| 婷婷五月娱乐在线| 激情五月婷婷丁香| 天天操天天爱天天玩| 婷婷丁香花五月天| 激情文学综合婷婷五月天丁香花| 久久丁香五月天| 久久五月天合网| 青青草Avb在线| 任你草| 婷婷 丁香 精品| 色五月av伊人| 91久久电影| AA片在线观看视频在线播放| 五月天桃色深爱网| 日韩狠狠色婷婷| 婷婷综合一二三| 国产成人片| 丁香婷婷色九月| 另类激情五月| 久操人妻| 丁香五月婷婷激情蜜桃| www.婷婷六月天| 婷婷五月综合网| 激情五月丁香色婷婷| 亚洲人妻Av| 婷婷五月丁香综合亚洲| 99精品在线播放| 丁香五月激情在线| 99热欧| 色色色在线| 91碰碰视频在线观看| 五月天桃色深爱网| 五月丁香啪啪| 九九热思思热| 色婷视频| 九九中文字幕九| 七七婷婷综合| 色狠狠综合| 五月花免费视频| 色狠狠伊人久久五月丁香| 九九热视频99| www.久操| 大陆极品少妇内射AAAAAA| 亚州色婷婷| 婷婷综合激情| 国产精品国产VA片国产| 五月天激情小说| 欧美日韩成人高清在线| 日韩无码AV电影网站| 色色色综合色| 婷婷五月天网址| 天天干com| 秋霞学生妹一二级| 欧美性丁香色色五月天| www.久久久久久久久久.com| 大香蕉av在线| 99在线69| 五月天婷婷乱论小说| 亚洲色色精品| 99re这里只有精品国产99| 香蕉狠狠爱视频| 久久国产高清| 91聚色综合网| 国产高潮A片羞羞视频涩涩| 91超碰九色| 99热思思| 香蕉AV777XXX色综合一区| 99久久思思| 五月激情丁香六月狠狠干| 啪啪激情网| 人人操人人干AV| 综合激情九月婷婷,激情综合婷婷中文字| 精品人妻伦九区久久AAA片| 五月激情啪啪| 综合久久五月| 婷婷六月香| 中文字幕日本最新乱码视频 | www.精品99| 66精品国产成人| 久久精品9| 99九九视频| 丁香六月婷婷社区| 婷婷五月激情小说| 九月婷婷在线视频| 亚洲乱码日产精品BD| 久久五月天婷婷| 九九精品免费| 综合五月婷婷| 97人人射| 超碰在线看| 91黄操| 婷婷狠狠18禁久久| 亚洲欧美婷婷五月色综合| 婷婷五月六| 婷婷五月天第三页| 激情小说婷婷五月| 五月丁香婷婷潮喷中文字幕| 六月天丁婷婷| 9999色色色色| 99.色| 欧美婷婷五月天综合| 欧美色小说婷婷| 亚州日本欧州韩美高青高潮一| 精品综合久久久久久五月天| 欧美99热| 激情婷婷丁香色五月综合| 天天狠狠插| 婷婷丁香五月精品| 五月花成人网| 初夜av| 天天综合亚洲综合| www狠狠| 天天干天天操| 婷婷五月婷| 五月丁香偷拍| 91狠狠色色丁香婷婷综合久久| AV操逼网| 五月婷婷性爱|