Skip to main content

Jina is the cloud-native neural search solution powered by the state-of-the-art AI and deep learning

Project description

Jina banner

Jina Python 3.7 3.8 PyPI Docker Docker Image Version (latest semver) CI CD Release Cycle Release CD API Schema codecov

English日本語FrançaisDeutschРусский язык中文

WebsiteDocsExamplesHub (beta)Dashboard (beta)Jinabox (beta)TwitterWe are Hiring

Jina is an AI-powered search framework, empowering developers to create cross-/multi-modal search systems (e.g. text, images, video, audio) on the cloud. Jina is long-term supported by a full-time, venture-backed team.

⏱️ Time Saver - Bootstrap an AI-powered system in just a few minutes.

🧠 First-Class AI models - Jina is a new design pattern for neural search systems with first-class support for state-of-the-art AI models.

🌌 Universal Search - Large-scale indexing and querying data of any kind on multiple platforms. Video, image, long/short text, music, source code, and more.

🚀 Production Ready - Cloud-native features work out-of-the-box, e.g. containerization, microservice, distributing, scaling, sharding, async IO, REST, gRPC.

🧩 Plug & Play - With Jina Hub, easily extend Jina with simple Python scripts or Docker images optimized for your search domain.

Contents

Get Started

From PyPi

On Linux/MacOS with Python >= 3.7:

pip install jina

To install Jina with extra dependencies, or install on Raspberry Pi please refer to the documentation.

In a Docker Container

We provide a universal Docker image that supports multiple architectures (including x64, x86, arm-64/v7/v6). Simply run:

docker run jinaai/jina --help

Jina "Hello, World!" 👋🌍

As a starter, you can try out our "Hello, World" - a simple demo of image neural search for Fashion-MNIST. No extra dependencies needed, just run:

jina hello-world

...or even easier for Docker users, no install required:

docker run -v "$(pwd)/j:/j" jinaai/jina hello-world --workdir /j && open j/hello-world.html  # replace "open" with "xdg-open" on Linux
Click here to see console output

hello world console output

The Docker image downloads the Fashion-MNIST training and test dataset and tells Jina to index 60,000 images from the training set. Then it randomly samples images from the test set as queries and asks Jina to retrieve relevant results. The whole process takes about 1 minute, and eventually opens a webpage and shows results like this:

Jina banner

The implementation behind it is simple:

Python API or use YAML spec or use Dashboard
from jina.flow import Flow

f = (Flow()
        .add(uses='encoder.yml', parallel=2)
        .add(uses='indexer.yml', shards=2,
             separated_workspace=True))

with f:
    f.index(fashion_mnist, batch_size=1024)
!Flow
pods:
  encode:
    uses: encoder.yml
    parallel: 2
  index:
    uses: indexer.yml
    shards: 2
    separated_workspace: true

Flow in Dashboard

Explore sharding, containerization, concatenating embeddings, and more

Adding Parallelism and Sharding

from jina.flow import Flow

f = (Flow().add(uses='encoder.yml', parallel=2)
           .add(uses='indexer.yml', shards=2, separated_workspace=True))

Distributing the Flow

from jina.flow import Flow

f = Flow().add(uses='encoder.yml', host='192.168.0.99')

Using a Docker Container

from jina.flow import Flow

f = (Flow().add(uses='jinahub/cnn-encode:0.1')
           .add(uses='jinahub/faiss-index:0.2', host='192.168.0.99'))

Concatenating Embeddings

from jina.flow import Flow

f = (Flow().add(name='eb1', uses='BiTImageEncoder')
           .add(name='eb2', uses='KerasImageEncoder', needs='gateway')
           .needs(['eb1', 'eb2'], uses='_concat'))

Enabling Network Queries

from jina.flow import Flow

f = Flow(port_expose=45678, rest_api=True)

with f:
    f.block()

Intrigued? Play with different options:

jina hello-world --help

Create Your First Jina Project

pip install jina[devel]
jina hub new --type app

You can easily create a Jina project from templates with one terminal command. This creates a Python entrypoint, YAML configs and a Dockerfile. You can start from there.

Tutorials

Jina 101 Concept Illustration Book, Copyright by Jina AI Limited   

Jina 101: First Things to Learn About Jina

  English日本語FrançaisPortuguêsDeutschРусский язык中文عربية
Level Tutorials

🐣

Build an NLP Semantic Search System

Search South Park scripts and practice with Flows and Pods

🐣

My First Jina App

Using cookiecutter for bootstrap a jina app

🐣

Fashion Search with Query Language

Spice up the Hello-World with Query Language

🕊

Use Chunk to search Lyrics

Split documents in order to search on a finegrained level

🕊

Mix and Match images and captions

Search cross modal to get images from captions and vice versa

🚀

Scale Up Video Semantic Search

Improve performance using prefetching and sharding

Documentation

The best way to learn Jina in depth is to read our documentation. Documentation is built on every push, merge, and release of the master branch.

The Basics

Reference

Are you a "Doc"-star? Join us! We welcome all kinds of improvements on the documentation.

Documentation for older versions is archived here.

Contributing

We welcome all kinds of contributions from the open-source community, individuals and partners. We owe our success to your active involvement.

Contributors ✨

All Contributors

Community

  • Slack workspace - join #general on our Slack to meet the team and ask questions
  • YouTube channel - subscribe to the latest video tutorials, release demos, webinars and presentations.
  • LinkedIn - get to know Jina AI as a company and find job opportunities
  • Twitter Follow - follow and interact with us using hashtag #JinaSearch
  • Company - know more about our company and how we are fully committed to open-source.

Open Governance

GitHub milestones lay out the path to Jina's future improvements.

As part of our open governance model, we host Jina's Engineering All Hands in public. This Zoom meeting recurs monthly on the second Tuesday of each month, at 14:00-15:30 (CET). Everyone can join in via the following calendar invite.

The meeting will also be live-streamed and later published to our YouTube channel.

Join Us

Jina is an open-source project. We are hiring full-stack developers, evangelists, and PMs to build the next neural search ecosystem in open source.

License

Copyright (c) 2020 Jina AI Limited. All rights reserved.

Jina is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytorch-search-0.6.8.tar.gz (183.9 kB view details)

Uploaded Source

File details

Details for the file pytorch-search-0.6.8.tar.gz.

File metadata

  • Download URL: pytorch-search-0.6.8.tar.gz
  • Upload date:
  • Size: 183.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.7.5

File hashes

Hashes for pytorch-search-0.6.8.tar.gz
Algorithm Hash digest
SHA256 b8e1acead52c26a3d183bae5810ea87b208cad1e6fde343b1af6796ea0ff0351
MD5 285175102e76015ab851973450b00b43
BLAKE2b-256 2f03af6d335b05f4b28cb9c4842732e9be59dd745b0ffb7a99f8a1ddaca8b363

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page