网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
使用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 BedrockEmbeddings
embeddings = BedrockEmbeddings(credentials_profile_name="bedrock-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 os
os.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 OpenAIEmbeddings
embeddings = OpenAIEmbeddings(deployment="your-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_key=cohere_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(model='text-embedding-v1', dashscope_api_key='your-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(model='text-embedding-v1', dashscope_api_key='your-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 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 = [
'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"文档 {i+1} 的嵌入:{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)
![img](https://img-blog.csdnimg.cn/img_convert/6e0b090ca12cd2b6543fe4e0bc768a51.png)
![img](https://img-blog.csdnimg.cn/img_convert/8a04bdff67cf7d32f3e9759a8776af6b.png)
![img](https://img-blog.csdnimg.cn/img_convert/6920d842528b6347d04c41d9f1e3e074.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
186099)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**