This is an Express service written in TypeScript that provides authorization functionality and includes gen-AI features, using RAG concepts, vector database and implements AI memory history with Redis DB.
🌱 This project is under development.
- LangChain for handling LLM and RAG functionality.
- Express and Node for creating backend service.
- Qdrant as vector store database.
- JWT for handling authentication
- GoogleGenAI langchain plugin.
- Google Gemini - API
- Docker Containers for setting up environment.
- Redis database for storing AI messages.
- ZOD as body parameters validation.
common: common code and utilities for all modules
di: dependency injection container
modules: application features
module_name:
adapters: class adapters for external resources
dataproviders:
services:
application: application layer for controllers and routes
controllers:
routes:
core: application core logic
entities:
usecases:
utils: class and constant utilities for this module
Before running the application, make sure you have the following installed:
- NodeJS (v20.12.1)
- PNPM (v9.7.0)
- Docker (v27.2.0)
- Clone this repository
git clone https://github.com/WillACosta/genai-langchain-api
Copy the
.env.example
file to.env
and fill it with your own credentials
cp .env.example .env
- You'll need Docker to setup and running the application services
From the app's root directory, run the following command to build and running docker containers:
docker compose up --build
The application will be available at
http://localhost:3000
.