faiss+fastapi搭建一个http api的向量索引添加与语义相似搜索服务代码

代码语言:python

所属分类:其他

代码描述:faiss+fastapi搭建一个http api的向量索引添加与语义相似搜索服务代码,有add与search两个方法,支持不同的索引存储与查询。

代码标签: faiss fastapi 搭建 http api 向量 索引 添加 语义 相似 搜索 服务 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import os
import json
import hashlib
import sqlite3
import asyncio
from typing import List, Dict, Any
from contextlib import asynccontextmanager

import numpy as np
# 替换 usearch 为 faiss
import faiss

from fastapi import FastAPI, HTTPException, Security, Depends, status
from fastapi.security.api_key import APIKeyHeader
from pydantic import BaseModel
from openai import AsyncOpenAI

# ================= 配置区域 =================

# 1. OpenAI 配置 (兼容阿里云DashScope)
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "sk-86...") # 请确保此处填入真实的 Key
OPENAI_MODEL = "text-embedding-v4"
VECTOR_DIM = 1024

# 2. 服务安全配置
SERVICE_API_KEY_NAME = "X-Service-Key"
SERVICE_API_KEY_SECRET = "sldkSs"

# 3. 存储路径
DATA_DIR = "./embdata"
DB_PATH = os.path.join(DATA_DIR, "metadata.db")

# 确保目录存在
os.makedirs(DATA_DIR, exist_ok=True)

# ================= 数据库与工具函数 =================

def init_db():
    """初始化 SQLite 用于存储文本和元数据"""
    conn = sqlite3.connect(DB_PATH)
    cursor = conn.cursor()
    cursor.execute(&q.........完整代码请登录后点击上方下载按钮下载查看

网友评论0