Jina “Hello, World!” 👋🌍¶
Note
This guide expects you have a basic understanding of Jina, if you haven’t, please check out Jina 101 first.
Table of Contents
Run the example¶
There are 2 ways to run this example:
With Docker
With Jina installed
If you have Jina installed you don’t need any extra dependencies, simply run:
jina hello-world
If you have Docker you don’t even Jina installed for this example, simply run:
On MacOS:
docker run -v "$(pwd)/j:/j" jinaai/jina hello-world --workdir /j && open j/hello-world.html
On Linux:
docker run -v "$(pwd)/j:/j" jinaai/jina hello-world --workdir /j && xdg-open j/hello-world.html

Overview¶
With this script you will:
Download the Fashion-MNIST training and test data
Index 60,000 images from the training set
Use random images from the test set as queries
Retrieve the relevant results
After around 1 minute, a web page will open and show results like this:

And the implementation behind it? It’s simple:
-
Python API
¶ from jina.flow import Flow f = Flow.load_config('helloworld.flow.index.yml') with f: f.index_ndarray(fashion_mnist)
-
YAML spec
¶ !Flow pods: encode: uses: helloworld.encoder.yml parallel: 2 index: uses: helloworld.indexer.yml shards: 2
-
Flow in Dashboard
¶
All the big words you can name: computer vision, neural search, microservices, indexing, querying/searching, and shards all happened in just one minute!
View “Hello World” in Jina Dashboard¶
pip install "jina[sse]"
jina hello-world --logserver
Or if you use Docker:
docker run -p 5000:5000 -v "$(pwd)/j:/j" jinaai/jina hello-world --workdir /j --logserver && open j/hello-world.html # replace "open" with "xdg-open" on Linux
More Options for “Hello, World”¶
Intrigued? Play with different options via:
jina hello-world --help
Start the hello-world demo, a simple end2end image index and search demo without any extra dependencies.
usage: jina hello-world [-h] [--workdir] [--download-proxy] [--shards]
[--parallel] [--uses-index] [--index-data-url]
[--index-labels-url] [--index-request-size]
[--uses-query] [--query-data-url] [--query-labels-url]
[--query-request-size] [--num-query] [--top-k]
General arguments¶
- --workdir
The workdir for hello-world demoall data, indices, shards and outputs will be saved there
Default: “399f88e5-d26d-4d04-8cbf-3a0b4986720d”
- --download-proxy
The proxy when downloading sample data
Scalability arguments¶
- --shards
The number of shards when index and query
Default: 2
- --parallel
The number of parallel when index and query
Default: 2
Index arguments¶
- --uses-index
The yaml path of the index flow
Default: “/opt/hostedtoolcache/Python/3.8.7/x64/lib/python3.8/site-packages/jina/resources/helloworld.flow.index.yml”
- --index-data-url
The url of index data (should be in idx3-ubyte.gz format)
Default: “http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz”
- --index-labels-url
The url of index labels data (should be in idx3-ubyte.gz format)
Default: “http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz”
- --index-request-size
The request size in indexing (the maximum number of documents that will be included in a Request before sending it)
Default: 1024
Search arguments¶
- --uses-query
The yaml path of the query flow
Default: “/opt/hostedtoolcache/Python/3.8.7/x64/lib/python3.8/site-packages/jina/resources/helloworld.flow.query.yml”
- --query-data-url
The url of query data (should be in idx3-ubyte.gz format)
Default: “http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz”
- --query-labels-url
The url of query labels data (should be in idx3-ubyte.gz format)
Default: “http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz”
- --query-request-size
The request size in searching (the maximum number of documents that will be included in a Request before sending it)
Default: 32
- --num-query
The number of queries to visualize
Default: 128
- --top-k
Top-k results to retrieve and visualize
Default: 50