Hi there! I'm Shrijith Venkatrama, the founder of Hexmos. Right now, I’m building LiveAPI, a super-convenient tool that simplifies engineering workflows by generating awesome API docs from your code in minutes.
In this series, I am on a journey to build for myself DBChat - a simple tool for using AI chat to explore and evolve databases.
See previous posts to get more context:
- Building DBChat - Explore and Evolve Your DB with Simple Chat (Part 1)
- DBChat: Getting a Toy REPL Going in Golang (Part 2)
- DBChat Part 3 - Configure , Connect & Dump Databases
- Chat With Your DB via DBChat & Gemini (Part 4)
- The Language Server Protocol - Building DBChat (Part 5)
- Making DBChat VSCode Extension - Ping Pong With LSP Backend (Part 6)
- Starting a VSCode Extension UI For DBChat (Part 7)
- Manage TOML Configuration From VSCode Extension - DBChat Part 8
- Getting DBChat Working For the First Time In VSCode - Part 9
A Video Demo (Step Up from Screenshots Last Time)
You can see me do a bunch of things in the following demo:
- See existing DB connections
- See various operations (show DB creds, edit, delete)
- Chat with a specific DB
- Generate SQL options from simple English prompt
- Execute SQL and show results
- Refine the SQL with more specific/pointed English prompt
What's New
- Fixed various annoyances with the chat window: Enter key not working, scrollbar resetting on response, etc
- Earlier DB credentials were exposed in the listing page; now there's a specific eye icon - which must be clicked to show any sensitive information
- I have a better testing setup now - with custom database, users, and so on. Will speed up development from now on due to the foundation.
Bugs and things learned
- With LLMs - I tried doing a bit of "vibe coding" that Karpathy talked about.
- It is important to commit/snapshot things as we vibe code, so that we can revert back to working state if things go wrong.
- LLMs get into loops and do the same errors again and again, and sometimes never seem to learn/improve. I have to jump in and fix things often.
- Had a pretty table come up once, but it was a hardcoded html from the LSP. So tried to dynamize it - for almost an hour. See above - the LLM went into a unproductive broken code loop. Had to set this challenge for another day.
- Found a bug with "Edit Connection". Maybe LLM interfered with my old code, but now, on clicking save, a new connection was created rather than updating old one.
- The "Show DB credentials" feature is not working reliably
- The "Add Connection" method via connection string is quite unfriendly. I want to give an LLM interface to add DBs. So you could paste pretty much anything, and it'll collect the necessary information.
Top comments (1)
This looks great.