Production readiness#

Jina NOW apps are production ready: Our goal is to provide you with a search pipeline that is easy to integrate in your production system. NOW also comes with other aspects, such as AWS S3 Bucket data integration, security and finetuning.

Models we use:

  • SBERT : sentence-transformers/msmarco-distilbert-base-v3

  • CLIP : openai/clip-vit-base-patch32

  • Music Encoder: BiModalMusicTextEncoderV2

For hardware we use AWS EC2 instances. From our experiments you can expect:

  • Queries per second: 13

  • Latency: 300 ms

AWS S3 bucket support#

We now support S3 buckets: after selecting custom data you can select S3 bucket. Then you can provide your AWS access key ID and AWS secret key, and a list of emails of anyone you want to share your Flow with.

question-s3-bucket

Your data is automatically loaded from the S3 bucket. It will be temporarily stored on EC2 machines while processing the data, but it will not be stored permanently.

Auto-complete suggestions#

For applications with text as input modality, we provide the autocomplete feature. This feature learns slowly from the user’s search requests and provides text suggestions. This is how the API looks like if you would like to integrate it into your application:

autocomplete-api

Security#

You can choose to secure your Flow:

question-security

You can also choose to grant additional users access to the Flow:

question-other-users

You can do this by specifying their email addresses and separate them using commas:

question-emails

Backend for Frontend#

We provide a BFF (Backend For Frontend) API that you can call for your search application, which makes integrating with your custom frontend easy and seamless.

question-emails

Update your API keys#

To update your API keys use this simple script:

python now/admin/update_api_keys.py

Elasticsearch Index Configuration#

NOW uses Elastic Cloud as storage backend. Each new app deployment will be provisioned an index, secured with an api key, only accessible to the indexer within the search app. You can configure the index settings such as shards and replicas by setting these as environment variables before deploying your app, for example:

export PROVISION_SHARDS=2
export PROVISION_REPLICAS=1

This will configure the index to have 2 shards and 1 replica. The default values are 1 shard and 0 replicas when these environment variables are not set.