Email: duc.ngogia2002@gmail.com
I also built CI/CD pipeline for this application. I deployed the application on AWS ECS. Detail in _infrastructure folder
Try it now: Demo
Check out this chat app that I made few months ago! It uses a language model to summarize news and lets you chat with a bot for more details about the news
Check out repo README first!!!
Link Github: News App
Complete all the tasks
- Render a full page application with three panels.
- Navigation panel shows a list of channels.
- Message list panel shows a list of message bodies for one channel.
- Editor panel shows a text area input.
- Editor panel is hidden if there is no channel selected.
- Editor has a submit button.
- Submit button is disabled if there is no text in message body.
- Clicking a channel in navigation panel selects that channel.
- Entering text in editor and clicking submit adds message to the currently selected channel.
- Submitting editor clears input.
- Switching channels clears input.
- Channel list is loaded once on loading the application.
- Initially no channel is selected.
- Messages are loaded from remote on channel selection and updated to screen.
- Messages are also stored to local state after loading from remote.
- Editing is not required, only creation.
- Upon submitting a message to a channel, that message is available for other users.
- Submitting user sees message in message list after submitting.
- Render created message in the list immediately before refreshing from backend.
- Channel and message storage can be an in-memory database.
- On server start, storage is populated with a fixed set of empty channels.
- GET endpoint for querying channels.
- GET endpoint for querying channel’s messages.
- POST endpoint for submitting new messages to a channel.
Chatbot in order to analyze fundamental financial data of a company.
- Channel Creation: User creates a channel named with a company's stock ticker (e.g., "IBM", "AAPL").
- Data Retrieval: The backend system retrieves the company's financial data (income, balance sheet, earnings) from Alpha Vantage via API.
- Data Storage: Financial data is stored in JSON files within a 'dummyData' folder.
- User Interaction: The user asks a question by sending a message to the chatbot in the channel.
- Data Filtering: For each user question, the application uses the LLM to query and filter relevant data from the JSON files.
- Question Refinement: The application uses the LLM to reformulates the user's question to make it more suitable.
- Answer Generation: The application uses the LLM to generate an answer to the user's question.
- ENVIRONMENT VARIABLES:
PORT=4000
OPENAI_API_KEY=OPENAI_API_KEY
ALPHA_VANTAGE_API_KEY=ALPHA_VANTAGE_API_KEY
- Setup:
- Change directory to the backend directory:
cd backend
. - Create the
.env
file and place the variables into it. - Install dependencies:
npm install
. - Run in development mode:
npm start
.
- Change directory to the backend directory:
- ENVIRONMENT VARIABLES:
REACT_APP_API_URL=http://localhost:4000
- Setup:
- Change directory to the backend directory:
cd frontend
. - Create the
.env
file and place the variables into it. - Install dependencies:
npm install
. - Run in development mode:
npm start
.
- Change directory to the backend directory:
- Docker
- docker-compose
- Run:
docker-compose up -d
- Access the Application: Open http://localhost:3000