This repository is for the MVP of PoliSync React app client.
PoliSync is a voice recognition-based the minutes of a meeting writing platform using National Assembly Public Data & API and Generative AI (Open AI).
npm install
npm run start
Check the API on the Open National Assembly information site (KR) and Fill out .env
REACT_APP_SERVER_URL={{server URL}}
REACT_APP_NATIONAL_ASSEMBLY_OPEN_API_URL={{National Assembly Open API URL}}
REACT_APP_NATIONAL_ASSEMBLY_OPEN_API_KEY={{National Assembly Open API key}}
- Creating the minutes of a meeting
- Voice-based Live chat using WebSocket & Web Speech API
- User classification using querystring (no-database)
- Searching References using expert systems (National Assembly data)
- Infinite Scrolls with IntersectionObserver API
- Meeting Summary using OpenAI API (Generative AI) with proxy server in the middle
React
, TypeScript
, @tanstack/react-query
, Recoil
, Mui
, Axios
, webSocket
JavaScript
, NodeJS
, Express
, openai
, webSocket
, nodemon
- The React App Client sends and receives requests to Node.js/Express Server and the National Assembly API.
- Node.js/Express Server acts as a proxy server for OpenAI, and at the same time acts as a WebSocket server.
- The external APIs OpenAI and National Assembly APIs send responses to servers and clients, respectively.
The following is a sequence diagram of the key features.
- When the user says, Browser (Web Speech API) converts it into text.
- Client sends the converted text to the WebSocket Server.
- WebSocket Server exchanges data with users through real-time communication.
- User refers to a specific keyword (expert systems)
- The Client App recognizes this keyword, extracts it, and sends a GET request to the National Assembly API.
- The National Assembly API sends a response, and users can check this information.
- Infinite scrolling allows the Client App to send additional GET requests, while the National Assembly API sends additional responses.
- Client sends a POST request to the Proxy Server with the meeting notes data.
- The Proxy Server forwards this request to the OpenAI API, using the GPT-3.5-turbo model.
- The response from the OpenAI API is received by the Proxy Server, which then processes and sends the data back to the Client.
Reasons for using the proxy server: Use a proxy server for enhanced security. The proxy server acts as a middleman between the client and the OpenAI API.