Skip to content

Packaging Alpaca

Jeffry Samuel edited this page Dec 26, 2024 · 3 revisions

Alpaca is open source and welcomes external packaging, whilst my intentions with the project is for it to be package in sandboxed universal solutions (Snap and Flatpak), I'm also willing to publicize other packaging methods.

Summary

  • Running Alpaca outside a sandbox might be dangerous.
  • There are required dependencies you must include for Alpaca to run.
  • You shouldn't make Ollama a requirement, Alpaca can run without a local instance.

Understanding the Importance of Sandbox

When packaging Alpaca you need to be aware of the importance in sandboxing Alpaca, that mainly has to do with how code running work.

Dependencies

Alpaca uses many Python libraries and other open source projects to include functionality, mainly the connection to Ollama, attachment handling, YouTube caption extraction, ETC.

Needed

Name Reason
Requests Communication with Ollama instance.
Pillow Handling images.
PyPDF Extracting text from PDF.
YouTube-Transcript-API Extracting transcripts from YouTube videos.
HTML2Text Extracting text from webpages.
PyDBus Publishing Alpaca to DBus.
ODFPy Extracting text from ODT files.
VTE Internal terminal for running scripts.
PyICU Translating language names for models.

Optional

Name Reason
NumaCtl Includes LibNuma, needed inside the Flatpak to provide ROCm support.
Ollama Please read the next section to know why Ollama should not be included.

Ollama Involvement

Alpaca has been made in a way that makes it work with or without an included Ollama instance, this is important because many people might want to run Alpaca with existing Ollama instances in external servers or containers.

Clone this wiki locally