Adds a `modelProvider` field to `promptVariants`, currently just set to "openai/ChatCompletion" for all variants for now. Adds a `modelProviders/` directory where we can define and store pluggable model providers. Currently just OpenAI. Not everything is pluggable yet -- notably the code to actually generate completions hasn't been migrated to this setup yet. Does a lot of work to get the types working. Prompts are now defined with a function `definePrompt(modelProvider, config)` instead of `prompt = config`. Added a script to migrate old prompt definitions. This is still partial work, but the diff is large enough that I want to get it in. I don't think anything is broken but I haven't tested thoroughly.
18 lines
590 B
SQL
18 lines
590 B
SQL
-- Add new columns allowing NULL values
|
|
ALTER TABLE "PromptVariant"
|
|
ADD COLUMN "constructFnVersion" INTEGER,
|
|
ADD COLUMN "modelProvider" TEXT;
|
|
|
|
-- Update existing records to have the default values
|
|
UPDATE "PromptVariant"
|
|
SET "constructFnVersion" = 1,
|
|
"modelProvider" = 'openai/ChatCompletion'
|
|
WHERE "constructFnVersion" IS NULL OR "modelProvider" IS NULL;
|
|
|
|
-- Alter table to set NOT NULL constraint
|
|
ALTER TABLE "PromptVariant"
|
|
ALTER COLUMN "constructFnVersion" SET NOT NULL,
|
|
ALTER COLUMN "modelProvider" SET NOT NULL;
|
|
|
|
ALTER TABLE "ScenarioVariantCell" ADD COLUMN "prompt" JSONB;
|