Inspiration
As someone with an insatiable curiosity and an impulsive urge to explore new concepts (a true multipotentialite), my mind is constantly buzzing—like a hotspot for ideas. Naturally, this makes tracking thoughts and staying in the present quite difficult. I often get lost in tangents or space out entirely. To help temper that chaos, a mind map becomes an essential tool.
By combining Perplexity's real-time web search with LLM capabilities, I can quickly search and map concepts, easing the cognitive load and reducing the burden on memory. In a world where AI feels like it’s going to replace me, I need to think less, ideate more, and act fast.
Now, let's talk about the project
Quant
An AI-Powered Curiosity Explorer that enables users to explore complex questions, generate follow-up inquiries, and map their knowledge journey.
How Perplexity Sonar Pro was used
Utilising Vercel AI SDKs to ensure structured output from the AI model: generateObject.
The reasoning tree/exploration map is created using the user's prompt as the subject matter to generate one answer Node & multiple question nodes to further pique the user's interest
Additionally, there's a section for diverse perspectives, which includes whatifs, deep dives, opposing views, and counter arguments. Each of these can be added to the tree, and it becomes the answer node of the resulting tree with its own question nodes, and the cycle continues, a continuous channel for curiosity exploration trips. Users can also ask on these generated perspectives for further exploration trips
Features
- Speech-to-text via the Web Speech API to make the whole sleuthing process more natural
- Research images' download option
- Dedicated 'ask about diverse perpsectives' UI flow
- Curiosity Map Creation via Perplexity Sonar Pro AI model
- Data persistence via Prisma ORM & DB
Gotchas
- citations and imageUrls explicitly requested via schema were invalid
- Generating structured object via Vercel AI SDK: the sources weren’t available & the AI response included citations as an array of indexes (['1', '2', '3', '4']). It was a bit of an hassle, but I just had to read the response body directly, and extract the citation (my brain didn’t infer this that early)
PS: Streaming wasn't suitable for the usecase due to the dyamic nature of the to-be-rendered components and data required. Streaming UI demo: https://youtu.be/C4usyj1EaTM
Built With
- aisdk
- nextauth
- nextjs
- perplexity
- prisma
- reactflow
- sonar-pro
- tailwindcss
- typescript
- zod
Log in or sign up for Devpost to join the conversation.