Pickable
AI-powered business forecasting platform that transforms CSV data into conversational insights using AWS Bedrock Agents and RAG architecture.
Inspiration
"What if your business data could talk back to you?" I wanted to build a business intelligence tool by creating a system, using AI & Generative UI, where anyone could simply ask their data questions in plain English—no SQL, no complex dashboards, just natural conversation and informative UIs
What it does
Pickable transforms business data into conversational AI insights. I built it so users can upload their CSV files (sales, inventory, customer data) and immediately start asking questions like "Which products will run out next month?" or "What's driving my revenue growth?" The system generates dynamic visualisations, smart forecasts, and actionable recommendations with specific dates and quantities. It features LLM generated UIs, voice-activated queries, and generates comprehensive forecast reports with confidence scores.
How we built it
Using Next.js 15 with AWS Bedrock Agents. T I process uploaded CSV data by intelligently slicing it into contextual chunks, generate embeddings using Amazon Titan v2 embedding model, and store them in TiDB vector storage. When a user asks a question, their query is tranformed into an embedding, perform vector similarity search to retrieve relevant data slices, then feed this context to Bedrock Agents. I implemented custom action groups that handle data filtering, timeframe analysis, forecast computation, and most interestingly, generative UI creation. The agent doesn't just return JSON; it generates complete React component code with Recharts visualisations tailored to each query. I integrated the Web Speech API for voice input, and used Prisma for type-safe database operations.
Challenges we ran into
I had to handle TiDB's vector type through raw SQL since Prisma doesn't natively support it
- I encountered multiple AWS IAM permission issues during Bedrock Agent integration. The challenge was configuring three separate permission layers: my IAM user needed AmazonBedrockFullAccess and iam:PassRole permissions, while the agent's execution role required a trust relationship set to bedrock.amazonaws.com (not bedrock-agentcore.amazonaws.com, which is the only bedrock service option provided in the console UI).
- Bedrock Agents wrap action group responses in conversational text rather than returning raw JSON for structured outputs
- The generated UI components adaptive to app's current theme, dark-mode specific issue
- Vercel: 'The Edge Function "middleware" size is 1.05 MB and your plan size limit is 1 MB.'
Errors
- Raw query failed. Code:
1105. Message:vector has 1024 dimensions, does not fit VECTOR(1536) - Error [AI_NoObjectGeneratedError]: No object generated: response did not match schema.
- ⨯ Error [AI_APICallError]: The value at toolConfig.tools.0.toolSpec.inputSchema.json.type must be one of the following: object.
- Error [AI_APICallError]: Model produced invalid sequence as part of ToolUse. Please refer to the model tool use troubleshooting guide.
- Handle error for UI generations
- Error [AI_NoObjectGeneratedError]: No object generated: could not parse the response.
- ⨯ Error [AI_APICallError]: Model produced invalid sequence as part of ToolUse. Please refer to the model tool use troubleshooting guide.
- Error: Access denied when calling Bedrock. Check your request permissions and retry the request.
- Structured outputs
- Error [AI_APICallError]: The value at toolConfig.tools.0.toolSpec.inputSchema.json.type must be one of the following: object.
Accomplishments that we're proud of
All things considered, being able to resolve deployment issues on Vercel, and showcase/submit the project
What we learned
- AWS can be hasslesome
- I learnt that building with LLMs requires embracing unpredictability. Validation and repair mechanisms are essential.
What's next for Pickable
- Multi-modal support: uploading images of receipts or inventory data and having the AI extract and analyse that data.
- Real-time data source integrations would eliminate manual CSV uploads.
- The forecasting engine could incorporate external factors like seasonality, holidays, and market trends. Finally, I want to make the generative UI even more sophisticated—imagine the AI creating interactive dashboards, not just single components. The ultimate vision is a complete business intelligence using AI inference & interface
Built With
- aisdk
- amazon-web-services
- bedrock
- csv-parse
- html-2-canvas
- jspdf
- nextauth
- nextjs
- prisma
- radixui
- recharts
- tailwindcss
- tidb
- vercel
- zod
Log in or sign up for Devpost to join the conversation.