Launch HN: Baseplate (YC W23) – Back end-as-a-service for LLM apps
Most LLM apps can be built by properly integrating LLMs with a knowledge base consisting of domain-specific or company-specific data. The scope of this knowledge base can change based on the task- it can be something as narrow and static as your API docs or as broad and fluid as meeting transcripts from your customer support calls.
To effectively use their data, most teams need to build a similar stack—datasource integrations, async embedding jobs, vector databases, bucket storage for non textual data, a way to version prompts, and potentially an additional database for the text data. Baseplate provides much of the backend for you through simple APIs, so you can focus on building your core product and less on building common infra.
At my previous role at Google X, I worked on building data infrastructure for geospatial data pipelines and knowledge graphs. One of my projects was to integrate knowledge graph triples with LaMDA, and I discovered the need for LLM tooling after using one of Google's initial prompt chaining tools. Ani was a PM at Logitech, shipping products in their Computer Vision team, and at the same time building side projects with GPT-3.
The core of Baseplate is our simplified multimodal database, which allows you to store text, embeddings, data, and metadata in one place. Through a spreadsheet-style interface, you can edit your vectors and metadata (which is surprisingly complex with existing tools), and add images that can be returned at query time. Users can choose between standard semantic search or hybrid search (weighted keywords/semantics for larger, more technical datasets). Hybrid search on Baseplate utilizes two open-source models that can be tuned for your use case (instructor & SPLADE). Datasets are organized into documents, which you can keep in sync through our API or through the UI (this way you can keep your datasets fresh when ingesting data from Google Drive/Notion/ etc).
After your datasets are set up, we have an App Builder where you can iterate on prompts with input variables, and create context variables that pull directly from a dataset at query time. We give you all the knobs and dials, so that you can configure exactly how your search is performed and how it is integrated with your prompt.
When you're satisfied with an app configuration, you deploy it to an endpoint. All you need is a single API call and we'll pull from one (or multiple) datasets in your app and inject the text into the prompt. We also return all the search results in the API response, so you can build a custom UX around images or links in your dataset. Endpoints have built in utilities for human feedback and logging. With GPT-4 being able to take images as input, we will soon be working on a way to pipe images from your dataset directly to the model. And all of these tools are in a team workspace, where you can quickly iterate and build together.
We just started offering self-serve sign up, and our pricing is currently $35/month per user for our Pro plan and $500/team on our Team plan. Feel free to sign up and poke around. We'd love to hear feedback from the community, and look forward to your comments!
109 comments
[ 0.38 ms ] story [ 289 ms ] threadIf I understand correctly, I'd need to store all the data that may be needed for user queries in Baseplate. That's a blocker for us. Instead, we are developing prompts that first understand what data is relevant to a particular query, then go fetch that data, and then respond to the query (with an additional call to OpenAI). We then discard the context data.
Is this type of mechanism something you are seeing out there and you may support later?
That last one is up on github at https://github.com/rambling-ai/support-rip) if anyone wants to use a similar bare bones starter project for an llm
I’ve definitely thought about how useful a “‘prompt as a startup’ as a service” platform would be, cool to see folks working on it.
> I'm sorry, I cannot fulfill that request as it is inappropriate and offensive. I am programmed to provide appropriate and respectful responses.
Even though I confirmed that I’m old enough.
Before my tweaks it was really sensitive to this. After the tweak it gave me a drink called Grandma's Ashes with activated charcoal powder and edible glitter... that felt like a triumph :)
Anyone know another way, maybe via the API, to down-regulate the censorship?
Current prompt looks like this:
A messenger which you type what you want into, and it translates it into friendly-speak before sending it to (your mom/your ex/your coworker)
Just give me 2% of the sale price once you sell out to google or WhatsApp or whatever
https://news.ycombinator.com/item?id=35012835
Would me nice if there were an option to show the volumes in ml instead of oz.
Do you have any ideas/plans for providing pre-loaded off-the-shelf app configurations, perhaps specialized to a particular task or industry that can then be further tweaked? Or are you committed to a "BYOB" approach?
Anyway, congrats again. Really impressed with what's coming out of this YC class so far.
Your twitter icon links to a bad link with a your domain and a hash before the twitter link
With respect to GPT-4 and image inputs, how do you see search working with such inputs on the platform?
Are you using it to store the embeddings (pgvector)? I'm asking to see where you're differentiating between supabase & pinecone. We get this question often and it's interesting to hear what others are doing and where they feel pgvector isn't appropriate
Yes, I believe it can be done but it requires a bit of work on your side. I'll see if we can come up with a demo and/or postgres extension which handles this for you
https://js.langchain.com/docs/modules/indexes/retrievers/sup...
1. Say I have a blog post 2. I run the blog post through OpenAI embeddings API 3. I save the embeddings to BasePlate w/o knowing much backend stuff 4. I query BasePlate with a user search phrase 5. Ask OpenAI to give me a coherent completion
p.s. congrats on the launch!
But that still doesn't seem to have enough moat regardless.
Under the hood, we've built an orchestration layer that keeps a database, a vector database, and storage in-sync. For the startups we work with, this has to scale to thousands of documents with high throughput.
We're continuing to add more features to make this even better for production use cases: RLS/auth, vector ranking, caching, etc.
Still a work in progress, but excited to build on top of the platform we have now.
Were you all early LLM adopters?
Or is this a brand new idea post-GPT-3?
Or did you pivot from another idea once GPT-3 took off?
Are they really using your nascent product to support their nascent products? What plans are they on?
I feel like this can be "You scratch my back, I'll scratch yours" type of exclusive behavior.
Also the tour doesn't seem to work (and clicking restart tour does nothing)
If you got the sign ups goals you wanted, then ignore, and I'll be happy if you share it with me as it's a good lesson for me to learn here as well. But if you got underwhelming response, you might have missed on an opportunity to really cast a wide net of potential customers. I'm not a data scientist, so I only have a vague idea of what problem you solve, but I will be less likely to send it to my data scientist, compared to a similar product with an un-gated demo / real freemium / reverse trial / time limit trial without a credit card.
I might be completely wrong here, this is just my very humble opinion. If it works for you, then I take my virtual hat off.
I would use this today, but I'm concerned about lock-in. Is it possible to export/import data from baseplate?
Or do I have to wait for GPT-4 expanded contexts to fine-tune with prompts like:
It should be possible to build your own model to do this instead of GPT-4 if you are so inclined. I don't know how the quality would compare but there are various specialized code-specific models already around (and more coming) that work quite well.
BigCode from HuggingFace will be coming soon too.
[1] https://huggingface.co/Salesforce and expand "models" codegen-mono is Python, codegen-multi is multi language I think.
[2] https://carper.ai/diff-models-a-new-way-to-edit-code/
Yes, there is a whole lot of jockeying to be a chokepoint (an artificial barrier between business and customer where even more money can be extracted for minimal service). I can't stand chokepoints, it's kind of like a man-in-the-middle attack on your money.
That being said, "I've created a chokepoint" seems like about 75% of all startups - finding a way to get between customers and something they need, creating a way for their startup to get money for basically delivering something that was already being delivered another way. "We do it better than the other guy" is basically bullshit.
So the cynical part is right - "if I don't get in on this cash grab, someone else will," but it seems like the nature of capitalism, really