Inspiration
As the use of large-language models becomes prevalent, we want to develop an application that utilizes the advantages of LLMs to function. We think that the feature of those models remembering and analyzing users' behavior and emotions is a unique aspect for the users to reflect on themselves. We also want to strengthen our programming and collaboration skills through this project since this is our first participation.
What it does
Our app allows people to interact with self-hosted AI. The self-hosted AI also has the ability to respond based on a CSV table provided.
How we built it
We first decide on which LLM services we want to use, and we eventually decide to settle on Ollama since it allows user to be hosted on their own server. We then create a single MySQL database that stores chat logs, and a backend with uvicorn, fastapi, and websockets as the main communication tool with the frontend. We then choose React + Vite as the frontend, as it allows us to review the changes being applied to the user interface in realtime, and we added multiple new features, including allowing the frontend to extract CSV data and feed it into the Ollama LLM we have in the backend, presenting a smooth, interactive user interface that allows users to input text messages and get feedbacks from LLM.
Challenges we ran into
Our WebSocket client wasn't working properly on the browser side, but was normal on the Postman platform. We eventually discovered that it was because of React's strict mode that it automatically executes everything twice, essentially terminating our connection early. With minimal prior experience in web design and markdown language, we faced difficulty in the initial planning and implementation of our web pages and user interface. We took a gradual approach. We decided to start from a single format, synchronizing the effect of including JSX and CSS languages. After gaining initial knowledge, our implementation of additional features, such as buttons and animations, became much easier.
Accomplishments that we're proud of
We're proud that we're able to build a full database, website backend, and frontend in such a short period of time. We also familiarized ourselves with multiple skill sets and team collaboration through online platforms. Throughout a long coding event that requires endurance, it is important that we always give our full effort.
What we learned
We learned multiple skill set and knowledges, including GitHub collaborations, the difference in logic of markdown and programming language, and the interaction between frontend and backend programs.
What's next for AIsia
We plan to move the server from Google Cloud to our own server, since that way we would have better control of the hardware and can tailor it based on our needs.
Built With
- debian
- jsx
- mysql
- ollama
- python
- react
- vite
- websockets
Log in or sign up for Devpost to join the conversation.