Getting started with Jina AI

3 min read

Cover Image for Getting started with Jina AI

In short, neural search is a new approach to retrieving information. Instead of telling a machine a set of rules to understand what data is what, neural search does the same thing with a pre-trained neural network. This means developers don’t have to write every little rule, saving them time and headaches, and the system trains itself to get better as it goes along.

What can it do?

Thanks to recent advances in deep neural networks, a neural search system can go way beyond simple text search. It enables advanced intelligence on all kinds of unstructured data, such as images, audio, video, PDF, 3D mesh, you name it.

For example, retrieving animation according to some beats; finding the best-fit memes according to some jokes; scanning a table with your iPhone's LiDAR camera and finding similar furniture at IKEA. Neural search systems enable what traditional search can't: multi/cross-modal data retrieval.

Many neural search-powered applications do not have a search box:

  • A question-answering chatbot can be powered by neural search: by first indexing all hard-coded QA pairs and then semantically mapping user dialog to those pairs.
  • A smart speaker can be powered by neural search: by applying STT (speech-to-text) and semantically mapping text to internal commands.
  • A recommendation system can be powered by neural search: by embedding user-item information into vectors and finding top-K nearest neighbours of a user/item.

Neural search creates a new way to comprehend the world. It is creating new doors that lead to new businesses.

What is Jina?

Jina is an approach to neural search. It’s cloud-native, so it can be deployed in containers, and it offers anything-to-anything search. Text-to-text, image-to-image, video-to-video, or whatever else you can feed it.

Three fundamental concepts in Jina

  • Document: Document is the basic data type that Jina operates with. Text, picture, video, audio, image or 3D mesh: They are all Documents in Jina. You could say Document is to Jina is what np.float is to Numpy, and DocumentArray is similar to np.ndarray.
  • Executor: An Executor should subclass directly from jina.Executor class. An Executor class is a bag of functions with shared state (via self); it can contain an arbitrary number of functions with arbitrary names. Functions decorated by @requests will be invoked according to their on= endpoint.
  • Flow: Flow is how Jina streamlines and scales Executors. Flow is a service, allowing multiple clients to access it via gRPC/REST/WebSocket from the public/private network.

Tutorials

  1. Jina "Hello, World!"
  2. Multimodal Document Search
  3. Hello World Chatbot
  4. Covid-19 Chatbot
  5. Multimodal Document Search
  6. Meme Search
  7. App Store Search
  8. Financial Question Answering System
  9. Lyrics Search
  10. Semantic Wikipedia Search

Videos

  1. Build your own AI Powered Neural Search Engine using Jina.AI neural search solutions
  2. Jina Webinar
  3. Text And Image Neural Search With Jina.AI

Resources

  • https://jina.ai/blog/
  • https://github.com/jina-ai/jina
  • https://medium.com/jina-ai/what-is-jina-and-neural-search-7a9e166608ab

Comments (2)

Discuss on Hashnode

Thanks for the blogpost. The HELLO WORLD CHATBOT link is not working. It's giving me 404 error.

Nice article. They've just released a new version of Jina now. I guess things might be different in the new release.