from typing import List import faiss from langchain_community.docstore import InMemoryDocstore from langchain_community.vectorstores import FAISS from langchain_core.documents import Document from langchain_huggingface import HuggingFaceEmbeddings # 准备好向量化的对象 model_name = "BAAI/bge-small-zh-v1.5" # 模型名 model_kwargs = {'device': 'cpu'} # 没有显卡就用cpu,有英伟达显卡写cuda encode_kwargs = {'normalize_embeddings': True} # set True to compute cosine similarity # 第一次运行,会自动下载模型(去huggingface上下载),下载到hf默认的缓存目录。 hf_embedding = HuggingFaceEmbeddings( model_name=model_name, model_kwargs=model_kwargs, encode_kwargs=encode_kwargs ) # 1、 # 把数据库写入磁盘 vector_store = FAISS.load_local('./faiss_db', embeddings=hf_embedding, allow_dangerous_deserialization=True) vector_store.delete(ids=['id8']) # results = vector_store.similarity_search('今天的金融投资新闻', k=2) results = vector_store.similarity_search_with_score('有美食的内容吗', k=4, filter={"source": 'tweet'}) # 带分数 for res, score in results: print(type(res)) print(res.id) print(f"* [Score={score:3f}] {res.page_content} [{res.metadata}]")