Welcome to the Chatbot Topic Generator Repository! This mono repository is designed to efficiently generate and manage frequently asked questions (FAQs) using OpenAI GPT-3.5-turbo, AWS services, and TypeScript. The repository consists of two main apps: backend and infrastructure, along with an internal package for environment configuration.
The following cloud architecture illustrates a high-level flow:
- Language: Node.js, TypeScript
- Functionality:
- Utilizes AWS Lambda to generate FAQs using OpenAI GPT-3.5-turbo.
- Abstracts integrations with OpenAI, AWS S3, and AWS Kendra using generic interfaces.
- Generates CSV format FAQs, loads it to AWS S3, and creates an AWS Kendra FAQ with the CSV file as the source.
- Language: Node.js, TypeScript, AWS CDK
- AWS Resources Created:
- 1 AWS S3 Bucket (receives its bucket name as an environment variable).
- 1 AWS Kendra index (receives its ARN Role as an environment variable).
- 1 AWS Lex Bot (receives its ARN Role as an environment variable).
- 1 HTTP API Gateway.
- 1 AWS Lambda with the handler described in the Backend App.
- 1 HTTP Lambda Integration between the API Gateway and the Lambda.
- Language: Node.js, TypeScript
- Functionality:
- Reads environment configuration from process.env using a provided configuration object.
- Handles required or optional variables and supports default values.
- Node.js and npm installed.
- Turbo Node.js package globally installed
-
Clone the repository:
git clone https://github.com/sergioyepes21/chatbot-topic-generator.git cd chatbot-topic-generator -
Install dependencies:
npm install
-
Deploy the services from the root directory:
npm run deploy
The AWS SAM CLI locally deploys on Docker the required API Gateway and AWS Lambda so you can test.
-
Install the Docker Engine
-
Install the AWS SAM CLI
-
Fill the
.envfile from theinfraapplication with the required values -
Run the infrastructure locally from the root directory:
npm run dev
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature. - Commit your changes:
git commit -m 'Add your feature'. - Push to the branch:
git push origin feature/your-feature. - Open a pull request.
If you encounter any issues or have suggestions for improvements, please open an issue.
This repository is licensed under the MIT License.

