& http://m.margaretteevans.com 一粒云|文檔智能|RAG網(wǎng)盤|云盤|云辦公|隔離網(wǎng)文件交換|加解密|存儲|備份|容災(zāi)|私有云超融合|一體機(jī)|國產(chǎn)化|效率辦公 Tue, 17 Dec 2024 10:47:43 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.7.1 http://m.margaretteevans.com/wp-content/uploads/2024/10/cropped-logo-new-32x32.png AI智能 – 一粒云 http://m.margaretteevans.com 32 32 Milvus 詳細(xì)介紹與上手教程 http://m.margaretteevans.com/2024/12/17/milvus-%e8%af%a6%e7%bb%86%e4%bb%8b%e7%bb%8d%e4%b8%8e%e4%b8%8a%e6%89%8b%e6%95%99%e7%a8%8b/ http://m.margaretteevans.com/2024/12/17/milvus-%e8%af%a6%e7%bb%86%e4%bb%8b%e7%bb%8d%e4%b8%8e%e4%b8%8a%e6%89%8b%e6%95%99%e7%a8%8b/#respond Tue, 17 Dec 2024 10:47:43 +0000 http://m.margaretteevans.com/?p=9816 什么是 Milvus?

Milvus 是一個(gè)開源的向量數(shù)據(jù)庫,專為管理和檢索大量向量數(shù)據(jù)而設(shè)計(jì),廣泛應(yīng)用于人工智能、推薦系統(tǒng)、圖像檢索、自然語言處理等領(lǐng)域。它支持 PB 級別的數(shù)據(jù)存儲,提供高性能的向量檢索服務(wù)。

Milvus 的核心功能

1. 高效檢索: 支持 ANN(近似最近鄰)檢索,適用于超大規(guī)模向量檢索任務(wù)。

2. 多數(shù)據(jù)類型: 支持文本、圖像、視頻等多種嵌入向量數(shù)據(jù)。

3. 彈性擴(kuò)展: 支持水平擴(kuò)展和分布式部署。

4. 多種索引類型: 包括 IVF、HNSW、DiskANN 等。

5. 多語言 SDK 支持: 提供 Python、Java、Go、C++ 等多種 SDK。

6. 云原生架構(gòu): 支持 Kubernetes 部署,便于云上運(yùn)行。

Milvus 的應(yīng)用場景

1. 圖像和視頻檢索(內(nèi)容推薦)

2. 自然語言處理(語義檢索與推薦)

3. 推薦系統(tǒng)(個(gè)性化推薦)

4. 生物醫(yī)學(xué)數(shù)據(jù)分析(DNA 比對)

5. 安全監(jiān)控(面部識別)

Milvus 快速上手教程

1. 環(huán)境準(zhǔn)備

? 操作系統(tǒng):Linux/macOS/Windows

? 安裝 Docker(推薦)或 Kubernetes(用于生產(chǎn)環(huán)境)

2. 安裝 Milvus

使用 Docker 快速啟動:

docker pull milvusdb/milvus:latest

docker run -d –name milvus-standalone -p 19530:19530 -p 8080:8080 milvusdb/milvus:latest

3. 創(chuàng)建 Milvus 客戶端

安裝 Milvus Python SDK:

pip install pymilvus

4. 連接到 Milvus

from pymilvus import connections

connections.connect(

    alias=”default”,

    host=”localhost”,

    port=”19530″

)

5. 創(chuàng)建集合與插入數(shù)據(jù)

from pymilvus import Collection, FieldSchema, CollectionSchema, DataType

# 定義字段

fields = [

    FieldSchema(name=”id”, dtype=DataType.INT64, is_primary=True, auto_id=True),

    FieldSchema(name=”embedding”, dtype=DataType.FLOAT_VECTOR, dim=128)

]

# 定義集合架構(gòu)

schema = CollectionSchema(fields, “向量數(shù)據(jù)集合”)

# 創(chuàng)建集合

collection = Collection(“example_collection”, schema)

# 插入數(shù)據(jù)

import numpy as np

data = [

    [i for i in range(1000)],              # id

    np.random.random([1000, 128]).tolist() # 隨機(jī)向量

]

collection.insert(data)

6. 創(chuàng)建索引與檢索

# 創(chuàng)建索引

index_params = {

    “metric_type”: “L2”,

    “index_type”: “IVF_FLAT”,

    “params”: {“nlist”: 100}

}

collection.create_index(field_name=”embedding”, index_params=index_params)

# 搜索向量

search_params = {

    “metric_type”: “L2”,

    “params”: {“nprobe”: 10}

}

query_vector = np.random.random([1, 128]).tolist()

results = collection.search(

    data=query_vector,

    anns_field=”embedding”,

    param=search_params,

    limit=5

)

# 輸出結(jié)果

for result in results[0]:

    print(f”ID: {result.id}, Distance: {result.distance}”)

Milvus 官方資源

? 官網(wǎng):Milvus 官方網(wǎng)站

? 文檔:Milvus 文檔中心

? GitHub:Milvus GitHub 倉庫

如果需要更詳細(xì)的教程或針對特定場景的使用指導(dǎo),請告訴我!

]]>
http://m.margaretteevans.com/2024/12/17/milvus-%e8%af%a6%e7%bb%86%e4%bb%8b%e7%bb%8d%e4%b8%8e%e4%b8%8a%e6%89%8b%e6%95%99%e7%a8%8b/feed/ 0
Python 語言檢測 http://m.margaretteevans.com/2024/12/17/python-%e8%af%ad%e8%a8%80%e6%a3%80%e6%b5%8b/ http://m.margaretteevans.com/2024/12/17/python-%e8%af%ad%e8%a8%80%e6%a3%80%e6%b5%8b/#respond Tue, 17 Dec 2024 10:38:58 +0000 http://m.margaretteevans.com/?p=9812 Python 中有多種優(yōu)秀的語言識別工具,以下是一些常用的工具和庫:

1. langdetect

? 簡介: langdetect 是一個(gè)非常流行的語言檢測庫,基于 Google 的 language-detection 項(xiàng)目。它可以檢測多種語言,并且對于短文本也有不錯的識別效果。

? 安裝:

pip install langdetect

? 使用示例:

from langdetect import detect

text = “Bonjour tout le monde”

language = detect(text)

print(language)  # 輸出: ‘fr’ (法語)

2. langid

? 簡介: langid 是另一個(gè)非常強(qiáng)大的語言識別庫,支持97種語言。它的特點(diǎn)是完全自包含且無需外部依賴。

? 安裝:

pip install langid

? 使用示例:

import langid

text = “Hola, ?cómo estás?”

language, _ = langid.classify(text)

print(language)  # 輸出: ‘es’ (西班牙語)

3. polyglot

? 簡介: polyglot 是一個(gè)支持多語言處理的庫,它不僅提供語言識別功能,還支持情感分析、實(shí)體識別等多種自然語言處理任務(wù)。

? 安裝:

pip install polyglot

? 使用示例:

from polyglot.detect import Detector

text = “Ceci est un exemple de texte en fran?ais”

detector = Detector(text)

language = detector.language.code

print(language)  # 輸出: ‘fr’ (法語)

4. TextBlob

? 簡介: TextBlob 是一個(gè)簡潔易用的自然語言處理工具包,雖然它主要用于情感分析、詞性標(biāo)注等任務(wù),但也支持語言識別。

? 安裝:

pip install textblob

? 使用示例:

from textblob import TextBlob

text = “Hello, how are you?”

blob = TextBlob(text)

print(blob.detect_language())  # 輸出: ‘en’ (英語)

5. FastText (by Facebook)

? 簡介: FastText 是一個(gè)由 Facebook 提供的開源庫,除了高效的詞向量表示外,它也能很好地進(jìn)行語言識別。它支持多達(dá)170多種語言。

? 安裝:

pip install fasttext

? 使用示例:

import fasttext

model = fasttext.load_model(‘lid.176.bin’)  # 下載預(yù)訓(xùn)練模型

text = “Ceci est un texte en fran?ais”

prediction = model.predict(text)

print(prediction)  # 輸出: (‘__label__fr’,)

6. cld3 (Compact Language Detector v3)

? 簡介: cld3 是一個(gè)高效的語言檢測庫,基于 Google 的 Compact Language Detector v3。它對短文本和多語言文本都有不錯的支持。

? 安裝:

pip install cld3

? 使用示例:

import cld3

text = “Hola, ?cómo estás?”

language = cld3.get_language(text)

print(language)  # 輸出: Language: es (西班牙語)

總結(jié):

? 如果需要一個(gè)簡單、易用的工具,langdetect 和 langid 都是不錯的選擇。

? 如果對處理多語言的文本和需要其他 NLP 功能有需求,可以考慮使用 polyglot 或 TextBlob。

? 如果需要更高精度的檢測,尤其是在短文本的情況下,F(xiàn)astText 和 cld3 是更強(qiáng)大的選擇。

你可以根據(jù)具體需求選擇適合的工具!

]]>
http://m.margaretteevans.com/2024/12/17/python-%e8%af%ad%e8%a8%80%e6%a3%80%e6%b5%8b/feed/ 0
解鎖企業(yè)智慧:構(gòu)建高效知識管理系統(tǒng)的終極指南 http://m.margaretteevans.com/2024/12/12/%e8%a7%a3%e9%94%81%e4%bc%81%e4%b8%9a%e6%99%ba%e6%85%a7%ef%bc%9a%e6%9e%84%e5%bb%ba%e9%ab%98%e6%95%88%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%9a%84%e7%bb%88%e6%9e%81%e6%8c%87%e5%8d%97/ http://m.margaretteevans.com/2024/12/12/%e8%a7%a3%e9%94%81%e4%bc%81%e4%b8%9a%e6%99%ba%e6%85%a7%ef%bc%9a%e6%9e%84%e5%bb%ba%e9%ab%98%e6%95%88%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%9a%84%e7%bb%88%e6%9e%81%e6%8c%87%e5%8d%97/#respond Thu, 12 Dec 2024 13:48:38 +0000 http://m.margaretteevans.com/?p=9808 在數(shù)字化信息時(shí)代,企業(yè)知識管理系統(tǒng)的構(gòu)建已成為提升競爭力的關(guān)鍵。隨著信息量爆炸式增長,企業(yè)面臨“信息過載”問題,知識點(diǎn)孤立和冗余內(nèi)容常導(dǎo)致工作效率下降。因此,企業(yè)需要建立系統(tǒng)化的知識管理體系,實(shí)現(xiàn)知識共享、顯性化、體系化與再生化。

知識共享化:打破信息壁壘

隱性知識大多存在于員工頭腦中,難以規(guī)范化。通過自上而下的管理傳遞、員工分享激勵和橫向溝通,企業(yè)可有效推動知識共享,避免“沉默的螺旋”和“信息繭房”現(xiàn)象。管理者需通過激勵機(jī)制、匿名反饋和互動平臺,激發(fā)員工的分享欲望,營造開放的學(xué)習(xí)環(huán)境。

知識顯性化:知識內(nèi)容清晰易懂

將隱性知識轉(zhuǎn)化為文檔、視頻等易于理解和傳播的形式。提高知識顯性化水平,需要使用清晰的語言、結(jié)構(gòu)化內(nèi)容與操作指南,避免“知識的詛咒”,確保員工能夠快速學(xué)習(xí)與應(yīng)用。

知識體系化:建立有序知識目錄

通過明確的知識分類與目錄結(jié)構(gòu),解決信息碎片化和“信息過載”問題。構(gòu)建企業(yè)知識目錄時(shí),需根據(jù)業(yè)務(wù)角色、職能劃分和應(yīng)用場景細(xì)分內(nèi)容,形成關(guān)聯(lián)明確、層次清晰的知識網(wǎng)絡(luò),提升員工的信息檢索與學(xué)習(xí)效率。

知識再生化:激發(fā)持續(xù)創(chuàng)新

知識的應(yīng)用與再創(chuàng)造是企業(yè)競爭力的源泉。通過精準(zhǔn)檢索、實(shí)踐操作和創(chuàng)新激勵機(jī)制,企業(yè)可引導(dǎo)員工不斷學(xué)習(xí)、應(yīng)用與改進(jìn)已有知識,實(shí)現(xiàn)知識資產(chǎn)的持續(xù)增值。

要實(shí)現(xiàn)企業(yè)知識管理的四個(gè)階段:知識顯性化、知識共享化、知識體系化和知識再生化,推薦以下工具組合,涵蓋文檔管理、協(xié)作平臺和學(xué)習(xí)系統(tǒng):


1. 知識顯性化(Externalization)工具

將隱性知識轉(zhuǎn)化為文檔、視頻等形式:

  • 文檔與內(nèi)容管理系統(tǒng)(DMS):如 Microsoft SharePoint、Google Workspace、Notion
  • 視頻與演示工具:如 Loom、Camtasia、PowerPoint、Prezi
  • 流程與知識捕獲工具:如 Miro(思維導(dǎo)圖)、Lucidchart(流程圖)

2. 知識共享化(Socialization)工具

實(shí)現(xiàn)跨團(tuán)隊(duì)知識共享與互動:

  • 企業(yè)社交平臺與協(xié)作工具:如 Microsoft Teams、Slack、Workplace by Meta
  • 知識問答與社區(qū)平臺:如 Confluence、Yammer、Discourse
  • 內(nèi)部交流與公告平臺:如 Trello、Monday.com(任務(wù)與信息公告)

3. 知識體系化(Combination)工具

組織知識、構(gòu)建有序知識庫:

  • 知識庫與文檔管理系統(tǒng):如 Atlassian Confluence、Notion、Guru
  • 搜索與文檔索引工具:如 Elasticsearch、Google Cloud Search、SharePoint Search
  • 內(nèi)容管理與版本控制系統(tǒng):如 GitHub(適用于技術(shù)文檔和代碼管理)

4. 知識再生化(Internalization)工具

學(xué)習(xí)平臺與持續(xù)培訓(xùn):

  • 學(xué)習(xí)管理系統(tǒng)(LMS):如 Moodle、TalentLMS、SAP SuccessFactors
  • 在線課程與內(nèi)容平臺:如 Udemy for Business、Coursera for Teams
  • 反饋與測評系統(tǒng):如 SurveyMonkey、Typeform、Google Forms

集成與自動化工具(增強(qiáng)整體效率)

  • 自動化工具:如 Zapier、Make(Integromat),將不同系統(tǒng)的數(shù)據(jù)與任務(wù)自動化。
  • 企業(yè)資源規(guī)劃(ERP)系統(tǒng):如 SAP ERP、Oracle NetSuite,用于集成廣泛業(yè)務(wù)功能。

]]>
http://m.margaretteevans.com/2024/12/12/%e8%a7%a3%e9%94%81%e4%bc%81%e4%b8%9a%e6%99%ba%e6%85%a7%ef%bc%9a%e6%9e%84%e5%bb%ba%e9%ab%98%e6%95%88%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%9a%84%e7%bb%88%e6%9e%81%e6%8c%87%e5%8d%97/feed/ 0
為什么需要企業(yè)知識目錄? http://m.margaretteevans.com/2024/12/12/%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e4%bc%81%e4%b8%9a%e7%9f%a5%e8%af%86%e7%9b%ae%e5%bd%95%ef%bc%9f/ http://m.margaretteevans.com/2024/12/12/%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e4%bc%81%e4%b8%9a%e7%9f%a5%e8%af%86%e7%9b%ae%e5%bd%95%ef%bc%9f/#respond Thu, 12 Dec 2024 13:42:54 +0000 http://m.margaretteevans.com/?p=9805 在信息化時(shí)代,知識型企業(yè)面臨的一個(gè)重大挑戰(zhàn)是“信息過載”,即員工面對大量未整理的文檔和數(shù)據(jù),難以有效篩選和運(yùn)用。這種現(xiàn)象常導(dǎo)致學(xué)習(xí)低效和決策失誤。因此,構(gòu)建一個(gè)清晰的企業(yè)知識目錄至關(guān)重要。以下是企業(yè)主如何建設(shè)企業(yè)知識目錄的詳細(xì)指南。

一、為什么需要企業(yè)知識目錄?

1. 避免信息過載

  • 減少干擾:有效的知識目錄能過濾冗余信息,幫助員工專注于有用數(shù)據(jù)。
  • 增強(qiáng)思維連接:知識目錄能幫助員工更好地理解和記憶新知識,形成清晰的思維框架。

2. 提高學(xué)習(xí)與決策效率

  • 順藤摸瓜:學(xué)習(xí)內(nèi)容按照邏輯結(jié)構(gòu)層層展開,便于知識遷移與應(yīng)用。
  • 快速定位信息:通過結(jié)構(gòu)化目錄,員工能快速找到所需資料,避免重復(fù)查找。

二、構(gòu)建企業(yè)知識目錄的核心步驟

1. 知識梳理與分類

  • 領(lǐng)域劃分:將企業(yè)知識按適用角色、業(yè)務(wù)職能、項(xiàng)目階段等維度劃分。
  • 主題細(xì)化:細(xì)分大類,形成多個(gè)子類別。例如,”政策文件”可細(xì)分為”申報(bào)要求”、”評審標(biāo)準(zhǔn)”等。

2. 知識點(diǎn)關(guān)聯(lián)與結(jié)構(gòu)化

  • 建立層級目錄
  • 從“是什么”開始,再到“為什么”、“如何做”等層次,形成完整的知識鏈。
  • 確保目錄邏輯清晰,避免孤立的知識點(diǎn)。
  • 交叉關(guān)聯(lián)
  • 創(chuàng)建知識點(diǎn)之間的引用與鏈接,例如將“項(xiàng)目管理”與“風(fēng)險(xiǎn)控制”相關(guān)內(nèi)容相互引用。

3. 知識標(biāo)簽與檢索優(yōu)化

  • 標(biāo)簽體系設(shè)計(jì)
  • 基于文檔的主題、日期、作者等元數(shù)據(jù)生成標(biāo)簽,便于檢索與篩選。
  • 搜索引擎集成
  • 引入語義搜索和智能推薦,確保快速、精準(zhǔn)的信息定位。

三、企業(yè)網(wǎng)盤知識目錄架構(gòu)設(shè)計(jì)示例

以下是一個(gè)適用于企業(yè)網(wǎng)盤的知識目錄架構(gòu)設(shè)計(jì)示例:

根目錄:企業(yè)知識庫

1. 公司政策與規(guī)章制度

  • 人事政策
  • 財(cái)務(wù)管理
  • 數(shù)據(jù)安全與合規(guī)

2. 項(xiàng)目管理與運(yùn)營

  • 項(xiàng)目文檔
  • 項(xiàng)目計(jì)劃
  • 項(xiàng)目報(bào)告
  • 風(fēng)險(xiǎn)管理
  • 運(yùn)營流程與標(biāo)準(zhǔn)

3. 產(chǎn)品與服務(wù)支持

  • 產(chǎn)品手冊
  • 技術(shù)支持文檔
  • 常見問題與解決方案

4. 客戶與市場資料

  • 客戶檔案
  • 市場調(diào)研報(bào)告
  • 銷售數(shù)據(jù)與分析

5. 培訓(xùn)與學(xué)習(xí)資源

  • 內(nèi)部培訓(xùn)材料
  • 員工技能發(fā)展課程
  • 行業(yè)學(xué)習(xí)資料

權(quán)限與安全控制示例:

  • 權(quán)限管理:基于用戶角色分配訪問權(quán)限。
  • 數(shù)據(jù)備份與恢復(fù):設(shè)置自動備份,確保數(shù)據(jù)安全。
  • 使用審計(jì)與日志記錄:監(jiān)控訪問行為,確保合規(guī)性。

通過構(gòu)建系統(tǒng)化的企業(yè)知識目錄,企業(yè)主不僅能有效應(yīng)對“信息過載”挑戰(zhàn),還能激發(fā)員工的學(xué)習(xí)主動性,提升工作效率與決策質(zhì)量,實(shí)現(xiàn)知識資產(chǎn)的最大化利用。

]]>
http://m.margaretteevans.com/2024/12/12/%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e4%bc%81%e4%b8%9a%e7%9f%a5%e8%af%86%e7%9b%ae%e5%bd%95%ef%bc%9f/feed/ 0
PDF 內(nèi)容提取對比Pymupdf4llm 和 pdf-extract-api http://m.margaretteevans.com/2024/12/09/pdf-%e5%86%85%e5%ae%b9%e6%8f%90%e5%8f%96%e5%af%b9%e6%af%94pymupdf4llm-%e5%92%8c-pdf-extract-api/ http://m.margaretteevans.com/2024/12/09/pdf-%e5%86%85%e5%ae%b9%e6%8f%90%e5%8f%96%e5%af%b9%e6%af%94pymupdf4llm-%e5%92%8c-pdf-extract-api/#respond Sun, 08 Dec 2024 16:57:24 +0000 http://m.margaretteevans.com/?p=9794 下面是對比 Pymupdf4llmpdf-extract-api 兩種工具在多個(gè)維度上的分析:

1. 工具介紹

? Pymupdf4llm

是基于 PyMuPDF 的輕量級庫,用于解析 PDF 文檔并將其輸出為適合 LLM 使用的格式。主要側(cè)重文本提取和結(jié)構(gòu)化處理,適合生成上下文良好的段落,便于用于 LLM 的問答場景。

? pdf-extract-api

是一個(gè)基于 API 的工具,專注于從 PDF 中提取特定的數(shù)據(jù)(如表格、元數(shù)據(jù)、關(guān)鍵段落等)。它通常提供更精細(xì)的配置選項(xiàng),且需要在線服務(wù)支持。

2. 優(yōu)點(diǎn)

Pymupdf4llm

? 開源和輕量化:基于 PyMuPDF,依賴簡單,不需要網(wǎng)絡(luò)請求。

? 靈活性:支持本地化部署和定制,適合對隱私敏感的數(shù)據(jù)處理。

? LLM優(yōu)化:文本提取經(jīng)過優(yōu)化,更適合直接喂給 LLM 使用。

? 社區(qū)支持:有 Python 社區(qū)的廣泛支持,文檔豐富。

pdf-extract-api

? 精確提取:通過 API 提供強(qiáng)大的功能,如識別表格、圖像提取以及結(jié)構(gòu)化內(nèi)容分離。

? 便捷性:通常不需要用戶過多了解 PDF 內(nèi)部結(jié)構(gòu),適合快速實(shí)現(xiàn)提取目標(biāo)。

? 擴(kuò)展性:可與其他 API 組合實(shí)現(xiàn)復(fù)雜任務(wù),如 OCR 集成處理掃描 PDF。

3. 缺點(diǎn)

Pymupdf4llm

? 復(fù)雜性有限:對非常復(fù)雜的 PDF(如多層嵌套、表格、圖片)支持不如專業(yè)化工具。

? 手動調(diào)整需求高:對提取后的數(shù)據(jù),需要編寫代碼進(jìn)一步清洗和整理。

pdf-extract-api

? 依賴在線服務(wù):需要網(wǎng)絡(luò)訪問,可能對敏感文檔不適合。

? 成本問題:通常是收費(fèi)服務(wù),使用量大時(shí)費(fèi)用可能較高。

? 上手門檻高:需要了解 API 調(diào)用的基礎(chǔ),復(fù)雜設(shè)置可能增加學(xué)習(xí)成本。

4. 準(zhǔn)備度與上手難度

指標(biāo) Pymupdf4llm pdf-extract-api

部署與安裝 安裝簡單(pip install pymupdf 等) 需要注冊 API 服務(wù)并配置訪問權(quán)限

學(xué)習(xí)曲線 易于上手,Python 開發(fā)者友好 需要熟悉 API 文檔,配置參數(shù)稍復(fù)雜

定制化能力 高,代碼靈活,自由控制輸出內(nèi)容和格式 中,定制需依賴 API 提供的接口和選項(xiàng)

速度 本地運(yùn)行,速度快 API 請求受網(wǎng)絡(luò)和服務(wù)端性能影響

環(huán)境依賴 本地運(yùn)行,無需聯(lián)網(wǎng) 需聯(lián)網(wǎng)使用在線 API 服務(wù)

總結(jié)與建議

? 選擇 Pymupdf4llm

如果你希望完全掌控 PDF 的提取邏輯、對敏感數(shù)據(jù)有隱私保護(hù)需求,并傾向于本地化輕量部署,Pymupdf4llm 是不錯的選擇。

? 選擇 pdf-extract-api

如果需要快速處理復(fù)雜的 PDF 任務(wù)(如表格解析、精確提取特定內(nèi)容),且不介意使用在線服務(wù)和支付一定費(fèi)用,那么 pdf-extract-api 更加適合。

最終選擇取決于項(xiàng)目的復(fù)雜性、隱私要求和開發(fā)資源。

]]>
http://m.margaretteevans.com/2024/12/09/pdf-%e5%86%85%e5%ae%b9%e6%8f%90%e5%8f%96%e5%af%b9%e6%af%94pymupdf4llm-%e5%92%8c-pdf-extract-api/feed/ 0
使用RAGFlow+iText2KG針對文檔進(jìn)行搜索與知識圖片生成(一) http://m.margaretteevans.com/2024/11/25/%e4%bd%bf%e7%94%a8ragflowitext2kg%e9%92%88%e5%af%b9%e6%96%87%e6%a1%a3%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2%e4%b8%8e%e7%9f%a5%e8%af%86%e5%9b%be%e7%89%87%e7%94%9f%e6%88%90%ef%bc%88%e4%b8%80%ef%bc%89/ http://m.margaretteevans.com/2024/11/25/%e4%bd%bf%e7%94%a8ragflowitext2kg%e9%92%88%e5%af%b9%e6%96%87%e6%a1%a3%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2%e4%b8%8e%e7%9f%a5%e8%af%86%e5%9b%be%e7%89%87%e7%94%9f%e6%88%90%ef%bc%88%e4%b8%80%ef%bc%89/#respond Mon, 25 Nov 2024 10:10:54 +0000 http://m.margaretteevans.com/?p=9765 1、RAGFlow 的使用指南

RAGFlow 是一個(gè)基于對文檔的深入理解的開源 RAG(檢索增強(qiáng)生成)引擎。它為任何規(guī)模的企業(yè)提供了簡化的 RAG 工作流程,結(jié)合了 LLM(大型語言模型)以提供真實(shí)的問答功能,并以來自各種復(fù)雜格式數(shù)據(jù)的有根據(jù)的引文為后盾。

demo鏈接:RAGFlow

特點(diǎn):

1、有一定的數(shù)據(jù)質(zhì)量保證,能從復(fù)雜的非結(jié)構(gòu)化數(shù)據(jù)中提取基于文檔理解的深度知識。

2、內(nèi)置模板,可以基于模板形成知識庫;文檔分塊可以實(shí)現(xiàn)人工干預(yù),提高文檔質(zhì)量;

3、可以兼容異構(gòu)數(shù)據(jù)源,支持 Word、幻燈片、excel、txt、圖像、掃描副本、結(jié)構(gòu)化數(shù)據(jù)、網(wǎng)頁等。

4、 自動化且輕松的 RAG 工作流程

  • 簡化的 RAG 編排同時(shí)滿足了個(gè)人和大型企業(yè)的需求。
  • 可配置的 LLM 以及嵌入模型。
  • 多重召回與融合的重新排名配對。
  • 直觀的 API,可與業(yè)務(wù)無縫集成。
    RAGFlow架構(gòu)圖

部署要求:

  • CPU >= 4 cores
  • RAM >= 16 GB
  • Disk >= 50 GB
  • Docker >= 24.0.0 & Docker Compose >= v2.26.1

啟動 服務(wù)器

  1. 確保 >= 262144:vm.max_map_count要檢查 的值 :vm.max_map_count$ sysctl vm.max_map_count如果不是,則重置為至少 262144 的值。vm.max_map_count
  1. # In this case, we set it to 262144:$ sudo sysctl -w vm.max_map_count=262144此更改將在系統(tǒng)重啟后重置。為了確保您的更改保持永久,請相應(yīng)地在?/etc/sysctl.conf?中添加或更新該值:vm.max_map_count
  2. vm.max_map_count=262144
  3. 克隆存儲庫:$ git clone https://github.com/infiniflow/ragflow.git構(gòu)建預(yù)構(gòu)建的 Docker 鏡像并啟動服務(wù)器:
  4. 以下命令下載 RAGFlow slim () 的開發(fā)版本 Docker 映像。請注意,RAGFlow slim Docker 映像不包括嵌入模型或 Python 庫,因此大小約為 1GB。dev-slim$ cd ragflow/docker$ docker compose -f docker-compose.yml up -d注意:包含嵌入模型和 Python 庫的 RAGFlow Docker 映像的大小約為 9GB,加載時(shí)間可能要長得多。
    • 要下載特定版本的 RAGFlow slim Docker 鏡像,請將?docker/.env?中的變量更新為所需版本。例如。進(jìn)行此更改后,請重新運(yùn)行上述命令以啟動下載。RAGFlow_IMAGERAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0-slim
    • 要下載 RAGFlow Docker 映像的開發(fā)版本(包括嵌入模型和 Python 庫),請將?docker/.env?中的變量更新為 。進(jìn)行此更改后,請重新運(yùn)行上述命令以啟動下載。RAGFlow_IMAGERAGFLOW_IMAGE=infiniflow/ragflow:dev
    • 要下載特定版本的 RAGFlow Docker 映像(包括嵌入模型和 Python 庫),請將?docker/.env?中的變量更新為所需的版本。例如。進(jìn)行此更改后,請重新運(yùn)行上述命令以啟動下載。RAGFlow_IMAGERAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0
  5. 在服務(wù)器啟動并運(yùn)行后檢查服務(wù)器狀態(tài):$ docker logs -f ragflow-server以下輸出確認(rèn)系統(tǒng)已成功啟動:
  6. ____ ___ ______ ______ __
    / __ \ / | / ____// ____// /____ _ __
    / /_/ // /| | / / __ / /_ / // __ \| | /| / /
    / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
    /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/

    * Running on all addresses (0.0.0.0)
    * Running on http://127.0.0.1:9380
    * Running on http://x.x.x.x:9380 INFO:werkzeug:Press CTRL+C to quit如果您跳過此確認(rèn)步驟并直接登錄 RAGFlow,您的瀏覽器可能會提示錯誤,因?yàn)榇藭r(shí)您的 RAGFlow 可能沒有完全初始化。network abnormal
  1. 在您的 Web 瀏覽器中,輸入服務(wù)器的 IP 地址并登錄 RAGFlow。使用默認(rèn)設(shè)置時(shí),您只需輸入 (sans?port number) 作為使用默認(rèn)配置時(shí)可以省略默認(rèn) HTTP 服務(wù)端口。http://IP_OF_YOUR_MACHINE80
  2. 在 service_conf.yaml 中,選擇所需的 LLM 工廠,并使用相應(yīng)的 API 密鑰更新字段。user_default_llmAPI_KEY有關(guān)更多信息,請參閱 llm_api_key_setup。

部署完成后,還需要對RAGFlow進(jìn)行配置,需要關(guān)注以下幾點(diǎn):

  • .env:保留系統(tǒng)的基本設(shè)置,例如SVR_HTTP_PORTMYSQL_PASSWORDMINIO_PASSWORD
  • service_conf.yaml:配置后端服務(wù)。
  • docker-compose.yml:系統(tǒng)依賴 docker-compose.yml 啟動。

您必須確保對 .env 文件的更改與 service_conf.yaml 文件中的更改一致。

./docker/README 文件提供了環(huán)境設(shè)置和服務(wù)配置的詳細(xì)描述,您需要確保 ./docker/README 文件中列出的所有環(huán)境設(shè)置都與 service_conf.yaml 文件中的相應(yīng)配置保持一致。

要更新默認(rèn) HTTP 服務(wù)端口 (80),請轉(zhuǎn)到 docker-compose.yml 并更改為 。80:80<YOUR_SERVING_PORT>:80

對上述配置的更新需要重啟所有容器才能生效:

$ docker compose -f docker/docker-compose.yml up -d

?? 在不嵌入模型的情況下構(gòu)建 Docker 鏡像

此映像的大小約為 1 GB,依賴于外部 LLM 和嵌入服務(wù)。

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
pip3 install huggingface-hub nltk
python3 download_deps.py
docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .

?? 構(gòu)建包含嵌入模型的 Docker 鏡像

此映像的大小約為 9 GB。由于它包括嵌入模型,因此它僅依賴于外部 LLM 服務(wù)。

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
pip3 install huggingface-hub nltk
python3 download_deps.py
docker build -f Dockerfile -t infiniflow/ragflow:dev .

?? 從源頭啟動服務(wù)進(jìn)行開發(fā)

  1. 安裝 Poetry,如果已安裝,請?zhí)^此步驟:curl -sSL https://install.python-poetry.org | python3 –
  2. 克隆源碼并安裝 Python 依賴項(xiàng):git clone https://github.com/infiniflow/ragflow.git
    cd ragflow/
    export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
    ~/.local/bin/poetry install –sync –no-root # install RAGFlow dependent python modules
  3. 使用 Docker Compose 啟動依賴服務(wù)(MinIO、Elasticsearch、Redis 和 MySQL):docker compose -f docker/docker-compose-base.yml up -d
  4. 添加以下行以將?docker/service_conf.yaml?中指定的所有主機(jī)解析為:/etc/hosts127.0.0.1
  1. 127.0.0.1 es01 mysql minio redis
  2. 在?docker/service_conf.yaml?中,將 mysql 端口更新為 ,將 es 端口更新為?,如 docker/.env?中指定。54551200
  1. 如果無法訪問 HuggingFace,請將環(huán)境變量設(shè)置為使用鏡像站點(diǎn):HF_ENDPOINTexport HF_ENDPOINT=https://hf-mirror.com啟動 backend service:
  2. source .venv/bin/activate
    export PYTHONPATH=$(pwd)bash docker/launch_backend_service.sh
  3. 安裝前端依賴項(xiàng):
  4. cd webnpm install –force
  5. 將前端配置為在?.umirc.ts?更新為:proxy.targethttp://127.0.0.1:9380

啟動前端服務(wù):

npm run dev 以下輸出確認(rèn)系統(tǒng)已成功啟動完成。



1、Text2KG 的使用



Text2KG是一個(gè)開源項(xiàng)目,能夠利用大型語言模型(zero-shot)跨領(lǐng)域從文本中提取實(shí)體和關(guān)系,自動構(gòu)建和更新知識圖譜,并通過Neo4j進(jìn)行可視化。

iText2KG由四個(gè)主要模塊組成:文檔提取器、增量實(shí)體提取器、增量關(guān)系提取器、圖形集成器和可視化。它們協(xié)同工作,從非結(jié)構(gòu)化文本構(gòu)建和可視化知識圖譜。

  • 文檔提取器(Document Distiller):該模塊處理原始文檔,并根據(jù)用戶定義的模式將其重新表述為語義塊。它通過關(guān)注相關(guān)信息并以預(yù)定義的格式對其進(jìn)行結(jié)構(gòu)化來提高信噪比。
  • 增量實(shí)體提取器(Incremental Entity Extractor):此模塊從語義塊中提取唯一實(shí)體并解決歧義以確保每個(gè)實(shí)體都有明確定義。它使用余弦相似度度量將局部實(shí)體與全局實(shí)體進(jìn)行匹配。
  • 增量關(guān)系提取器(Incremental Relation Extractor):此模塊識別提取實(shí)體之間的關(guān)系。它可以以兩種模式運(yùn)行:使用全局實(shí)體豐富圖形中的潛在信息,或使用局部實(shí)體建立更精確的關(guān)系。
  • 圖形集成器和可視化(Graph Integrator and Visualization):此模塊將提取的實(shí)體和關(guān)系集成到 Neo4j 數(shù)據(jù)庫中,提供知識圖譜的可視化表示。它允許對結(jié)構(gòu)化數(shù)據(jù)進(jìn)行交互式探索和分析。

四個(gè)模塊中,增量實(shí)體提取器與增量關(guān)系提取器最為關(guān)鍵,采用大模型來實(shí)現(xiàn)LLM提取代表一個(gè)唯一概念的實(shí)體,以避免語義混合的實(shí)體。顯示了使用 Langchain JSON 解析器的實(shí)體和關(guān)系提取prompt。分類如下:藍(lán)色 – 由 Langchain 自動格式化的prompt;常規(guī) – iText2KG設(shè)計(jì)的prompt;斜體 – 專門為實(shí)體和關(guān)系提取設(shè)計(jì)的prompt。(a)關(guān)系提取prompt和(b)實(shí)體提取prompt。

為了說明知識圖譜構(gòu)建的結(jié)果,在三種不同場景下,將基線方法與iText2KG進(jìn)行了比較:

  • 基線方法在所有三種知識圖譜構(gòu)建場景中都揭示了存在沒有關(guān)系的孤立節(jié)點(diǎn)。這種現(xiàn)象可能歸因于實(shí)體提取和關(guān)系提取的同時(shí)執(zhí)行,這可能會在語言模型中引起幻覺效應(yīng),導(dǎo)致“遺忘”效應(yīng),即分離實(shí)體和關(guān)系提取的過程可以提高性能。
  • 在“網(wǎng)站到知識圖譜”的場景中,輸入文檔數(shù)量的增加與圖中噪聲節(jié)點(diǎn)的出現(xiàn)有關(guān)。這強(qiáng)調(diào)了對文檔進(jìn)行有效精煉和蒸餾的模塊1的關(guān)鍵需求。
  • iText2KG方法在三種知識圖譜構(gòu)建場景中展示了改進(jìn)的實(shí)體和關(guān)系解析能力。當(dāng)輸入文檔較少且由簡單、非復(fù)雜短語組成時(shí),語言模型在實(shí)體和關(guān)系解析方面表現(xiàn)出高效率,如“簡歷到知識圖譜”過程中所證明的。相反,隨著數(shù)據(jù)集變得更加復(fù)雜和龐大,挑戰(zhàn)也隨之增加,如“網(wǎng)站到知識圖譜”場景所示。此外,重要的是要強(qiáng)調(diào)輸入文檔的分塊大小和閾值對知識圖譜構(gòu)建的影響。文檔分餾器的輸入文檔可以是獨(dú)立的文檔或分塊。如果分塊大小較小,則語義塊將從文檔中捕獲更具體的詳細(xì)信息,反之亦然

一種由 LLM 驅(qū)動的零樣本方法,使用大型語言模型構(gòu)建增量知識圖譜(KG)

iText2KG 是一個(gè) Python 包,通過利用大型語言模型從文本文檔中提取實(shí)體和關(guān)系,逐步構(gòu)建具有已解析實(shí)體和關(guān)系的一致知識圖譜。

它具有零樣本能力,無需專門的訓(xùn)練即可跨各個(gè)領(lǐng)域提取知識。

它包含四個(gè)模塊:文檔提煉器、增量實(shí)體提取器、增量關(guān)系提取器和圖形集成器與可視化。

  • 文檔提取器:此模塊將原始文檔重新表述為預(yù)定義的語義塊,并由指導(dǎo) LLM 提取特定信息的模式引導(dǎo)。
  • 增量實(shí)體提取器:此模塊識別并解析語義塊內(nèi)的唯一語義實(shí)體,確保實(shí)體之間的清晰度和區(qū)別。
  • 增量關(guān)系提取器:此組件處理已解析的實(shí)體以檢測語義上唯一的關(guān)系,解決語義重復(fù)的挑戰(zhàn)。
  • Neo4j?圖形集成器:最后一個(gè)模塊以圖形格式可視化關(guān)系和實(shí)體,利用 Neo4j 進(jìn)行有效表示。

對于我們的 iText2KG 它包含了兩大特點(diǎn)

  • 增量構(gòu)建:iText2KG?允許增量構(gòu)建?KG,這意味著它可以在新數(shù)據(jù)可用時(shí)不斷更新和擴(kuò)展圖,而無需進(jìn)行大量重新處理。
  • 零樣本學(xué)習(xí):該框架利用?LLM?的零樣本功能,使其無需預(yù)定義集或外部本體即可運(yùn)行。這種靈活性使其能夠適應(yīng)各種?KG?構(gòu)建場景,而無需進(jìn)行大量訓(xùn)練或微調(diào)。

一 、設(shè)置模型

在運(yùn)行 iText2KG 之前,我們先設(shè)置好大模型,我這里選擇的是 OpenAi 的模型以及 HuggingFace 的 bge-large-zh embedding 模型。這么選擇也是考慮到構(gòu)建 KG 的準(zhǔn)確度。

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
import os
os.environ["OPENAI_API_KEY"] = "*****"
openai_api_key = os.environ["OPENAI_API_KEY"]
openai_llm_model = llm = ChatOpenAI(
model="gpt-4o-mini",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
)
messages = [
(
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
),
("human", "I love programming."),
]

ai_msg=openai_llm_model.invoke(messages)

開始部署我們的 Embedding 模型:

from langchain_huggingface.embeddings import HuggingFaceEmbeddings
openai_embeddings_model = HuggingFaceEmbeddings(model_name="BAAI/bge-large-zh-v1.5")
text = "This is a test document."
query_result = openai_embeddings_model.embed_query(text)
query_result[:3]
doc_result = openai_embeddings_model.embed_documents([text])

二 、使用 iText2KG 構(gòu)建 KG

我們這里的場景是,給出一篇簡歷,使用知識圖譜將在線職位描述與生成的簡歷聯(lián)系起來。

設(shè)定目標(biāo)是評估候選人是否適合這份工作。

我們可以為 iText2KG 的每個(gè)模塊使用不同的 LLM 或嵌入模型。但是,重要的是確保節(jié)點(diǎn)和關(guān)系嵌入的維度在各個(gè)模型之間保持一致。

如果嵌入維度不同,余弦相似度可能難以準(zhǔn)確測量向量距離以進(jìn)行進(jìn)一步匹配。

我們的簡歷放到根目錄,加載簡歷:

from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader(f"./CV_Emily_Davis.pdf")
pages = loader.load_and_split()

初始化 DocumentDistiller 引入 llm :

from itext2kg.documents_distiller import DocumentsDisiller, CV
document_distiller = DocumentsDisiller(llm_model = openai_llm_model)

信息提煉:

IE_query = '''
# DIRECTIVES :
- Act like an experienced information extractor.
- You have a chunk of a CV.
- If you do not find the right information, keep its place empty.
'''
# 使用定義好的查詢和輸出數(shù)據(jù)結(jié)構(gòu)提煉文檔。
distilled_cv = document_distiller.distill(documents=[page.page_content.replace("{", '[').replace("}", "]") for page in pages], IE_query=IE_query, output_data_structure=CV)

將提煉后的文檔格式化為語義部分。

semantic_blocks_cv = [f"{key} - {value}".replace("{", "[").replace("}", "]") for key, value in distilled_cv.items() if value !=[] and value != ""  and value != None]

我們可以自定義輸出數(shù)據(jù)結(jié)構(gòu),我們這里定義了4種,工作經(jīng)歷模型,崗位,技能,證書。

from pydantic import BaseModel, Field
from typing import List, Optional

class JobResponsibility(BaseModel):
description: str = Field(..., description="A specific responsibility in the job role")

class JobQualification(BaseModel):
skill: str = Field(..., description="A required or preferred skill for the job")

class JobCertification(BaseModel):
certification: str = Field(..., description="Required or preferred certifications for the job")

class JobOffer(BaseModel):
job_offer_title: str = Field(..., description="The job title")
company: str = Field(..., description="The name of the company offering the job")
location: str = Field(..., description="The job location (can specify if remote/hybrid)")
job_type: str = Field(..., description="Type of job (e.g., full-time, part-time, contract)")
responsibilities: List[JobResponsibility] = Field(..., description="List of key responsibilities")
qualifications: List[JobQualification] = Field(..., description="List of required or preferred qualifications")
certifications: Optional[List[JobCertification]] = Field(None, description="Required or preferred certifications")
benefits: Optional[List[str]] = Field(None, description="List of job benefits")
experience_required: str = Field(..., description="Required years of experience")
salary_range: Optional[str] = Field(None, description="Salary range for the position")
apply_url: Optional[str] = Field(None, description="URL to apply for the job")

定義一個(gè)招聘工作需求的描述:

job_offer = """
About the Job Offer
THE FICTITIOUS COMPANY

FICTITIOUS COMPANY is a high-end French fashion brand known for its graphic and poetic style, driven by the values of authenticity and transparency upheld by its creator Simon Porte Jacquemus.

Your Role

Craft visual stories that captivate, inform, and inspire. Transform concepts and ideas into visual representations. As a member of the studio, in collaboration with the designers and under the direction of the Creative Designer, you should be able to take written or spoken ideas and convert them into designs that resonate. You need to have a deep understanding of the brand image and DNA, being able to find the style and layout suited to each project.

Your Missions

Translate creative direction into high-quality silhouettes using Photoshop
Work on a wide range of projects to visualize and develop graphic designs that meet each brief
Work independently as well as in collaboration with the studio team to meet deadlines, potentially handling five or more projects simultaneously
Develop color schemes and renderings in Photoshop, categorized by themes, subjects, etc.
Your Profile

Bachelor’s degree (Bac+3/5) in Graphic Design or Art
3 years of experience in similar roles within a luxury brand's studio
Proficiency in Adobe Suite, including Illustrator, InDesign, Photoshop
Excellent communication and presentation skills
Strong organizational and time management skills to meet deadlines in a fast-paced environment
Good understanding of the design process
Freelance cont

繼續(xù)使用上面方法做信息提煉:

IE_query = '''
# DIRECTIVES :
- Act like an experienced information extractor.
- You have a chunk of a job offer description.
- If you do not find the right information, keep its place empty.
'''
distilled_Job_Offer = document_distiller.distill(documents=[job_offer], IE_query=IE_query, output_data_structure=JobOffer)
print(distilled_Job_Offer)
semantic_blocks_job_offer = [f"{key} - {value}".replace("{", "[").replace("}", "]") for key, value in distilled_Job_Offer.items() if value !=[] and value != "" and value != None]

到這里準(zhǔn)備工作完成,簡歷和工作需求都已經(jīng)提煉完畢,然后正式開始構(gòu)建 graph,我們將簡歷的所有語義塊作為一個(gè)塊傳遞給了 LLM

也將工作需求作為另一個(gè)語義塊傳遞,也可以在構(gòu)建圖時(shí)將語義塊分開。

我們需要注意每個(gè)塊中包含多少信息,然后好將它與其他塊連接起來,我們在這里做的就是一次性傳遞所有語義塊。

from itext2kg import iText2KG
itext2kg = iText2KG(llm_model = openai_llm_model, embeddings_model = openai_embeddings_model)

global_ent, global_rel = itext2kg.build_graph(sections=[semantic_blocks_cv], ent_threshold=0.6, rel_threshold=0.6)

global_ent_, global_rel_ = itext2kg.build_graph(sections=[semantic_blocks_job_offer], existing_global_entities = global_ent, existing_global_relationships = global_rel, ent_threshold=0.6, rel_threshold=0.6)

iText2KG 構(gòu)建 KG 的過程我們看到有很多參數(shù),下面分貝是對每個(gè)參數(shù)的表示做一些解釋:

  • llm_model:用于從文本中提取實(shí)體和關(guān)系的語言模型實(shí)例。
  • embeddings_model:用于創(chuàng)建提取實(shí)體的向量表示的嵌入模型實(shí)例。
  • sleep_time (int):遇到速率限制或錯誤時(shí)等待的時(shí)間(以秒為單位)(僅適用于?OpenAI)。默認(rèn)為 5 秒。

iText2KG 的 build_graph 參數(shù):

  • sections?(List[str]):字符串(語義塊)列表,其中每個(gè)字符串代表文檔的一部分,將從中提取實(shí)體和關(guān)系。
  • existing_global_entities?(List[dict], optional):與新提取的實(shí)體進(jìn)行匹配的現(xiàn)有全局實(shí)體列表。每個(gè)實(shí)體都表示為一個(gè)字典。
  • existing_global_relationships (List[dict], optional):與新提取的關(guān)系匹配的現(xiàn)有全局關(guān)系列表。每個(gè)關(guān)系都表示為一個(gè)字典。
  • ent_threshold (float, optional):實(shí)體匹配的閾值,用于合并不同部分的實(shí)體。默認(rèn)值為 0.7。
  • rel_threshold (float, optional):關(guān)系匹配的閾值,用于合并不同部分的關(guān)系。默認(rèn)值為 0.7。

從圖中結(jié)果看到我們構(gòu)建過程中的實(shí)體,和關(guān)聯(lián)關(guān)系。

最后使用 GraphIntegrator 對構(gòu)建的知識圖譜進(jìn)行可視化。

使用指定的憑據(jù)訪問圖形數(shù)據(jù)庫 Neo4j,并對生成的圖形進(jìn)行可視化,以提供從文檔中提取的關(guān)系和實(shí)體的視覺表示。

from itext2kg.graph_integration import GraphIntegrator
URI = "bolt://3.216.93.32:7687"
USERNAME = "neo4j"
PASSWORD = "selection-cosal-cubes"
new_graph = {}
new_graph["nodes"] = global_ent_
new_graph["relationships"] = global_rel_
GraphIntegrator(uri=URI, username=USERNAME, password=PASSWORD).visualize_graph(json_graph=new_graph)

打開我們的 Neo4j 圖形數(shù)據(jù)庫:

]]>
http://m.margaretteevans.com/2024/11/25/%e4%bd%bf%e7%94%a8ragflowitext2kg%e9%92%88%e5%af%b9%e6%96%87%e6%a1%a3%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2%e4%b8%8e%e7%9f%a5%e8%af%86%e5%9b%be%e7%89%87%e7%94%9f%e6%88%90%ef%bc%88%e4%b8%80%ef%bc%89/feed/ 0
久久精品视频2021,免费国产美女一级A作爱,欧美国产日韩在线三区,久久精品海外免费视频
亚洲第一区中文字幕在线播放 | 日本免费一区二区三区在线播放 | 伊人久久大香线蕉综合色狠狠 | 日本精品一区久久久久久 | 日本三日本三级少妇三级66 | 亚洲无吗大片在线观看 |