大模型agent开发之文本向量化

文本向量化实现方式

 在复杂的大模型中文本向量化有很多好处,比如提高检索速度,在大规模数据集上向量通过相似表示可以快速找到相似文本,在处理长文本和跨语言对齐等任务上也可以减少很多开销。在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)

通过参数传入长文本数据,并新建缓存目录,将长文本向量化为向量并将向量存储到缓存数据库中。

posted @ 2024-10-11 19:55  我刀呢?  阅读(178)  评论(0)    收藏  举报