6 ms·
Show HN: I built a database GUI with ChatGPT integration
Hey there! I’ve been working on DB Pilot for the last couple of months, and I recently added an AI assistant powered by GPT 3.5 to help you write SQL queries tailored to your DB schema.
Simply ask what data you are looking for - GPT will figure out which tables to use, how to join them, and then write a query for you.
The AI assistant knows which tables and columns exist in your database, meaning it can write queries specific to your schema.
Besides that, it doesn't have access to any actual data from your database though, meaning your data doesn't get exposed to OpenAI.
- replwoacause 3y agoWhen will SQLite support be added? Then I'm all in! :)
- swah 3y agoLooks good - typo on the front-end: "AI assitant for your SQL needs". By the way, is this a template you used here? Looks modern and similar to a few other apps.
- Dennizz 3y agoThanks for the hint! Yeah I started with a landing page template from TailwindUI, then mixed in a few other building blocks also from TailwindUI, plus some customization.
- chrisshroba 3y agoAlso variaty -> variety, "can not" -> "cannot", and there's at least one more place on the page that says "assitant" :)
- dingledork69 3y agoHow to run this on linux?
- Dennizz 3y agoSo far it's Mac only. If I can get some traction on this, I plan to support Windows and Linux eventually.
- RandomUser4976 3y agoAny plans to get this on windows?
- Dennizz 3y agoIf I can get some traction on this, I plan to support Windows and Linux eventually.
- mmaia 3y agoThis is looking nice. Would definitely try it if I was still doing SQL daily. Small suggestion: show that it's a one time payment closer to the price. I kept staring at the price and thinking if it was yearly, until I looked at the button.
- squeegee_scream 3y agoIt’sa lifetime license for the gui but the AI is annual $49
- Dennizz 3y agoCorrect. When you buy the lifetime license you get one year of the AI included, afterwards it is $49 per year for the AI then. I should make that more clear on the website.
- Dennizz 3y agoThanks for the feedback, I'll try to improve that.
- hegem0n 3y agoThis is brilliant, but please do MongoDB. It's less intuitive to query and could benefit greatly from GPT
- tillvz 3y agoAt Veezoo (https://veezoo.com https://veezoo.com) we're about to launch a MongoDB connector leveraging Trino, hit me up if you wanna test it.
- numerousEnt 3y agoHey, I'd love to try this!
- Dennizz 3y agoNoted!
- AdieuToLogic 3y agoThere are numerous libraries which can make querying MongoDB a bit nicer. Here are a few which may be worth considering, depending on what language is used: C-sharp: https://github.com/mongodb-labs/mongo-csharp-search https://github.com/mongodb-labs/mongo-csharp-search Java: https://github.com/streamx-co/FluentMongo https://github.com/streamx-co/FluentMongo Scala: https://github.com/osxhacker/scala-bson-query https://github.com/osxhacker/scala-bson-query Typescript: https://www.npmjs.com/package/ts-mongodb-orm https://www.npmjs.com/package/ts-mongodb-orm HTH
- techbelle 3y agoThere's also this https://huggingface.co/spaces/rueckstiess/english-to-mql https://huggingface.co/spaces/rueckstiess/english-to-mql
- paulnovacovici 3y agoCurious, what software did you use to make your videos on the landing page?
- Dennizz 3y agoThey are made with https://www.screen.studio/ https://www.screen.studio/
- cloudking 3y agoThis is cool, could you expand this into an API/SDK to plug the chat feature into existing apps?
- Dennizz 3y agoInteresting idea. Do you have some examples of how you would like to use that, or maybe even an app where you'd like to integrate it?
- cloudking 3y agoI'd be interested in integrating it into a record management app we use as a feature for users, so they can ask questions about the data, not just the developers.
- metalspot 3y agothe concern i would have here is that if you don't know SQL then you have no way of knowing whether or not the results are correct and if the results are wrong you have no way to debug the query. to construct an SQL query you need to know the database schema, you need to be able to specify the relationships between tables, and you need to specify what data you are trying to retrieve. the only way using plain written language can work is if you can infer the correct table names and relationships from the input text, which can only work if the database follows very strict naming conventions and/or proper foreign key usage and is small enough that none of the table or column names are ambiguous. plain written language is much more ambiguous than a formal language like SQL. how do you resolve ambiguities in the naming of tables and columns in the schema and in the input text for queries? if the output is wrong, is there an iterative process that can help the user refine the query?
- truevelvet 3y agoThis is the problem with these models in general, right? I think it can help you write the queries faster but you have to know these things already. For example, at work, I can recall I need to join 5 tables to perform a certain lookup. It'd be cool if I didn't have to type all that, but without that knowledge, it would be useless.
- abirch 3y agoThoughts on a view?
- Dennizz 3y agoCorrect, you probably should know SQL. In my experience though it is often a significant time saver if I only have to review the output of the AI vs. coming up with everything myself. Re: ambiguities: You are right, the AI won't always be able to infer the correct fields to use. In such cases though it is often enough to help the AI out a little. E.g. by saying "information X is stored in field Y of table Z". Even if you have to do that, you can still save time and more importantly mental effort by letting AI help you, compared to writing all the SQL yourself. Re: iterative process: You can simply send a follow up message saying "You did X wrong". It is usually happy to correct itself.
- khazhoux 3y agoVery cool. But nearly every time I've asked ChatGPT for code, it gives me either plausible-but-wrong code, or total hallucinations (flags and APIs that could exist, but don't).
- calmoo 3y agoNot my experience, nearly every time GPT 4 has produced code that compiles / runs first time without errors.
- Dennizz 3y agoI've had mostly the same experience as calmoo. And when it does go wrong, I've had good success telling it what it did do wrong. It will usually correct itself then.
- Closi 3y agoI think there are a few tricks I use to get correct code: 1) GPT4 is a must, the code quality is so much better than GPT3 2) You can use a longer explanation than you think. Be detailed in exactly what you want. Clearly describe function inputs and outputs. 3) Provide GPT3 with the APIs to use, and break these down. If you want it to call an API and do some logic, you can prompt it twice - once to build a function to get data from the API and once to build a function that requests from the function in the first request. Do both of these as separate chat GPT sessions. 4) Give GPT a chance to fix errors - pipe the exact errors back in after you have run them so GPT can amend its code. 5) if you want the code to operate/be written in a particular way then tell GPT and even provide pseudo code if worthwhile. If you want error handling, request it. If you want the SQL statements to be run in a transaction, request it. It probably won’t do these things by default. 6) don’t use even slightly obscure languages.
- throwaway8689 3y agoThere have been a few products like this announced recently and they all have intro level examples on the home page. Can yours deal with things like entity-attribute-value model tables?
- Dennizz 3y agoNo, currently it doesn't. This is a case where it could help to give the AI some example values of the actual data. The same applies for e.g. JSON fields. I've been thinking about ways to make it possible for users to easily provide examples to the AI. Essentially that would mean selectively giving access for specific rows/columns to the AI.
- endorphine 3y agoHow come you didn't use ChatGPT 4?
- Dennizz 3y agoI'd like to use it eventually but as of now API usage is too limited.
- juujian 3y agoQuick question out of curiosity: how do you handle the token limit of ChatGPT?
- Dennizz 3y agoRight now it's pretty simple: First I drop the table/column information if the token limit gets exceeded otherwise (this is shown as a warning in the UI). Then if the limit still gets exceeded, the I show an error to the user. I plan to make this process more smart eventually.
- ShadowBanThis01 3y agoDoes this use a common ChatGPT account, or do users have to sign up themselves? I find it depressing that so many people are willing to give their phone number to OpenAI. FYI, there are a couple of typos on your homepage: "It allows you to easily run SQL queries on a variaty of file formats" "Combine the two, and you get a straigtforward way" Good luck with the project!
- Dennizz 3y agoThank you! It does use one common OpenAI AI account. Thanks for the hints, typos should be fixed now.
- ShadowBanThis01 3y agoWelcome! Thanks for the info.
- suddenclarity 3y agoDo you worry about phone numbers in the sense that it allows OpenAI to match data input with a person? Because at least in my country most phone numbers are public info available online together with our social security numbers, so it's already "shared".
- ShadowBanThis01 3y agoNo. I worry about it being used to spam my cell phone. I don't give that number out to Web sites or any other suspect parties. For that, I have a Google Voice number... which OpenAI refuses to accept. So they can lump it, along with their bogus "open" name.
- alexandargyurov 3y agoDoesn't seem to work with a Supabase Postgres DB.
- kiwicopple 3y agofwiw, there is an OpenAI assistant built into the Supabase dashboard now - https://supabase.com/blog/supabase-studio-2.0#supabase-ai--assisted-database-development https://supabase.com/blog/supabase-studio-2.0#supabase-ai--a...
- Dennizz 3y agoThanks for reporting. I'll have a look what's missing.
- Dennizz 3y agoI just pushed a new release. It should work now! To install the new version, just restart the app. It should then prompt you to install the update.
- la64710 3y agoCool can I use LLama or BERT with it?
- Dennizz 3y agoIt's GPT-3.5 only so far but I might add additional models at some point.
- gomezjdaniel 3y agoWhich language did you use to code the application?
- Dennizz 3y agoTypescript and Rust, with SvelteKit and Tauri.
- tejinderss 3y agoDo you mind telling where and why are you using rust?
- Closi 3y agoConsidering it is a one-time payment, it would be nice if I could use my own API key. Although you call it a "no-tricks pricing" model, a 'one time lifetime license' for a product that I can't use the key feature of without a subscription after a year isn't a 'no-tricks pricing model'. Unless I am misunderstanding? Although the product looks great - just maybe needs the words changing and making it clear what capabilities don't require the subscription. Might even be better removing the term "no-tricks pricing model" too, because if anything the license model is a bit more tricksy and more ambiguous compared to most other applications imho.
- Dennizz 3y agoThat's fair. The "no-tricks pricing" wording was taken 1-to-1 from the UI template I used :) I'll update the copy, and try to explain the pricing model more clearly. Also a good idea to make it possible to use one's own API key. I'll consider that.
- httpjames 3y ago[dead]
- jonaldomo 3y agoHave you looked into having the AI assistant parse through the explain output and recommend changes to database structure?
- Dennizz 3y agoNot yet but I have it in my list of TODOs!
- numerousEnt 3y agoOut of curiosity - do you think users/companies would feel secure knowing that the app uses a common API key?
- Dennizz 3y agoIf you mean the common OpenAI API key, I'm not sure how that's different in regards to feeling secure compared to separate keys. Would you mind elaborating further, please? To clarify, the common API key is known only by my server, not by the app!