Introduction

Intento

Intento is a simple-to-use open source framework that lets you build and deploy intent recognition services powered by large language models (LLM). It aim to make it easier, accessible, and faster for developers to empower their apps and projects with conversational AI.

Example of an intent recognition service built using Intento

Example of an intent recognition service built using Intento

Why use Intento?

Consider a scenario where you have a chat interface in your app or website, where users can give voice or text commands to get something done. You need to understand what the user is asking for, and then take the appropriate action based on the user's intent. You may also need to extract some information from the user input to be able to perform the action. This is where Intento comes in.

Intento helps you decipher what that something is that the user wants done, and helps you extract the required information from the user input.

How it works?

The core component of Intento is an Intent Recognition Service (IRS) endpoint. When you configure your project and run the server, the IRS endpoint that you setup, listens for incoming requests. When a new request is received, the IRS endpoint processes the request, extracts the intent and information from the user input, and sends back the extracted intent and information in the response.

Here is the basic workflow for setting up an intent recognition service using Intento:

  1. Intento Project: First step is to setup an Intento project. You can install Intento as a package, or use the Intento starter template to get started.
  2. Prepare IRS Data: The most important part of any intent recognition service is the data that it uses to recognize intents and extract information. Before you can setup an IRS endpoint, you need to prepare the data that the IRS endpoint will use. Check the Data page to learn more.
  3. Setup IRS Data Source: Setup a data source that the IRS endpoint will be able to use to access the data related to the intent recognition service (IRS). Check the Data Sources page to learn more.
  4. Specify IRS Endpoint Configurations: We can specify a configurations object for our IRS endpoint. Through these configurations we configure the endpoint name, data source to use for the IRS, whether to use authentication or not, and enable or disable verbose mode. Check the IRS Endpoints page to learn more.
  5. Run the Server: Once we have completed the steps above, we can run the IRS server by providing it a list of all configuration objects for the IRS endpoints we want defined. The server will start and listen for incoming requests at the IRS endpoints.

Note: This is not an official Firebase Genkit or LangChain framework. This is a community-driven project. Firebase Genkit is currently in beta, this means that the public API and framework design may change in backward-incompatible ways. We will do our best to keep this project up-to-date.

If you find value from this project, please consider contributing or sponsoring the project to help maintain and improve it. All contributions and support are greatly appreciated!

Features

  • Powered by LLMs: Intento uses large language models (LLMs) to recognize intents and extract information from user input. No need to constantly train and update custom machine learning models or NLU systems.
  • Simple and Easy to Use: Intento is designed to be simple and easy to use, with a minimal learning curve. You can get started with Intento and deploy your own intent recognition service in minutes and in few lines of code.
  • Deploy to any NodeJS platform: Deploy your app or service to any NodeJS platform, including Firebase, Google Cloud, AWS, Heroku, etc., with ease.
  • Firebase Firestore: In-built support for using Cloud Firestore (opens in a new tab) as the data source for storing information of your intent recognition service, including intents and API keys.
  • Advanced Features: Intento provides support advance features like query expansion and response evaluation to improve the accuracy and performance of your intent recognition service.
  • Focus on Performance, Reliability, and Security: Every component in Intento is built to ensure low latency and scalable performance without compromising on security. From using prompts that help mitigate LLM hallucination and deter prompt injection attacks, to providing in-built support for authentication for each endpoint, Intento is designed to help you build secure, performant, and reliable intent recognition services.

QvikChat

Intento was build using QvikChat (opens in a new tab).

QvikChat is a framework that provides you with a solid foundation to build powerful AI-powered chat service endpoints quickly and efficiently. It includes support for multiple types of conversations (open-ended, close-ended), chat history, response caching, authentication, and information retrieval using Retrieval Augmented Generation (RAG).