NLUX ๐ฒโจ๐ฌ
NLUX (for Natural Language User Experience) is an open-source Javascript library that makes it super simple to integrate powerful large language models (LLMs) like ChatGPT into your web app or website. With just a few lines of code, you can add conversational AI capabilities and interact with your favourite LLM.
- Build AI Chat Interfaces In Minutes โ High quality conversational AI interfaces with just a few lines of code.
- React Components & Hooks โ
<AiChat />
for UI anduseAdapter
hook for easy integration. - LLM Adapters โ For
ChatGPT
โLangChain
๐ฆLangServe
APIs โHuggingFace
๐ค Inference. - A flexible interface to Create Your Own Adapter for any LLM or API, with support for stream or fetch modes.
- Bot and User Personas โ Customize the bot and user personas with names, images, and descriptions.
- Streaming LLM Output โ Stream the chat response to the UI as it's being generated.
- Zero Dependencies โ Lightweight codebase, with zero-dependencies except for LLM front-end libraries.
This GitHub repository contains the source code for the NLUX library.
It is a monorepo that contains the following NPM packages:
React JS Packages:
@nlux/react
โ React JS components for NLUX.@nlux/langchain-react
โ React hooks and adapter for APIs created using LangChain's LangServe library.@nlux/openai-react
โ React hooks for the OpenAI API.@nlux/hf-react
โ React hooks and pre-processors for the Hugging Face Inference API
Vanilla JS Packages:
@nlux/core
โ The core Vanilla JS library to use with any web framework.@nlux/langchain
โ Adapter for APIs created using LangChain's LangServe library.@nlux/openai
โ Adapter for the OpenAI API.@nlux/hf
โ Adapter and pre-processors for the Hugging Face Inference API.
Themes & Extensions:
@nlux/themes
โ The defaultNova
theme and CSS styles.@nlux/markdown
โ Markdown stream parser to render markdown as it's being generated.@nlux/highlighter
โ Syntax highlighter based on Highlight.js.
Please visit each package's NPM page for information on how to use it.
- For developer documentation, examples, and API reference โ please visit: NLUX.dev
The following design principles guide the development of NLUX:
-
Intuitive โ Interactions enabled by NLUX should be intuitive. Usage should unfold naturally without obstacles or friction. No teaching or thinking should be required to use UI built with NLUX.
-
Performance โ NLUX should be as fast as possible. Fast to load, fast to render and update, fast to respond to user input. To achieve that, we should avoid unnecessary work, optimize for performance, minimize bundle size, and not depend on external libraries.
-
Accessibility โ UI built with NLUX should be accessible to everyone. It should be usable by people with disabilities, on various devices, in various environments, and using various input methods (keyboard, touch, voice).
-
DX โ NLUX recognizes developers as first-class citizens. The library should enable an optimal DX (developer experience). It should be effortless to use, easy to understand, and simple to extend. Stellar documentation should be provided. The feature roadmap should evolve aligning to developer needs voiced.
Our mission is to enable developers to build outstanding LLM front-ends and applications, cross platforms, with a focus on performance and usability.
- Star The Repo ๐ โ If you like NLUX, please star the repo to show your support.
- GitHub Discussions โ Ask questions, report issues, and share your ideas with the community.
- Discord Community โ Join our Discord server to chat with the community and get support.
- NLUX.dev Developers Website โ Examples, learning resources, and API reference.
NLUX is licensed under the terms of the Mozilla Public License 2.0.
Wondering what that means? Learn more on MPL 2.0 FAQ.
NLUX is a new open-source project that's being led by Salmen Hichri, a senior front-end engineer with over a decade of experience building user interfaces and developer tools at companies like Amazon and Goldman Sachs, and contributions to open-source projects.