-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Budi 8677 ai column type v1 #14711
Budi 8677 ai column type v1 #14711
Conversation
packages/builder/src/components/common/AIFieldConfiguration.svelte
Outdated
Show resolved
Hide resolved
packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
Outdated
Show resolved
Hide resolved
74f463a
to
cf8f7db
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good - would it be possible to get test cases for search.spec.ts
to make sure the column is searchable, as well as a test case to row.spec.ts
which makes sure that the column can be added/updated on a row as expected? We may have to mock the LLM in these cases, but it would be good to confirm this flows correctly in these test cases.
We have test cases in these which use something like isSqs && describe(....
to make sure the test case only runs for internal DB.
Doing a thorough review now, but the first snag I hit after generating a license to test this is that attempting to save a row (in a random table with no AI columns) threw an error Edit: what's the correct way to get AI up and running? The default Budibase AI config is present and enabled but can't be configured, and I've tried adding the |
@aptkingston This happens because the license generation on self host/dev env gives all the features - including Budibase AI (the cloud config) and custom configs. So it assumes you have the cloud config switched on, and tries to go to OpenAI. If you add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome work @shogunpurple 👌 great to see our first proper AI features.
One small improvement I think we should make is highlighting that AI cells are readonly in grids. We have a function in stores/columns.js
called isReadonly
that we use today to make things like formula cells readonly. So I think we should add the AI type in there too, and then it'll reflect its readonly nature properly by having a grey border.
When filtering on AI column in the design section it seems to bug out a little (the value field is disabled for some reason):
Maybe it's just not being considered as a searchable type properly? Haven't dug into the code to see why though.
The "generate AI columns" functionality is missing in client apps (maybe by design?) since the licensing value isn't being passed in. Not sure if we want to expose that or not though.
packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
Outdated
Show resolved
Hide resolved
@aptkingston thanks for the review - they have all been addressed, some nice catches there 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Description
This PR contains the new budibase AI column - a new column type that allows you to specify a function to be carried out by an LLM, pass in some of your row data, and have the LLM write the prompt into the Budibase DB. The AI functions Budibase provides are as follows:
AI columns are generated when you save a new row, edit it, or use the right click context menu to generate the columns for a previously saved row.
Pro PR: https://github.com/Budibase/budibase-pro/pull/322
Addresses
Screenshots
Launchcontrol
The budibase AI column allows you to perform LLM operations over your data - summarise text, run translations, perform sentiment analysis and much more simply by creating an AI column and saving/editing your data. You can also generate data from rows saved previously by right clicking and using the "Generate AI Columns" functionality on your row.