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

閱讀效率提升300%:Dify+Markdown實(shí)現(xiàn)自動(dòng)化知識(shí)梳理全解析 原創(chuàng)

發(fā)布于 2025-6-23 06:43
瀏覽
0收藏

在早年閱讀網(wǎng)上的技術(shù)博客時(shí),我習(xí)慣一邊看文章一邊在語(yǔ)雀筆記中畫思維導(dǎo)圖。然而,回過(guò)頭來(lái)看,這種方式其實(shí)效率不高。有了AI后,我們可以先讓AI為我們生成相應(yīng)的思維導(dǎo)圖,以便我們對(duì)知識(shí)有個(gè)初步認(rèn)識(shí),再去深入閱讀文章,這樣會(huì)更有效。在這篇文章中,我將分享如何使用dify自動(dòng)生成文章的思維導(dǎo)圖,以提高我們吸收知識(shí)的速度。

安裝插件

先在dify的插件市場(chǎng)安裝如下兩個(gè)插件:

  1. Markdown轉(zhuǎn)換器:用于生成html文件
  2. Agent策略插件:調(diào)用mcp server,將markdown轉(zhuǎn)成html

編寫mcp server

我們需要開發(fā)一個(gè) MCP 服務(wù)器,通過(guò) HTTP 接口為 Dify 提供 Markdown 轉(zhuǎn)思維導(dǎo)圖的服務(wù)。該服務(wù)將使用 markmap-cli 工具實(shí)現(xiàn)核心轉(zhuǎn)換功能,要調(diào)用這個(gè)工具需要先安裝 Node.js 環(huán)境(包含 npm),然后通過(guò)命令 ??npm install -g markmap-cli?? 全局安裝這個(gè)必備工具。

sudo apt update
sudo apt install nodejs npm
npm install -g markmap-cli

下面是對(duì)應(yīng)的mcp server代碼,運(yùn)行這個(gè)腳本之前需要先pip install mcp,  然后執(zhí)行python mcp.py --host 0.0.0.0 --port 27018,dify對(duì)應(yīng)的Agent節(jié)點(diǎn)配置的服務(wù)端地址是http://ip:27018/sse。

import asyncio
import tempfile
import os
import shutil
import sys
import argparse
import logging
from pathlib import Path
from mcp.server.fastmcp import FastMCP

# Configure logging
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S'
)

# Parse command line arguments
def parse_arguments():
    parser = argparse.ArgumentParser(description='MCP Server for converting Markdown to mindmaps')
    parser.add_argument('--return-type', choices=['html', 'filePath'], default='html',
                        help='Whether to return HTML content or file path. Default: html')
    parser.add_argument('--host', default='localhost',
                        help='Host address to bind the server. Default: localhost')
    parser.add_argument('--port', type=int, default=8000,
                        help='Port number to run the server. Default: 1100')

    return parser.parse_args()

# Global configuration
args = parse_arguments()
RETURN_TYPE = args.return_type

# Initialize FastMCP server
mcp = FastMCP("mindmap-server", host=args.host, port=args.port)

# Log server configuration
logging.info("Starting Mindmap Server with configuration:")
logging.info(f"Host: {args.host}")
logging.info(f"Port: {args.port}")
logging.info(f"Return Type: {args.return_type}")

async def create_temp_file(content: str, extension: str) -> str:
    """Create a temporary file with the given content and extension."""
    temp_dir = tempfile.mkdtemp(prefix='mindmap-')
    file_path = os.path.join(temp_dir, f"input{extension}")

    with open(file_path, mode='w') as f:
        f.write(content)

    return file_path

async def run_mindmap(input_file: str, output_file: str = None) -> str:
    """Run markmap-cli on the input file and return the path to the output file.

    Args:
        input_file: Path to the input markdown file
        output_file: Optional path for the output HTML file

    Returns:
        str: Path to the generated HTML file
    """
    if output_file is None:
        output_file = os.path.splitext(input_file)[0] + '.html'

    if sys.platform == 'win32':
        args = ['cmd', '/c', 'npm', 'exec', '--yes', 'markmap-cli', '--', input_file, '-o', output_file, '--no-open']
    else:
        args = ['npx', '-y', 'markmap-cli', input_file, '-o', output_file, '--no-open']

    try:
        process = await asyncio.create_subprocess_exec(
            *args,
            stdout=asyncio.subprocess.PIPE,
            stderr=asyncio.subprocess.PIPE
        )

        stdout, stderr = await process.communicate()

        if process.returncode != 0:
            error_msg = stderr.decode() if stderr else "Unknown error"
            raise RuntimeError(f"markmap-cli exited with code {process.returncode}: {error_msg}")

        return output_file
    except Exception as e:
        raise RuntimeError(f"Failed to run markmap-cli: {str(e)}")

async def get_html_content(file_path: str) -> str:
    """Read the HTML content from the given file."""
    with open(file_path, 'r', encoding='utf-8') as f:
        return f.read()

@mcp.tool()
async def convert_markdown_to_mindmap(
    markdown_content: str,  # The Markdown content to convert
) -> str:
    """Convert Markdown content to a mindmap mind map.

    Args:
        markdown_content: The Markdown content to convert

    Returns:
        Either the HTML content or the file path to the generated HTML, 
        depending on the --return-type server argument
    """
    try:
        logging.info("Starting markdown to mindmap conversion")
        # Create a temporary markdown file
        input_file = await create_temp_file(markdown_content, '.md')
        logging.debug(f"Created temporary markdown file: {input_file}")

        # Run mindmap on it
        output_file = await run_mindmap(input_file)
        logging.debug(f"Generated mindmap file: {output_file}")

        # Check if the output file exists
        if not os.path.exists(output_file):
            error_msg = f"Output file was not created: {output_file}"
            logging.error(error_msg)
            raise RuntimeError(error_msg)

        # Return either the HTML content or the file path based on command line arg
        if RETURN_TYPE == 'html':
            html_content = await get_html_content(output_file)
            logging.info("Successfully converted markdown to HTML mindmap")
            return html_content
        else:
            logging.info(f"Successfully generated mindmap file at: {output_file}")
            return output_file
    except Exception as e:
        error_msg = f"Error converting Markdown to mindmap: {str(e)}"
        logging.error(error_msg)
        raise RuntimeError(error_msg)
    finally:
        # Clean up temporary files
        if 'input_file' in locals():
            temp_dir = os.path.dirname(input_file)
            try:
                shutil.rmtree(temp_dir, ignore_errors=True)
                logging.debug(f"Cleaned up temporary directory: {temp_dir}")
            except Exception as e:
                logging.warning(f"Failed to clean up temporary directory {temp_dir}: {str(e)}")

def main():
    """Entry point for the mindmap-mcp-server command."""
    global args, RETURN_TYPE

    # Parse arguments again to ensure parameters are captured when running as an entry point
    args = parse_arguments()
    RETURN_TYPE = args.return_type

    print(f"Starting mindmap-mcp-server with return type: {RETURN_TYPE}", file=sys.stderr)

    # Initialize and run the server
    mcp.run(transport='sse')

if __name__ == "__main__":
    main()

搭建工作流

搭建好的簡(jiǎn)略工作流如下:


閱讀效率提升300%:Dify+Markdown實(shí)現(xiàn)自動(dòng)化知識(shí)梳理全解析-AI.x社區(qū)

下面對(duì)關(guān)鍵節(jié)點(diǎn)做如下說(shuō)明:

LLM 生成markdown

我們利用gpt-4.1 對(duì)文件內(nèi)容轉(zhuǎn)換成markdown格式,對(duì)應(yīng)的prompt如下:

上下文內(nèi)容:{{#context#}}
## 核心任務(wù)
將上下文內(nèi)容轉(zhuǎn)化為符合以下標(biāo)準(zhǔn)的Markdown格式思維導(dǎo)圖框架:
1. **要素提取**:識(shí)別并提取關(guān)鍵實(shí)體、關(guān)系、流程三類核心要素
2. **邏輯重構(gòu)**:按「總-分」結(jié)構(gòu)重組信息,確保父子節(jié)點(diǎn)存在推導(dǎo)關(guān)系

## 格式規(guī)范
### 層級(jí)控制
- 主標(biāo)題 `#`(1級(jí)):文檔主題
- 章節(jié) `##`(2級(jí)):核心模塊(≥3個(gè))
- 子項(xiàng) `###`(3級(jí)):具體要素(每個(gè)父節(jié)點(diǎn)下≥2個(gè))

### 內(nèi)容標(biāo)記
- 關(guān)鍵術(shù)語(yǔ):**加粗顯示** + (簡(jiǎn)短釋義)
- 數(shù)據(jù)示例:```包裹的代碼塊```

## 質(zhì)量保障
1. 預(yù)檢機(jī)制(輸出前必須驗(yàn)證):
   - [ ] 無(wú)孤立節(jié)點(diǎn)(所有子項(xiàng)都有父節(jié)點(diǎn))
   - [ ] 無(wú)重復(fù)內(nèi)容(合并相似條目)

Agent

添加Agent策略時(shí),我選擇了環(huán)境準(zhǔn)備安裝的Agent策略插件,并指定了FunctionCalling策略。同時(shí),對(duì)上述的MCP工具進(jìn)行了配置。

閱讀效率提升300%:Dify+Markdown實(shí)現(xiàn)自動(dòng)化知識(shí)梳理全解析-AI.x社區(qū)

測(cè)試

我從網(wǎng)上找了一篇講解iphone15的文章,將其導(dǎo)入當(dāng)前的工作流系統(tǒng)。下面是生成的思維導(dǎo)圖,生成的內(nèi)容還是不錯(cuò)的:

閱讀效率提升300%:Dify+Markdown實(shí)現(xiàn)自動(dòng)化知識(shí)梳理全解析-AI.x社區(qū)

總結(jié)

當(dāng)然,上面的處理還只是一個(gè)比較粗糙的demo,我們還可以繼續(xù)優(yōu)化。首先,在數(shù)據(jù)采集環(huán)節(jié),我們可以增加網(wǎng)頁(yè)內(nèi)容直接抓取功能;其次,針對(duì)大篇幅文檔,可考慮采用分塊處理的迭代機(jī)制;此外,還需完善對(duì)圖文混合文檔中視覺(jué)元素的處理能力。這些優(yōu)化方向?qū)@著提升工具的實(shí)用性和處理效率。感興趣的朋友可以自行嘗試。


本文轉(zhuǎn)載自??AI 博物院?? 作者:longyunfeigu

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2025-6-23 10:48:34修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
国产成人av一区| 国产国产精品| 日本高清成人免费播放| 台湾成人av| 国产一区二区在线视频观看| 欧美区一区二| 亚洲欧美在线播放| 日本高清久久久| 大桥未久在线播放| 国产丝袜欧美中文另类| 91入口在线观看| 9i看片成人免费看片| 91久久高清国语自产拍| 亚洲第一网站免费视频| 中文字幕av不卡在线| 青青草原国产在线| 国产欧美中文在线| 成人av播放| 丰满人妻一区二区三区四区| 国产中文一区| 日韩在线观看免费网站| 欧亚乱熟女一区二区在线| 黄色成人小视频| 五月激情综合婷婷| 日韩不卡视频一区二区| 蜜桃视频在线免费| 国产成人亚洲综合a∨婷婷| 国产精品久久久| 日韩男人的天堂| 久久视频精品| 亚洲午夜激情免费视频| 久久久老熟女一区二区三区91| 欧美亚洲黄色| 欧美亚洲尤物久久| av网站在线观看不卡| 韩国成人免费视频| 亚洲女子a中天字幕| 亚洲bbw性色大片| 日本黄色免费视频| 国产乱子轮精品视频| 国产精品久久久久久一区二区 | 天堂成人娱乐在线视频免费播放网站| 91精品国产综合久久福利软件| jizz欧美激情18| 中文字幕乱码在线播放| 天天综合网天天综合色| 精品无码国产一区二区三区av| 国产美女av在线| 中文字幕中文字幕一区| 色爱区成人综合网| 国产午夜视频在线观看| 久久免费看少妇高潮| 精品国产一区二区三区麻豆小说 | 丰满放荡岳乱妇91ww| 国产在线精品播放| 中文字幕资源网| 青草av.久久免费一区| 国产精品成人免费视频| 尤物视频免费观看| 日本中文一区二区三区| 国产成人在线一区二区| 国产女主播喷水视频在线观看| 亚洲影视综合| 欧美一级大片在线观看| 日韩精品一区二区亚洲av| 美女久久一区| 国产精品视频久久久久| 在线视频你懂得| 久草在线在线精品观看| 亚洲一区二区三区乱码aⅴ| av老司机久久| 成人av片在线观看| 蜜桃日韩视频| a黄色在线观看| 成人欧美一区二区三区视频网页| 一级黄色录像免费看| 欧美亚洲系列| 精品久久久精品| 日本成人中文字幕在线| 欧美综合影院| 日韩欧美的一区二区| 国产黑丝一区二区| 欧美伦理影院| 久久久国产视频| 日韩手机在线观看| 日本女优在线视频一区二区 | 欧美综合自拍| 在线电影av不卡网址| 亚洲国产成人精品综合99| 亚洲精品社区| 国产精品最新在线观看| www.久久伊人| 久久精品免费在线观看| 加勒比海盗1在线观看免费国语版| 国产社区精品视频| 欧美日韩精品一区二区三区蜜桃 | 久久午夜国产精品| 国产系列第一页| 51精品在线| 欧美日韩精品系列| 亚洲制服丝袜在线播放| 久久国产电影| 性视频1819p久久| 亚洲一区二区人妻| gogogo免费视频观看亚洲一| 亚洲精品自在在线观看| а√在线中文网新版地址在线| 欧美亚洲国产一卡| 黄色网址在线视频| 亚洲蜜桃视频| 国产精品成人在线| 欧美综合视频在线| 亚洲三级电影全部在线观看高清| 久草热视频在线观看| 日韩成人一区| 亚洲人精选亚洲人成在线| 久久成人国产精品入口| 男人的天堂久久精品| 久久精品五月婷婷| 羞羞的视频在线观看| 欧美亚洲日本一区| 国产精品无码午夜福利| 黄色亚洲精品| 91在线精品视频| 成人综合影院| 欧美日在线观看| 精品久久久久久无码人妻| 欧美wwwww| 国产精品成人av在线| 手机在线精品视频| 亚洲资源中文字幕| 一级做a免费视频| 国产精品免费不| 69久久夜色精品国产69| 久cao在线| 成人一二三区视频| 一区二区三区四区在线视频| 日本综合字幕| 青青草原av在线| 国产精品理论在线观看| 国产精品99久久免费黑人人妻| 粉嫩精品导航导航| 久久久久久91香蕉国产| 97精品人妻一区二区三区在线| 久久久综合视频| 亚洲熟妇国产熟妇肥婆| 美女主播精品视频一二三四| 波多野结衣欲乱| 成人线上播放| 麻豆成人在线看| 91精品国产乱码久久久久| 国产欧美日韩一区二区三区在线观看| 人妻有码中文字幕| 亚洲v天堂v手机在线| 奇米影视亚洲狠狠色| 四虎在线视频| 粉嫩老牛aⅴ一区二区三区 | 国产精品伦理| 精品亚洲一区二区三区在线播放 | 美女100%露胸无遮挡| 日韩中文字幕av电影| 免费亚洲一区二区| 天堂久久午夜av| 中国日韩欧美久久久久久久久| 夜夜爽妓女8888视频免费观看| 国产婷婷色一区二区三区四区| 一区二区三区视频在线观看免费| 日韩欧美二区| 亚洲综合精品一区二区| 精品精品导航| 亚洲美女视频网| 91麻豆精品在线| 最新国产の精品合集bt伙计| 日本黄色三级网站| 黄色日韩精品| 日本一区视频在线播放| 四虎国产精品永久在线国在线| 欧美床上激情在线观看| 色一情一乱一区二区三区| 欧美日韩亚洲国产一区| 91黄色免费视频| 日日摸夜夜添夜夜添精品视频| 在线观看成人一级片| 麻豆国产一区二区三区四区| 亚州国产精品久久久| 激情小说 在线视频| 8x福利精品第一导航| 国产乡下妇女做爰毛片| 久久精品欧美日韩精品 | www.66久久| 亚洲 中文字幕 日韩 无码| 国产精品99久久久久久动医院| 国产日韩欧美精品| 福利一区二区| 久久人91精品久久久久久不卡| 亚洲 欧美 自拍偷拍| 538在线一区二区精品国产| www.国产成人| 综合色天天鬼久久鬼色| 欧美无人区码suv| 九九**精品视频免费播放| 欧美一区二区中文字幕| 99久久99视频只有精品| 精品视频一区二区三区四区| 91精品视频一区二区| 人人澡人人澡人人看欧美| caoporn免费在线视频| 亚洲人高潮女人毛茸茸| 日本激情一区二区| 91精品国产一区二区| 国产寡妇亲子伦一区二区三区四区| 亚洲欧美激情在线| 在线看片中文字幕| 99国产精品久久久久久久久久| 亚洲第一色av| 日本成人在线不卡视频| 91av资源网| 欧美三级第一页| 91社在线播放| 日韩免费一区| 奇米视频888战线精品播放| 岛国精品一区| 91黄色国产视频| 在线免费观看亚洲| 国产精品视频色| 欧美黑人粗大| 91精品国产电影| 男人天堂亚洲| 欧美大尺度激情区在线播放| 免费网站免费进入在线| 国产亚洲美女久久| 嫩草在线播放| www.中文字幕av| 盗摄精品av一区二区三区| 日韩在线一区视频| 日本三级亚洲精品| www日韩在线观看| 国产视频一区免费看| 国产成人永久免费视频| 亚洲高清资源在线观看| 亚洲日本精品一区| 欧美久久精品一级c片| 日本午夜一区二区三区| 香蕉久久夜色精品国产更新时间| 国产精品精品软件视频| 哺乳挤奶一区二区三区免费看| 亚洲综合一区二区不卡| 欧美视频二区欧美影视| 92国产精品视频| 免费精品一区二区三区在线观看| 91精品视频专区| 99久久久成人国产精品| 91免费国产网站| 精品视频1区2区3区| 日韩av在线播放观看| 亚洲精品菠萝久久久久久久| 永久免费未视频| 国产精品国产三级国产普通话蜜臀 | 久久精品国产成人一区二区三区 | 在线视频一二三区| 亚洲成人tv| 欧美a级免费视频| 国产一区二区三区四区三区四| 成年人网站国产| 亚洲人成高清| 亚洲精品乱码久久久久久自慰| 日本在线不卡视频| 欧洲在线免费视频| 国产**成人网毛片九色| 亚洲制服丝袜在线播放| 国产日产亚洲精品系列| 黄色a级片在线观看| 亚洲香蕉伊在人在线观| 中文字幕69页| 67194成人在线观看| 国精产品一品二品国精品69xx | 国产在线欧美日韩| 伊人久久大香线蕉综合网站| 日韩影院一区| 欧美精品国产| 国产精品丝袜久久久久久消防器材| 亚洲综合不卡| 亚洲色图欧美自拍| 99视频精品全部免费在线| 亚洲图片另类小说| 亚洲欧美国产毛片在线| 亚洲欧美自拍视频| 欧美一区二区三区的| 亚洲人妻一区二区三区| www.久久撸.com| heyzo高清中文字幕在线| 国产精品88a∨| 亚洲精品在线a| 五月天丁香综合久久国产| 午夜激情一区| 国产真人无码作爱视频免费| 国产精品1024久久| 国产精品久久久久无码av色戒| 亚洲欧美日韩综合aⅴ视频| 性无码专区无码| 欧美一区二区三区在线观看视频 | 国产精品麻豆| 欧美亚洲丝袜| 在线成人h网| 日本一二区免费| 久久综合成人精品亚洲另类欧美| 老牛影视免费一区二区| 秋霞影视一区二区三区| 亚洲人成人77777线观看| 日韩av资源站| 久久偷看各类女兵18女厕嘘嘘| 欧美办公室脚交xxxx| 成人写真福利网| 国产亚洲欧美日韩在线观看一区二区 | 日本久久一区| 久久综合一区二区三区| 欧美日韩亚洲一区三区| 久热在线视频观看| 久久精品亚洲精品国产欧美kt∨| 久久久久免费看| 88在线观看91蜜桃国自产| 东热在线免费视频| 欧美在线欧美在线| 成人在线视频中文字幕| 大桥未久一区二区三区| 老色鬼精品视频在线观看播放| 欧美熟妇一区二区| 欧美日韩精品国产| 亚洲男人天堂久久| 欧美成人在线免费| 国产精品亚洲一区二区在线观看 | 伊人狠狠色j香婷婷综合| 黄色片免费网址| 中文字幕一区二区三中文字幕| 无码任你躁久久久久久久| 精品视频www| 鲁鲁在线中文| 久草精品电影| 日韩一级大片| 亚洲最大的黄色网| 香蕉成人伊视频在线观看| 内射后入在线观看一区| 久久久久女教师免费一区| 91精品短视频| 麻豆tv在线播放| aaa国产一区| 国产一级精品视频| 日韩电影在线观看永久视频免费网站| 欧美寡妇性猛交xxx免费| 国产精品国产精品国产专区蜜臀ah | 日本五级黄色片| 国产一二精品视频| 国产一区二区播放| 欧美大黄免费观看| 日本电影在线观看| 国产精品一区二区三区观看| 在线午夜精品| 制服 丝袜 综合 日韩 欧美| 日本韩国欧美国产| 在线免费观看黄色| 91免费看国产| 激情视频一区二区三区| 日韩片在线观看| 欧洲人成人精品| 丝袜美腿美女被狂躁在线观看| 91精品中文在线| 欧美午夜影院| 最近日本中文字幕| 在线视频观看一区| 欧美jizz18性欧美| 国产精品sss| 美女日韩在线中文字幕| 成人在线手机视频| 91精品免费在线| av中文在线资源库| 日本在线观看一区二区三区| 久久aⅴ国产欧美74aaa| 久一区二区三区| 亚洲欧美日韩直播| 日韩专区视频| 亚洲 自拍 另类小说综合图区| 久久天堂av综合合色蜜桃网| 亚洲熟妇无码久久精品| 久久久久久国产精品美女| 在线成人动漫av| 手机在线国产视频| 亚洲第一狼人社区| www 日韩| 国产乱码精品一区二区三区中文 | 日韩精品――色哟哟| 福利二区91精品bt7086| 求av网址在线观看| 狠狠色综合一区二区| 毛片av一区二区三区| 精品午夜福利视频| 中国日韩欧美久久久久久久久| ady日本映画久久精品一区二区| 国产超碰在线播放| 亚洲高清中文字幕| 免费在线你懂的|