⚡ Instantly turn your python function into web app.
APACHE-2.0 License
Instantly turn your Python function into delightful app and production-ready microservice, with lightweight UI to interact with.
Status | Stability | Goal |
---|---|---|
✅ | Alpha | We are testing Workcell with a closed set of customers |
✅ | Public Alpha | Anyone can sign up over at weanalyze.co. But go easy on us, there are a few kinks. |
🚧 | Public Beta | Stable enough for most non-enterprise use-cases |
❌ | Public | Production-ready |
We are currently in: Public Alpha.
Wokrlcell is heavily under development, and we expect to iterate on the APIs/UIs before reaching beta (version 0.1.0).
Python version 3.8+
Install Workcell using pip
:
pip install workcell
Or using Anaconda:
conda install workcell
After workcell installed, just run:
workcell hello
You can find an automatically generated Swagger UI from http://127.0.0.1:7860/docs
, then just goto http://127.0.0.1:7860/ui
to try your first workcell app:)
What happened?
Workcell has created a FastAPI service and a lightweight user interface for your functions without any additional API or UI-related code. This service is ready to be deployed to the cloud as a public service, requiring minimal setup on your end.
Speed up your development
With Workcell, you can focus on developing your core functionality while leaving the infrastructure and deployment details to the platform. All you need is to make sure your function is workcell compatible.
Workcell compatible
A workcell-compatible function must have an input
and output
parameter and return value based on Pydantic models. The input
and output
are specified using type hints.
Here is an example of a simple workcell compatible function:
from pydantic import BaseModel
class Input(BaseModel):
message: str
class Output(BaseModel):
message: str
def hello_workcell(input: Input) -> Output:
"""Returns the `message` of the input data."""
return Output(message=input.message)
Why deployment?
You'll be able to access your workcell from anywhere and share it with your team and collaborators. Now you can deploy workcell to Hugging Face Spaces in 1-click!
Prepare your Hugging Face account
First you need a Hugging Face account, and prepare a User Access Tokens, then set environment variables like below:
export HUGGINGFACE_USERNAME={huggingface_username}
export HUGGINGFACE_TOKEN={huggingface_token}
Replace {huggingface_username}
and {huggingface_token}
with yours.
You can also store these environment variables in a .env
file in your project folder for convenience.
Deploy in 1-click!
Once you prepared a workcell compatible function (or project), just run:
workcell up app:hello_workcell
Voila! The deployment process will start, and within a few minutes, workcell will be available on your Hugging Face Spaces.
Extra explain
When you run workcell up
, there're actually 2 seperate step workcell pack
and workcell deploy
been applied. workcell pack
will package your function code with a template into .workcell
under your project folder, and workcell deploy
will upload this folder to cloud.
Get inspired and learn more about workcell by exploring our examples:
We also have a curated list for you to check out, feel free to contribute!
If you have any questions about the workcell or weanalyze , feel free to email us at: [email protected]
If you want to say hi, or are interested in partnering with us, feel free to reach us at: [email protected]
Feel free to share memes or any questions at Discord: https://discord.weanalyze.co
Apache-2.0 License.