* Create dataset from request logs * Move drawer expansion logic out of app state * Add empty dataset page * Properly handle zero dataset state * Add DatasetEntriesTable * Open DatasetEntryEditorDrawer on row click * Add editable messages * Change Request Logs link to be a span * Add FunctionCallEditor * Change styling around * Stop logging variant stats after a while * Change FunctionCallEditor widths * Record input tokens even on errored calls * Allow user to add messages * Allow changing from empty text to function call * Fix some data layout issues * Default to empty output * Update arguments on blur * Add beta flag to datasets tab * Remove unused import * Save training and testing datasets on fine tune * Add DatasetEntryType * Condense migrations * Add index to datasetEntry * Add datasetEntry index * Fix types * Enable scrolling beyond last line in VariantEditor * Divide new dataset entries exactly along training/testing ratio
29 lines
888 B
TypeScript
29 lines
888 B
TypeScript
import { type SliceCreator } from "./store";
|
|
|
|
export type SelectedLogsSlice = {
|
|
selectedLogIds: Set<string>;
|
|
toggleSelectedLogId: (id: string) => void;
|
|
addSelectedLogIds: (ids: string[]) => void;
|
|
clearSelectedLogIds: () => void;
|
|
};
|
|
|
|
export const createSelectedLogsSlice: SliceCreator<SelectedLogsSlice> = (set) => ({
|
|
selectedLogIds: new Set(),
|
|
toggleSelectedLogId: (id: string) =>
|
|
set((state) => {
|
|
if (state.selectedLogs.selectedLogIds.has(id)) {
|
|
state.selectedLogs.selectedLogIds.delete(id);
|
|
} else {
|
|
state.selectedLogs.selectedLogIds.add(id);
|
|
}
|
|
}),
|
|
addSelectedLogIds: (ids: string[]) =>
|
|
set((state) => {
|
|
state.selectedLogs.selectedLogIds = new Set([...state.selectedLogs.selectedLogIds, ...ids]);
|
|
}),
|
|
clearSelectedLogIds: () =>
|
|
set((state) => {
|
|
state.selectedLogs.selectedLogIds = new Set();
|
|
}),
|
|
});
|