Skip to main content

Elasticsearch

演示如何在Elasticsearch中使用托管的嵌入模型生成嵌入向量

实例化ElasticsearchEmbeddings类的最简单方法是:

  • 如果您使用的是Elastic Cloud,请使用from_credentials构造函数
  • 如果您使用的是任何Elasticsearch集群,请使用from_es_connection构造函数
pip -q install elasticsearch langchain
import elasticsearch
from langchain.embeddings.elasticsearch import ElasticsearchEmbeddings
# 定义模型ID
model_id = "your_model_id"

使用from_credentials进行测试

这需要一个Elastic Cloud的cloud_id

# 使用凭据实例化ElasticsearchEmbeddings
embeddings = ElasticsearchEmbeddings.from_credentials(
model_id,
es_cloud_id="your_cloud_id",
es_user="your_user",
es_password="your_password",
)
# 为多个文档创建嵌入向量
documents = [
"这是一个示例文档。",
"另一个示例文档,用于生成嵌入向量。",
]
document_embeddings = embeddings.embed_documents(documents)
# 打印文档嵌入向量
for i, embedding in enumerate(document_embeddings):
print(f"文档{i+1}的嵌入向量:{embedding}")
# 为单个查询创建嵌入向量
query = "这是一个单个查询。"
query_embedding = embeddings.embed_query(query)
# 打印查询嵌入向量
print(f"查询的嵌入向量:{query_embedding}")

使用现有的Elasticsearch客户端连接进行测试

这可以与任何Elasticsearch部署一起使用

# 创建Elasticsearch连接
es_connection = Elasticsearch(
hosts=["https://es_cluster_url:port"], basic_auth=("user", "password")
)
# 使用es_connection实例化ElasticsearchEmbeddings
embeddings = ElasticsearchEmbeddings.from_es_connection(
model_id,
es_connection,
)
# 为多个文档创建嵌入向量
documents = [
"这是一个示例文档。",
"另一个示例文档,用于生成嵌入向量。",
]
document_embeddings = embeddings.embed_documents(documents)
# 打印文档嵌入向量
for i, embedding in enumerate(document_embeddings):
print(f"文档{i+1}的嵌入向量:{embedding}")
# 为单个查询创建嵌入向量
query = "这是一个单个查询。"
query_embedding = embeddings.embed_query(query)
# 打印查询嵌入向量
print(f"查询的嵌入向量:{query_embedding}")