Inspiration
We were heavily inspired by Obsidian's graph feature that allows for you to add markdown documents and link them together in a node graph. However, we found it limiting in its features and hard to edit without using queries or editing markdown.
What it does
Friendet remembers your friends and family by adding important details in a connected node graph using generative AI. RAG is then used to recall these details, for you to interact with a conversational, intelligent agent.
How we built it
We used Neo4j for the powerful node graph behind our web application. This allowed for us to easily create node graphs in the cypher language, something that our team has come to know and love. We initially aimed to use an MCP for the Neo4j to LLM interface, however we ended up having to write our own quick and dirty interface using parameterized cypher queries.
For our front-end and back-end, we used SolidJS, Bun, and Express.js. SolidJS allowed for use to create the performant and beautiful component-based web app, while Bun provided a speedy engine for Express.js to serve our website on.
We used XLAM-2 8B to power our RAG agent. XLAM is based on LLaMA and fine tuned to support tool calling. This proved useful for our intelligent agent which would interface with the Neo4j database using tool calls. XLAM is lightweight and fast. The model ran on a GPU server located at one of our teammates houses, running headless and accessed remotely.
AI coding assistants like GitHub Copilot and Cursor were used to assist us in our coding journey.
Challenges we ran into
Initially, we had issues getting SolidJS and TanStack Router (our original tech stack). We eventually migrated to just using SolidJS, Bun, and Express. We also had issues implementing the Neo4j MCP in enough time, and decided to quickly hack together a solution that worked for our use case.
Accomplishments that we're proud of
We are proud of the fact that 4 teammates, who barely knew each other before the hackathon and had diverse technological backgrounds, were able to come together to create an amazing AI-power application of this scale. Most of the team did not have experience in the tech stack we used, and it was an amazing learning journey.
What we learned
We learned a lot about implementing a RAG AI pipeline from start to finish. We also learned a lot about how to best manage a team on such a short time crunch. Neo4j and SolidJS were tools that most of our team was not familiar with, but by the end of the hackathon, we can say that we are leaps and bounds more experienced in these tools.
What's next for Friendet
We initially wanted to use an MCP server to power the database to LLM connection, but instead were forced to build our own solution specialized for our use case. In the future, we would love to implement the more widely accepted and open MCP protocol and use a client to interface with a Neo4j server.
Built With
- ai
- express.js
- javascript
- jsx
- neo4j
- node.js
- python
- solid
- tsx
- typescript
Log in or sign up for Devpost to join the conversation.