Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jinabox

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jinabox

A lightweight, customizable omnibox. Useful for searching text, images, videos, audios or all other kinds data with a Jina backend.

  • 0.1.47
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
48
increased by1100%
Maintainers
1
Weekly downloads
 
Created
Source

Jinabox.js banner

npm npm bundle size Jina Jina Box

jinabox.js is a lightweight, customizable omnibox. You can use it for searching text, images, videos, audio or any kind of data with a Jina backend.

jinabox.js in Action

Spin up a Jina Docker Image

jinabox.js is a frontend for Jina. You will need to spin up a Jina backend to get search results. Based on what you want to search, run one of our example Jina backends:

  • Pokedex (real image data): docker run -p 65481:65481 -e "JINA_PORT=65481" jinaai/hub.app.bitsearch-pokedex search
  • Southpark (real text data): docker run -p 45678:45678 jinaai/hub.app.distilbert-southpark
  • MP4 mock (placeholder video data): docker run -p 65481:65481 -e "JINA_PORT=65481" jinaai/hub.app.iomock.mp4 search
  • Wav mock (placeholder audio data): docker run -p 65481:65481 -e "JINA_PORT=65481" jinaai/hub.app.iomock.sound search

Open jinabox.js in your Browser

Just go to https://jina.ai/jinabox.js/ in your browser to open up the search interface.

Set Server Endpoint

Based on the Docker port you are exposing (i.e. 65481 or 45678 in above Docker images), set jinabox's server endpoint to:

http://localhost:<port_number>/api/search

Start Searching!

Drag and drop images, video, or audio, or type in text to search.

jinabox.js in Your Project

In HTML, include the minified script:

<script src="https://unpkg.com/jinabox"></script>
<script>
    jb = window.JinaBox
    jb.init('http://0.0.0.0:65481/api/search');  // http://0.0.0.0:65481/api/search is the endpoint of the REST gateway of a Jina backend.
</script>

Then create a container where the searchbar/floater is to appear:

<jina-searchbar></jina-searchbar>

<!--or-->

<jina-floater></jina-searchbar>

Now you can drag anything from anywhere (local/browser/webpage) to it and conduct the search.

Ready to learn Jina? Read our 101 tutorials.

Installation via package manager

npm install jinabox

or

yarn add jinabox

Features

  • Easy-to-use web component for Jina search backend
  • Users can drag and drop multi-modal data as search queries
  • Webcam and microphone support (in progress, contributions welcome! ❤️)
  • Visualize search results in a dropdown list or separate container
  • Highly customizable

Supported MIME types

MIME typeInput (Query)Output (Result)Description
textTypingList onlyText-only data including any human-readable content, source code, or textual data such as comma-separated value (CSV) formatted data. Examples include text/plain, text/csv, and text/html.
imageDrag-and-drop<img> Containers in list/grid viewImage or graphical data including both bitmap and vector still images as well as animated versions of still image formats like animated GIF or APNG. Common examples are image/jpeg, image/png, and image/svg+xml.
videoDrag-and-drop, webcam<video> containers in list/grid viewVideo data or files, such as MP4 movies (video/mp4).
audioDrag-and-drop, webcam, mic<audio> containers in list viewAudio or music data. Examples include audio/mpeg, audio/vorbis.

Configuration

Play with and preview jinabox configurations here: https://jina.ai/jinabox.js/

SettingDefaultTypeDescription
themedefaultstringColor theme: default, persian, pompelmo, honeybee
searchIconcolorstringSearchbar icon: color, mono, inverse, or a URL
showDropzonetruebooleanShow expanding drop zone when dragging files
resultsLocationdropdownstringWhere to display results: dropdown or external. When selecting external, results will be rendered in the element corresponding to the results-area-id
resultsAreaIdjina-results-areastringID of where results will be rendered if resultsLocation is set to external
typewriterEffectfalsebooleanEnable typewriter effect on the placeholder
typewriterDelayItem1000numberTime (ms) delay between every placeholder switch when typewriterEffect is enabled
typewriterDelayCharacter50numberTime (ms) delay between each character when typwriterEffect is enabled
userMediaHeight500numberWebcam feed and capture height
userMediaWidth300numberWebcam feed and capture width
acceptAudiotruebooleanAllow search with audio queries
acceptVideotruebooleanAllow search with video queries
acceptTexttruebooleanAllow search with text queries
acceptImagetruebooleanAllow search with image queries

Expected Response Structure

jinabox.js expects query responses to contain either of the following structures

{
  "search": {
    "docs": [
      {
        "topkResults": [
          {
            "matchDoc": {
              "docId": 14704,
              "weight": 1,
              "uri": "data:image/png;charset=utf,...",
              "mimeType":"image/png"
            }
          }
        ],
        "uri":"data:image/jpeg;...",
        "mimeType":"image/jpeg"
      }
    ]
  }
}

or

{
  "search": {
    "docs": [
      {
        "matches": [
          {
            "docId": 14704,
            "weight": 1,
            "uri": "data:image/png;charset=utf,...",
            "mimeType":"image/png"
          }
        ],
        "uri":"data:image/jpeg;...",
        "mimeType":"image/jpeg"
      }
    ]
  }
}

Browser Support

jinabox.js runs on modern browsers including Chrome, Firefox, Safari (desktop and mobile) and Opera. Certain features (like recording audio/video) are not available on all browsers and jinabox will make these features available accordingly.

Troubleshooting

SSL Error on Localhost

Try http://localhost:65481/api/search, make sure to use http and localhost, instead of 0.0.0.0.

Requests hanging or failing

Query your api with curl to ensure it is properly receiving, processing, and responding to requests. Ensure responses meet jinabox expected response structure.

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.

Keywords

FAQs

Package last updated on 18 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc