文本向量化实现方式
在复杂的大模型中文本向量化有很多好处,比如提高检索速度,在大规模数据集上向量通过相似表示可以快速找到相似文本,在处理长文本和跨语言对齐等任务上也可以减少很多开销。在langchain中可以从包langchain.embeddings.openai中可以引入方法OpenAIEmbeddings定义向量化方法,以下是向量化的demo。
class embedding_template: def __init__(self, text): self.text = text def document(self): # 定义一个embedding变量 e_model = OpenAIEmbeddings() # embeddings = e_model.embed_documents( # self.text # ) # 新建一个缓存目录 fs = LocalFileStore("./cache/") cached_embeddings = CacheBackedEmbeddings.from_bytes_store( e_model, fs, namespace=e_model.model ) # 查看缓存条目 print(list(fs.yield_keys())) # 加载文档,切分文档存储到缓存中 # raw_document = TextLoader("./knowledge/economic.txt").load() text_splitter = CharacterTextSplitter(chunk_size=400, chunk_overlap=0) documents = text_splitter.split_documents(self.text) # 将向量写入缓存中 FAISS.from_documents(documents, cached_embeddings)
通过参数传入长文本数据,并新建缓存目录,将长文本向量化为向量并将向量存储到缓存数据库中。
标签:缓存,text,self,agent,documents,量化,model,文本 From: https://www.cnblogs.com/Ethereal-hzc/p/18459088