--- title: Spinoza emoji: 🐨 colorFrom: green colorTo: indigo sdk: gradio sdk_version: 4.37.2 python_version: "3.10" app_file: app.py pinned: false hf_oauth: true --- # Spinoza Project Reporters Without Borders (RSF) has teamed up with the General Information Press Alliance (the Alliance) to initiate the first step of its **Spinoza project** to develop an artificial intelligence tool by and for journalists that will safeguard the media’s intellectual property over what they publish. You can find more information here and here. A visual and guided introduction to the artificial intelligence tool can be found in the RSF's Youtube Channel. You can have a look just below. ## Table of Contents - [Documentation](#documentation) - [Installation](#installation) - [Usage](#usage) - [Contributing](#contributing) - [License](#license) ## Documentation For a step-by-step guide on how to replicate Spinoza in a private space and integrate your own specialized "sub-RAG" using Google Colab, please refer to our [Tutorial for Replication](https://huggingface.co/datasets/SpinozaProject/spinoza-database/blob/main/Spinoza%20Tutorial%20for%20replication.pdf). ## Installation 1. Clone the repository (SSH): ```bash git clone https://huggingface.co/spaces/SpinozaProject/spinoza ``` 2. Install dependencies: ```bash poetry install ``` Note that we highly recommend to create a new env : ```bash conda create -n myenv python=3.10 conda activate myenv pip install poetry ``` ## Usage To run the project in local workspace, use the following command: ```bash python app.py ``` ## Maintenance notes **Python version is pinned to 3.10** (`python_version: "3.10"` in the YAML header above). The dependencies in `requirements.txt` are locked to versions that only ship wheels for Python 3.10 (e.g. `torch==2.5.1`, `torchvision==0.20.1`). If you regenerate `requirements.txt`, keep Python 3.10 or bump every dependency together — otherwise the Space build fails with `No matching distribution found`. Do **not** re-export the requirements with `--hash`: hashes put pip in `--require-hashes` mode, which conflicts with the extra packages the Hugging Face builder injects and breaks the build. **Groq model** is set via `groq_model_name` in `spinoza_project/config.yaml`. Groq regularly retires model IDs, so the app checks the live Groq catalog at startup and falls back to `llama-3.3-70b-versatile` if the configured model is gone (see `resolve_groq_model` in `spinoza_project/source/backend/llm_utils.py`). Check the current catalog at https://console.groq.com/docs/models before changing it. ## Contributing 1. Clone the repository. 2. Create a new branch: `git checkout -b feature-name`. 3. Make your changes. 4. Push your branch: `git push origin feature-name`. 5. Create a pull request. ## License WIP