What is Sieve?

Sieve is a platform built to help discover, design, and run AI features at scale. AI development is moving away from being predominantly about training & finetuning, and more towards how people combine models together to make specific use cases work. Our platform is the best development experience built around this growing trend.

Some features include:

  • Pre-built, production-ready apps and models you can use in a single click or API call
  • Build complex apps that use many models in a few lines of code
  • Instant no-code interfaces for every app on Sieve, with zero extra configuration
  • Reliable, horizontally scaling infrastructure based on traffic
  • Powerful distributed primitives like queues and async jobs to parallelize data processing

Getting Started

Every account comes with $20 of credit to get you started:

pip install sievedata
  • Login with your API key
sieve login

Building a simple AI translation app

Let’s build a simple translation function on Sieve. We’ll take in an input file (video or audio) + the target language and return the translated transcript.

For simplicity, our app will only support English as the source language.
1

To start off, let's make a new directory and file

mkdir simple_translation && cd simple_translation

And copy the following code into simple_translation/main.py:

import sieve

@sieve.function(name="simple_translation")
def simple_translation(file: sieve.File, target_language: str = "spa") -> str:
    """
    :param file: File to translate
    :param target_language: Language code to translate to. Defaults to "spa" for Spanish.
    """

    transcribe = sieve.function.get("sieve/speech_transcriber")
    translate = sieve.function.get("sieve/seamless_text2text")

    transcript = transcribe.run(file)
    translated_segments = []
    for segment in transcript:
        translate_job = translate.push(
            segment["text"],
            source_language="eng",
            target_language=target_language
        )
        translated_segments.append(translate_job)

    translated_transcript = ""
    for translated_seg in translated_segments:
        translated_transcript += translated_seg.result()

    return translated_transcript
2

Deploy to Sieve

Make sure you are in the correct directory! Sieve zips up your current directory to run in the cloud.
sieve deploy

Your build should only take a few seconds, after which you’ll see a link to your newly deployed function on the Sieve dashboard.

3

Run a job

Navigate to your function on the Sieve dashboard and upload a sample file to test out your app.

You can also call your function via API call or the Python client.

Make sure to replace <your-org-name> with your org name and <your-api-key> with your API key.
curl -X POST \
  --url https://mango.sievedata.com/v2/push \
  -H 'X-API-Key: <your-api-key>' \
  -H 'Content-Type: application/json' \
  --data '{
    "function": "<org-name>/simple_translation"
    "inputs": {
      "file": {"url": "https://storage.googleapis.com/mango-public-models/output1.mp4"},
      "target_language": "spa"
    }
  }'

What just happened?

That was easy! We just built a simple AI translation app in a few lines of code. Let’s walk through it.

At its core, we used 2 Sieve functions to build this app:

Sieve makes it easy to use any public Sieve functions in the cloud, synchronously or asynchronously.

# Running transcription syncronously
transcribe = sieve.function.get("sieve/speech_transcriber")
transcript = transcribe.run(file)

We wrote all of our logic for translating a file in a single function and defined a custom Sieve function with the @sieve.function decorator.

Deploying our function with sieve deploy lets us run this function via API and lets us visualize our inputs & outputs via the Sieve dashboard!

What’s next?

All you need to get started with Sieve is an account. From there, you can decide what you’d like to do next.

Support

If you need any assistance or have any questions, feel free to join our Discord community. Looking forward to see what you build!