Text Embedding Models
如何将一段Document转换成向量存储到向量数据库中,首先需要了解Langchain提供了哪些将文本转换成向量的model,langchian提供了很多将自然语言转换成向量的的模型,如下图所示,除了下图列举的model,更多支持的model可参考官网信息。
这里将以Langchain提供的SentenceTransformerEmbeddings和OpenAIEmbeddings为例子,通过实际代码来看看如何把一段自然语言转换成向量。SentenceTransformers 嵌入通过 HuggingFaceEmbeddings 集成进行调用,langchain还为那些更熟悉直接使用该包的用户添加了 SentenceTransformerEmbeddings 的别名,所以,本质上,SentenceTransformerEmbeddings和HuggingFaceEmbeddings是同一个内容,查看源代码也可以看到SentenceTransformerEmbeddings里面只是将HuggingFaceEmbeddings赋值给它而已,源代码如下图所示:
所以,调用HuggingFaceEmbeddings和调用SentenceTransformerEmbeddings是一样的。下面的代码中调用HuggingFaceEmbeddings(),传入使用的model名称,这里使用的是"all-MinLM-L6-v2",通过调用embed_query(text)就能得到文本的向量数据。
import os
import openai
import numpy as np
from langchain.embeddings import HuggingFaceEmbeddings, SentenceTransformerEmbeddings
from langchain.embeddings import OpenAIEmbeddings
embeddings = HuggingF