From c30e38866a3f47ee95df38cb9282e5798362cbb1 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:34:08 -0500 Subject: [PATCH 01/11] Workflows --- .github/workflows/docs-check.yml | 30 ++++++++++++++++++++++++++ .github/workflows/docs-publish.yml | 34 ++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 .github/workflows/docs-check.yml create mode 100644 .github/workflows/docs-publish.yml diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml new file mode 100644 index 0000000..9bf4fc6 --- /dev/null +++ b/.github/workflows/docs-check.yml @@ -0,0 +1,30 @@ +name: Check Docs + +on: + pull_request: + branches: [main] + +jobs: + check: + name: Check Docs + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Install Hatch + uses: pypa/hatch@install + + - name: Check docs type correctness + run: | + make docs-check + + - name: Set up Quarto + uses: quarto-dev/quarto-actions/setup@v2 + + - name: Render Docs + uses: quarto-dev/quarto-actions/render@v2 + with: + path: docs/ diff --git a/.github/workflows/docs-publish.yml b/.github/workflows/docs-publish.yml new file mode 100644 index 0000000..207792e --- /dev/null +++ b/.github/workflows/docs-publish.yml @@ -0,0 +1,34 @@ +name: Publish Docs + +on: + push: + branches: [main] + +permissions: + contents: write + +jobs: + publish: + name: Publish Docs + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Hatch + uses: pypa/hatch@install + + - name: Check docs type correctness + run: | + make docs-check + + - name: Set up Quarto + uses: quarto-dev/quarto-actions/setup@v2 + + - name: Render Docs + uses: quarto-dev/quarto-actions/publish@v2 + with: + target: gh-pages + path: docs/ + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 92f7f9178504cf2efb93a083a0af7fc133d5999e Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:37:36 -0500 Subject: [PATCH 02/11] Makefile and README --- Makefile | 19 ++++++++++++++++++- README.md | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index bd0219a..aa39d8c 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,9 @@ help : @echo ' make testall # <-- run tests in *all* python versions (uses hatch)' @echo ' make checkall # <-- check types in *all* python versions (uses hatch)' @echo + @echo ' make quarto-serve # <-- run quarto over the docs' + @echo ' make docs-check # <-- check types within the docs' + @echo test : hatch test -i python=3.8 -vv @@ -21,4 +24,18 @@ testall : checkall : hatch run types:check -.PHONY: help test check testall checkall +QUARTO_PATH := /usr/local/bin/quarto + +$(QUARTO_PATH) : + wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.7.31/quarto-1.7.31-linux-amd64.deb + sudo dpkg -i quarto-1.7.31-linux-amd64.deb + rm -f quarto-1.7.31-linux-amd64.deb + +quarto-serve : $(QUARTO_PATH) + rm -rf docs/_site/ docs/.quarto/ + $(QUARTO_PATH) preview docs + +docs-check : + hatch run docs:check + +.PHONY: help test check testall checkall quarto-serve docs-check diff --git a/README.md b/README.md index 7d8b239..67ae57a 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ ![Test Status](https://github.com/Rhobota/svs/actions/workflows/test.yml/badge.svg?branch=main) [![Downloads](https://static.pepy.tech/badge/svs)](https://pepy.tech/project/svs) +- 📚 **Official Docs:** [https://svs.rhobota.com/](https://svs.rhobota.com/) + - 🤔 What is SVS? - Semantic search via deep-learning vector embeddings. - A stupid-simple library for storing and retrieving your documents. From 8e4b0fa537a7f664797724781be3ff70fe911f22 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:39:43 -0500 Subject: [PATCH 03/11] pyproject --- pyproject.toml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 768afe8..b69cb81 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,7 @@ dependencies = [ ] [project.urls] -Documentation = "https://github.com/Rhobota/svs#readme" +Documentation = "https://svs.rhobota.com/" Issues = "https://github.com/Rhobota/svs/issues" Source = "https://github.com/Rhobota/svs" @@ -53,6 +53,7 @@ dev = [ "mypy>=1.10.0", "pytest>=8.1.1", "pytest-asyncio>=0.23.6", + "nbqa", ] [tool.hatch.build.targets.wheel] @@ -74,6 +75,13 @@ python = ["3.8", "3.9", "3.10", "3.11", "3.12"] [tool.hatch.envs.types.scripts] check = "mypy --install-types --non-interactive {args:src/svs tests examples}" +[tool.hatch.envs.docs] +python = "3.12" +features = ["dev"] + +[tool.hatch.envs.docs.scripts] +check = "nbqa mypy --install-types --non-interactive docs/" + [tool.hatch.envs.hatch-test] features = ["dev"] From 4044932f5df7cd41371c3fd91f473a0ccf3bbdc2 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:40:03 -0500 Subject: [PATCH 04/11] Bump version --- src/svs/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/svs/__init__.py b/src/svs/__init__.py index 347820b..fe23471 100644 --- a/src/svs/__init__.py +++ b/src/svs/__init__.py @@ -21,4 +21,4 @@ 'make_ollama_embeddings_func', ] -__version__ = "0.7.3" +__version__ = "0.7.4" From 4432382a8905afcc369a5101df11fd6261bf2d84 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:40:56 -0500 Subject: [PATCH 05/11] Start of docs --- docs/.gitignore | 2 ++ docs/CNAME | 1 + 2 files changed, 3 insertions(+) create mode 100644 docs/.gitignore create mode 100644 docs/CNAME diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..4c23a06 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +/.quarto/ +_site/ diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..4294b3e --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +svs.rhobota.com From d943b710b66eac05bb02ffc9238f970f59cd4701 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:41:28 -0500 Subject: [PATCH 06/11] Cont' --- docs/about.qmd | 6 ++++++ docs/index.qmd | 7 +++++++ docs/styles.css | 1 + 3 files changed, 14 insertions(+) create mode 100644 docs/about.qmd create mode 100644 docs/index.qmd create mode 100644 docs/styles.css diff --git a/docs/about.qmd b/docs/about.qmd new file mode 100644 index 0000000..f7b22f4 --- /dev/null +++ b/docs/about.qmd @@ -0,0 +1,6 @@ +--- +title: "About" +order: 999 +--- + +About this site (TODO) diff --git a/docs/index.qmd b/docs/index.qmd new file mode 100644 index 0000000..8b3407c --- /dev/null +++ b/docs/index.qmd @@ -0,0 +1,7 @@ +--- +title: "SVS: Documentation" +--- + +This is the homepage. + +TODO diff --git a/docs/styles.css b/docs/styles.css new file mode 100644 index 0000000..2ddf50c --- /dev/null +++ b/docs/styles.css @@ -0,0 +1 @@ +/* css styles */ From dfa105cb8827815adef8c09c59d3570a09a06989 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:41:37 -0500 Subject: [PATCH 07/11] Logo --- docs/assets/SVS - Logo - Square - SMOOSHED.png | Bin 0 -> 6406 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/SVS - Logo - Square - SMOOSHED.png diff --git a/docs/assets/SVS - Logo - Square - SMOOSHED.png b/docs/assets/SVS - Logo - Square - SMOOSHED.png new file mode 100644 index 0000000000000000000000000000000000000000..86a4a4fdfbc5f96b817e440b4972fbdbf0d4c951 GIT binary patch literal 6406 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 N$ErFiRZ7<3{{w~RD{=q; literal 0 HcmV?d00001 From aff51bf563c2c7c172294d62457daf456762bb57 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:46:00 -0500 Subject: [PATCH 08/11] Quarto config --- docs/_quarto.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/_quarto.yml diff --git a/docs/_quarto.yml b/docs/_quarto.yml new file mode 100644 index 0000000..7914ce1 --- /dev/null +++ b/docs/_quarto.yml @@ -0,0 +1,45 @@ +project: + type: website + preview: + port: 7777 + +website: + title: "SVS: Documentation" + favicon: "assets/SVS - Logo - Square - SMOOSHED.png" + open-graph: true + repo-url: https://github.com/Rhobota/svs + repo-subdir: "docs" + repo-actions: [edit, source, issue] + reader-mode: false + page-navigation: true + back-to-top-navigation: false + announcement: + icon: emoji-smile # https://icons.getbootstrap.com/ + content: "You found SVS!" + position: below-navbar + dismissable: false + navbar: + logo: "assets/SVS - Logo - Square - SMOOSHED.png" + background: primary + search: true + left: + - text: "Quickstart" + href: quickstart.ipynb + - about.qmd + right: + - icon: github + href: https://github.com/Rhobota/svs + target: _blank + sidebar: + style: "docked" + contents: auto + page-footer: + center: "Copyright © 2025 (MIT License)" + +format: + html: + theme: + - cosmo + - brand + css: styles.css + toc: true From 4f13d48f451bb9dcfdf262c24235c98672e35080 Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:51:39 -0500 Subject: [PATCH 09/11] Placeholder quickstart --- docs/quickstart.ipynb | 122 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 docs/quickstart.ipynb diff --git a/docs/quickstart.ipynb b/docs/quickstart.ipynb new file mode 100644 index 0000000..33ab7a6 --- /dev/null +++ b/docs/quickstart.ipynb @@ -0,0 +1,122 @@ +{ + "cells": [ + { + "cell_type": "raw", + "id": "52fd1d52-ea95-449e-85f3-03bcec576bfe", + "metadata": {}, + "source": [ + "---\n", + "title: \"Quickstart with SVS\"\n", + "order: 010\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "3fd21b1c-5bb1-4ebc-a90a-a36298d37fe7", + "metadata": {}, + "source": [ + "## Installing" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f8747c67-4a6e-43e4-bba6-7cb6acde649b", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!pip install svs" + ] + }, + { + "cell_type": "markdown", + "id": "816cca77-d72a-44e7-ad6a-d320eed7cd79", + "metadata": {}, + "source": [ + "### Check your version!" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "a2e8014f-f470-4dee-b766-00a94cdb30df", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7.4\n" + ] + } + ], + "source": [ + "import svs\n", + "\n", + "print(svs.__version__)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e8b087-a689-4df7-bdc6-19f3f965f8e8", + "metadata": {}, + "source": [ + "### Hello SVS" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8458890f-abde-4413-a8f2-60ee63c18894", + "metadata": {}, + "outputs": [ + { + "ename": "ImportError", + "evalue": "cannot import name 'dne' from 'svs' (/home/dev/github/svs/src/svs/__init__.py)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mImportError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01msvs\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m dne\n", + "\u001b[31mImportError\u001b[39m: cannot import name 'dne' from 'svs' (/home/dev/github/svs/src/svs/__init__.py)" + ] + } + ], + "source": [ + "from svs import dne" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b628cae3-96c2-4ca5-b02f-1c7d2237dd00", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From bee3fe0b681397b4a8c3f73632488015da99827d Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 18:56:28 -0500 Subject: [PATCH 10/11] Fix --- docs/quickstart.ipynb | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/docs/quickstart.ipynb b/docs/quickstart.ipynb index 33ab7a6..0d25118 100644 --- a/docs/quickstart.ipynb +++ b/docs/quickstart.ipynb @@ -69,24 +69,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "8458890f-abde-4413-a8f2-60ee63c18894", "metadata": {}, - "outputs": [ - { - "ename": "ImportError", - "evalue": "cannot import name 'dne' from 'svs' (/home/dev/github/svs/src/svs/__init__.py)", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mImportError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01msvs\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m dne\n", - "\u001b[31mImportError\u001b[39m: cannot import name 'dne' from 'svs' (/home/dev/github/svs/src/svs/__init__.py)" - ] - } - ], + "outputs": [], "source": [ - "from svs import dne" + "from svs import KB\n", + "# TODO" ] }, { From 849ff7a71c0e2e4290bf314d138ed9549d3ca29e Mon Sep 17 00:00:00 2001 From: Ryan Henning Date: Sat, 7 Jun 2025 19:06:09 -0500 Subject: [PATCH 11/11] Make mypy happy --- src/svs/kb.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/svs/kb.py b/src/svs/kb.py index 4d8e7bc..4486aff 100644 --- a/src/svs/kb.py +++ b/src/svs/kb.py @@ -1475,7 +1475,9 @@ def _get_embeddings_as_bytes( list_of_strings: List[str], ) -> List[bytes]: func = self._get_embedding_func() - list_of_list_of_floats = asyncio.run_coroutine_threadsafe(func(list_of_strings), self.loop).result() + awaitable = func(list_of_strings) + assert asyncio.iscoroutine(awaitable) + list_of_list_of_floats = asyncio.run_coroutine_threadsafe(awaitable, self.loop).result() return [ embedding_to_bytes(embedding) for embedding in list_of_list_of_floats @@ -1612,7 +1614,9 @@ def retrieve( assert self.db is not None embeddings_matrix, emb_id_lookup = self.embeddings_matrix.get_sync(self.db) func = self._get_embedding_func() - query_list_floats = asyncio.run_coroutine_threadsafe(func([query]), self.loop).result()[0] + awaitable = func([query]) + assert asyncio.iscoroutine(awaitable) + query_list_floats = asyncio.run_coroutine_threadsafe(awaitable, self.loop).result()[0] query_vec = np.array(query_list_floats, dtype=np.float32) _LOG.info("got embedding for query!") def superheavy() -> List[Tuple[float, int]]: