哪里可以做产品购物网站,合肥网络公司排名,下载的网站模板怎么使用,微信小程序制作商分类目录#xff1a;《自然语言处理从入门到应用》总目录 本文将介绍如何在LangChain中使用Embedding类。Embedding类是一种与嵌入交互的类。有很多嵌入提供商#xff0c;如#xff1a;OpenAI、Cohere、Hugging Face等#xff0c;这个类旨在为所有这些提供一个标准接口。
…分类目录《自然语言处理从入门到应用》总目录 本文将介绍如何在LangChain中使用Embedding类。Embedding类是一种与嵌入交互的类。有很多嵌入提供商如OpenAI、Cohere、Hugging Face等这个类旨在为所有这些提供一个标准接口。
嵌入创建文本的向量表示会很有用因为这意味着我们可以在向量空间中表示文本并执行类似语义搜索这样的操作。LangChain中的基本Embedding类公开两种方法
embed_documents适用于多个文档embed_query适用于单个文档
将这两种方法作为两种不同的方法的另一个原因是一些嵌入提供商对于需要搜索的文档和查询搜索查询本身具有不同的嵌入方法下面是文本嵌入的集成示例
Aleph Alpha
使用Aleph Alpha的语义嵌入有两种可能的方法。如果我们有不同结构的文本例如文档和查询则我们使用非对称嵌入。相反对于具有可比结构的文本则建议使用对称嵌入的方法
非对称
from langchain.embeddings import AlephAlphaAsymmetricSemanticEmbedding
document This is a content of the document
query What is the content of the document?
embeddings AlephAlphaAsymmetricSemanticEmbedding()
doc_result embeddings.embed_documents([document])
query_result embeddings.embed_query(query)对称
from langchain.embeddings import AlephAlphaSymmetricSemanticEmbedding
text This is a test text
embeddings AlephAlphaSymmetricSemanticEmbedding()
doc_result embeddings.embed_documents([text])
query_result embeddings.embed_query(text)Amazon Bedrock
Amazon Bedrock是一个完全托管的服务通过API提供了来自领先AI初创公司和亚马逊的FMs因此您可以从广泛的FMs中选择最适合您的用例的模型。
%pip install boto3
from langchain.embeddings import BedrockEmbeddingsembeddings BedrockEmbeddings(credentials_profile_namebedrock-admin)
embeddings.embed_query(This is a content of the document)
embeddings.embed_documents([This is a content of the document])Azure OpenAI
我们加载OpenAI Embedding类并设置环境变量以指示使用Azure端点。
# 设置用于 OpenAI 包的环境变量以指示使用 Azure 端点
import osos.environ[OPENAI_API_TYPE] azure
os.environ[OPENAI_API_BASE] https://your-endpoint.openai.azure.com/
os.environ[OPENAI_API_KEY] your AzureOpenAI key
os.environ[OPENAI_API_VERSION] 2023-03-15-preview
from langchain.embeddings import OpenAIEmbeddingsembeddings OpenAIEmbeddings(deploymentyour-embeddings-deployment-name)
text This is a test document.
query_result embeddings.embed_query(text)
doc_result embeddings.embed_documents([text])Cohere
我们加载Cohere Embedding类
from langchain.embeddings import CohereEmbeddings
embeddings CohereEmbeddings(cohere_api_keycohere_api_key)
text This is a test document.
query_result embeddings.embed_query(text)
doc_result embeddings.embed_documents([text])DashScope
我们加载DashScope嵌入类
from langchain.embeddings import DashScopeEmbeddings
embeddings DashScopeEmbeddings(modeltext-embedding-v1, dashscope_api_keyyour-dashscope-api-key)
text This is a test document.
query_result embeddings.embed_query(text)
print(query_result)
doc_results embeddings.embed_documents([foo])
print(doc_results)DashScope
我们加载DashScope嵌入类
from langchain.embeddings import DashScopeEmbeddings
embeddings DashScopeEmbeddings(modeltext-embedding-v1, dashscope_api_keyyour-dashscope-api-key)
text This is a test document.
query_result embeddings.embed_query(text)
print(query_result)
doc_results embeddings.embed_documents([foo])
print(doc_results)Elasticsearch
使用Elasticsearch中托管的嵌入模型生成嵌入的操作步骤。通过下面的方式可以很容易地实例化ElasticsearchEmbeddings类。如果我们使用的是Elastic Cloud则可以使用from_credentials构造函数如果我们使用的是Elasticsearch集群则可以使用from_es_connection构造函数
!pip -q install elasticsearch langchainimport 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_idyour_cloud_id, es_useryour_user, es_passwordyour_password
)# 为多个文档创建嵌入
documents [This is an example document., Another example document to generate embeddings for.
]
document_embeddings embeddings.embed_documents(documents)# 打印文档嵌入
for i, embedding in enumerate(document_embeddings):print(f文档 {i1} 的嵌入{embedding})# 为单个查询创建嵌入
query This is a single 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 [This is an example document., Another example document to generate embeddings for.
]
document_embeddings embeddings.embed_documents(documents)# 打印文档嵌入
for i, embedding in enumerate(document_embeddings):print(f文档 {i1} 的嵌入{embedding})# 为单个查询创建嵌入
query This is a single query.
query_embedding embeddings.embed_query(query)# 打印查询嵌入
print(f查询的嵌入{query_embedding})参考文献 [1] LangChain ️ 中文网跟着LangChain一起学LLM/GPT开发https://www.langchain.com.cn/ [2] LangChain中文网 - LangChain 是一个用于开发由语言模型驱动的应用程序的框架http://www.cnlangchain.com/