forked from open-webui/open-webui
		
	feat: modelfile builder
This commit is contained in:
		
							parent
							
								
									1c0cc16f8c
								
							
						
					
					
						commit
						45ff3ae204
					
				
					 5 changed files with 640 additions and 105 deletions
				
			
		| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
			<div class=" w-20 text-xs font-medium self-center">Seed</div>
 | 
			
		||||
			<div class=" flex-1 self-center">
 | 
			
		||||
				<input
 | 
			
		||||
					class="w-full rounded py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-800 outline-none border border-gray-600"
 | 
			
		||||
					class="w-full rounded py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-800 outline-none border border-gray-100 dark:border-gray-600"
 | 
			
		||||
					type="number"
 | 
			
		||||
					placeholder="Enter Seed"
 | 
			
		||||
					bind:value={options.seed}
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
			<div class=" w-20 text-xs font-medium self-center">Stop Sequence</div>
 | 
			
		||||
			<div class=" flex-1 self-center">
 | 
			
		||||
				<input
 | 
			
		||||
					class="w-full rounded py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-800 outline-none border border-gray-600"
 | 
			
		||||
					class="w-full rounded py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-800 outline-none border border-gray-100 dark:border-gray-600"
 | 
			
		||||
					type="text"
 | 
			
		||||
					placeholder="Enter Stop Sequence"
 | 
			
		||||
					bind:value={options.stop}
 | 
			
		||||
| 
						 | 
				
			
			@ -84,7 +84,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.temperature}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -127,7 +127,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.mirostat}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -170,7 +170,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.mirostat_eta}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -213,7 +213,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.mirostat_tau}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -256,7 +256,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.top_k}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -299,7 +299,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.top_p}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -342,7 +342,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.repeat_penalty}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -385,7 +385,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.repeat_last_n}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -428,7 +428,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.tfs_z}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-10"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -471,7 +471,7 @@
 | 
			
		|||
					<input
 | 
			
		||||
						bind:value={options.num_ctx}
 | 
			
		||||
						type="number"
 | 
			
		||||
						class=" bg-transparent text-center w-16"
 | 
			
		||||
						class=" bg-transparent text-center w-14"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,7 @@
 | 
			
		|||
 | 
			
		||||
	let showDropdown = false;
 | 
			
		||||
 | 
			
		||||
  let showDeleteHistoryConfirm = false;
 | 
			
		||||
	let showDeleteHistoryConfirm = false;
 | 
			
		||||
 | 
			
		||||
	onMount(async () => {
 | 
			
		||||
		if (window.innerWidth > 1280) {
 | 
			
		||||
| 
						 | 
				
			
			@ -121,11 +121,11 @@
 | 
			
		|||
			</button>
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		<!-- <div class="px-2.5 flex justify-center my-1">
 | 
			
		||||
		<div class="px-2.5 flex justify-center my-1">
 | 
			
		||||
			<button
 | 
			
		||||
				class="flex-grow flex space-x-3 rounded-md px-3 py-2 hover:bg-gray-900 transition"
 | 
			
		||||
				on:click={async () => {
 | 
			
		||||
					goto('/presets');
 | 
			
		||||
					goto('/modelfiles');
 | 
			
		||||
				}}
 | 
			
		||||
			>
 | 
			
		||||
				<div class="self-center">
 | 
			
		||||
| 
						 | 
				
			
			@ -146,10 +146,10 @@
 | 
			
		|||
				</div>
 | 
			
		||||
 | 
			
		||||
				<div class="flex self-center">
 | 
			
		||||
					<div class=" self-center font-medium text-sm">Presets</div>
 | 
			
		||||
					<div class=" self-center font-medium text-sm">Modelfiles</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			</button>
 | 
			
		||||
		</div> -->
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		<div class="px-2.5 mt-1 mb-2 flex justify-center space-x-2">
 | 
			
		||||
			<div class="flex w-full">
 | 
			
		||||
| 
						 | 
				
			
			@ -449,91 +449,92 @@
 | 
			
		|||
						<div class=" self-center">Export</div>
 | 
			
		||||
					</button>
 | 
			
		||||
				</div>
 | 
			
		||||
        {#if showDeleteHistoryConfirm}
 | 
			
		||||
          <div class="flex justify-between rounded-md items-center py-3 px-3.5 w-full transition">
 | 
			
		||||
            <div class="flex items-center">
 | 
			
		||||
              <svg 
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                fill="none"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                stroke-width="1.5"
 | 
			
		||||
                stroke="currentColor"
 | 
			
		||||
                class="w-5 h-5 mr-3"
 | 
			
		||||
              >
 | 
			
		||||
                <path
 | 
			
		||||
                  stroke-linecap="round"
 | 
			
		||||
                  stroke-linejoin="round"
 | 
			
		||||
                  d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"
 | 
			
		||||
                />
 | 
			
		||||
              </svg>
 | 
			
		||||
              <span>Are you sure?</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            
 | 
			
		||||
            <div class="flex space-x-1.5 items-center">
 | 
			
		||||
              <button
 | 
			
		||||
                class="hover:text-white transition"
 | 
			
		||||
                on:click={() => {
 | 
			
		||||
                  deleteChatHistory();
 | 
			
		||||
                  showDeleteHistoryConfirm = false;
 | 
			
		||||
                }}
 | 
			
		||||
              >
 | 
			
		||||
                <svg
 | 
			
		||||
                  xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                  viewBox="0 0 20 20"
 | 
			
		||||
                  fill="currentColor"
 | 
			
		||||
                  class="w-4 h-4"
 | 
			
		||||
                >
 | 
			
		||||
                  <path
 | 
			
		||||
                    fill-rule="evenodd"
 | 
			
		||||
                    d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
 | 
			
		||||
                    clip-rule="evenodd"
 | 
			
		||||
                  />
 | 
			
		||||
                </svg>
 | 
			
		||||
              </button>
 | 
			
		||||
              <button
 | 
			
		||||
                class="hover:text-white transition"
 | 
			
		||||
                on:click={() => {
 | 
			
		||||
                  showDeleteHistoryConfirm = false;
 | 
			
		||||
                }}
 | 
			
		||||
              >
 | 
			
		||||
                <svg
 | 
			
		||||
                  xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                  viewBox="0 0 20 20"
 | 
			
		||||
                  fill="currentColor"
 | 
			
		||||
                  class="w-4 h-4"
 | 
			
		||||
                >
 | 
			
		||||
                  <path
 | 
			
		||||
                    d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
 | 
			
		||||
                  />
 | 
			
		||||
                </svg>
 | 
			
		||||
              </button>
 | 
			
		||||
            </div> 
 | 
			
		||||
          </div>
 | 
			
		||||
        {:else}
 | 
			
		||||
          <button
 | 
			
		||||
					class=" flex rounded-md py-3 px-3.5 w-full hover:bg-gray-900 transition"
 | 
			
		||||
					on:click={() => {
 | 
			
		||||
            showDeleteHistoryConfirm = true;
 | 
			
		||||
					}}>
 | 
			
		||||
            <div class="mr-3">
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                fill="none"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                stroke-width="1.5"
 | 
			
		||||
                stroke="currentColor"
 | 
			
		||||
                class="w-5 h-5"
 | 
			
		||||
              >
 | 
			
		||||
                <path
 | 
			
		||||
                  stroke-linecap="round"
 | 
			
		||||
                  stroke-linejoin="round"
 | 
			
		||||
                  d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"
 | 
			
		||||
                />
 | 
			
		||||
              </svg>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span>Clear conversations</span>
 | 
			
		||||
				</button>
 | 
			
		||||
        {/if}
 | 
			
		||||
				{#if showDeleteHistoryConfirm}
 | 
			
		||||
					<div class="flex justify-between rounded-md items-center py-3 px-3.5 w-full transition">
 | 
			
		||||
						<div class="flex items-center">
 | 
			
		||||
							<svg
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								fill="none"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								stroke-width="1.5"
 | 
			
		||||
								stroke="currentColor"
 | 
			
		||||
								class="w-5 h-5 mr-3"
 | 
			
		||||
							>
 | 
			
		||||
								<path
 | 
			
		||||
									stroke-linecap="round"
 | 
			
		||||
									stroke-linejoin="round"
 | 
			
		||||
									d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"
 | 
			
		||||
								/>
 | 
			
		||||
							</svg>
 | 
			
		||||
							<span>Are you sure?</span>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
						<div class="flex space-x-1.5 items-center">
 | 
			
		||||
							<button
 | 
			
		||||
								class="hover:text-white transition"
 | 
			
		||||
								on:click={() => {
 | 
			
		||||
									deleteChatHistory();
 | 
			
		||||
									showDeleteHistoryConfirm = false;
 | 
			
		||||
								}}
 | 
			
		||||
							>
 | 
			
		||||
								<svg
 | 
			
		||||
									xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
									viewBox="0 0 20 20"
 | 
			
		||||
									fill="currentColor"
 | 
			
		||||
									class="w-4 h-4"
 | 
			
		||||
								>
 | 
			
		||||
									<path
 | 
			
		||||
										fill-rule="evenodd"
 | 
			
		||||
										d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
 | 
			
		||||
										clip-rule="evenodd"
 | 
			
		||||
									/>
 | 
			
		||||
								</svg>
 | 
			
		||||
							</button>
 | 
			
		||||
							<button
 | 
			
		||||
								class="hover:text-white transition"
 | 
			
		||||
								on:click={() => {
 | 
			
		||||
									showDeleteHistoryConfirm = false;
 | 
			
		||||
								}}
 | 
			
		||||
							>
 | 
			
		||||
								<svg
 | 
			
		||||
									xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
									viewBox="0 0 20 20"
 | 
			
		||||
									fill="currentColor"
 | 
			
		||||
									class="w-4 h-4"
 | 
			
		||||
								>
 | 
			
		||||
									<path
 | 
			
		||||
										d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
 | 
			
		||||
									/>
 | 
			
		||||
								</svg>
 | 
			
		||||
							</button>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				{:else}
 | 
			
		||||
					<button
 | 
			
		||||
						class=" flex rounded-md py-3 px-3.5 w-full hover:bg-gray-900 transition"
 | 
			
		||||
						on:click={() => {
 | 
			
		||||
							showDeleteHistoryConfirm = true;
 | 
			
		||||
						}}
 | 
			
		||||
					>
 | 
			
		||||
						<div class="mr-3">
 | 
			
		||||
							<svg
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								fill="none"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								stroke-width="1.5"
 | 
			
		||||
								stroke="currentColor"
 | 
			
		||||
								class="w-5 h-5"
 | 
			
		||||
							>
 | 
			
		||||
								<path
 | 
			
		||||
									stroke-linecap="round"
 | 
			
		||||
									stroke-linejoin="round"
 | 
			
		||||
									d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"
 | 
			
		||||
								/>
 | 
			
		||||
							</svg>
 | 
			
		||||
						</div>
 | 
			
		||||
						<span>Clear conversations</span>
 | 
			
		||||
					</button>
 | 
			
		||||
				{/if}
 | 
			
		||||
 | 
			
		||||
				{#if $user !== undefined}
 | 
			
		||||
					<button
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue