Skip to main content

AI Filesystem

Open In Colab

Local semantic search over folders. Why didn't this exist?

pip install aifs
pip install "unstructured[all-docs]" # If you want to parse all doc types. Includes large packages!
from aifs import search

search("How does AI Filesystem work?", path="/path/to/folder")
search("It's not unlike how Spotlight works.") # Path defaults to CWD

How it works


aifs

Running aifs.search will chunk and embed all nested supported files (.txt, .py, .sh, .docx, .pptx, .jpg, .png, .eml, .html, and .pdf) in path. It will then store these embeddings into an _.aifs file in path.

By storing the index, you only have to chunk/embed once. This makes semantic search very fast after the first time you search a path.

If a file has changed or been added, aifs.search will update or add those chunks. We still need to handle file deletions (we welcome PRs).

In detail:

  1. If a folder hasn't been indexed, we first use unstructured to parse and chunk every file in the path.
  2. Then we use chroma to embed the chunks locally and save them to a _.aifs file in path.
  3. Finally, chroma is used again to semantically search the embeddings.

If an _.aifs file is found in a directory, it uses that instead of indexing it again. If some files have been updated, it will re-index those.

Goals

  • We should always have SOTA parsing and chunking. The logic for this should be swapped out as new methods arise.
    • Chunking should be semantic — as in, python and markdown files should have different chunking algorithms based on the expected content of those filetypes. Who has this solution?
    • For parsing, I think Unstructured is the best of the best. Is this true?
  • We should always have SOTA embedding. If a better local embedding model is found, we should automatically download and use it.
    • I think Chroma will always do this (is this true?) so we depend on Chroma.
  • This project should stay minimally scoped — we want aifs to be the best local semantic search in the universe.

Why?

We built this to let open-interpreter quickly semantically search files/folders.

Metadata

Release files for aifs 0.0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aifs 0.0.16
File Size Uploaded
aifs-0.0.16.tar.gz 53.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aifs 0.0.16
File Interpreter ABI Platform
aifs-0.0.16-py3-none-any.whl Python 3 none any Details

Total release size: 108.3 kB

Release files / aifs-0.0.16.tar.gz

Download URL aifs-0.0.16.tar.gz
Size 53.9 kB
Tags Source
SHA-256 checksum
How to use checksums
63a5df5e2fb08025802950b821c55175e44dfeac542c5475fa4f58495137017f
BLAKE2b-256 checksum
How to use checksums
5985efa738a3ff1f3a569280a70f12908e91930bc462cddc6c5b5942815560a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Darwin/23.1.0

Release files / aifs-0.0.16-py3-none-any.whl

Download URL aifs-0.0.16-py3-none-any.whl
Size 54.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f9ab6632b2dc2d7158f4d069b8eaf13c027d08d335de31071d647382d6d3641d
BLAKE2b-256 checksum
How to use checksums
988d28d294f4bc434d78a52d8f757cfcd4b86d497e0c21b2f1d8ec4a77009073
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Darwin/23.1.0

Release history Release notifications | RSS feed

This release

0.0.16 This release

2 release files

0.0.15

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page