langchain_community.embeddings.elasticsearch.ElasticsearchEmbeddings

class langchain_community.embeddings.elasticsearch.ElasticsearchEmbeddings(client: MlClient, model_id: str, *, input_field: str = 'text_field')[源代码]

自版本 0.1.11 起已废弃: 请使用 langchain-elasticsearch 包中的 class

Elasticsearch 嵌入模型。

此类提供了使用部署在 Elasticsearch 集群中的模型生成嵌入的接口。它需要一个 Elasticsearch 连接对象以及集群中部署的模型 ``。

在 Elasticsearch 中,您需要加载并部署嵌入模型。 - https://elastic.ac.cn/guide/en/elasticsearch/reference/current/infer-trained-model.html - https://elastic.ac.cn/guide/en/machine-learning/current/ml-nlp-deploy-models.html

初始化 ElasticsearchEmbeddings 实例。

参数
  • client (MLClient) – 一个 Elasticsearch ML 客户端对象。

  • model_id (str) – 已部署在 Elasticsearch 集群中的模型的 model_id。

  • input_field (str) – 文档中输入文本字段的键的名称。默认为 ‘text_field’。

方法

__init__(client, model_id, *[, input_field])

初始化 ElasticsearchEmbeddings 实例。

aembed_documents(texts)

异步嵌入文档搜索。

aembed_query(text)

异步嵌入查询文本。

embed_documents(texts)

为文档列表生成嵌入。

embed_query(text)

为单个查询文本生成嵌入。

from_credentials(model_id, *[, es_cloud_id, ...])

从 Elasticsearch 凭证创建嵌入实例。

from_es_connection(model_id, es_connection)

从一个现有的 Elasticsearch 连接创建嵌入实例。

__init__(client: MlClient, model_id: str, *, input_field: str = 'text_field')[源代码]

初始化 ElasticsearchEmbeddings 实例。

参数
  • client (MLClient) – 一个 Elasticsearch ML 客户端对象。

  • model_id (str) – 已部署在 Elasticsearch 集群中的模型的 model_id。

  • input_field (str) – 文档中输入文本字段的键的名称。默认为 ‘text_field’。

async aembed_documents(texts: List[str]) List[List[float]]

异步嵌入文档搜索。

参数

texts (<em>List<em>str<em>) – 要嵌入的文本列表。

返回:

嵌入列表。

返回类型:

<em>List<em>List<em>float<em>

async aembed_query(text: str) List[float]

异步嵌入查询文本。

参数

text (<em>str<em>) – 要嵌入的文本。

返回:

嵌入。

返回类型:

<em>List<em>float<em>

embed_documents(texts: List[str]) List[List[float]][源代码]

为文档列表生成嵌入。

参数

texts (<em>List<em>str<em>) – 生成嵌入的文档文本字符串列表。

返回:

对于输入列表中的每个文档,返回一个嵌入列表。

列表:

返回类型:

列[列[float]]

embed_query(text: str) List[float]

为单个查询文本生成嵌入。

参数

text (str) – 生成嵌入的查询文本。

返回:

输入查询文本的嵌入。

返回类型:

浮点数列表

classmethod from_credentials(model_id: str, *, es_cloud_id: Optional[str] = None, es_user: Optional[str] = None, es_password: Optional[str] = None, input_field: str = 'text_field') ElasticsearchEmbeddings[source]

从 Elasticsearch 凭证创建嵌入实例。

参数
  • model_id (str) – 已部署在 Elasticsearch 集群中的模型的 model_id。

  • input_field (str) – 文档中输入文本字段的键的名称。默认为 ‘text_field’。

  • es_cloud_id (Optional[str]) – (str, 可选):连接到 Elasticsearch 云的 ID。

  • es_user (Optional[str]) – (str, 可选):Elasticsearch 用户名。

  • es_password (Optional[str]) – (str, 可选):Elasticsearch 密码。

返回类型:

ElasticsearchEmbeddings

示例

from langchain_community.embeddings import ElasticsearchEmbeddings

# Define the model ID and input field name (if different from default)
model_id = "your_model_id"
# Optional, only if different from 'text_field'
input_field = "your_input_field"

# Credentials can be passed in two ways. Either set the env vars
# ES_CLOUD_ID, ES_USER, ES_PASSWORD and they will be automatically
# pulled in, or pass them in directly as kwargs.
embeddings = ElasticsearchEmbeddings.from_credentials(
    model_id,
    input_field=input_field,
    # es_cloud_id="foo",
    # es_user="bar",
    # es_password="baz",
)

documents = [
    "This is an example document.",
    "Another example document to generate embeddings for.",
]
embeddings_generator.embed_documents(documents)
classmethod from_es_connection(model_id: str, es_connection: Elasticsearch, input_field: str = 'text_field') ElasticsearchEmbeddings[source]

从一个现有的 Elasticsearch 连接创建嵌入实例。

此方法提供了使用现有的 Elasticsearch 连接创建 ElasticsearchEmbeddings 类实例的方法。连接对象用于创建 MlClient,然后用于初始化 ElasticsearchEmbeddings 实例。

参数:model_id(字符串):在Elasticsearch集群中部署的模型的model_id。es_connection(elasticsearch.Elasticsearch):现有的Elasticsearch连接对象。input_field(字符串,可选):文档中输入文本字段的键的名称。默认为‘text_field’。

返回值:ElasticsearchEmbeddings:ElasticsearchEmbeddings类的实例。

示例

from elasticsearch import Elasticsearch

from langchain_community.embeddings import ElasticsearchEmbeddings

# Define the model ID and input field name (if different from default)
model_id = "your_model_id"
# Optional, only if different from 'text_field'
input_field = "your_input_field"

# Create Elasticsearch connection
es_connection = Elasticsearch(
    hosts=["localhost:9200"], http_auth=("user", "password")
)

# Instantiate ElasticsearchEmbeddings using the existing connection
embeddings = ElasticsearchEmbeddings.from_es_connection(
    model_id,
    es_connection,
    input_field=input_field,
)

documents = [
    "This is an example document.",
    "Another example document to generate embeddings for.",
]
embeddings_generator.embed_documents(documents)
参数
  • model_id字符串) –

  • es_connectionElasticsearch) –

  • input_field字符串) –

返回类型:

ElasticsearchEmbeddings