大模型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)
通过参数传入长文本数据,并新建缓存目录,将长文本向量化为向量并将向量存储到缓存数据库中。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库