Skip to content

Commit

Permalink
Feature: Handling for multiple datasets (#1754)
Browse files Browse the repository at this point in the history
  • Loading branch information
mattprintz authored Aug 23, 2023
1 parent d04444f commit 2bb1a08
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 8 deletions.
6 changes: 4 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ services:
- data-service-port=8000
- model-service-host=model-service
- model-service-port=8888
volumes:
- ./packages/services/hmi-server:/hmi-server/packages/services/hmi-server
terarium-db:
image: postgres:15.1
expose:
Expand All @@ -58,7 +60,7 @@ services:
SQL_PORT: 5432
SQL_USER: dev
SQL_PASSWORD: dev
NEO4J_ENABLED:
NEO4J_ENABLED: true
NEO4J_driver: neo4j://neo4j:7687
AWS_ACCESS_KEY_ID: miniouser
AWS_SECRET_ACCESS_KEY: miniopass
Expand Down Expand Up @@ -176,7 +178,7 @@ services:
- SQL_USER=dev
- SQL_PASSWORD=dev
- SQL_DB=askem
- NEO4J_ENABLED=
- NEO4J_ENABLED=true
- NEO4J_driver=neo4j://neo4j:7687
- AWS_ACCESS_KEY_ID=miniouser
- AWS_SECRET_ACCESS_KEY=miniopass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,13 @@
:jupyter-session="jupyterSession"
:kernel-status="kernelStatus"
:auto-expand-preview="autoExpandPreview"
@update-kernel-state="updateKernelState"
@update-kernel-status="updateKernelStatus"
@new-dataset-saved="onNewDatasetSaved"
@download-response="onDownloadResponse"
/>
<div>
<div v-if="kernelState">
<Dropdown v-model="actionTarget" :options="Object.keys(kernelState || [])" />
<Button
class="save-button p-button p-button-secondary p-button-sm"
title="Saves the current version of df as a new Terarium asset"
Expand Down Expand Up @@ -143,8 +145,10 @@ const props = defineProps<{
const chat = ref();
const kernelStatus = ref(<string>'');
const kernelState = ref(null);
const showKernels = ref(<boolean>false);
const autoExpandPreview = ref(<boolean>true);
const actionTarget = ref('df');
const newCsvContent: any = ref(null);
const newCsvHeader: any = ref(null);
Expand Down Expand Up @@ -231,6 +235,10 @@ onUnmounted(() => {
jupyterSession.shutdown();
});
const updateKernelState = (newKernelState) => {
kernelState.value = newKernelState;
};
// Save file function
const saveAsNewDataset = async () => {
if (!hasValidDatasetName.value || saveAsName.value === null) {
Expand Down Expand Up @@ -258,7 +266,8 @@ const saveAsNewDataset = async () => {
channel: 'shell',
content: {
parent_dataset_id: String(props.assetId),
name: datasetName
name: datasetName,
var_name: actionTarget.value
},
msgType: 'save_dataset_request',
msgId: createMessageId('save_dataset_request')
Expand Down Expand Up @@ -375,7 +384,9 @@ const downloadDataset = () => {
const messageBody = {
session: session?.name || '',
channel: 'shell',
content: {},
content: {
var_name: actionTarget.value
},
msgType: 'download_dataset_request',
msgId: createMessageId('download_dataset_request')
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
:is-executing-code="isExecutingCode"
:show-chat-thoughts="props.showChatThoughts"
:auto-expand-preview="autoExpandPreview"
:default-preview="defaultPreview"
@cell-updated="scrollToLastCell"
@preview-selected="previewSelected"
/>

<!-- Chatty Input -->
Expand Down Expand Up @@ -67,7 +69,8 @@ const emit = defineEmits([
'download-response',
'update-kernel-status',
'new-dataset-saved',
'new-model-saved'
'new-model-saved',
'update-kernel-state'
]);
const props = defineProps<{
Expand All @@ -88,6 +91,7 @@ onMounted(() => {
});
const queryString = ref('');
const defaultPreview = ref('df');
const iopubMessageHandler = (_session, message) => {
if (message.header.msg_type === 'status') {
Expand All @@ -98,6 +102,10 @@ const iopubMessageHandler = (_session, message) => {
newJupyterMessage(message);
};
const previewSelected = (selection) => {
defaultPreview.value = selection;
};
props.jupyterSession.iopubMessage.connect(iopubMessageHandler);
const submitQuery = (inputStr: string | undefined) => {
Expand Down Expand Up @@ -180,11 +188,13 @@ const updateNotebookCells = (message) => {
(msg) => msg.header.msg_type !== 'dataset'
);
notebookItem.resultingCsv = message.content;
emit('update-kernel-state', message.content);
} else if (message.header.msg_type === 'model_preview') {
// If we get a new model preview, remove any old previews
notebookItem.messages = notebookItem.messages.filter(
(msg) => msg.header.msg_type !== 'model_preview'
);
emit('update-kernel-state', message.content);
} else if (message.header.msg_type === 'execute_input') {
const executionParent = message.parent_header.msg_id;
notebookItem.executions.push(executionParent);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,20 @@
"
>
<AccordionTab header="Preview (click to collapse/expand)">
<div>
Dataset to preview:
<Dropdown
v-model="selectedPreviewDataset"
:options="Object.keys(m.content).map(String)"
@change="previewSelected"
/>
</div>
<tera-dataset-datatable
v-if="m.header.msg_type === 'dataset'"
class="tera-dataset-datatable"
paginatorPosition="bottom"
:rows="10"
:raw-content="(m.content as CsvAsset)"
:raw-content="(m.content[(selectedPreviewDataset || 'df')] as CsvAsset)"
:preview-mode="true"
:showGridlines="true"
table-style="width: 100%; font-size: small;"
Expand All @@ -95,6 +103,7 @@ import { JupyterMessage } from '@/services/jupyter';
import { SessionContext } from '@jupyterlab/apputils';
import Accordion from 'primevue/accordion';
import AccordionTab from 'primevue/accordiontab';
import Dropdown from 'primevue/dropdown';
import TeraChattyCodeCell from '@/components/llm/tera-chatty-response-code-cell.vue';
import TeraJupyterResponseThought from '@/components/llm/tera-chatty-response-thought.vue';
import Button from 'primevue/button';
Expand All @@ -103,7 +112,7 @@ import { ref, computed, onMounted, watch } from 'vue';
import { CsvAsset } from '@/types/Types';
import TeraDatasetDatatable from '@/components/dataset/tera-dataset-datatable.vue';
const emit = defineEmits(['cell-updated']);
const emit = defineEmits(['cell-updated', 'preview-selected', 'update-kernel-state']);
const props = defineProps<{
jupyterSession: SessionContext;
Expand All @@ -118,10 +127,12 @@ const props = defineProps<{
isExecutingCode: boolean;
assetId?: string;
autoExpandPreview?: boolean;
defaultPreview?: string;
}>();
const codeCell = ref(null);
const resp = ref(<HTMLElement | null>null);
const selectedPreviewDataset = ref(props.defaultPreview);
// Reference for showThought, initially set to false
const showThought = ref(false);
Expand Down Expand Up @@ -150,6 +161,10 @@ const chatWindowMenuItems = ref([
{ label: 'Delete', icon: 'pi pi-fw pi-trash', command: () => console.log('Delete prompt') }
]);
const previewSelected = () => {
emit('preview-selected', selectedPreviewDataset.value);
};
// show the chat window menu
const showChatWindowMenu = (event: Event) => chatWindowMenu.value.toggle(event);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
:jupyter-session="jupyterSession"
:kernel-status="kernelStatus"
:auto-expand-preview="autoExpandPreview"
@update-kernel-state="updateKernelState"
@update-kernel-status="updateKernelStatus"
@new-model-saved="onNewModelSaved"
/>
Expand Down Expand Up @@ -155,6 +156,7 @@ const noSelectionDefault = {
const chat = ref();
const kernelStatus = ref(<string>'');
const kernelState = ref(null);
const showKernels = ref(<boolean>false);
const autoExpandPreview = ref(<boolean>true);
const modelConfigurations = ref(<
Expand Down Expand Up @@ -275,6 +277,10 @@ onUnmounted(() => {
jupyterSession.shutdown();
});
const updateKernelState = (newKernelState) => {
kernelState.value = newKernelState;
};
// Save file function
const saveAsNewModel = async () => {
if (!hasValidDatasetName.value || saveAsName.value === null) {
Expand Down

0 comments on commit 2bb1a08

Please sign in to comment.