npm package: @oconva/intento
Description: Open source intent recognition framework
Author: Oconva
Latest version: 1.0.1

# 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**.

Built with the mission to make conversational AI more open and accessible to all. No need to spend thousands on empowering your apps with conversational AI and providing your users the ability to interact with your app using natural language. Using [QvikChat](https://github.com/oconva/qvikchat) and Intento you can build powerful, reliable and secure conversational AI services at almost no cost.

<blockquote>
  Project still under development. Feel free to contribute. All feedback and ideas for improvement welcomed.
</blockquote>

Intento focuses only on one aspect of conversational AI - **intent recognition**. This helps Intento to be more specialized, efficient, and faster. This is also lets you to easily integrate it with your existing conversational AI services or build a new one from scratch. Moreover, it allows Intento open source project to be more maintainable and reduces the usage and implementation complexity.

[Get Started](https://intento.pkural.ca) | [Intento Starter Template](https://github.com/oconva/intento-starter-template)

![Example of an intent recognition service built using Intento](https://intento.pkural.ca/images/intento_irs_demo.svg)

## 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.

## 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](https://firebase.google.com/docs/firestore) 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

**QvikChat** is a [Firebase Genkit](https://github.com/firebase/genkit) and [LangChain](https://js.langchain.com/v0.2/docs/introduction/) based 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).**

[Get Started](https://qvikchat.pkural.ca/getting-started) | [Documentation](https://qvikchat.pkural.ca)

## QvikChat Starter Template

This project was scaffolded using the [QvikChat Starter Template](https://github.com/oconva/qvikchat-starter-template). It comes pre-configured with the following features:

- **QvikChat**: QvikChat installed and configured to start serving chat endpoints.
- **TypeScript**: TypeScript to allow you to write type-safe code efficiently.
- **ESLint**: ESLint to enforce code quality and consistency.
- **Prettier**: Prettier to format your code automatically and ensure consistent code style.
- **Jest**: Jest to run your tests and ensure your code works as expected.
- **GitHub Actions**: GitHub Actions to run your tests and lint your code automatically on every push.
- **SWC**: For faster and more efficient TypeScript compilation.
- **PNPM**: PNPM to manage your dependencies efficiently.

## Contributions

Contributions are welcome! Please refer to the [contribution guidelines](CONTRIBUTING.md) for more information.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Issues

If you encounter any issues or bugs while using QvikChat, please report them by following these steps:

1. Check if the issue has already been reported by searching our issue tracker.
2. If the issue hasn't been reported, create a new issue and provide a detailed description of the problem.
3. Include steps to reproduce the issue and any relevant error messages or screenshots.

[Open Issue](https://github.com/oconva/intento/issues)