python结合ollama+faiss实现本地文件rag知识库查询笔记

python结合ollama+faiss实现本地文件rag知识库查询笔记

800_auto

今天我们就用它作为RAG知识库的搜索

1、通过安装ollama,官网:https://ollama.com/

然后运行以下面的命令下载大模型,我们以qwen2为例

ollama pull qwen2:7b

2、安装FAISS,FAISS(Facebook AI Similarity Search)是Facebook AI Research开发的一个用于高效相似性搜索和密集向量聚类的库。

pip install faiss-cpu  # 如果只需要 CPU 版本 ,gpu版本是pip install faiss-gpu

3、qwen2:7b的向量维度是3584,这是获取embedding的代码:

import faiss
import requests

def get_embeddings(model, prompt):
    url = "http://localhost:11434/api/embeddings"
    payload = {
        "model": model,
        "prompt": prompt
    }
    response = requests.post(url, json=payload)
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f"Failed to get embeddings: {response.status_code}")

# 示例调用
result = get_embeddings("qwen2:7b", "文字内容")
print( len(result['embedding']))

4、FAISS向量化存储到文件及相似度语义查询,最终的完整代码如下:

点击查看

{{collectdata}}

网友评论