我爱我色成人网,欧美日韩国产色,欧美亚视频在线中文字幕免费,亚洲国产影院

Graphiti:一個用于構建和查詢實時知識圖譜的框架

Graphiti是什么?

Graphiti 是一個用于構建和查詢知識圖譜的框架,它具備時間感知能力,非常適合用在動態環境中。與傳統的檢索增強生成(RAG)方法不同,Graphiti 可以實時整合用戶交互、結構化和非結構化的數據,以及外部信息,生成一個可查詢的圖譜。它的優勢在于支持數據的實時更新、高效檢索和精確的歷史查詢,無需重新計算整個圖譜,非常適合開發交互式、上下文感知的應用程序。

 Graphiti:一個用于構建和查詢實時知識圖譜的框架.webp

Graphiti 的主要功能

  • 實時增量更新:能夠立即集成新的數據片段,無需進行批量重新計算。

  • 雙時態數據模型:明確跟蹤事件發生時間和攝入時間,支持精確的時間點查詢。

  • 高效混合檢索:結合語義嵌入、關鍵字(BM25)和圖遍歷,實現低延遲查詢,無需依賴大語言模型(LLM)進行總結。

  • 自定義實體定義:支持通過簡單的 Pydantic 模型創建靈活的本體和自定義實體。

  • 可擴展性:通過并行處理有效管理大型數據集,適用于企業環境。

  • 與多種 LLM 集成: 支持 Openai、Anthropic 和 Groq 等 LLM 提供商,提供靈活的 LLM 推理和嵌入選項。

  • MCP 服務器: 提供一個基于 FastAPI 的 API 服務,支持通過 MCP 協議與知識圖譜進行交互,包括事件管理、實體管理和關系處理等功能。

選擇 Graphiti 的原因

  • 它能實時更新數據,適應動態變化的環境。

  • 支持精確的時間點查詢,方便追溯歷史信息。

  • 檢索速度快,不需要依賴復雜的語言模型。

  • 可以自定義數據結構,滿足特定需求。

  • 能高效處理大量數據,適合企業級應用。

Graphiti的安裝和使用

安裝 Graphiti

首先,確保你的系統滿足安裝要求,并安裝必要的依賴項:

  • Python:確保你的系統中安裝了 Python 3.10 或更高版本。

  • Neo4j:安裝 Neo4j 數據庫,版本 5.26 或更高。你可以使用 Neo4j Desktop 來簡化安裝和管理過程。

  • OpenAI API Key:如果你打算使用 OpenAI 進行 LLM 推理和嵌入,你需要一個有效的 OpenAI API Key。

你可以使用 pip 或 poetry 來安裝 Graphiti 核心庫:

pip install graphiti-core
# 或者
poetry add graphiti-core

初始化 Graphiti

在你的代碼中初始化 Graphiti 實例,連接到 Neo4j 數據庫:

from graphiti_core import Graphiti
graphiti = Graphiti("bolt://localhost:7687", "neo4j", "password")

構建索引和約束

在添加數據之前,初始化圖數據庫并構建 Graphiti 的索引和約束:

await graphiti.build_indices_and_constraints()

添加數據

使用 add_episode 方法將數據添加到知識圖譜中。每個數據片段稱為一個“episode”:

from graphiti_core.nodes import EpisodeType
from datetime import datetime, timezone
episodes = [
"Kamala Harris is the Attorney General of California. She was previously the district attorney for San Francisco.",
"As AG, Harris was in office from January 3, 2011 – January 3, 2017"
]
for i, episode in enumerate(episodes):
await graphiti.add_episode(
name=f"Freakonomics Radio {i}",
episode_body=episode,
source=EpisodeType.text,
source_description="podcast",
reference_time=datetime.now(timezone.utc)
)

查詢數據

使用 search 方法查詢知識圖譜,結合語義相似性和關鍵詞搜索:

results = await graphiti.search('Who was the California Attorney General?')

自定義查詢

你可以根據需要自定義查詢,例如通過指定中心節點來優先考慮與該節點更接近的結果:

await graphiti.search('Who was the California Attorney General?', center_node_uuid)

關閉連接

在完成聊天狀態管理后,關閉 Graphiti 連接:

graphiti.close()

使用 MCP 服務器

Graphiti 提供了一個 MCP 服務器,可以通過 FastAPI 進行交互。你可以部署這個服務器并使用 MCP 協議與知識圖譜進行交互:

1. 克隆或下載 Graphiti 倉庫。

2. 運行 MCP 服務器:

uvicorn graphiti.mcp_server.main:app --reload

3. 在你的 AI 助手中使用 MCP 協議與服務器進行通信。

使用 Azure OpenAI

如果你想使用 Azure OpenAI,你需要配置相應的客戶端和嵌入器:

from openai import AsyncAzureOpenAI
from graphiti_core import Graphiti
from graphiti_core.llm_client import OpenAIClient
from graphiti_core.embedder.openai import OpenAIEmbedder, OpenAIEmbedderConfig
api_key = "<your-api-key>"
api_version = "<your-api-version>"
azure_endpoint = "<your-azure-endpoint>"
azure_openai_client = AsyncAzureOpenAI(api_key=api_key, api_version=api_version, azure_endpoint=azure_endpoint)
graphiti = Graphiti(
"bolt://localhost:7687",
"neo4j",
"password",
llm_client=OpenAIClient(client=azure_openai_client),
embedder=OpenAIEmbedder(config=OpenAIEmbedderConfig(embedding_model="text-embedding-3-small"), client=azure_openai_client)
)

確保替換占位符值為你實際的 Azure OpenAI 憑據,并指定正確的嵌入模型名稱。

Graphiti 的優勢

  • 和其他技術相比,Graphiti 在處理動態數據、實時更新和查詢速度上有明顯優勢。

  • 提供了服務器實現,方便與其他系統集成。

  • 支持多種環境配置和與其他服務的集成。

相關鏈接

論文:https://arxiv.org/abs/2501.13956

GitHub 倉庫:https://github.com/getzep/graphiti

收藏
最新工具
DrFonts
DrFonts

一個AI字體生成工具,它能把手寫的PNG圖片,比如紙上的字稿,自...

Coding Adventure
Coding Adventure

一個面向小學三年級到初中學生的游戲化編程學習平臺。學生用真實編程...

Vert.sh
Vert.sh

一款完全免費、開源的文件轉換工具,支持圖片、音頻、文檔的本地處理...

Windrecorder
Windrecorder

捕風記錄儀,一款開源的屏幕錄制與檢索工具,它記錄屏幕內容來實現記...

Custom Cursor
Custom Cursor

一個能讓你擁有個性化光標的網站。Custom Cursor網站有...

橙子8設計
橙子8設計

一站式AI電商圖片制作平臺,專為電商和跨境賣家服務。不用專業設計...

Sandspiel
Sandspiel

一款基于細胞自動機和實時物理的開源像素沙盤游戲,玩家可以在虛擬沙...

印象地圖
印象地圖

這是個可以幫你記住全國省市位置的測試工具。打開網站就能用,選個模...

Sandtris
Sandtris

一款把經典俄羅斯方塊和流沙物理效果結合的休閑游戲。玩家需要利用沙...

Maze Toys
Maze Toys

一個以迷宮游戲為主的網站,提供多種類型的迷宮玩法,包括Mini、...

主站蜘蛛池模板: 鹤壁市| 德兴市| 九江市| 察雅县| 石渠县| 芒康县| 宝清县| 龙江县| 晴隆县| 大英县| 荔浦县| 双辽市| 巫溪县| 确山县| 孟村| 邵武市| 黔西| 安新县| 新巴尔虎左旗| 云南省| 吴江市| 镇宁| 永登县| 潞西市| 融水| 普定县| 耒阳市| 花莲县| 兴化市| 波密县| 青岛市| 琼结县| 久治县| 邹城市| 通化市| 司法| 天门市| 杭州市| 固始县| 金山区| 山阴县|