欧美成人午夜精品久久久,国产?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
返回資訊列表
www.狠狠干com| 婷婷五月天久久久| 巴基斯坦粉嫩无码视频| 91干网站| 夜夜干夜夜操| www.99婷婷| 99热这里是精品| 久艹久| 久久久久99精品成人片| 天天日天天爽| 色色色综合色| 天天综合精品| 婷婷色情六月| 日韩999| 久久婷婷五月综合色奶水99啪| 大香蕉人在线65| 五月丁香免费看| 97狠狠色| 亚洲国产成人AV在线| 五月丁香婷婷开心| 五月天色图| 99热精品中文字幕| 99只有这里是精品| 9l视频自拍九色9l视频自拍九色9l社区| 五月婷婷色播| 五月丁花六月丁香综合| 欧美日韩精品一区二区三区钱| 看国产探花操逼三级片| 99热在线爱| 婷婷色啪| 可以直接看的AV网站| 99啪啪骑| 九热av| 可以免费观看的AV| 人人摸人人澡人人| 热久久这里只有精品| 99久久婷| 国産精品| 狠狠色综合久久久久| 深爱五月激情| 99热这里只有精品13| 婷婷9月天| 婷香五月激情视频| 丁香亚洲婷婷五月| 99re这里只有精品9| 久久这里都是精品| 丁香激情五月少妇| 九九热手机在线视频| 777久久综合视频| 热99热久| 大香蕉75线| 久久综合婷婷| 91viP在线看| 丁香久久五月天视频在线观看| 久热久色| 五月天激情四射| 天堂在线伊久| 成人无码精品1区2区3区免费看| 五月丁香综合网| 色综合爱综合| 79精品在线视频| www,超碰| 九九精品热播| 五月天婷婷色在线视频免费观看 | 日韩AV中文字幕在线| 在线只有精品| 一区二区无码视频| 丁香婷婷五月激情| 激情涩涩网| 色婷婷色99国产综合精品| 狠狠狠狠狠狠| 久久香蕉影院| 色噜噜婷婷| 99精品网| 人人操91色| 久久机热探花| 亚洲精品中文字幕成人片| 久久婷婷综合国产| 色播婷婷五月天| 五月丁香六月香香蕉| 九九色天堂| 玖玖婷婷婷丁香五月| 久热AⅤ| 五月五月婷婷| 欧美激情xxxXX| 日韩在线五月天婷婷| 伊人干综合| 婷婷在线播放av| 五月婷婷丁香啪啪| 蜘蛛女侠2003满天星免费观看| 五月天婷婷影院| 日本久热| 婷婷激情综合网| 99re热在线视频| 狠狠色噜噜狠狠狠狠综合| 中文字幕不卡+婷婷五月| 操人91| 欧美成人日韩| 五月开心久久| 韩国19 主播内部福利vip免费播放| 91猫咪国产在线播放| 伊人丁香在线| 在线视频99| 深爱激情网五月| 亚洲激情网站无码| 婷婷大香蕉| 思思热精品免费视频| 五月丁香黄色| 五月婷在线| 丁香婷婷影院| 99视频在线观看视频| 美女主播野战视步页| 色五月婷婷小说亚洲中文字幕组| 精品久久艹| 天天碰夜夜操| 操97| 98永久精品| www.久久| 色综合色色色色| 久久久久婷婷五月热综合| 四色 爱 婷婷 精品 亚洲 五月天| 婷婷五月欧美综合| 伊人久久婷婷| 99操| 色色色热热热| 丁香花狠狠婷婷亚洲中文字幕| www久久99com| 五月丁香网站| 伊人激情综合网| 丁香花大香蕉婷婷综合| 中文字幕人妻在线| 91丨九色丨丰满人妖| 婷色五月| 婷婷 久综合| 色婷久| 热久久婷婷| 成人色五月天| 色5月婷婷| 4438亚洲欧美| 丁香六月天色婷婷| 成人精品在线观看| 99人这里只有精品| 极品精品一区二区三区在线| www.夜夜.com| 熟女人妻一区二区三区免费看| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 大香蕉 婷婷| 啪啪东京热| 丁香婷婷六月在线资源观看| 久久婷婷五月综合色欧美| 婷婷开心深爱五月天| 久久五月综合| 无码髙清| 激情丁香五月婷婷| 五月丁香六月情婷婷久久| 婷婷五月花| a色色色色色| 九九热在线99| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 99ri国产| 色综合五月天| 婷婷五月丁香久久| 超碰不卡在线| 丁香五月综合| 一本久道综合色婷婷五月| www.yw色| www.91五月| 激情纯色婷婷五月天在线不卡视频| 久久激情视频| 99热无码| 色激情综合| 99热超碰| 99久久综合| 俺去也五月| 人妻激情在线| 碰97久久| AV在线大香蕉| 亚洲12p| 亚洲五月色| 色五月天丁香婷婷色| 天天日日爽| 热久久这里只有三级视频| 欧美va在线| 婷婷情色五月天| 99网| 精品无码色欲AV| 青青草青青草五月天| 狠狠色综合久久| 久热黄色| 99五丁香月| 亚洲欧美婷婷五月色综合| 久久综合激情五月天| 香蕉AV777XXX色综合一区| 国产成人+综合亚洲+天堂| 五月婷婷,六月丁香| 五月天婷婷丁香蜜桃91| 婷婷WWW久久| 91chinese在线| 99色色最新视频| 天啪天啪天啪天啪| 天天干天天做| 欧洲第一久色| www.zbzhongsen.com| 操操操B| 91九色在线视频| 99热久久这里只有精品| 天堂中文国产| 狠狠干狠狠操狠狠爱| 丁香啪啪| 日本爆乳片手机在线播放| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | www.97碰碰com| 五月婷婷啪啪| 丁香婷婷久久老熟女综合网| 久操操| 色播激情| 久草丁香婷婷1024| 丰满少妇猛烈A片免费看观看 | 五月天成人网婷婷| 亚洲人妻AV| 色色色色色九九九九九| 97亚洲视频在线| 国产另类综合| 天天操天天操| 美女天天艹人人爽| 超碰超碰在线| 影音先锋一区二区三区| 色婷婷综合电影| 精品一二三区久久AAA片| 思思精品久久艹| www.久久爱.com| 91打屁股免费看| 色爱综合网| 丁香五月激情视频在线| 99热精国产这里只有精品| 亚洲中文av| 2022人人操人人看| 亚洲四色五月| 一本色道久久综合狠狠躁小说| 99视频只有精品| 久久大香蕉同僚| 天天做天天爱综合| 79精品视频| 婷婷狠狠五月综合| 五月婷婷欲色| 人妻久久久久久久久久久| 99热只有精品在线观看| www.亭亭五月天| 99er在线观看| 亚洲情a| 少妇口诉沐足视频播放器网址| 九九热a| 91精品无码| 久久久.COM| 婷婷综合亚洲| 久热久色| 五月综合亚洲| 色99欧洲色19| 婷婷 色 丁香 夜| 99久久久| 91欧美日韩综合| 日日干综合| 六月婷婷视频| 性韩日色婷婷五月天激情啪啪XXX| 全高清无码视頻| 九月综合| 踪合专区啪啪| 国产伦理精品高清在线观看网站一区二区 | 日本婷久久| 婷婷欧美激情| 婷婷伊人中文字幕| 天天操夜夜夜拍拍拍| 五月社区丁香| 天天舔天天操| 99久热这里只有精品| 夜夜谢天天干| 区欧美日韩成人| 国洲夜色亚热在线久久| 天天射美女| 天天弄天天爽| www.操.com| 久久永久视频| 五月婷婷六月丁香| 91精品久久久久| 丁香五月综合婷婷| 国产精品色色色色| 九九热在线精品| 99久久久久久www| 久久99热 这里有精品| 日韩AAA| 国精产品久久| 色色激情| 九月停停| 色色网站免费在线视频| 五月婷婷五月天激情网| 久久精彩免费视频| 色色色五月天激情资源| 亚洲婷婷丁香五月在线| 婷婷综合色五月天| 综合色99| 91丁香| 任你草| 天天日日爽| 伊人网碰碰| 思思热在线视频精品| 在线成人va| 97操碰在线视频| 欧美日韩999| 色五月色情| 婷婷色激情网| 久久思思热| 欧美槡BBBB槡BBB少妇| 91大操| 天天综合五月| 操操操www.com| 26uuu亚洲欧美| 亚洲区视频| 综合激情网激情五月。| 99在线观看| 婷五月天| 免费观看的AV| 九九人人操| 综合久久伊人| 久久久久久丁香五月| www.婷婷五月| 亚洲午夜Av| 一本久久亚洲五月婷婷| 五月婷婷综合激情| 玖玖婷婷综合| 激情都市丁香婷婷| 中文字幕天天干| 激情99热| 九九Av| 97色色婷婷五月天| 99视频网址| 久久大大香| 色五月激情问网站| 五月天社区| 婷婷丁香激情综合色情| 五月花综合| 亚洲午夜一区二区| 99ri精品在线| 91色涩| 色婷婷五月综合色婷婷| 天天插天天操| 久久综合五月| 第四色大香蕉| 九九视屏| 91九色国产| 91精产一区三区免费观看| 激情色视频| 青草视频在线播放| 99爱免费在线视频| 九九综合五月欧美| 激情图片五月天| 91av无码| 婷婷五月天亚洲五码| 伊人久久大香线蕉综合网站| 女人被男人吃奶到高潮| 超碰日日操| 日熟女| 先锋资源婷婷| 国产操碰| 天堂婷婷五月在线| 97久久人人人干| 99高级会所久久| 岛国av网| 99re资源在线视频导航| 另类小说激情五月天| 欧美操人| 六月婷婷俺也去| 婷婷五月天影院| 亚洲欧洲色色| 超碰人人摸AV| www热久久yy9| 九九熱最新視頻| 亚洲高清在线| 五月天六月婷婷电影| 丁香五月天日韩无码| 六月婷婷久久| 99热碰碰热| 亚洲天天| 五月婷婷丁香色播网| 五月婷婷先锋| 97碰在线| 色色亚卅| 激情久久久久久久久久久| 婷婷综合激情| 99热这里只有在线| 九九99免费理论| 五月丁香啪| 丁香婷婷啪啪啪| 97人人操com| 一区二区乱码视频| 五月四色色| 97丁香视频| 中文字幕婷婷| 丁香五月a| 成人欧美日韩| 日本美女97在线视频| AV操操操| 婷丁香五月天| 久久看婷婷| 久久久久久久人妻| 九月av| 凹凸探花电影| 内射综合网| 丁香五月天视频| 91人人妻人人操| 久久五月网| 婷婷 亚洲图片 丁香| 久久婷婷夜| 色999;丁香五月| 99热在线观看精品| 婷婷丁香六月影视| 五月丁香综合激情| 99碰在线视频| 久草婷婷网 | 国产美女无遮挡裸体毛片A片| 六月婷婷久久| 久久这里只有精品视频26| 五月婷婷日本| 色www99| 激情六月综合| 97色天堂| 五月天激情婷婷久久| 激情四射五月天偷偷看婷婷| 光棍影院日韩精品| 影音先锋91网站在线观看| 天天在线XXX| 超碰精品手机在线| 丁香五月色综合色播五月| 玖玖婷婷色| 丁香五月花| 99热99这里只有精品| 在线播放成人网站| 国产综合色婷婷精品久久| 99热99精品在线观看| 激情久久久| 色婷五月| 日韩啪啪网| 激情五月婷婷开心网| 精品综合久久久久久五月天| 丁香五月婷婷亚洲色图| 91九色国产| 九九久久高清| 五月丁香婷婷婷激情爱爱| 五月婷婷影视| 91精品刘玥| 欧美日韩欧美| AA片在线观看视频在线播放| 午夜不卡久久精品无码免费| www色色com| 色综合久久44| 日本色色色| 99色热视频| 人妻啪啪啪| 久久九九蜜| 69婷婷丁香午夜| 91精品熟女| 小视频在线亚洲| 天天人人综合| 另类婷婷丁香| 五月天伊人手机在线播放AV| 婷婷激情五月综合丁香社| 天天粽合合合合| 亚洲五月天伊人| 亚洲狠狠狠色婷婷综合激情久久久| 色色无码日韩| 综合激情五月丁香| 99免费视频在线观看爱| 天天搞天天爽| 97香蕉碰碰人妻国产欧美| www99精品| 日本99热| 夜夜操加勒比| 五月婷婷黄| 99热碰碰| 影音先锋xfplay资源男人网| 色欲五月天| 五月丁香六月综合激情网| 99热99干| 激情另类综合| 无码AV免费精品一区二区三区| 久久综合久色欧美综合狠狠| 亚洲视频码| 大香蕉久久婷婷| av国产精品偷| 深爱网深爱综合网| 99久久极情精品一区| 五月婷婷六月丁香五月| 丁香五月婷婷基地| 1024在线视频| 超碰人人操在线| 五月婷婷色播视频| 亚洲欧州色情在线观看| 婷婷综合亚洲| 久久99最新地址| 欧美日韩成人在线免费| ,99视频久久| 91久久婷婷人人澡草 | 五月视频日本免费观看| 淫水导航| 97碰碰人人| 五月天婷婷成人网| 玖玖五月丁香| 丁香五月久久综合| 色婷婷五月天成人网| 色婷婷电影网| www久久久久| 色色网站免费在线视频| 五月天婷婷在线观看| 久久五月视频| 亚洲电影中文字幕| 激情文学天天| 婷婷狠狠97| 欧美怡红院黄站| 欧美性爱中文字幕| 欧美综合五月丁香五月天| 欧美在线97| 狠狠ri| 日本一道久久| 婷婷五月天国产| 五月丁香影院| 综合色99| 玖玖五月| 久99久视频精选| jiujiu无码五区| 国产精品久久久海的味道| 五月天综合在线| 在线观看亚洲视频影院| 天天摸色吧天天摸色吧| 99国产精品久久久久久久久久久| 九九aV| 丁香六月婷婷一区二区三区| 麻豆WWWCOM内射软件| 任你日视频| 日日狠狠久久偷偷四色综合免费| 玖玖色综合| 人妻九九九九| 操日视频| 天天综合久久| 人人干人人操人人摸| 99超超碰| 性爱电影科技贸易有限公司| 91操操| 五月色婷| 亚洲精品国产成人AV在线| 亚洲第一av| 3www激情| 色激情网| www.99热这里只有精品| 婷婷激情五月天激情小说| 婷婷色五月天综合网| 超碰91在线| 五月6香色婷婷视频| 欧美三级欧美一级| 99人人干| 九九热视频精品| 丁香8月手机综合| 亚洲视频在线观看99| 婷婷六月丁| 丁香激情久久| 色色网站在线| 色必久悠悠影院| 激情综合五月婷婷| 婷婷色播综合五月| 美女被操一区二区| 天天干夜夜谢| 久久久.COM| 色色色婷婷五月天| 他改变了拜占庭| 丁香五月天啪啪| 精品九九在线观看视频| 国产真人做爰视频免费| 婷婷深爱五月丁香网| 五月四色激情| 狠狠穞A片一區二區三區| AVV黄| 超碰在线免费9| 五月丁香好婷婷A片网| 九九99精品视频| 亚洲五月婷婷| 双性美人被调教到喷水A片| 色婷婷成人在线| 99惹 精品在线| 婷婷激情五月天激情| 秋霞丝袜啪啪啪| 日本三级中国三级99| 日韩欧美一级大黄网站| 亚州美女| 五月婷婷综合丁香视频| 激情五月天色色| 五月花婷婷| 五月天婷婷网站| 青青草99re| 九月激情综合| 激情5月婷婷狠狠干| 日韩一级| 99久久久久| 激情网站综合五月天| 丁香婷婷浪潮AV久久综合| 五月丁香婷婷综合| 激情婷婷五月女| 婷婷五月丁香综合亚洲| 欧美天堂久久| 99热这里只有精品50| 大香AV| 99视频内射三四| 婷婷性爱五月天| 丁香婷婷人妻| 伊人丁香五月婷婷潮吹| 五月天婷婷小说| 欧美啄木乌丝袜人妻系列| 亚洲最大在线| 26uuu亚洲精品国产| 久久久A级视频| 久久久激情| 伊人五月天在线| 欧美狠狠一在草| 99视频日韩| 婷婷五月天av| 久久久27操| 亚洲瑟瑟精品在线| 免费黄色视频网址| 五月婷婷色白丝| 国产精产国品一二三在观看| 五月天丁香婷婷社区| 丁香5月啪啪| 亚洲成人一区| 91se在线观看| 黄色片avv| 激情六月综合| 久热黄色| 停停五月丁香| 日日操日日干| 狠狠色丁香| 欧美婷婷色五月网| 国产无套精品一区二区| 五月丁香婷婷色| 五月亭亭狠狠| 婷婷丁香五月天中文字幕| 五月婷五月婷伊人伊人五月婷| 九九九九成人| www.狠狠操| 婷婷五月天激情综合网| 五月亭亭六月色| 五月丁香啪啪综合| 成人资源在线| 美女xx不卡| 182.t午在线观看| 色婷婷视频| 激情综合色| 色欧美影院| 真实亲子乱子伦高清在线观看| 狠狠色狠狠色综合日日91| 色就是色婷婷五月亚洲激情| 中文字幕不卡+婷婷五月| 国产综合丁香五月天| 超碰婷婷五月| 国产av第一专区| 黄色录像网点| 日本黄色三级片内射| 国产暴力强伦轩1区二区小说| 激情综合无码| 婷婷五月色播放| 超碰99在线观看| 久久久ww| 人妻无码精品一区| 久久这里都是精品| 久久99网| 大香蕉520| AA丁香综合激情| 日日撸夜夜操| 亚洲中文字幕在线观看| 亚洲亚洲人成综合网络| 99噜噜噜在线播放| 热99玖玖99玖玖99九九| 97人碰人操| 免费日本aⅴ中文字幕 | 精品人妻一区| 欧洲色区| 日韩aⅴ视频| 久久婷婷东京热大香樵| 9999热在线免费观看| 色婷久九| 、激情六月天| 深爱激情久久| 色播激情五月天| 日91高清无玛| 俺去也五月| 国产乱妇无乱码大黄AA片| 亚洲精品国产A久久久久久| 久婷婷视平| 色原狠狠综合| 无码se| 97色伦另类图片小说视频| 日日操,天天操| 色色色com| 五月色色网| 大香网伊人久久综合| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 51XX嘿嘿午夜无码| 九九aV| 久久五月网| 狠色色狠网| 欧美日本黄色| 97精品人人A片免费看| 久久亭亭电影| j久久性爱视频| 夜夜爽天天日| 激情丁香社区| 96精品成人无码A片观看金桔 | 日本ww亚洲| 人人爽天天爽| 午夜丁香| 新激情综合| 另类五月婷婷| 噜噜色婷婷| 午夜 外网 精品 在线| 天天综合影院| 99久久这里只有精品| 99热免费18| 久思思久视频| 免费观看大片视频 丁香婷婷 六月欧美| 人人摸人人搞| 六月婷在线| 婷婷丁香六月五月天| 91精品久久久久久综合五月天| 91超级碰碰| 精品99*| 俺来也综合网精品一区| 天天干天天色综合| 免费看欧美成人A片无码| 激情综合国产| 激情小说视频图片网| 日本天天色| 69色婷婷| 夜夜骑福利资源| 五月天婷婷基地| 欧美性猛交99久久久99| 亚洲色 视频| 色婷操逼| 激情丁香九九五月综合网| 天天色域综合网| 婷婷丁香人妻天天| 97av在线视频| 色三级色三级| 久久538| 六月婷综合| 久久天天天| 亚洲激情综| 888久久久| 婷婷中文字暮| 激情小说色五月| 亚洲日韩人妻操逼| 久青草影院| 无码啪啪| 婷婷五月电影院| 亚洲成片在线观看| 伊人AV五月婷| 啪啪啪丁香五月| 日逼免费视频| 香蕉网婷婷| 久久激情综合| 亚洲无码99| 亚洲人成网亚洲欧洲无码久久| 色天堂在线| 久久婷婷丁香视频网| 2025色婷婷| 色色六月| 五月天综合婷婷| 婷婷综合玖玖五月| av性爱网站| 伊人激情网| 99热国产这里只有精品| 黄色aa观看aaguochan| 激情五月四色| 天天操天天国产三级片处女学生妹| www色中色综合| 97啪在线观看视频| 激情色视频| 91传媒无码人妻精| 丁香五月婷婷AV在线| 五月婷婷六月综合| 狠狠爱婷婷爱| 激情视频网址| 丁香五月激情啪啪| 婷婷五月AA五月在线| 草草夜夜操| 精品51XX| 日本黄色在线观看| 亚洲另类电影| 亚洲第一色色色色| 五月丁香婷婷成人网| 在线观看玖玖资源免费观看| 色播激情婷婷| 少妇搡BBBB搡BBB搡毛茸茸 | 成人欧美日韩| 亚洲1区| 先锋av性爱成人电影| 97se在线视频| 婷婷五月天Av| 丁香五月 综合| 婷婷五月天天| 日日夜夜干| 亚洲成人免费电影| 国产亚洲精品久久久久久郑州| 五月丁香另类网| 欧美WW在线网| 开心激情站| 99精品久久久久久久婷婷久久| 久久久九九视频精品18| 婷婷五月天激情小说| 五月丁香婷婷网网网网| 九九色婷婷五月天| 青青草原伊人网| sS丁香五月婷婷| 五月天婷婷Av| 亚洲精品99| 开心五月婷婷激情网| 日本三级色| 天天干天天日天天操| 好激情在线综合网| 日韩人妻在线观看| 久久久婷婷五月天| 超碰大香蕉网| 天天爽天天爽夜夜爽| 婷婷久久18| 色欲天天综合网| 无码网站视频| 久久综合丁香五月| 激情五月天情色| 26uuu日韩| 五月成人天| 26UUU| 五月婷免费视频| 色五月婷婷网| 五月综合激情| 激情婷婷五月基地| 婷婷六月激情小说网| www网站在线观看| 97在线精品| 91九色国产在线| 婷色天堂| 五月丁香啪啪啪| 婷婷五月天欧美| 五月婷婷六月丁香综合视频在线| 色婷婷综合影院| 99ree6| 五月丁香啪啪网| 五月天婷婷丁香基地在线观看| 99久久a线观| 亚洲六月色婷婷| 婷婷五月丁香国产| 8090在线影视少妇| 日韩欧美颜射| 噜啊噜在线| 99成人免费视频| 五月丁香六月欧美综合| 亚洲中文字幕av| 五月天之色情综合网| 香蕉婷婷五月| 大陆极品少妇内射AAAAAA| 丁香五月性| 五月婷视频| 色婷婷综合网站| 日本ww亚洲| av在线超清中文| 91天天操天天干天天射| www.色九月| 婷五月天| 五月色亭丁香| 天天色2017| 无码日本精品XXXXXXXXX | 超碰久热| 无码啪啪| 操97| 亚韩在线视频| 五月婷婷偷拍| 久久久久亚洲AV无码网影音先锋| 天天日综合| 天天做夜夜爽| 综合激情网激情五月。| 五月激情网综合| 国产乱妇乱子伦| 婷婷六月天亚州| 欧洲亚洲激情五月天在线| 五月色 亚洲| 色婷婷丁香五月在线| 五月天伊人av| 99这里精品| 日韩抽插操逼| 日本ww亚洲| 午夜性爱影视一区77| 梁铮版蜘蛛女在线观看| 爱iii做iiii日| 成人αV视频免费观看| 香蕉久久av一区二区三区| 国产精产国品一二三在观看| 欧美交换配乱吟粗大25P| 亚洲日韩乱码一区二区三区四区| 无码激情AAAAA片-区区| 两性婷婷丁香五月| 久久爱综合| 综合激情在线观看| 97热这里精品在线视频| 天天看A片| 精品久色| 天天综合干| 激情综合另类| 久久九九热视频| 精品女人九九九| 亚洲区视频| 六月婷婷综合| 亚洲午夜国产成人电影VA国产欧…| 91九色偷拍| 日本黄色精品| 色婷婷丁香| 狠狠五月丁香色婷| 99久久大片| 99热99极品观看| 天天做天天爱| 潘金莲AAAAAAAAAA| www.色色com| 国产免费AV网站| 99爱免费在线观看| 色婷婷丁香香香蕉视频| 婷婷97碰碰| 丁香五月天堂网| 日本97人人| 五月婷精品| 久久成人综合五月天| 色五月婷婷亚洲| 婷婷色导航| 五月婷婷香蕉| 久久伦乱| 亚洲丁香五月美女| 久久精品这里只有精品免费首页| 婷婷五月天丁香| 五月婷婷丁香91| 色老久久| 激情五月婷婷伊人| 婷婷五月天网址| 中文字幕日产A片在线看| 99视频在线观看视频| 婷婷亚洲五| 激情五月婷婷网| 婷婷久久网| 99免费青青蜜臀| 、激情六月天| 久色婷婷200| 九九色热| 综合色影| 五月色丁香激情| 99久久6| 99热大| 亚洲性爱干干| 久久色五月天| 五月四色激情| 激情婷婷五月亚洲| 九九这里只有精品| 午夜无码熟熟妇丰满人妻| 大香蕉免费9| 狠狠干伊人| 国产色色视频| 五月丁香色综合| 日日操,天天操| 色情五月综合婷婷| 色哟哟性爱av| 丁香 婷婷 亚洲 熟女| 99爱爱| 99网址在线看| 五月天另类小说| 中文幕无线码中文字蜜桃| 亚洲成人影视在线观看| 亚洲热热视频| 色婷婷六月| 丁香五月六月久久综合| www..999热久| 成人在线高清| 日日操天天| www.超碰97| 天天爽天天爽天天爽天天爽天天爽天天爽天天 | 丁香五月婷婷在线视频| AAA久久| 久久五月丁香婷婷| 97色操| 99caobi| 亚州AV超碰人人操| 国产精品久久久久久喷浆| 99激情网| www.久久| 欧美久久婷婷| 丁香六月激情四射| 秋霞AV美国| 野战毛片三一3| 国产精品 的国产| 好激情在线综合网| 久草丁香婷婷1024| 日日操,夜夜爽| 五月天激情美女久久| 色婷婷五月天天天做| 色婷婷六月| 久久久er热| 天天插天天插| 亚洲激情高潮| 五月色情| 五月丁香狠狠地噜噜噜噜| 少妇2做爰HD韩国电影| 人人舔人人色人人高潮| 五月色综合| 五月丁香成人| 丁香五月影| 五月天俺去也| 九热视频免费观看| 亚洲无码色| 丁香婷婷五月六月久久| 色玖玖综合网| 综合网色| 成人AV在线电影| 亚洲日韩人妻操逼| 精品香蕉99久久久久网站| 六月丁香婷婷开心综合基地| 色色色色色色综合网| 久播影院免费观看电视剧大全最新网| 婷婷色狠狠| 五月丁香啪啪啪| 丁香花五月天激情| 五月丁香六月婷| 天天天添天天操| 99re视频在线精品| 婷婷六月色开| www.色五月.com| 啪啪一区| 九九色热视频| 欧美性爱一区| 99热这里有精品| 久色中文| 人人操人人添人人摸97| 99热在线精品播放| 九九热只有这里精品| 精品久久久久成人码免费动漫| 丁香六月婷婷综合在线| 日本九九九九九九| 国产午夜一区二区三区| 亚洲熟妇AV综合网五月丁香伊人| 超碰2021| 婷婷综合精品| 丁香五月婷婷亚洲综合精品在线| 色婷婷四虎| 激情五月天色网站| 奸逼视频| 任你擦免费视频| 免费黄色视频网址| 人妻VideOssS人妻高清| 丁香五月婷婷AV| 中文字幕乱码亚洲精品一区| www.婷婷五月| 五月丁香婷婷无码中文| 丁香八月综合激情| 久久婷婷亚洲| 五月婷婷视频28| 婷婷久久五月丁香| 大香蕉在线99热| 91啪啪视频| 五月婷婷久草在线视频综合| 7777激情基地| 丁香五月婷婷操逼| 99免费在线| 亚洲婷婷免费| 亚洲色婷婷婷婷人人爽| 69人妻人人澡人人爽久久| 色999;丁香五月| 五月天婷婷综合| 欧洲激情五月天| 五月婷婷六月天| 亚洲啪| 婷婷丁香六月天| 五月婷婷深深爱| 狠狠草综合网| 六月婷婷成人| 欧美激情久| 国产露脸150部国语对白| 婷婷97碰碰| 天天插天天操| 色小说婷婷五月天天天| 99热大香蕉| 大香蕉伊然在亚洲90| 五月丁香啪啪啪| 91色在线 | 日韩| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 狠狠插狠狠插| 国产婷婷综合在线免费视频| 色丁香久综合在线久综合在线观看| 久久9精品| 操操日韩| 色婷插| 99综合网| 婷婷五月天av| 五月婷婷激情五月| 极品五月天| 日本色婷婷综合| 五月天开心色情网| 97操碰在线视频| 99在线免费视频播放| 香蕉AV777XXX色综合一区| 天天综合网站| 99综合久久| 国产激情在线| 色欲色香综合网| 天天成人综合视频| 五月天激情网图片 - 百度| 五月天大香蕉| 久久新地址| 大香蕉久热| 九月色婷婷综合| 日韩大片艹艹| 黄页免费一级视频懂色| 久久曰9| 级人人91| 久婷婷视平| 五月天丁香婷婷网| 日韩一级一片内射视频4K| 高清一区二区三区日本久| 天天舔天天爽| 99热色精品| 99热精品在线观看| www.五月天婷婷| av在线资源| 国产成人网| 色婷婷在线视频| www.yw尤物| 色婷婷丁香五月| 国产成人精品123区免费视频| 欧美色五月| 亚洲V国产V欧美V久久久久久| 26uuu国产| 婷婷五月花| 国产肥白大熟妇BBBB视频| 99精品成人无码A片观看金桔| 五月婷婷五月天| 亚洲第一成人无码A片| 国产精品色情AAAAA片软件| 午夜不卡久久精品无码免费| 少妇2做爰HD韩国电影| 中文字幕网伦射乱中文| 日韩99无码| 婷婷WWW久久| 久婷久婷| 色综合com| 五月天色婷伊人| 五月天激情Av| www.成人婷婷综合| 五月丁香五月婷婷| 4399在线日本A片| 婷婷久久五月天| 一本大道熟女人妻中文字幕在线| 免费无码毛片一区二区A片 | 婷婷精品综合| 色婷婷丁香网| 99精品视频免费观看,| 亚洲激情免费视频| 另类 在线| 天天射影院| 色呦呦在线| 一起草无码| 99热99思午夜精品| 婷婷五月天BBw| 久久多色| 屁股翘好撅高迎合跪趴| 激情五月瑟瑟| 三级三久久线久久99久目本WW| 日韩成人五月天| 丁香五月激情在线| 99人人干| 久久五月婷综合| 色婷婷免费视频| 丁香五月婷婷呀| 俺去也综合| 九九亚洲| 色婷大香蕉| 丁香五月花婷婷开心| 99愛国产| 五月丁香| 97成人操| 丁香五月天网站| 五月综合婷婷久久在线| 色色五月婷婷网| 色色色色色色网| 亚洲黄色网址| 99re在线精品视频| 另类小说五月天综合网| 丁香五月天婷婷中文字幕| 日本九九九九| 青青草婷婷久久| 婷婷五月天成人动漫 | 九九99九九精品免费| 天天综合五月天| 能看的av片| 丁香婷婷五月六月久久| 国产,欧美,学生妹,视频| 日本美女上人| 婷婷情色激情| 婷婷五月婷婷| 午夜丁香综合婷婷| 欧美Va在线| 激情五月天网| 亚洲精品视频电影| 欧美丁香五月天| 亚洲热综合| 丁香五月大香蕉AV| 婷婷丁香五月天亚洲| 色色色色网| 婷婷成人AV| 五月婷婷久草在线视频综合| 色色色欧美| 五月婷啪啪| 人人射人人高潮| 亚洲亚洲人成综合网络| 五月婷婷丁香| 婷婷五月天小说| 中文婷婷狠狠| 五月丁香六月婷精品视频| 六月丁香啪啪| 日本99在线| 97热这里只有精品| 久久99最新地址| 亚洲激情 久久| 亚洲成人免费电影| 婷婷午夜综合| 丁香桃色网| 男人的天堂99| 久8色色| 人与禽A片啪啪| 亚洲精品五十一区| 激情小说视频图片| 日本啪啪网| 丁香五月激情网| 久久久久久久久久久月丁| 99热无码| 天天爱天天天射AV| 久99久热只有精品国产99| AA片在线观看视频在线播放| WWW夜夜| 91精品丝袜久久久久久| 丁香5月激情网| 色婷婷小说网| 五月丁香手机在线| 任你草| 丁香五月激情宗合网| 亚洲综合激情五月久久| 性一交一乱一交A片久久四色| 婷婷成人综合| 大香蕉五月天婷婷| 婷婷精品免费久久| 色婷婷久久综合| 色五月婷婷丁香五月| 97人人干| 色播五月婷婷| 丁香五月六月久久综合 | 超碰免费人妻| 91精品婷婷国产综合久久| 97色色婷婷| 99热91| 99热这里只有精品69|