Package: neural-search
English•日本語•Français•Deutsch•Русский язык•中文Website•Docs•Examples•Hub (beta)•Dashboard (beta)•Jinabox (beta)•Twitter•We are HiringJina is an open-source deep-learning powered search framework, empowering developers to createcross-modal or multi-modal search systems for text, images, video, and audio. Jina is a cloud-native project, and provides long-term support from afull-time, venture-backed team.⏱️Time Saver- Bootstrap an AI-powered system in just a few minutes withcookiecutter.🧠First-Class AI models- Jina is a new design pattern for neural search systems with first-class support forstate-of-the-art AI modelslike Faiss, Annoy, Onnx, and more.🌌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 out-of-the-box, like containerization, microservice, distributing, scaling, sharding, async IO, REST, gRPC.🧩Plug & Play- WithJina Hub, you can extend Jina with simple Python scripts or Docker images optimized for your search domain.ContentsGet StartedJina "Hello, World!" 👋🌍TutorialsDocumentationContributingCommunityOpen GovernanceJoin UsLicenseGet StartedFrom PyPiOn Linux/MacOS with Python >= 3.7:pipinstalljinaTo install Jina with extra dependencies, or install on Raspberry Piplease refer to the documentation.With Cookiecutterpipinstallcookiecutter&&cookiecuttergh:jina-ai/cookiecutter-jinaWithCookiecutteryou 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.In a Docker ContainerWe provide a universal Docker image that supports multiple architectures (including x64, x86, arm-64/v7/v6). Simply run:dockerrunjinaai/jina--helpJina "Hello, World!" 👋🌍As a starter, you can try out our "Hello, World" - a simple demo of image neural search forFashion-MNIST. No extra dependencies needed, just run:jinahello-world...or even easier for Docker users,no install required:dockerrun-v"$(pwd)/j:/j"jinaai/jinahello-world--workdir/j&&openj/hello-world.html# replace "open" with "xdg-open" on LinuxClick here to see console outputThe 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:The implementation behind it is simple:Python APIor useYAML specor useDashboardfromjina.flowimportFlowf=(Flow().add(uses='encoder.yml',parallel=2).add(uses='indexer.yml',shards=2,separated_workspace=True))withf:f.index(fashion_mnist,batch_size=1024)!Flowpods:encode:uses:encoder.ymlparallel:2index:uses:indexer.ymlshards:2separated_workspace:trueExplore sharding, containerization, concatenating embeddings, and moreAdding Parallelism and Shardingfromjina.flowimportFlowf=(Flow().add(uses='encoder.yml',parallel=2).add(uses='indexer.yml',shards=2,separated_workspace=True))Distributing the Flowfromjina.flowimportFlowf=Flow().add(uses='encoder.yml',host='192.168.0.99')Using a Docker Containerfromjina.flowimportFlowf=(Flow().add(uses='jinahub/cnn-encode:0.1').add(uses='jinahub/faiss-index:0.2',host='192.168.0.99'))Concatenating Embeddingsfromjina.flowimportFlowf=(Flow().add(name='eb1',uses='BiTImageEncoder').add(name='eb2',uses='KerasImageEncoder',needs='gateway').needs(['eb1','eb2'],uses='_concat'))Enabling Network Queriesfromjina.flowimportFlowf=Flow(port_expose=45678,rest_api=True)withf:f.block()Intrigued? Play with different options:jinahello-world--helpTutorialsJina 101: First Things to Learn About JinaEnglish•日本語•Français•Português•Deutsch•Русский язык•中文•عربيةLevelTutorials🐣Build an NLP Semantic Search SystemSearch South Park scripts and practice with Flows and Pods🐣My First Jina AppUsing cookiecutter for bootstrap a jina app🐣Fashion Search with Query LanguageSpice up the Hello-World with Query Language🕊Use Chunk to search LyricsSplit documents in order to search on a finegrained level🕊Mix and Match images and captionsSearch cross modal to get images from captions and vice versa🚀Scale Up Video Semantic SearchImprove performance using prefetching and shardingDocumentationThe 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 BasicsUse Flow API to Compose Your Search WorkflowInput and Output Functions in JinaUse Dashboard to Get Insight of Jina WorkflowDistribute Your Workflow RemotelyRun Jina Pods via Docker ContainerReferenceCommand line interface argumentsPython API interfaceYAML syntax for Executor, Driver and FlowProtobuf schemaEnvironment variables...and moreAre you a "Doc"-star? Join us! We welcome all kinds of improvements on the documentation.Documentation for older versions is archived here.ContributingWe welcome all kinds of contributions from the open-source community, individuals and partners. We owe our success to your active involvement.Contributing guidelinesRelease cycles and development stagesContributors ✨CommunitySlack workspace- a communication platform for developers to discuss JinaYouTube 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- follow us and interact with using hashtag#JinaSearchCompany- know more about our company and how we are fully committed to open-source.Open GovernanceGitHub milestoneslay out the path to Jina's future improvements.As part of our open governance model, we host Jina'sEngineering All Handsin 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.Add to Google CalendarDownload .icsThe meeting will also be live-streamed and later published to ourYouTube channel.Join UsJina is an open-source project.We are hiringfull-stack developers, evangelists, and PMs to build the next neural search ecosystem in open source.LicenseCopyright (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.