diff --git a/packages/pro b/packages/pro index 5b51c2280f..8bcb90edac 160000 --- a/packages/pro +++ b/packages/pro @@ -1 +1 @@ -Subproject commit 5b51c2280fdac90ce26f61cd8fb5ad70f8cfeecf +Subproject commit 8bcb90edac3d44c48eaecf526cedc82418035438 diff --git a/packages/types/src/api/web/global/self.ts b/packages/types/src/api/web/global/self.ts index 9d99a1f1a5..50545adf30 100644 --- a/packages/types/src/api/web/global/self.ts +++ b/packages/types/src/api/web/global/self.ts @@ -1,4 +1,4 @@ -import { License } from "../../../sdk" +import { License, LLMProviderConfig } from "../../../sdk" import { Account, DevInfo, User } from "../../../documents" import { FeatureFlags } from "@budibase/types" @@ -11,6 +11,7 @@ export interface FetchAPIKeyResponse extends DevInfo {} export interface GetGlobalSelfResponse extends User { flags?: FeatureFlags + llm?: Omit account?: Account license: License budibaseAccess: boolean diff --git a/packages/types/src/sdk/ai.ts b/packages/types/src/sdk/ai.ts index 345effa939..09f91d7e2c 100644 --- a/packages/types/src/sdk/ai.ts +++ b/packages/types/src/sdk/ai.ts @@ -1,3 +1,5 @@ +import { AIProvider } from "../documents" + export enum AIOperationEnum { SUMMARISE_TEXT = "SUMMARISE_TEXT", CLEAN_DATA = "CLEAN_DATA", @@ -89,3 +91,13 @@ export type AIColumnSchema = | SentimentAnalysisSchema | PromptSchema | SearchWebSchema + +export interface LLMConfigOptions { + model: string + apiKey: string + measureUsage: boolean +} + +export interface LLMProviderConfig extends LLMConfigOptions { + provider: AIProvider +} diff --git a/packages/worker/src/api/controllers/global/self.ts b/packages/worker/src/api/controllers/global/self.ts index 3464bff88f..8779bb4b0c 100644 --- a/packages/worker/src/api/controllers/global/self.ts +++ b/packages/worker/src/api/controllers/global/self.ts @@ -8,7 +8,7 @@ import { auth as authCore, } from "@budibase/backend-core" import env from "../../../environment" -import { groups } from "@budibase/pro" +import { ai, groups } from "@budibase/pro" import { DevInfo, FetchAPIKeyResponse, @@ -115,11 +115,20 @@ export async function getSelf(ctx: UserCtx) { // add the feature flags for this tenant const flags = await features.flags.fetch() + const llmConfig = await ai.getLLMConfig() + const sanitisedLLMConfig = llmConfig + ? { + provider: llmConfig.provider, + model: llmConfig.model, + measureUsage: llmConfig.measureUsage, + } + : undefined ctx.body = { ...enrichedUser, ...sessionAttributes, flags, + llm: sanitisedLLMConfig, } }