Elasticsearch嵌入#
- class langchain_community.embeddings.elasticsearch.ElasticsearchEmbeddings(client: MlClient, model_id: str, *, input_field: str = 'text_field')[source]#
自版本0.1.11起已弃用:请改用
Use class in langchain-elasticsearch package
。Elasticsearch 嵌入模型。
该类提供了一个接口,用于使用部署在Elasticsearch集群中的模型生成嵌入。它需要一个Elasticsearch连接对象和部署在集群中的模型的model_id。
在Elasticsearch中,您需要加载并部署一个嵌入模型。 - https://www.elastic.co/guide/en/elasticsearch/reference/current/infer-trained-model.html - https://www.elastic.co/guide/en/machine-learning/current/ml-nlp-deploy-models.html
初始化 ElasticsearchEmbeddings 实例。
- Parameters:
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')[source]#
初始化 ElasticsearchEmbeddings 实例。
- Parameters:
client (MlClient) – 一个 Elasticsearch ML 客户端对象。
model_id (str) – 部署在Elasticsearch集群中的模型的model_id。
input_field (str) – 文档中输入文本字段的键名。默认为‘text_field’。
- async aembed_documents(texts: list[str]) list[list[float]] #
异步嵌入搜索文档。
- Parameters:
文本 (列表[字符串]) – 要嵌入的文本列表。
- Returns:
嵌入列表。
- Return type:
列表[列表[浮点数]]
- async aembed_query(text: str) list[float] #
异步嵌入查询文本。
- Parameters:
文本 (str) – 要嵌入的文本。
- Returns:
嵌入。
- Return type:
列表[浮点数]
- embed_documents(texts: List[str]) List[List[float]] [source]#
为文档列表生成嵌入。
- Parameters:
文本 (列表[字符串]) – 用于生成嵌入的文档文本字符串列表。
- Returns:
- 嵌入列表,输入中的每个文档对应一个
列表。
- Return type:
列表[列表[浮点数]]
- embed_query(text: str) List[float] [source]#
为单个查询文本生成嵌入。
- Parameters:
text (str) – 用于生成嵌入的查询文本。
- Returns:
输入查询文本的嵌入。
- Return type:
列表[浮点数]
- classmethod from_credentials(model_id: str, *, es_cloud_id: str | None = None, es_user: str | None = None, es_password: str | None = None, input_field: str = 'text_field') ElasticsearchEmbeddings [来源]#
从Elasticsearch凭据实例化嵌入。
- Parameters:
model_id (str) – 部署在Elasticsearch集群中的模型的model_id。
input_field (str) – 文档中输入文本字段的键名。默认为‘text_field’。
es_cloud_id (str | None) – (str, 可选): 要连接的Elasticsearch云ID。
es_user (str | None) – (str, 可选): Elasticsearch 用户名。
es_password (str | None) – (str, 可选): Elasticsearch 密码。
- Return type:
示例
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 [来源]#
从现有的Elasticsearch连接实例化嵌入。
该方法提供了一种使用现有Elasticsearch连接创建ElasticsearchEmbeddings类实例的方式。连接对象用于创建MlClient,然后用于初始化ElasticsearchEmbeddings实例。
参数: model_id (str): 部署在Elasticsearch集群中的模型的model_id。 es_connection (elasticsearch.Elasticsearch): 现有的Elasticsearch连接对象。input_field (str, 可选): 文档中输入文本字段的键名。默认为‘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)
- Parameters:
model_id (str)
es_connection (Elasticsearch)
input_field (str)
- Return type: