RAG e sistemas de conhecimento

Infino

infino-ai/infino

Infino is a fast retrieval engine that executes SQL, full-text search, and vector search over a single copy of data stored natively as Parquet on object storage.

★ 67Estrelas
⑂ 18Forks
60Problemas em aberto
RustIdioma
Apache-2.0Licença
Q@project.QualityScorePontuação editorial

Capturas de tela do projeto

Captura de tela de Infino Captura de tela de Infino Captura de tela de Infino Captura de tela de Infino Captura de tela de Infino Captura de tela de Infino

Visão geral

Infino optimizes for speed per dollar by enabling search engine performance on object-storage economics. It allows users to run multi-modal queries—keyword (BM25), vector, and SQL—over the same rows without duplicating data. Data remains in spec-compliant Parquet format on S3, Azure, GCS, or local disk, ensuring snapshot-isolated reads, atomic commits, and no vendor lock-in for read operations. The system uses a 'superfile' format, which is a valid Parquet file with embedded full-text and vector indexes spliced before the standard footer.

Principais recursos

  • Multi-modal queries: BM25, vector, and SQL over a single data copy.
  • Object-storage-native: Data lives on S3, Azure, GCS, or local disk.
  • Open format: Data stored as spec-compliant Parquet, readable by any Parquet-compatible tool.
  • Hybrid search: Native support for combining keyword and vector search with reciprocal-rank fusion.
  • SQL joins across tables: Ability to join retrieval table functions with standard tables.
  • Snapshot-isolated reads and atomic commits.
  • Pushdown filters: Vector search restricted by keyword matches.

Requisitos, instalação e início rápido

Python: `pip install infino` or `uv pip install infino`
Node.js: `npm install @infino-ai/infino`
Rust: `cargo add infino` (or add `infino = "0.1"` to `Cargo.toml` dependencies). Note: Infino installs the mimalloc global allocator by default; disable it with `default-features = false` if embedding in a process that already sets one.

Uso

Connect to a backend using a URI (e.g., `memory://`, `s3://bucket/prefix`, `./data`). Create a table with a schema and an `IndexSpec` defining full-text and vector indexes. Append records, then query using `bm25_search`, `vector_search`, or `query_sql`. For hybrid retrieval, use SQL to join BM25 and vector search results, applying reciprocal-rank fusion. Standard Parquet tools can read the resulting `.sf.parquet` files directly without Infino in the read path.

Compatibilidade do modelo e casos de uso

Not stated in the repository metadata

Observações sobre licença e riscos

Apache-2.0

Editorial verification 2026-08-02: repository URL, owner, description, license and repository statistics were reviewed. License metadata: Apache-2.0. README was fetched for the channel draft; re-check repository dependencies, releases and model terms before production use.

Lançamento e manutenção

Not stated in the repository metadata

LanceDB

lancedb/lancedb

★ 11,1KRust

EvalScope

modelscope/evalscope

★ 3,2KPython