From 0476293732f8209fef24443d1f679766ba60356b Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Sun, 15 Oct 2023 18:02:44 -0400 Subject: [PATCH] Initial Commit --- .dockerignore | 6 + .envrc | 1 + .flake8 | 2 + .gitignore | 7 + .pre-commit-config.yaml | 22 +++ Dockerfile | 26 +++ LICENSE | 339 ++++++++++++++++++++++++++++++++++++ MANIFEST.in | 2 + Makefile | 15 ++ README.md | 101 +++++++++++ minyma/__init__.py | 73 ++++++++ minyma/api/__init__.py | 0 minyma/api/common.py | 7 + minyma/api/v1.py | 38 ++++ minyma/config.py | 23 +++ minyma/normalizer.py | 45 +++++ minyma/oai.py | 44 +++++ minyma/templates/index.html | 184 +++++++++++++++++++ minyma/vdb.py | 75 ++++++++ pyproject.toml | 25 +++ resources/loading.png | Bin 0 -> 54413 bytes resources/logo.png | Bin 0 -> 20597 bytes resources/response.png | Bin 0 -> 117752 bytes shell.nix | 7 + test.html | 43 +++++ 25 files changed, 1085 insertions(+) create mode 100644 .dockerignore create mode 100644 .envrc create mode 100644 .flake8 create mode 100644 .gitignore create mode 100644 .pre-commit-config.yaml create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 Makefile create mode 100644 README.md create mode 100644 minyma/__init__.py create mode 100644 minyma/api/__init__.py create mode 100644 minyma/api/common.py create mode 100644 minyma/api/v1.py create mode 100644 minyma/config.py create mode 100644 minyma/normalizer.py create mode 100644 minyma/oai.py create mode 100644 minyma/templates/index.html create mode 100644 minyma/vdb.py create mode 100644 pyproject.toml create mode 100644 resources/loading.png create mode 100644 resources/logo.png create mode 100644 resources/response.png create mode 100644 shell.nix create mode 100644 test.html diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..052a345 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +__pycache__ +.direnv +data +venv +openai_key +minyma.egg-info/ diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..1d953f4 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use nix diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..15fc7e3 --- /dev/null +++ b/.flake8 @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 80 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0fc361c --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +__pycache__ +.DS_Store +.direnv +data +venv +openai_key +minyma.egg-info/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..c9e35c9 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +repos: + - repo: https://github.com/psf/black + rev: 23.9.1 + hooks: + - id: black + name: black + language_version: python3.10 + files: "^minyma/|^setup.py|^tests/minyma/" + - repo: https://github.com/pycqa/flake8 + rev: 6.1.0 + hooks: + - id: flake8 + name: flake8 + args: ["--config=.flake8"] + files: "^minyma/|^setup.py|^tests/minyma/" + - repo: https://github.com/pycqa/isort + rev: 5.12.0 + hooks: + - id: isort + name: isort + args: ["--profile", "black", "--filter-files"] + files: "^minyma/|^setup.py|^tests/minyma/" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b0edfb7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# Build Container +FROM python:3.11-slim + +# Install App +WORKDIR /app +COPY . /app + +# Install Curl +RUN apt-get update -y +RUN apt-get install curl -y + +# Install Chroma Dependencies +RUN mkdir -p /root/.cache/chroma/onnx_models/all-MiniLM-L6-v2/ +RUN curl https://chroma-onnx-models.s3.amazonaws.com/all-MiniLM-L6-v2/onnx.tar.gz --output /root/.cache/chroma/onnx_models/all-MiniLM-L6-v2/onnx.tar.gz + +# Install App & Gunicorn +RUN pip install . +RUN pip3 install gunicorn + +# Cleanup +RUN rm -rf /app + +# Start Application +ENTRYPOINT ["gunicorn"] +EXPOSE 5000 +CMD ["minyma:create_app()", "--bind", "0.0.0.0:5000", "--threads=4", "--access-logfile", "-"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4522ba0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,339 @@ +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {{description}} + Copyright (C) {{year}} {{fullname}} + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + {signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..266c5d1 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +recursive-include minyma/api *.py +recursive-include minyma/templates * diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3cbddaf --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +docker_build_local: + docker build -t minyma:latest . + +docker_build_release_dev: + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t gitea.va.reichard.io/evan/minyma:dev \ + --push . + +docker_build_release_latest: + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t gitea.va.reichard.io/evan/minyma:latest \ + -t gitea.va.reichard.io/evan/minyma:`git describe --tags` \ + --push . diff --git a/README.md b/README.md new file mode 100644 index 0000000..24b8101 --- /dev/null +++ b/README.md @@ -0,0 +1,101 @@ +

+ +

+ +

+ + + + + + +

+ +--- + +AI Chat Bot with Vector / Embedding DB Context + +## Running Server + +```bash +# Locally (See "Development" Section) +export OPENAI_API_KEY=`cat openai_key` +minyma server run + +# Docker Quick Start +make docker_build_local +docker run \ + -p 5000:5000 \ + -e OPENAI_API_KEY=`cat openai_key` \ + -e DATA_PATH=/data \ + -v ./data:/data \ + minyma:latest +``` + +The server will now be accessible at `http://localhost:5000` + +## Normalizing & Loading Data + +Minyma is designed to be extensible. You can add normalizers and vector db's +using the appropriate interfaces defined in `./minyma/normalizer.py` and +`./minyma/vdb.py`. At the moment the only supported database is `chroma` +and the only supported normalizer is the `pubmed` normalizer. + +To normalize data, you can use Minyma's `normalize` CLI command: + +```bash +minyma normalize --filename ./pubmed_manuscripts.jsonl --normalizer pubmed --database chroma --datapath ./chroma +``` + +The above example does the following: + +- Uses the `pubmed` normalizer +- Normalizes the `./pubmed_manuscripts.jsonl` raw dataset [0] +- Loads the output into a `chroma` database and persists the data to the `./chroma` directory + +**NOTE:** The above dataset took about an hour to normalize on my MPB M2 Max + +[0] https://huggingface.co/datasets/TaylorAI/pubmed_author_manuscripts/tree/main + +## Configuration + +| Environment Variable | Default Value | Description | +| -------------------- | ------------- | ---------------------------------------------------------------------------------- | +| OPENAI_API_KEY | NONE | Required OpenAI API Key for ChatGPT access. | +| DATA_PATH | ./data | The path to the data directory. Chroma will store its data in the `chroma` subdir. | + +# Development + +```bash +# Initiate +python3 -m venv venv +. ./venv/bin/activate + +# Local Development +pip install -e . + +# Creds +export OPENAI_API_KEY=`cat openai_key` +``` + +# Notes + +This is the first time I'm doing anything LLM related, so it was an adventure. +Initially I was entertaining OpenAI's Embedding API with plans to load embeddings +into Pinecone, however initial calculations with `tiktoken` showed that generating +embeddings would cost roughly $250 USD. + +Fortunately I found [Chroma](https://www.trychroma.com/), which basically solved +both of those issues. It allowed me to load in the normalized data and automatically +generated embeddings for me. + +In order to fit into OpenAI ChatGPT's token limit, I limited each document to roughly +1000 words. I wanted to make sure I could add the top two matches as context while +still having enough headroom for the actual question from the user. + +A few notes: + +- Context is not carried over from previous messages +- I "stole" the prompt that is used in LangChain (See `oai.py`). I tried some variations without much (subjective) improvement. +- A generalized normalizer format. This should make it fairly easy to use completely different data. Just add a new normalizer that implements the super class. +- Basic web front end with TailwindCSS diff --git a/minyma/__init__.py b/minyma/__init__.py new file mode 100644 index 0000000..b85bf5f --- /dev/null +++ b/minyma/__init__.py @@ -0,0 +1,73 @@ +import click +import signal +import sys +from importlib.metadata import version +from minyma.config import Config +from minyma.oai import OpenAIConnector +from minyma.vdb import ChromaDB +from flask import Flask +from flask.cli import FlaskGroup + +__version__ = version("minyma") + +def signal_handler(sig, frame): + sys.exit(0) + + +def create_app(): + global oai, cdb + + import minyma.api.common as api_common + import minyma.api.v1 as api_v1 + + app = Flask(__name__) + cdb = ChromaDB(Config.DATA_PATH) + oai = OpenAIConnector(Config.OPENAI_API_KEY, cdb) + + app.register_blueprint(api_common.bp) + app.register_blueprint(api_v1.bp) + + return app + + +@click.group() +def cli(): + """Minyma CLI""" + + +@cli.group(cls=FlaskGroup, create_app=create_app) +def server(): + """Minyma flask server""" + + +@cli.command() +@click.option('--filename', type=click.File('r'), required=True) +@click.option('--normalizer', help="pubmed", required=True) +@click.option('--database', help="chroma", required=True) +@click.option('--datapath', type=click.Path(), help="database datapath", required=False) +def normalize(filename, normalizer, database, datapath): + """Minyma data normalizer & loader""" + + database = database.lower() + normalizer = normalizer.lower() + + # Validate Database + if database == "chroma": + if datapath is None: + return print("INVALID DATAPATH") + vdb = ChromaDB(datapath) + else: + return print("INVALID DATABASE:", database) + + # Select Normalizer + if normalizer == "pubmed": + from minyma.normalizer import PubMedNormalizer + norm = PubMedNormalizer(filename) + else: + return print("INVALID NORMALIZER:", normalizer) + + # Process Data + vdb.load_documents(norm) + + +signal.signal(signal.SIGINT, signal_handler) diff --git a/minyma/api/__init__.py b/minyma/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/minyma/api/common.py b/minyma/api/common.py new file mode 100644 index 0000000..adc0df4 --- /dev/null +++ b/minyma/api/common.py @@ -0,0 +1,7 @@ +from flask import make_response, render_template, send_from_directory +from flask import Blueprint +bp = Blueprint("common", __name__) + +@bp.route("/", methods=["GET"]) +def main_entry(): + return make_response(render_template("index.html")) diff --git a/minyma/api/v1.py b/minyma/api/v1.py new file mode 100644 index 0000000..4edb3a2 --- /dev/null +++ b/minyma/api/v1.py @@ -0,0 +1,38 @@ +import minyma + +from flask import Blueprint, request +bp = Blueprint("v1", __name__, url_prefix="/api/v1") + +""" +Return OpenAI LLM final response with vector db embedding +context +""" +@bp.route("/query", methods=["POST"]) +def get_response(): + data = request.get_json() + if not data: + return {"error": "Missing Message"} + + message = str(data.get("message")) + if message == "": + return {"error": "Empty Message"} + + oai_response = minyma.oai.query(message) + return oai_response + + +""" +Return the raw vector db related response +""" +@bp.route("/related", methods=["POST"]) +def get_related(): + data = request.get_json() + if not data: + return {"error": "Missing Message"} + + message = str(data.get("message")) + if message == "": + return {"error": "Empty Message"} + + related_documents = minyma.cdb.get_related(message) + return related_documents diff --git a/minyma/config.py b/minyma/config.py new file mode 100644 index 0000000..15d8b58 --- /dev/null +++ b/minyma/config.py @@ -0,0 +1,23 @@ +import os + + +def get_env(key, default=None, required=False) -> str: + """Wrapper for gathering env vars.""" + if required: + assert key in os.environ, "Missing Environment Variable: %s" % key + return str(os.environ.get(key, default)) + + +class Config: + """Wrap application configurations + + Attributes + ---------- + DATA_PATH : str + The path where to store any resources (default: ./) + OPENAI_API_KEY : str + OpenAI API Key - Required + """ + + DATA_PATH: str = get_env("DATA_PATH", default="./data") + OPENAI_API_KEY: str = get_env("OPENAI_API_KEY", required=True) diff --git a/minyma/normalizer.py b/minyma/normalizer.py new file mode 100644 index 0000000..42de7b0 --- /dev/null +++ b/minyma/normalizer.py @@ -0,0 +1,45 @@ +from io import TextIOWrapper +import json + +class DataNormalizer: + def __init__(self, file: TextIOWrapper): + pass + + def __iter__(self): + pass + +class PubMedNormalizer(DataNormalizer): + """ + Iterator class that takes a file and iterates over each line. Data is + normalized inside the iterator. + """ + def __init__(self, file: TextIOWrapper): + self.file = file + + def __iter__(self): + count = 0 + + # Iterate over each line in self.file, normalize, increment counter, + # and yield the normalized data. + while True: + line = self.file.readline() + + # EOF + if not line: + break + + # Load JSON + l = json.loads(line, strict=False) + norm_text = l.get("text").lower() + + # Using the second occurance of "text mining" as a break point. We + # only capture what follows. Initially tried using regular + # expressions, but this is significantly faster. + split_data = norm_text.split("text mining") + norm_text = "text mining".join(split_data[2:]) + norm_text = "\n".join(norm_text.split("\n")[1:]) + + count += 1 + + # ID = Line Number + yield { "doc": norm_text, "id": str(count - 1) } diff --git a/minyma/oai.py b/minyma/oai.py new file mode 100644 index 0000000..1c3fc13 --- /dev/null +++ b/minyma/oai.py @@ -0,0 +1,44 @@ +from typing import Any +import openai + +from minyma.vdb import VectorDB + +# Stolen LangChain Prompt +PROMPT_TEMPLATE = """ +Use the following pieces of context to answer the question at the end. +If you don't know the answer, just say that you don't know, don't try to +make up an answer. + +{context} + +Question: {question} +Helpful Answer: +""" + +class OpenAIConnector: + def __init__(self, api_key: str, vdb: VectorDB): + self.vdb = vdb + self.model = "gpt-3.5-turbo" + openai.api_key = api_key + + def query(self, question: str) -> Any: + # Get related documents from vector db + related = self.vdb.get_related(question) + + # Validate results + all_docs = related.get("docs", []) + if len(all_docs) == 0: + return { "error": "No Context Found" } + + # Join on new line, generate main prompt + context = '\n'.join(all_docs) + prompt = PROMPT_TEMPLATE.format(context = context, question = question) + + # Query OpenAI ChatCompletion + response = openai.ChatCompletion.create( + model=self.model, + messages=[{"role": "user", "content": prompt}] + ) + + # Return Response + return response diff --git a/minyma/templates/index.html b/minyma/templates/index.html new file mode 100644 index 0000000..21af51a --- /dev/null +++ b/minyma/templates/index.html @@ -0,0 +1,184 @@ + + + + + Minyma - Chat + + + +
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + diff --git a/minyma/vdb.py b/minyma/vdb.py new file mode 100644 index 0000000..47f0770 --- /dev/null +++ b/minyma/vdb.py @@ -0,0 +1,75 @@ +from chromadb.api import API +from itertools import islice +from os import path +from tqdm.auto import tqdm +from typing import Any, cast +import chromadb + +from minyma.normalizer import DataNormalizer + +""" +Given an iterable, chunk it by `chunk_size` +""" +def chunk(iterable, chunk_size: int): + iterator = iter(iterable) + while batch := list(islice(iterator, chunk_size)): + yield batch + +""" +VectorDB Interface +""" +class VectorDB: + def load_documents(self, normalizer: DataNormalizer): + pass + + def get_related(self, question: str) -> Any: + pass + +""" +ChromaDV VectorDB Type +""" +class ChromaDB(VectorDB): + def __init__(self, base_path: str): + chroma_path = path.join(base_path, "chroma") + self.client: API = chromadb.PersistentClient(path=chroma_path) + self.word_limit = 1000 + self.collection_name: str = "vdb" + self.collection: chromadb.Collection = self.client.create_collection(name=self.collection_name, get_or_create=True) + + def get_related(self, question) -> Any: + """Returns line separated related docs""" + results = self.collection.query( + query_texts=[question], + n_results=2 + ) + + all_docs: list = cast(list, results.get("documents", [[]]))[0] + all_distances: list = cast(list, results.get("distances", [[]]))[0] + all_ids: list = cast(list, results.get("ids", [[]]))[0] + + return { + "distances":all_distances, + "docs": all_docs, + "ids": all_ids + } + + def load_documents(self, normalizer: DataNormalizer): + # 10 Item Chunking + for items in tqdm(chunk(normalizer, 50)): + ids = [] + documents = [] + + # Limit words per document to accommodate context token limits + for item in items: + doc = " ".join(item.get("doc").split()[:self.word_limit]) + documents.append(doc) + ids.append(item.get("id")) + + # Ideally we parse out metadata from each document + # and pass to the metadata kwarg. However, each + # document appears to have a slightly different format, + # so it's difficult to parse out. + self.collection.add( + documents=documents, + ids=ids + ) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..26f8be2 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[project] +name = "minyma" +version = "0.0.1" +description = "AI Chat Bot with Vector DB Context" +authors = [ + { name = "Evan Reichard", email = "evan@reichard.io" }, +] +license = { file = "LICENSE" } +readme = "README.md" +requires-python = ">=3.11" +dependencies = [ + "Flask>=3.0", + "openai==0.28.1", + "openai[datalib]==0.28.1", + "tqdm", + "chromadb", + "sqlite-utils", + "click" +] + +[project.scripts] +minyma = "minyma:cli" + +[tool.setuptools.packages] +find = {} diff --git a/resources/loading.png b/resources/loading.png new file mode 100644 index 0000000000000000000000000000000000000000..a876bcc9170146f0e8e3d0809f76e11899c6a0db GIT binary patch literal 54413 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 z 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ǀ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 literal 0 HcmV?d00001 diff --git a/resources/response.png b/resources/response.png new file mode 100644 index 0000000000000000000000000000000000000000..5b280a0f32c7dd6fac85537c89895f55aa173c97 GIT binary patch literal 117752 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�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 z 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
    03J z)W8wiTB3~?)p7Az6roHNSqZ^vhVzmGgYX4VQ?tYMliN>LQ0!VUq()@Fn(WB=hUvV2 zNXC+VmyGMNr0LM9a+j;o36!wF#(M0Fq}Qneegx&EY&aGC^1dGy>-%kMAe&KO^1G@h zE-cLy=$OO#)?|*x)dc(Bai!$M78U2R(qW#X<7+^QeS{-{VR#E-#@RW{m4zz)1Yqx} zINX;;7Fy3qL#=xg-(NBkndnw-67EOWKhn-lu3gR}>!2q#EP&ExPzWQyFICYjZ!+=K zIQ#7601E(Opekl|wMVZ0CwmV0FCVFjiFR4_Hmv81_GD0d%;7Ez*;rVi!gYfp?{Qv3 zVcWAzkeSmW_w#g_XYNQN2KqW9{*Jt{e1oS?A`XbX=w^}(z32?m&Vr9V`?y|)pOD>u zmiX|^PJ>d%Mip5+q5!58K|~a_TkN(ZnsDhmzv#slliG%B-voW#?Kl}Un)%taHfefJ z3oy2EBWh$jcRZvxIv=2H)P<2=j+zeI({y?)uM1(G{D;+bo!ZT{M}sKQE9rgeqG~2b zykLIo6O`PHxP3_(Iu8D%iNC7eBy;%`md>-u8-}C#WqjV|9fe`G%e_nfvqR_gr_Eba z?;@q}l0MNr)m!5;{X)^ycxPq8P%CogvC!*2-Y9Rh9e}j$v8O1#44)26QpzoM?^(3CQTE<9 zvw&R+@ZWzKlB5LRx&x+|7N+eXEs_3$uuONKPe_TD$nbn!3TcjExc%aZA(N`0qTo83 zoXCR<|D(%SU%TLRUYBchCt;t98}$sKlrahwEB(YL+_frVZAcW}l^I7^!Ds=i)$e%m zl8D(}&qTrfFDQ9eNG32?mtGyX@WhT8?2yqyXu2LZ=|jbyFmAe2nXV*!3|G2mML!s} zcQ5-c4V9}(gYc|m+|d)&bGIMCgB<`PXbel7STQA&w)tvZg1`D*dZ_0EYh*UYr&JVy zpvTWHo_|lp-g*{in9oivmzl|_{;KUkHCBD(1gQKOU?mW$nkCl9vyOh)zcitjIROAU zmM^b0CstcLrpXSay=V#8k%Gv8yci_fhXz`!;~UxEipG|#sb9P9o=RvGyGMO~fLk4E zeVDjiZ1i-u-p!Ik;z$tHp!&jOL&#i61b@F8%%qrrTLk7yEFZ$&zU}S*%|fsms{(cf zcnsBL8T)SnQNZsL$uArCddVQf!~K;hRyYgbI2*A5*C15F<$Az|L3~9}fSE|d9Y%5R zovrf0aN%l9=qqZupM2?**`hQe+wk>NC5IOq>&UKv$J2?-G(=(A%x%o;0Gl=;Bs$en7H{4jJ|~hr^Wx)jlavoRk$j_<`K?=GP72Zz z8n!|w5$-#y$X>6ycvW&jZ4ZC=6tblswQVlM-2)%lR(3rL@LaQAIsxK&o7PY+r>Aap zFQd=l^KRx;XBZTbT9HH<1E`wnmI!UNMsp|rNk?)m!8em{&2>;Q_sXFnC3S3E_`VptX3DQu<>lr*-tF1$E% zwPsRfJl|KvUQGGEXy`yeOs}Jrwy@xNGXNkz2f)y(ic>~E?Gxa2 zPhUxO3EZ(&($W4XPuA%=ka|ti)Rtv~4gX*X#B@4X7VtZFc_IL{A)r_kET3)i#$i z5Q;UINwcj$9!_@Gg}&S$5S}M&L(;Zq;_U_J@Ozb3ADaR#09D{hZZ{Fyup8r;J8j=Gr2HGAq66()ll zSfWp)YTLaDCXf~*V3@aF#lgxbnm!4u{ZVMkrSMI5=1rZrND$EmUu9pLYuR)x1?2>F zn;`rFxlF-43AfnpCqt}R^wlF3ln+x?gAOW`IS`cxKiFQA8)Ht(>Ri)xidxTR@4nQE z-LzRnw~5b&*lWGBHiD*S(UL=K(~h{qE@w?UGg&;W(+M)j%JeEJvi?gpr7U#wo~tiBnLk z<392xs z?s};7MlT|%2p`zRC>gdp_UlG(;W@*Ek2dvUfx1slLR! z%-f_6Y1Kg*XZ(xXOq@mwCvfE!B!U!H_`Yz;rq1Tswksw1JY;mI76iQPh@MsG(5LIg z%atJI9PO9T70ye6x+GOf=7C)3Uh9>HpUvJfN3V1A^QbiZO-0t zu~hQv#P*vo|3(;*RNV3zkM$WD1owS6U-x)g&^l?pz5@G)@5N>W>6-cW^#JMDTH_*K z0zWIPi$j9>KM!>KoELRu{J2uyFfFwV+G}vMsf^VlHsW8t{Yr8UNcmW{oxEcQFrjo5 zeB0${&ji=MP8_So02&U+E`*8aOZ8kwSC%u1UVkF*%c2-9app?dEy$vbQ^=0WO(AcR z`WlVH_E3Fdp={pzom)(ZwmnPCB2R7(fPM})%C=q*&pof_$+V$8ID6qz=(Fwp21q~} z!7eB)FUpQy)Wwc_R2{H#b)a&9?ZoJ!uDSr+t+P@Dg z_A0_M9s<(4L*nc|zUB%b0R>jh?!M(ThSKkVZyPkeD@p+@WptXdeN+Yl2iH&8%bhLj zfhLg|VI$pkm@KMDPq8~@e%3aT7Go@AzU!BhQ~8AbbW@FhQ|61GjXxZ`{%Un^M=08o z)5ssg>D#!@*Eyfjxr}MqgUG2}*~zv5VP||4fl|~{RNKcc&J09hi8P`898z4|uY9F& zdNaL3(XlN^IZDCf=F^gJH@PTJQCcg8lmIkUhDQ#t(O$3UD;WJSW_Sa|xFO8!AhMd}z+ z#2x9OWY%YCK(uzaR_d8vwUrdXh`5Gu| z|2+OIU$m_UdOMIk#Ca+$I8vscdP`kV8 zGQG;$>{gOb&3J+2L#unIqlKAW0iI;Dtb;PXR9I?5{F z^8`X(dOezLoop|bD{Z$)9rjnij|_TxmB)3C$=u<(#?cL8zGQ&Z#wzQ#pL=5%dNu}p zMPsI&_M(EQ-S%_~9Wu64d00pBZ7X8NRAl_Z58auGjL$w_UxR^ zJLJacvht_fU_{8Tr@8l0vQBfh4sFjb`W_VtBou_1oNe}Wn3gBh-(=0nUjc#w%9=(} z3Yb@%wdBLre8amMu-U2PY@&`*myBNlB*|imE;RuSh{K8k2t%p12d)}KmA=ad7`XB5 zb$M6ff%bx!L?%U|q>>AHQc62lD=Pcrm}I}LXYTPgvFO(4c%S~t>cSMzITxBUaN zyS9zvol8HIC+KsxM-sYmmu(`aYrLf?hl5v>ncW`V-43gHTXS!!fYr+*SkvWc;BMoo zlEV4mlq_B4bO;{F$28mM*0e0T$PrVWChOF5i3(qz1e93aAVXAnhJ$bFXVJ2(NP}sN3vv ztC4mQd2vzZ`&B94_NK~iJ#^s?)nvtMn^4ACYWW82-hH0a(s?^#zOg8eD@dDos2B9C zxdoq~I!(Yil(mzFMpc($Kw&6^X(BYqApIkNt8LcY9q7r{XWf^5tyE&G$X{hh9K0k&HDyw0)GZ!9WGXTb97& z+=mAQeYw7MbD2I++t*2AAyL&WCvE?as)twkpTs-W*b8>~|Q^9<1LVnOSYI!r{ zIX4}2I|~*RDfw(*UW8GPu44qRY(=PBgaOIeYr^wc&F~`1_zCLQ&>cz%|8bDX_6|+WA zevt2Bdpf<}#F)!#5(2+O`7r(Y(Bugzhvm|UaGOnf^R=~LC-u9;m~FX)*Qta$(Y2gd6He8+I+0 z@ocG-w*ga1$es#sX1CVQDTR{X*njf$nAK1wM%mEBWPbczr($RdT)J5xwB1IkY=Juy zda0ZoxJ&oWg)1j|531V;uGuCrOY8xC@J>&yba2XPL{)!4y`XGSO;-~jFtE2MH|%G| zZQ!emxWcp&ngn5sos}JE89uiCP6T)pvOb?eYy0G8qc?UbjRDvTNrXZxIUrtLs+?Lp z3iOZL(gH^29R;&+-i0-gkmp{wa;}%zwOc$};p=zU14j^7zznEuML)CW2^8_I^fO9& z6u!;%8Q^w5{$LJu9_g*(2{-wxrwGhWDTKi8Zy??eX77pQ;tq{uRYFzBgQds za$Cvc1cBT!lSG0)c|%0f|GFg^!L7Z{ILmhWY7Oez<(4?%nv+2>2rMaN2`GibU1qrS zIRtS(se|**Gyydn@V1H;yK}e=`J#e0V;|~i}K9_kvHo+z}G(y-V)(x3G%xyJ*2a;*~MfZI4&>dUYKm#l= zEQkTHPSLIiW2~T<3JF+Gx~m4;*_QU!nGDped)t&OY*xRofsU(h+mjYqu0*;&G*4^U z#`oPmMp5U+pbIb!N=kZ(;2020hLwcH84_5FO%)hKoD;k3mzkf)k(*5SnQ^&BFKCwyUwS=Ik{xrz@i=-GZRjv#bM8C+M7pf7M9Hg#cNh+ldQ)7{$3!l?&wre}F@{U*qs=3_=G*b| zdC(+)1_Y;DNqRn3v6**}$6{~{tEUcS>98Gttmm0902nLMd=ox=BS?7e`KcnLCvOY6 z5x-W+<>t%pP78}I`fg@1%bS9aGJj5WOgQxD$Z16)vf5VRu#};D?}>>e3K7e5c^mpe z%D*T#8O`pbbwlAm`|?xiwDn2W{S0?WumVpKgK(0GpQ9DlLkm z4T}XDkjn6w6-R3|*~Z6tYda*j;YpbcWjD_vaEEP;MnX**_k_yuAaAR2@3Sk$kmK=? zlxeuqAwl7thBCO_hfMf2E#!J$?o_1%fn05opg;eH4iq~GM6@j1&b}4`=`kTyZF*T( zfYf-1clRRBr8HKz$_YrNOhq$Dbs}cbe+;nl&_?=8SE>?MiR1`myO2Q%Uv0R7SHYAy zu!W2(vX*Z)Y?~n8b)QE{aacjBP)(g-ptQTRj0xP0)u1TLPqPGI!~cgNyo~OvoXY+w zGb7Td;TYJEgtI_hrEM{Ic(mJSLEE=847_ct5kQo-xHdUolkO=kz;LZa+7gfQIEA2j zSsH)FZfW%b*ZW64#{m@K6DeotrwJoQbJ3ZL{TKoBrg98 z`bc0ZVvx0-uqPtO%-q2AQ*fY-iK^L*7{9IFPW;YBH&)ZZ<54y(>lVv*1`?asxl^1M zdgt^^@yrA``GQoYqIfs4P%-JCHl_jyg8{R~1-t}S2`nE2yru++u4x7nyz}QBb7cz+ zKVU+T=eyOUxnbHeqDqN-Rm7rzLGAoo#1mR>h4Y)lW5G96_hV%%C?s+!Rq`Qtg9BJX zgYazin{;;L{o}I)k3(2~(C|Aeq$6Jl+B=U>O+kFf@#f5z?U2vyrYb_Es;L8bB+7fp z2qGpOX^lr(vXo0^_^Wm%3BW;uwI>`P0;y-U_aF~|-P?`XrrDDWFRS{OfPbb*cz?MX z&pg;hUn&?F!28i|{Q;+G-2RtGGDf%%a~g){TKy+egFw#8ddSbSTZ~`MZh^EK#XsG3 zyEe@wTSXtzGPe;!M>8mYsF~8Kh}OPD8P5`>2%>$DD+UEmx zXU+Y2;t;guUYF{|W2{&V{v!s(-LEwPzdzsu4k}|`c8;qmCef!0kCZOc4 zxmLr!Drs5P<*ml6JB63!A{B&Uo>NonLWlaU9+lQotJyuKOg%VPP#SvU-Gh0o`o}Kv zW@KLA5@MEQou#^$J>7>kdyh~89|V2Mc^PR-Y24;q60XK;Qy#}s0HVhWb_SEypVZ$HJ<&d66T8Y0J;5CZcB$cVugn5euhW>T6tm3NZNygc zdByWyfK;H+0dH*UhtSrxoYZj!{Z+PTaAK&bKmJKY0)SHUZ3<&?5CHD^(XZ&Bo z70c*9xw4ogJBku;XZK(3kQCp-`j5Egf_z`b*{h!u&i~k2Fp>-ii&_W3{r#(2Jhf1D zrP7X4bdCD0N;sbGY z%h0I;QZNKls*@pVU^oiHUqO^=4XvL0_>i6@g8h#s4SP^~x=V>;V8#Apwl?u{_TRGT zm+4l~6(v?vb*Fi<&MN_Co{vCRj=K$*`Lb1YaYXAtRKPPVIQL(Kz4gYNx-_7$I)U2A zp`#sQQFqulqpslqE`P416pEN3t1Q#U;pluIalY8iExOc?>n}S)Xij1<1I4@b?q5&yEq#-IFD48jiMA2*mwbUC%@j( z=#rY*8)*4P0wSL8uk1YIO*P9T0rmwh_dIwo4A~ADs@Ed`X5~HBgewJF@a0=kR@SWD zc&C+GwI7Eg#5b$FwwA`(=}#F(@H2!({P#W~-iH<-x9os<6hC2ZwJmSSUF}{Q`{>2O zb3*B>U$(Fqpyi+Z1akfZ#`C| z%`$&aM2MZ`FGaaipHp4nDuwD1<#R~Pmc$D>zITv(JQ4Bb>28M-Vxh_OASHUc4F?d0 znB^s5Xjp{Jmz#XsWx&8ZPXSJAas>@#8OL}XeFJ25pZd6TuII0_t8UX$0&!H0&*m?t zKRCuEVu1J6;yjYl4R_z445`gHjodR$oRg)v(?IRe0#+KwV3#%<*ZF>m93#n^T{~8uXQT_ahGtLI&6#QsDq9?wP=94Lq z8(_E~H*ANDO^q5aB`7PxBM`1(GrXqytWdHu(IXJeDySJmyaZ%WC}Mj9I)sL*MDtiF631L{e|po!r{z@Z;P72$d1ol91VYmMW~*@p@}TWl zWG{DUf)kxod z1$eR!?eGyFYEbjFO;jF6l%k(ZRkL-xrTsFFKV?(zzL8|uM(kBqDDZh9!mM2{=OIz+ZVGTNOdAu{XUQnbWrV_X+RjLtL^-8P}??AS=HyUYFMCmT`& z)x_L@%LTE$e!C~To3DMC)6)mO1IuiHEqgz>S^7s}vt@)7x^q=%2_>@qnJ)%8{%gU} zeb%O6SuZ!-PM{~<>{pzCkU_AM%?l8u zfj-8&Ft_>3Zwmr=Rb$kKaAH!p)Ak!9PIjODkcE|vgyS6Gj0;_SwqAI)En!JB zmU?#8VXbHS-bUgT>f^{a#91t#?Civ*l71XsiWczzTMIG`654?wX3xeksf=T!dGRmN z4}=t~rx!AuB-E2wXD4HCJvZ8m2=F??|84}` z{mRvBirUr&;PQ832j5r|x3u6q^KL~2nvT@9fMuP0@+L%p@RiSV}Qqffv%7g zR1>g%KDpY9tF|S(Kaa&St7;3js<>?q%A>-PC}|Y!Iu_Re^ez zv095#d7>xh@gv-$?QIoxAy~vua5<)Y&4UzM2ShY1*7N6nUm=!ojMK%EB zvGZ}_>%7?YeY$R0>PifbFw}XhsAy@5ZXQb|P2lj6|Hq^gmIw9QiRT%Hj6&sT*yL}b zkf-DMo6ZjwWU6eXP-M@DSoCEGirr|d^L=WaqTB&1ZoC8W+6AxL^@<)l7CdN~9vb#rv9`2xrs`-Rnu^Zpr)k-$@sjDX}j$D zcZRqO_TTg$0_mgUjYXF?6%eMY-Ng;sfjfO4=UB*W(qTqvx+bHU)SMUju+w$`WZA2l zepM|j-pe*?fEfML{D5Q$C_+FeB`cz`LR1_Vay4aocY5P!>aYXwxqllLKltiSHtSe} zb)P;-k-kjsFs#cg2H%(e;6}WrI(%Tc-PI)zpIW@Hpsb-gB7=7Pq}=kXvRaI9c@q z%~nFG1~A54F;Np+2nK4)j%Fx_T%E_M)r11+arJi2a_-HNW7fTTrXfhsgtR>XgmrL<^oJo@&=472LvgIh-LNL5g$oXR31P3 z5~>(};X(`AzlBBbVm*PIuqLiv_282MO5qhvimxQNtZL%LgNw8E2<2^)NOec^;5e>r zT&Z@?$u)~K|1i@H%(J~&Q$8|yjZq%Dkhw7nH9v#DJtq*YEw~BbJZZcsT=GA4spPRx z*yTgc1G)`7``(z-wPY)nwjPaOwZV@x@7_ufWkRSb`oD(nfC=PW&Ccn z6HR6+RPeoE?FRBw^V8pcn$g58*GR#Te_^oYF5b&TySNmm#^C8G_Vo)+-pZ^$ecxB$ zeAT85!_Y#L#FPGk3-QuAtP+(l1ni-r(X>=6;!G>~;^my**$Jac{C7=)6lwpZJ2Z)L z+-I+Pk!%^)gbR+|UIwSDmDDbJCCWF1@?q!iNx*qj54biBp1NnVuF|SwBfL-7Kl}HW zoZdTsM?~&JLm=#ZW)BYJ!jQ$4Sxrw;n)5{GBJ^HL@j(6%{8fYb;X({xEvZ$mF}rt_ zc@z~bWBLhjtu6xCBc1yYiExRT9#&4zk7&{lZA5agTLYgpzC7N#c!1Y+YIeWD>H`tl z=|?bDL$ROfSM2yL4Op7I6&ViCZ0n_z&jrn99R&kL2|*E)I~y0IXg!oBKMYS^?k5+c zabqg>x2jr_;w>}5o92dWftK%dV-2L&_T$&TydPXF?B{3ep_`Lwqi4IEOz{2srB&_C zuuc}c1UrxuRM{V6ReT4dqqSxTTa~ZNh2@80;K&WBvL5(z*MH}iUH{KgU*hQK1p#?k zwwO`Ou01p{FG7caPg#0>yV%F_GrqsH`sdGYGjOQ;tY|UAzX9g+Da@xhFCc#IU;-E^J+r{^O{NsNLM?MSCw?q1 zaq-MSKZ1(OI{;YP%dvlc?5|Y+9|gx~s2xmtRi7Ak-j>V@83nC>6*!9FTr=ESwSu#gf!e%8(Nl>{=% zgQWSJfrbWH$7?Wva;WFY0J-|dL!PGf4X9WA4mYY5@jUrh1b+P9VJN+@j zu6Y7&*9F}8yIDU%Y5g+O`ul3P2CYxShmCe{N}Gql3$AN z4H!V?z{f@F{`SxK|Lc$cyhNFq8ez_6xHoV%{-(9&5&3_={~wny5aEIyw=n< z=!#;Px#flGU{C+sA6gQwo#mFyLEo|r-Xj2I()EB$M&>-v_&jkSvtlO>P$;x-yJm-( z&;Ezti5J^1J^PQf&xUqyX@7C~yBmzPtE+3ZbF0bOXR&#m36Vi(>qCR6j=Ms%s08eO zRXfS(oNYSay+Uxpe!mUsA!>)x>#@2u=>B8F)|z=^Z{xtZa{~VK>nf|gAJ+#F%S%hS zl)hH~2nVsr?D+1EL4cBG(Y z#Ng^Gy!ko;=UWrp|F?DCS6niyK?wsArYi`3jL6WIR`a)ypK$nHQ^ferk@???A_Pg5 z5_e%jh-DfXetWXD*vS67F0~&kEbfB_nX?&N`FgGSe-j_#^5T2SNyE1qs7{7_G z;sD<{PYS#BEfQ21SHzmaUep1p>R&46KW)Ip#|4`9q0HYN9lr3g^&~rV;`jbKAtAok zgkAFn9_hcEB6IW*A?tCE@jq|z*AM6z=s?qkUbga~csg#a&7Ds)U!3~9+Y1r9T3^U< zSNZL;#pi~B2luhCxPuH8CNV*c!1k{W{;jcDFU0q3mm_fqK#Lul$gOU;l{~-SVG$tg zm@Giab7YJL#ORQKtfJpXjwK;3NLOI79RR#Q(5Fd%?_8Ql ztu+Z;qRK#N^b#x-n8eWdZ{H$%B_=wgC~e=!-#*P<|KCUS?<4wq=lA=!7yUcX{+Np% zP=L@bb^c)zX`BZp+T;3Ht!_hJ82`?W|2GzpS0i%`*UQ9xJv|B{+dn)#`v!DtHmZJ) zIo$HI^J9ER#fC#gJ~~-cRJ45MxjV5rA#icI_|9;(>!P0?SWT29ZO^I!?Zk&e#T*h6 za{S;%jm=)VZT>HB7;ssVxVX4T3W&%X6=~4qogOfEF8Dg>nxysQK$EP=8IX3MH_S9{J=H9B08uwJJ2hq5IM;v&Q}TJa=k@s6 zAQ|sHNWPlmzB)ui%^dT$Rr8i#64o0~{mGk%xpSvYm022uUG@p47!(hrHX*`4X&9YB z-qdFP51N#^G^OR+K>G6R?Bzi4#dSU^jHr_s8xLeCKXOh52;rkb&~VL(oig2D8sk5L z$-PW`g3+@XMvd@hi#>gUFxSfjPm_SuLNc#ZU|k{a5_2pJ)l^k8psQqmpD=;jH_&=z zZEZc}0k3&$zdbvPu!kFf?f~LPe%HFSX5uhtq&{F5i})1hwM7{T2j|LO8vk7#yv%JSqK;Uo&oJL2LGK zY=}au8+)zGKXhw!TzNo)Kh}2seK!E8SazW2Qrxwp_ z7A-(m?zct(qtY)Phz`H!N%~E;-&`C3Ol_@m<9PoWwg2@4H9a*V&vf7)Hi$r+_7&2< fP5i(AEh5++v;|G~#W&jA0{$t;s7e=0zViP+;QFYh literal 0 HcmV?d00001 diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..8e4c91c --- /dev/null +++ b/shell.nix @@ -0,0 +1,7 @@ +{ pkgs ? import { } }: + +pkgs.mkShell { + packages = with pkgs; [ + python311 + ]; +} diff --git a/test.html b/test.html new file mode 100644 index 0000000..87954c8 --- /dev/null +++ b/test.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + +