Memista es un servicio de búsqueda vectorial de alto rendimiento escrito en Rust que proporciona una API HTTP simple para almacenar y recuperar fragmentos de texto con sus incrustaciones vectoriales asociadas. Combina SQLite para el almacenamiento de metadatos con USEARCH para una búsqueda de similitud vectorial eficiente.
Inserte fragmentos de texto con sus incrustaciones en una base de datos especificada.
Busque fragmentos similares utilizando incrustaciones vectoriales.
Deje caer una base de datos específica y su índice vectorial asociado.
El servicio se puede configurar utilizando variables de entorno:
DATABASE_PATH : ruta al archivo de base de datos SQLite (predeterminado: "memista.db")SERVER_HOST : dirección de host para vincular a (predeterminado: "127.0.0.1")SERVER_PORT : puerto para escuchar (predeterminado: 8083)LOG_LEVEL : nivel de registro (predeterminado: "Info") .env con su configuración (opcional)cargo runEl servidor comenzará y la documentación de la API estará disponible en:
curl -X POST http://localhost:8083/v1/insert
-H " Content-Type: application/json "
-d ' {
"database_id": "my_db",
"chunks": [{
"embedding": [0.1, 0.2],
"text": "Sample text",
"metadata": "{"source": "document1"}"
}]
} 'curl -X POST http://localhost:8083/v1/search
-H " Content-Type: application/json "
-d ' {
"database_id": "my_db",
"embeddings": [[0.1, 0.2]],
"num_results": 5
} ' El proyecto utiliza varias dependencias clave:
Para obtener una lista completa de dependencias, consulte el archivo CARGO.TOML.
Este proyecto tiene licencia bajo la Licencia Pública General de GNU V3.0 (GPL -3.0) - consulte a continuación para un resumen:
GNU General Public License v3.0 (GPL-3.0)
Permisos:
Condiciones:
Limitaciones:
Para ver el texto completo de la licencia, consulte la licencia o visite https://www.gnu.org/licenses/gpl-3.0.en.html