GithubHelp home page GithubHelp logo

andrewramsay / interactive-cast Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grill-lab/interactive-cast

1.0 1.0 0.0 383 KB

A tool for CAsT topic development

Shell 3.39% JavaScript 10.94% Python 59.80% CSS 6.95% HTML 12.73% Dockerfile 6.19%

interactive-cast's Introduction

CAsTSearcher 2.0

CAsT Searcher is a simple tool developed to help with creating the evaluation topics for the 2021 edition of the Conversational Assistance Track. The tool allows topic developers to visually assess the behaviour of a retrieval system, ultimately making it easier to develop challenging, but interesting, topics for the Track.

CAsT Searcher is designed to be as modular and extensible as possible. It is built using a microservice architecture, with loosely coupled services that communicate through protocol buffers and grpc.

Architecture

System Architecure

CAsT Searcher is made up of four core services:

Web UI

With the web ui service, one can simply issue or rewrite search queries. It is a flask application that serves as the client that the user interacts with.

Searcher

The searcher service receives a search query and relevant search parameters from the web ui and returns a search result.

Reranker

If one chooses, they might want to rerank the search result from the searcher. The reranker takes in a search result and outputs a reranked search result.

Rewriter

The rewriter handles query rewrites. It takes in a search query along with relevant context and outputs a rewrite.

How to Run

First, make sure to run the offline pipeline to generate the indexes the online system needs to search on. Details of how to do that can be found in the offline directory.

The services are dockerfied and orchestrated with docker compose. To interact with the app, run:

docker-compose up --build

(NOTE: Reranking is slow, if running on CPU -- especially when reranking lots of documents!)

DEMO

You can interact with the system here


To run with kubernetes on minikube:

  1. Start minikube: minikube start
  2. Open the minikube dashboard to monitor the app's resources: minikube dashboard
  3. To allow minikube expose the LoadBalancer web UI service to allow access: minikube tunnel
  4. Mount the shared directory on minikube: minikube mount shared:/shared

In the kubernetes_deplpoyment directory, run bash build_images.sh to build the app's images within the minikube environment.

Then create the resources for the app with kubectl apply -f .

If all goes well, the endpoint to access the web UI should then be available in the minikube dashboard within the Services menu.

interactive-cast's People

Contributors

paulowoicho avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.