All Projects β†’ bloomsburyai β†’ Cape Webservices

bloomsburyai / Cape Webservices

Licence: apache-2.0
Entrypoint for all backend cape webservices

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cape Webservices

Haystack
πŸ” Haystack is an open source NLP framework that leverages Transformer models. It enables developers to implement production-ready neural search, question answering, semantic document search and summarization for a wide range of applications.
Stars: ✭ 3,409 (+2187.92%)
Mutual labels:  search, question-answering
Covid Qa
API & Webapp to answer questions about COVID-19. Using NLP (Question Answering) and trusted data sources.
Stars: ✭ 283 (+89.93%)
Mutual labels:  search, question-answering
Ng2 Search Filter
Angular 2 / Angular 4 / Angular 5 custom pipe npm module to make a search filter on any input, πŸ”₯ 100K+ downloads
Stars: ✭ 137 (-8.05%)
Mutual labels:  search
Vuex Search
Vuex binding for client-side search with indexers and Web Workers πŸ“—πŸ”
Stars: ✭ 147 (-1.34%)
Mutual labels:  search
Alfred Vscode
Alfred 3 workflow that allows you to browse and open Visual Studio Code projects or simply open specified folders/files
Stars: ✭ 141 (-5.37%)
Mutual labels:  search
Algoliasearch Client Python
⚑️ A fully-featured and blazing-fast Python API client to interact with Algolia.
Stars: ✭ 138 (-7.38%)
Mutual labels:  search
Jquery Searchable
Tiny, fast jQuery plugin to search through elements as you type.
Stars: ✭ 142 (-4.7%)
Mutual labels:  search
Sonic
πŸ¦” Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM.
Stars: ✭ 12,347 (+8186.58%)
Mutual labels:  search
Algoliasearch Client Go
⚑️ A fully-featured and blazing-fast Go API client to interact with Algolia.
Stars: ✭ 147 (-1.34%)
Mutual labels:  search
Awesome Deep Learning Papers For Search Recommendation Advertising
Awesome Deep Learning papers for industrial Search, Recommendation and Advertising. They focus on Embedding, Matching, Ranking (CTR prediction, CVR prediction), Post Ranking, Transfer, Reinforcement Learning, Self-supervised Learning and so on.
Stars: ✭ 136 (-8.72%)
Mutual labels:  search
Stelace
Open-source marketplace backend in Node.js, empowering Web platforms with Search API, Automation, Auth, Headless CMS… ⚑ πŸ’»
Stars: ✭ 144 (-3.36%)
Mutual labels:  search
Ambar
πŸ” Ambar: Document Search Engine
Stars: ✭ 1,829 (+1127.52%)
Mutual labels:  search
Question answering models
This repo collects and re-produces models related to domains of question answering and machine reading comprehension
Stars: ✭ 139 (-6.71%)
Mutual labels:  question-answering
Rummage phoenix
Full Phoenix Support for Rummage. It can be used for searching, sorting and paginating collections in phoenix.
Stars: ✭ 144 (-3.36%)
Mutual labels:  search
Gossiping Chinese Corpus
PTT ε…«ε¦η‰ˆε•η­”δΈ­ζ–‡θͺžζ–™
Stars: ✭ 137 (-8.05%)
Mutual labels:  question-answering
Algoliasearch Helper Js
Helper for implementing advanced search features with Algolia
Stars: ✭ 147 (-1.34%)
Mutual labels:  search
Vue Innersearch
πŸ”Ž UI components built with Vue.js for ElasticSearch
Stars: ✭ 135 (-9.4%)
Mutual labels:  search
Riddle
Ruby Client API for Sphinx
Stars: ✭ 139 (-6.71%)
Mutual labels:  search
Js Search
JS Search is an efficient, client-side search library for JavaScript and JSON objects
Stars: ✭ 1,920 (+1188.59%)
Mutual labels:  search
Swiper
Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
Stars: ✭ 1,948 (+1207.38%)
Mutual labels:  search

cape-webservices CircleCI

Entrypoint for all backend cape webservices.

Frontend demo is here (only works if you already launched a Backend).

Overview of Cape

Cape is a suite of open-source libraries to manage a question-answering model that answers questions by "reading" documents automatically. It is based on state-of-the-art machine reading models trained on massive datasets, and includes several mechanisms to make it easy to use and improve based on user feedback. It has been designed to be portable, i.e. works on a single laptop or on a cluster of parallel machines to speedup computation, and is Open Source friendly to be used at all expertise levels.

It enables users to

  • upload documents and answer questions extracted from them,
  • update models by adding a "saved reply", i.e. a pre-defined answer,
  • manage users, documents and saved replies.

There are several ways to use Cape :

  • As a python library :
 from cape_responder.responder_core import Responder
 Responder.get_answers_from_documents('my-token','How easy is Cape to use', text ="Cape is an open source large-scale question answering system and is super easy to use!")
  • As a python service : python3 -m cape_webservices.run
  • As a standalone Docker container : docker run -p 5050:5050 bloomsburyai/cape
  • As an app with UI
  • As a distributed cluster
  • As a slack bot (video here, more info here)
  • AI-in-the-middle email answering system (video here, more info here)
  • As a Facebook bot (more info here)
  • As a Hangouts bot (more info here)

Quick start

Minimum Requirements

We recommend at least 3GB of RAM and at least 2 modern CPU cores (4 if virtual). If you're using Docker, ensure you increase the memory resource limits in the Docker preferences.

Standalone webapp with Docker

You can run a standalone version of the webapp that includes a management dashboard. After installing docker, update and run the Cape image:

docker pull bloomsburyai/cape && docker run -ti -p 5050:5050 -p 5051:5051 bloomsburyai/cape

This will launch both the backend and the frontend webservices, by default it will also create tunnels for both, outputting the public urls:

  • To use the frontend just browse to the given url, it will be something similar to : **https://RANDOM_STRING_HERE.ngrok.io?configuration={"api":{"backendURL":"https://RANDOM_STRING_HERE.ngrok.io:5050","timeout":"15000"}}
  • To use the backend you can use our client (documentation here or make your own by integrating our HTTP API (documentation here))

Quick Start Guide with Docker

  1. Pull the latest version of the Docker image (it will take a few moments to download all dependencies and a machine reading model): docker pull bloomsburyai/cape

  2. Run the Docker container and launch an IPython console within it using the following command: docker run -ti -p 5050:5050 -p 5051:5051 bloomsburyai/cape ipython3

  3. Import Responder: from cape_responder.responder_core import Responder

  4. Ask a question and store the response (which is a list of answers) and display the first answer using: response = Responder.get_answers_from_documents('my-token','How easy is Cape to use?', text="Cape is an open source large-scale question answering system and is super easy to use!"); print(response[0]['answerText'])

  5. If you are interested in understanding a bit more about what the response looks like, display the full response using: print(response)

Installing without docker

To natively install Cape on a linux system, take a look at deployment/Dockerfile.

Structure

Dependencies Diagram

In summary this is how Cape is organized:

  • cape-webservices Backend server providing the full HTTP API, depends on :
    • cape-responder Unique high level interface for distributing and creating machine reading tasks,depending on :
      • cape-machine-reader Module to integrate machine reading models
      • cape-document-qa Integration of a state of the art machine reading model, with training and evaluation scripts
    • cape-document-manager Interface to manage document and annotations, using SQLite as an example storage backend, depends on :
      • cape-splitter Package to split documents into chunks without breaking sentences
    • cape-userdb, Package to manage and store users and configurations
    • cape-api-helpers, HTTP API utility functions
    • Optional plugins:
  • cape-frontend Frontend server (not in the diagram) it uses the backend server API to provide a management dashboard to the users
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].