Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature 0.6 #33

Merged
merged 116 commits into from
Aug 19, 2024
Merged

Feature 0.6 #33

merged 116 commits into from
Aug 19, 2024

Conversation

Crivella
Copy link
Owner

@Crivella Crivella commented Aug 17, 2024

Release v0.6.0

The main change is the introduction of a plugin manager to install the plugins+dependencies on demand.
This makes the release versions (both windows EXE and docker image) much smaller, and allow users to decide which functionalities they want to use.

IMPORTANT

From version 0.6 onward python and pip need to be installed on the system.
See more below in the Changes section.

  • Windows: https://www.python.org/downloads/windows/

    • NOTE: make sure to check the box that says "Add Python to PATH" so that pip can be found by the server script without having to make any assumptions
  • Linux: Use your package manager (e.g. sudo apt install python3 python3-pip)

Changes

  • Removed the frozen executable from the release files in favor of an Automatic1111 stile batch script
    • Even with the plugin manager, installing some dependencies that requiers actual compilation by invoking pip from within the frozen executable was giving non trivial to fix trouble.
      For this reason I decided to axe the PyInstaller frozen EXE all together and go with a batch script that will:
      • Allow user to more easily set environment variables (a few of the most relevant ones are already set as empty in the script)
      • Create or reuse a virtual environment in a folder venv in the same directory as the script
      • Install the minimum required packages in it to run the server
      • Run the server
  • Added a plugin manager to install/uninstall plugins on demand
    • The installed plugins can be controlled via the new version of the firefox extension or directly using the
      manage_plugins/ endpoint.

    • The plugins will by be installed under $OCT_BASE_DIR/plugins which by default will be under your user profile (e.g. C:\Users\username\.ocr_translate on windows).
      If you have trouble with space under C:\ consider setting the OCT_BASE_DIR environment variable to a different location.

    • The plugin data is stored in a JSON file inside the project plugins_data.json

    • Version/Scope/Extras of a package to be installed can be controlled via environment variables

      OCT_PKG_<package_name(uppercase)>_[VERSION|SCOPE|EXTRAS]
      

      (eg to change torch to version A.B.C you would set OCT_PKG_TORCH_VERSION="A.B.C").
      If the package name contains a - it should be replaced with _min_ in the package name

    • Removed env variable AUTOCREATE_VALIDATED_MODELS and relative server initialization.
      Now models are created/activated or deactivated via the plugin manager, when the respective plugin is installed/uninstalled.

  • Streamlined docker image to also use the run_server.py script for initialization.
  • Added plugin for ollama (https://github.com/ollama/ollama) for translation using LLMs
    • Note ollama needs to be run/installed separately and the plugin will just make calls to the server.
    • Use the OCT_OLLAMA_ENDPOINT environment variable to specify the endpoint of the ollama server
      (see the plugin page for more details)
  • Added plugin for PaddleOCR (https://github.com/PaddlePaddle/PaddleOCR) (Box and OCR) (seems to work very well
    with chinese).
    • The default versions installed by the plugin_manager of paddlepaddle (2.5.2 on linux and 2.6.1 on windows)
      might not work for every system as there can be underlying failures in the C++ code that the plugin uses.
      The version installed can be controlled using the environment variable OCT_PKG_PADDLEPADDLE_VERSION.
  • Added possibility to specify extra DJANGO_ALLOWED_HOSTS and a server bind address via environment variables. (Fixes Access from other devices on local network #30)
  • Manual model is not implemented as an entrypoint anymore (will work also without recreating models).
  • OCR models can now use a tokenizer and a processor from different models.
  • Added caching of the languages and allowed box/ocr/tsl models for faster response times on the handshake endpoint.
  • New endpoint run_tsl_xua made to work with XUnity.AutoTranslator (https://github.com/bbepis/XUnity.AutoTranslator)
  • Improved API return codes

Fixes

Crivella and others added 30 commits December 17, 2023 22:22
@Crivella Crivella self-assigned this Aug 17, 2024
@Crivella Crivella merged commit 4170bed into master Aug 19, 2024
4 checks passed
@Crivella Crivella deleted the feature-0.6 branch August 28, 2024 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Access from other devices on local network Creating models with null or empty iso_map is not possible
1 participant