mishig HF staff commited on
Commit
a8ce6ad
·
1 Parent(s): b66817e
src/lib/components/InferencePlayground/InferencePlayground.svelte CHANGED
@@ -8,7 +8,6 @@
8
  import GenerationConfig from './InferencePlaygroundGenerationConfig.svelte';
9
  import HFTokenModal from './InferencePlaygroundHFTokenModal.svelte';
10
  import ModelSelector from './InferencePlaygroundModelSelector.svelte';
11
- import ModelPickerModal from './InferencePlaygroundModelPickerModal.svelte';
12
  import Conversation from './InferencePlaygroundConversation.svelte';
13
  import { onDestroy } from 'svelte';
14
  import { type ChatCompletionInputMessage } from '@huggingface/tasks';
@@ -33,7 +32,6 @@
33
  let hfToken: string | undefined = import.meta.env.VITE_HF_TOKEN;
34
  let viewCode = false;
35
  let showTokenModal = false;
36
- let showModelPickerModal = false;
37
  let loading = false;
38
  let latency = 0;
39
  let abortController: AbortController | undefined = undefined;
@@ -134,14 +132,6 @@
134
  submit();
135
  }
136
  }
137
-
138
- function changeModel(modelId: string) {
139
- const model = models.find((m) => m.id === modelId);
140
- if (!model) {
141
- return;
142
- }
143
- conversation.model = model;
144
- }
145
  </script>
146
 
147
  {#if showTokenModal}
@@ -156,14 +146,6 @@
156
  />
157
  {/if}
158
 
159
- {#if showModelPickerModal}
160
- <ModelPickerModal
161
- {models}
162
- on:modelSelected={(e) => changeModel(e.detail)}
163
- on:close={(e) => (showModelPickerModal = false)}
164
- />
165
- {/if}
166
-
167
  <!-- svelte-ignore a11y-no-static-element-interactions -->
168
  <div
169
  class="w-dvh grid divide-gray-200 overflow-hidden bg-gray-100/50 max-md:divide-y md:h-dvh md:grid-cols-[clamp(220px,20%,350px),minmax(0,1fr),clamp(270px,25%,300px)] dark:divide-gray-800 dark:bg-gray-900 dark:text-gray-300 dark:[color-scheme:dark]"
@@ -270,7 +252,7 @@
270
  <div
271
  class="flex flex-1 flex-col gap-6 overflow-y-hidden rounded-xl border border-gray-200/80 bg-gradient-to-b from-white via-white p-3 shadow-sm dark:border-white/5 dark:from-gray-800/40 dark:via-gray-800/40"
272
  >
273
- <ModelSelector {models} bind:conversation on:click={() => (showModelPickerModal = open)} />
274
 
275
  <GenerationConfig bind:conversation />
276
  <div class="mt-auto">
 
8
  import GenerationConfig from './InferencePlaygroundGenerationConfig.svelte';
9
  import HFTokenModal from './InferencePlaygroundHFTokenModal.svelte';
10
  import ModelSelector from './InferencePlaygroundModelSelector.svelte';
 
11
  import Conversation from './InferencePlaygroundConversation.svelte';
12
  import { onDestroy } from 'svelte';
13
  import { type ChatCompletionInputMessage } from '@huggingface/tasks';
 
32
  let hfToken: string | undefined = import.meta.env.VITE_HF_TOKEN;
33
  let viewCode = false;
34
  let showTokenModal = false;
 
35
  let loading = false;
36
  let latency = 0;
37
  let abortController: AbortController | undefined = undefined;
 
132
  submit();
133
  }
134
  }
 
 
 
 
 
 
 
 
135
  </script>
136
 
137
  {#if showTokenModal}
 
146
  />
147
  {/if}
148
 
 
 
 
 
 
 
 
 
149
  <!-- svelte-ignore a11y-no-static-element-interactions -->
150
  <div
151
  class="w-dvh grid divide-gray-200 overflow-hidden bg-gray-100/50 max-md:divide-y md:h-dvh md:grid-cols-[clamp(220px,20%,350px),minmax(0,1fr),clamp(270px,25%,300px)] dark:divide-gray-800 dark:bg-gray-900 dark:text-gray-300 dark:[color-scheme:dark]"
 
252
  <div
253
  class="flex flex-1 flex-col gap-6 overflow-y-hidden rounded-xl border border-gray-200/80 bg-gradient-to-b from-white via-white p-3 shadow-sm dark:border-white/5 dark:from-gray-800/40 dark:via-gray-800/40"
254
  >
255
+ <ModelSelector {models} bind:conversation />
256
 
257
  <GenerationConfig bind:conversation />
258
  <div class="mt-auto">
src/lib/components/InferencePlayground/InferencePlaygroundModelSelector.svelte CHANGED
@@ -1,10 +1,13 @@
1
  <script lang="ts">
2
  import type { Conversation, ModelEntryWithTokenizer } from '$lib/types';
3
  import IconCaret from '../Icons/IconCaret.svelte';
 
4
 
5
  export let models: ModelEntryWithTokenizer[] = [];
6
  export let conversation: Conversation;
7
 
 
 
8
  async function getAvatarUrl(orgName: string) {
9
  const url = `https://huggingface.co/api/organizations/${orgName}/avatar`;
10
  const res = await fetch(url);
@@ -17,9 +20,25 @@
17
  return avatarUrl;
18
  }
19
 
 
 
 
 
 
 
 
 
20
  $: [nameSpace, modelName] = conversation.model.id.split('/');
21
  </script>
22
 
 
 
 
 
 
 
 
 
23
  <div class="flex flex-col gap-2">
24
  <label
25
  for="countries"
@@ -29,7 +48,7 @@
29
 
30
  <button
31
  class="flex items-center justify-between gap-6 overflow-hidden whitespace-nowrap rounded-lg border bg-gray-100/80 px-3 py-1.5 leading-tight shadow dark:bg-gray-700"
32
- on:click
33
  >
34
  <div class="flex flex-col items-start">
35
  <div class="flex items-center gap-1 text-sm text-gray-500 dark:text-gray-300">
 
1
  <script lang="ts">
2
  import type { Conversation, ModelEntryWithTokenizer } from '$lib/types';
3
  import IconCaret from '../Icons/IconCaret.svelte';
4
+ import ModelPickerModal from './InferencePlaygroundModelPickerModal.svelte';
5
 
6
  export let models: ModelEntryWithTokenizer[] = [];
7
  export let conversation: Conversation;
8
 
9
+ let showModelPickerModal = false;
10
+
11
  async function getAvatarUrl(orgName: string) {
12
  const url = `https://huggingface.co/api/organizations/${orgName}/avatar`;
13
  const res = await fetch(url);
 
20
  return avatarUrl;
21
  }
22
 
23
+ function changeModel(modelId: string) {
24
+ const model = models.find((m) => m.id === modelId);
25
+ if (!model) {
26
+ return;
27
+ }
28
+ conversation.model = model;
29
+ }
30
+
31
  $: [nameSpace, modelName] = conversation.model.id.split('/');
32
  </script>
33
 
34
+ {#if showModelPickerModal}
35
+ <ModelPickerModal
36
+ {models}
37
+ on:modelSelected={(e) => changeModel(e.detail)}
38
+ on:close={(e) => (showModelPickerModal = false)}
39
+ />
40
+ {/if}
41
+
42
  <div class="flex flex-col gap-2">
43
  <label
44
  for="countries"
 
48
 
49
  <button
50
  class="flex items-center justify-between gap-6 overflow-hidden whitespace-nowrap rounded-lg border bg-gray-100/80 px-3 py-1.5 leading-tight shadow dark:bg-gray-700"
51
+ on:click={() => (showModelPickerModal = true)}
52
  >
53
  <div class="flex flex-col items-start">
54
  <div class="flex items-center gap-1 text-sm text-gray-500 dark:text-gray-300">