From 4718fe55ba12182271a4480b9dcc5a66573c05db Mon Sep 17 00:00:00 2001 From: Ian Arawjo Date: Thu, 19 Dec 2024 15:20:32 -0500 Subject: [PATCH] Fix bugs. Change OpenAI small model for GenAI features to GPT-4o. --- chainforge/react-server/src/AiPopover.tsx | 47 ++++++------ .../react-server/src/GlobalSettingsModal.tsx | 2 +- .../react-server/src/TabularDataNode.tsx | 14 ++-- chainforge/react-server/src/backend/ai.ts | 71 ++++++++++--------- .../react-server/src/backend/tableUtils.ts | 1 - 5 files changed, 74 insertions(+), 61 deletions(-) diff --git a/chainforge/react-server/src/AiPopover.tsx b/chainforge/react-server/src/AiPopover.tsx index 323dee8..4984a30 100644 --- a/chainforge/react-server/src/AiPopover.tsx +++ b/chainforge/react-server/src/AiPopover.tsx @@ -11,6 +11,7 @@ import { Textarea, Alert, Divider, + Tooltip, } from "@mantine/core"; import { autofill, @@ -239,6 +240,8 @@ export function AIPopover({ export interface AIGenReplaceTablePopoverProps { // Values in the rows of the table's columns values: TabularDataRowType[]; + // Names of the table's columns + colValues: TabularDataColType[]; // Function to add new rows onAddRows: (newRows: TabularDataRowType[]) => void; // Function to replace the table @@ -262,6 +265,7 @@ export interface AIGenReplaceTablePopoverProps { */ export function AIGenReplaceTablePopover({ values, + colValues, onAddRows, onReplaceTable, onAddColumns, @@ -276,12 +280,12 @@ export function AIGenReplaceTablePopover({ const showAlert = useContext(AlertModalContext); // Command Fill state - const [commandFillNumber, setCommandFillNumber] = useState(3); + const [commandFillNumber, setCommandFillNumber] = useState(5); const [isCommandFillLoading, setIsCommandFillLoading] = useState(false); const [didCommandFillError, setDidCommandFillError] = useState(false); // Generate and Replace state - const [generateAndReplaceNumber, setGenerateAndReplaceNumber] = useState(3); + const [generateAndReplaceNumber, setGenerateAndReplaceNumber] = useState(5); const [generateAndReplacePrompt, setGenerateAndReplacePrompt] = useState(""); const [genDiverseOutputs, setGenDiverseOutputs] = useState(false); const [didGenerateAndReplaceTableError, setDidGenerateAndReplaceTableError] = @@ -360,9 +364,7 @@ export function AIGenReplaceTablePopover({ try { // Extract columns from the values, excluding the __uid column - const tableColumns = Object.keys(values[0] || {}).filter( - (col) => col !== "__uid", - ); + const tableColumns = colValues.map((col) => col.key); // Extract rows as strings, excluding the __uid column and handling empty rows const tableRows = values @@ -410,9 +412,7 @@ export function AIGenReplaceTablePopover({ try { // Extract columns from the values, excluding the __uid column - const tableColumns = Object.keys(values[0] || {}).filter( - (col) => col !== "__uid", - ); + const tableColumns = colValues; // Extract rows as strings, excluding the __uid column and handling empty rows const lastRow = values[values.length - 1]; // Get the last row @@ -420,13 +420,14 @@ export function AIGenReplaceTablePopover({ const tableRows = values .slice(0, emptyLastRow ? -1 : values.length) .map((row) => - tableColumns.map((col) => row[col]?.trim() || "").join(" | "), + tableColumns.map((col) => row[col.key]?.trim() || "").join(" | "), ); const tableInput = { cols: tableColumns, rows: tableRows, }; + // Fetch the generated column const generatedColumn = await generateColumn( tableInput, @@ -497,17 +498,23 @@ export function AIGenReplaceTablePopover({ value={generateColumnPrompt} onChange={(e) => setGenerateColumnPrompt(e.currentTarget.value)} /> - + + ); @@ -526,7 +533,7 @@ export function AIGenReplaceTablePopover({ setGenerateAndReplaceNumber(num || 1)} /> diff --git a/chainforge/react-server/src/GlobalSettingsModal.tsx b/chainforge/react-server/src/GlobalSettingsModal.tsx index 5c5275b..da163f2 100644 --- a/chainforge/react-server/src/GlobalSettingsModal.tsx +++ b/chainforge/react-server/src/GlobalSettingsModal.tsx @@ -518,7 +518,7 @@ const GlobalSettingsModal = forwardRef( />