English • 日本語 • français • Deutsch • Русский язык • 中文
Website • Docs • Examples • Newsletter • Hub (beta) • Dashboard (beta) • Twitter • We are Hiring
Want to build a search system backed by deep learning? You come to the right place!
Jina is the cloud-native neural search framework powered by the state-of-the-art AI and deep learning. It is long-term supported by a full-time, venture-backed team.
🌌 The Universal Search Solution - Jina enables large-scale index and query of any kind on multiple platforms and architectures. Whether you are searching for images, video clips, audio snippets, long legal documents, short tweets, Jina can handle them all.
🚀 High Performant & State-of-the-Art - Jina aims at AI-in-production. You can easily scale out your VideoBERT, Xception, word tokenizer, image segmenter and database to handle billion-level data. Features such as async, replicas and sharding come out-of-the-box.
🐣 System Engineering Made Easy - Jina offers a one-stop solution that frees you from handcrafting and gluing packages, libraries and databases. With the most intuitive API and dashboard, building a cloud-native search system is just a minute thing.
🧩 Powerful Extensions, Simple Integration - New AI model for Jina? Simply write a Python script or build a Docker image. Plugging in new algorithms has never been that easy, as it should be. Check out Jina Hub (beta) and find more extensions on different use-cases contributed by the community.
Jina is an open-source project. We are hiring AI engineers, full-stack developers, evangelists, PMs to build the next neural search eco-system in open-source.
- Install
- Jina "Hello, World!" 👋🌍
- Getting Started
- Documentation
- Contributing
- Community
- Roadmap
- License
On Linux/MacOS with Python >= 3.7 installed, simply run this command in your terminal:
pip install jina
To install Jina with extra dependencies, or install it on Raspberry Pi please refer to the documentations.
We provide a universal Docker image (only 80MB!) that supports multiple architectures (including x64, x86, arm-64/v7/v6), simply do:
docker run jinaai/jina --help
As a starter, you are invited to try Jina's "Hello, World" - a simple demo of image neural search for Fashion-MNIST. No extra dependencies needed, simply do:
jina hello-world
...or even easier for Docker users, no any install required, simply:
docker run -v "$(pwd)/j:/j" jinaai/jina hello-world --workdir /j && open j/hello-world.html # replace "open" with "xdg-open" on Linux
It downloads Fashion-MNIST training and test data; tells Jina to index 60,000 images from the training set. Then, it randomly samples images from the test set as queries, asks Jina to retrieve relevant results. The whole process takes about 1 minute, eventually it will open a webpage and show results like this:
And the implementation behind? As simple as it should be:
Python API | index.yml | Flow in Dashboard |
from jina.flow import Flow
f = Flow.load_config('index.yml')
with f:
f.index(input_fn) |
!Flow
pods:
chunk_seg:
yaml_path: helloworld.crafter.yml
replicas: $REPLICAS
read_only: true
doc_idx:
yaml_path: helloworld.indexer.doc.yml
encode:
yaml_path: helloworld.encoder.yml
needs: chunk_seg
replicas: $REPLICAS
chunk_idx:
yaml_path: helloworld.indexer.chunk.yml
replicas: $SHARDS
separated_workspace: true
join_all:
yaml_path: _merge
needs: [doc_idx, chunk_idx]
read_only: true |
All big words you can name: computer vision, neural IR, microservice, message queue, elastic, replicas & shards happened in just one minute!
Intrigued? Play and try different options:
jina hello-world --help
Make sure to continue with our Jina 101 Guide - understanding all key concepts of Jina in 3 minutes!
English • 日本語 • français • Português • Deutsch • Русский язык • 中文 |
Tutorials | Level |
---|---|
Learn how to orchestrate Pods to work together: sequentially and in parallel; locally and remotely | |
Learn how the input and output functions work in Jina | |
Learn to use dashboard to monitor and get insight of a running workflow | |
Learn how to use Jina to extract feature vector using any deep learning representation | |
Learn how to build a script search system for South Park and practice your knowledge on Flows and Pods | |
Learn how to build an image search system and define you own executors and run them in docker | |
Learn how to increase the performance by using prefetching and sharding | |
Learn how to run a Flow remotely and use a local client to connect to it | |
Learn to run Jina on remote instances and distribute your workflow | |
Learn how to implement your own ideas into Jina's plugin | |
Learn how Jina solves complex dependencies easily with Docker container | |
Learn to how to use SOTA visual representation for searching Pokémon! | |
Learn to use Jina Hub and share your extensions with engineers around the globe |
The best way to learn Jina in depth is to read our documentation. Documentation is built on every push, merge, and release event of the master branch. You can find more details about the following topics in our documentation.
- Jina command line interface arguments explained
- Jina Python API interface
- Jina YAML syntax for executor, driver and flow
- Jina Protobuf schema
- Environment variables used in Jina
- ... and more
Are you a "Doc"-star? Affirmative? Join us! We welcome all kinds of improvements on the documentation.
Documentations for the older versions are archived in here.
We welcome all kinds of contributions from the open-source community, individuals and partners. Without your active involvement, Jina won't be successful.
The following resources will help you make a good first contribution:
- Slack channel - a communication platform for developers to discuss Jina
- Community newsletter - subscribe to the latest update, release and event news of Jina
- LinkedIn - get to know Jina AI as a company and find job opportunities
- - follow us and interact with us using hashtag
#JinaSearch
- Company - know more about our company, we are fully committed to open-source!
GitHub milestones lay out the path to the future improvements.
We are looking for partnerships to build a Open Governance model (e.g. Technical Steering Committee) around Jina, which enables a healthy open source ecosystem and developer-friendly culture. If you are interested in participating, feel free to contact us at hello@jina.ai.
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.