Skip to main content
Ctrl+K
🦜🔗 LangChain  documentation - Home 🦜🔗 LangChain  documentation - Home
  • 参考
Ctrl+K
Docs
  • GitHub
  • X / Twitter
Ctrl+K
  • 参考
Docs
  • GitHub
  • X / Twitter

章节导航

基础包

  • 核心
  • Langchain
  • 文本分割器
  • Community
    • adapters
    • agent_toolkits
    • agents
    • cache
    • callbacks
    • chains
    • chat_loaders
    • chat_message_histories
    • chat_models
    • cross_encoders
    • docstore
    • document_compressors
    • document_loaders
    • document_transformers
    • embeddings
    • example_selectors
    • graph_vectorstores
      • GraphVectorStore
      • GraphVectorStoreRetriever
      • Node
      • AdjacentNode
      • CassandraGraphVectorStore
      • GLiNERLinkExtractor
      • HierarchyLinkExtractor
      • HtmlInput
      • HtmlLinkExtractor
      • KeybertLinkExtractor
      • LinkExtractor
      • LinkExtractorAdapter
      • LinkExtractorTransformer
      • Link
      • MmrHelper
      • nodes_to_documents
      • add_links
      • copy_with_links
      • get_links
      • documents_to_networkx
      • render_graphviz
    • graphs
    • indexes
    • llms
    • memory
    • output_parsers
    • query_constructors
    • retrievers
    • storage
    • tools
    • utilities
    • utils
    • vectorstores
  • 实验性

集成

  • AI21
  • Anthropic
  • AstraDB
  • AWS
  • Azure 动态会话
  • Cerebras
  • Chroma
  • Cohere
  • Couchbase
  • Databricks
  • Elasticsearch
  • Exa
  • Fireworks
  • Google 社区
  • Google GenAI
  • Google VertexAI
  • Groq
  • Huggingface
  • IBM
  • Milvus
  • MistralAI
  • Neo4J
  • Nomic
  • Nvidia AI 端点
  • Ollama
  • OpenAI
  • Pinecone
  • Postgres
  • Prompty
  • Qdrant
  • Redis
  • Sema4
  • Snowflake
  • Sqlserver
  • 标准测试
  • Together
  • 非结构化
  • Upstage
  • VoyageAI
  • Weaviate
  • XAI
  • LangChain Python API 参考
  • langchain-community: 0.3.14
  • graph_vectorstores
  • 链接

链接#

class langchain_community.graph_vectorstores.links.Link(kind: str, direction: Literal['in', 'out', 'bidir'], tag: str)[source]#

测试版

此功能处于测试阶段。我们正在积极开发中,因此API可能会发生变化。

指向/来自给定类型的标签的链接。

在graph vector store中的文档通过“链接”连接。 链接在文档和标签之间形成一个二分图:文档连接到标签,标签连接到其他文档。 当从图向量存储中检索文档时,如果两个文档连接到同一个标签,则这对文档的连接深度为一。

链接有一个kind属性,用于命名不同的标签标识符。 例如,指向关键字的链接可能使用kw类型,而指向URL的链接可能使用url类型。 这允许在不同的上下文中使用相同的标签值,而不会导致名称冲突。

链接是有方向的。链接的方向性控制在检索时如何遍历图。 例如,给定文档 A 和 B,通过链接连接到标签 T:

A 到 T

B 到 T

结果

出站

入站

检索从A遍历到B

传入

传入

没有从A到B的遍历

出站

入站

从A到B没有遍历

bidir

incoming

检索从A遍历到B

bidir

outgoing

没有从A到B的遍历

outgoing

bidir

检索从A遍历到B

incoming

bidir

没有从A到B的遍历

有向链接使得描述诸如术语引用/定义之类的关系成为可能:术语定义通常与使用该术语的任何文档相关,但使用术语的完整文档集通常与术语的定义无关。

另请参阅

  • 如何使用图向量存储

  • 如何在HTML中的超链接上链接文档

  • 如何 在 共同 关键词 上 链接 文档 (使用 KeyBERT)

  • 如何 在 常见 命名实体 上 链接 文档 (使用 GliNER)

如何向文档添加链接#

如何创建链接#

你可以使用Link类的构造函数incoming()、outgoing()和bidir()来创建链接:

from langchain_community.graph_vectorstores.links import Link

print(Link.bidir(kind="location", tag="Paris"))
Link(kind='location', direction='bidir', tag='Paris')

使用链接扩展文档#

既然我们已经知道如何创建链接,让我们将它们与一些文档关联起来。 这些边将加强共享关键词的文档之间的连接, 当使用图向量存储来检索文档时。

首先,我们将加载一些文本并将其分割成较小的部分。 然后,我们将为每个文档添加一个链接,将它们全部连接在一起:

from langchain_community.document_loaders import TextLoader
from langchain_community.graph_vectorstores.links import add_links
from langchain_text_splitters import CharacterTextSplitter

loader = TextLoader("state_of_the_union.txt")

raw_documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
documents = text_splitter.split_documents(raw_documents)

for doc in documents:
    add_links(doc, Link.bidir(kind="genre", tag="oratory"))

print(documents[0].metadata)
{'source': 'state_of_the_union.txt', 'links': [Link(kind='genre', direction='bidir', tag='oratory')]}

正如我们所看到的,每个文档的元数据现在都包含一个指向流派 oratory 的双向链接。

然后可以将文档添加到图向量存储中:

from langchain_community.graph_vectorstores import CassandraGraphVectorStore

graph_vectorstore = CassandraGraphVectorStore.from_documents(
    documents=documents, embeddings=...
)

属性

方法

__init__(kind, direction, tag)

bidir(kind, tag)

创建一个双向链接。

incoming(kind, tag)

创建一个传入链接。

outgoing(kind, tag)

创建一个出站链接。

__init__(kind: str, direction: Literal['in', 'out', 'bidir'], tag: str) → None#
Parameters:
  • kind (str)

  • 方向 (字面量['in', 'out', 'bidir'])

  • 标签 (字符串)

Return type:

无

static bidir(kind: str, tag: str) → Link[源代码]#

创建一个双向链接。

Parameters:
  • kind (str) – 链接类型。

  • tag (str) – 链接标签。

Return type:

Link

static incoming(kind: str, tag: str) → Link[来源]#

创建一个传入链接。

Parameters:
  • kind (str) – 链接类型。

  • tag (str) – 链接标签。

Return type:

Link

static outgoing(kind: str, tag: str) → Link[来源]#

创建一个出站链接。

Parameters:
  • kind (str) – 链接类型。

  • tag (str) – 链接标签。

Return type:

Link

Parameters:
  • kind (str)

  • 方向 (字面量['in', 'out', 'bidir'])

  • 标签 (字符串)

On this page
  • Link
    • __init__()
    • bidir()
    • incoming()
    • outgoing()

© 版权所有 2023, LangChain Inc.