文档API 参考📓 教程🧑‍🍳 示例代码🤝 集成💜 Discord🎨 Studio
文档

MistralDocumentEmbedder

此组件使用 Mistral API 和模型计算文档列表的 embeddings。

pipeline 中的最常见位置在索引管道中的 DocumentWriter 之前
必需的初始化变量"api_key": Mistral API 密钥。可以通过MISTRAL_API_KEY 环境变量设置。
强制运行变量“documents”:要计算 embedding 的文档列表
输出变量“documents”:文档列表(已添加嵌入信息)

“meta”:字符串元数据字典
API 参考Mistral
GitHub 链接https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/mistral

此组件应用于嵌入文档列表。要嵌入字符串,请使用 MistralTextEmbedder

概述

MistralDocumentEmbedder 计算文档列表的 embeddings,并将获得的向量存储在每个文档的 embedding 字段中。它使用 Mistral API 及其 embedding 模型。

该组件目前支持mistral-embed embedding 模型。所有支持的模型列表可以在 Mistral 的 embedding 模型文档 中找到。

要开始将此集成与 Haystack 一起使用,请使用以下命令安装它:

pip install mistral-haystack

MistralDocumentEmbedder 需要 Mistral API 密钥才能工作。默认情况下,它使用 MISTRAL_API_KEY 环境变量。否则,您可以在初始化时通过 api_key:

embedder = MistralDocumentEmbedder(api_key=Secret.from_token("<your-api-key>"), model="mistral-embed")

用法

单独使用

请首先记住设置MISTRAL_API_KEY 作为环境变量或直接传入。

以下是独立使用该组件的方法:

from haystack import Document
from haystack_integrations.components.embedders.mistral.document_embedder import MistralDocumentEmbedder

doc = Document(content="I love pizza!")

embedder = MistralDocumentEmbedder(api_key=Secret.from_token("<your-api-key>"), model="mistral-embed")

result = embedder.run([doc])
print(result['documents'][0].embedding)
# [-0.453125, 1.2236328, 2.0058594, 0.67871094...]

在 pipeline 中

以下是一个 的示例MistralDocumentEmbedder 在索引管道中。我们正在将网页内容索引到 InMemoryDocumentStore.

from haystack import Pipeline
from haystack.components.converters import HTMLToDocument
from haystack.components.fetchers import LinkContentFetcher
from haystack.components.preprocessors import DocumentSplitter
from haystack.components.writers import DocumentWriter
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.embedders.mistral.document_embedder import MistralDocumentEmbedder

document_store = InMemoryDocumentStore()
fetcher = LinkContentFetcher()
converter = HTMLToDocument()
chunker = DocumentSplitter()
embedder = MistralDocumentEmbedder()
writer = DocumentWriter(document_store=document_store)

indexing = Pipeline()

indexing.add_component(name="fetcher", instance=fetcher)
indexing.add_component(name="converter", instance=converter)
indexing.add_component(name="chunker", instance=chunker)
indexing.add_component(name="embedder", instance=embedder)
indexing.add_component(name="writer", instance=writer)

indexing.connect("fetcher", "converter")
indexing.connect("converter", "chunker")
indexing.connect("chunker", "embedder")
indexing.connect("embedder", "writer")

indexing.run(data={"fetcher": {"urls": ["https://mistral.ai/news/la-plateforme/"]}})

相关链接

请查看 GitHub 仓库或我们的文档中的 API 参考