diff --git a/src/lib/components/Ai/ChangeModelBox.svelte b/src/lib/components/Ai/ChangeModelBox.svelte new file mode 100644 index 0000000..a4301e9 --- /dev/null +++ b/src/lib/components/Ai/ChangeModelBox.svelte @@ -0,0 +1,120 @@ + + +
+ +
+ + diff --git a/src/lib/components/Ai/Chat.svelte b/src/lib/components/Ai/Chat.svelte index 467b0b6..5e691f8 100644 --- a/src/lib/components/Ai/Chat.svelte +++ b/src/lib/components/Ai/Chat.svelte @@ -2,12 +2,13 @@ import { autoresize } from '$lib/actions/autoresize.svelte'; import { scroll_to_bottom } from '$lib/actions/scrollToBottom.svelte'; import Select from '$lib/components/Select.svelte'; + import ChevronDown from '$lib/icons/ChevronDown.svelte'; import CircleStack from '$lib/icons/CircleStack.svelte'; import CircleStopSolid from '$lib/icons/CircleStopSolid.svelte'; import Plus from '$lib/icons/Plus.svelte'; import { getTextFromElement, transform } from '$lib/markdown'; import type { Table } from '$lib/olap-engine'; - import { deserializeModel, serializeModel } from '.'; + import ChangeModelBox from './ChangeModelBox.svelte'; import DatasetsBox from './DatasetsBox.svelte'; import Loader from './Loader.svelte'; import type { ChatInput, ChatOutput, Model } from './types'; @@ -37,11 +38,11 @@ let loading = $state(false); let submitter = $state(); let message = $state(''); - let select = $state>(); + let datasetSelectbox = $state>(); let textarea = $state(); let abortController: AbortController | undefined; let chatMessages = $derived(messages.filter((m) => m.role === 'user' || m.role === 'assistant')); - let modelsOptions = $derived(Object.entries(Object.groupBy(models, (item) => item.brand))); + let modelSelectbox = $state>(); function getContextFromTable(table: Table): string { const columns = table.columns.map((col) => `- ${col.name} (${col.type})`).join('\n'); @@ -195,38 +196,47 @@
- - - ( - select?.close(), abortController?.abort('Context changed'), onClearConversation?.() + datasetSelectbox?.close(), + abortController?.abort('Context changed'), + onClearConversation?.() )} bind:dataset /> - + {selectedModel.name} + {#if models.length > 1} + + {/if} + + {#if loading}