Remove linting diff
This commit is contained in:
parent
0571a79886
commit
568c2d16ab
|
@ -1,12 +1,7 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
// import { fetchEventSource } from "@microsoft/fetch-event-source";
|
// import { fetchEventSource } from "@microsoft/fetch-event-source";
|
||||||
|
|
||||||
import {
|
import { apiKeyStorage, chatsStorage, addMessage, clearMessages } from './Storage.svelte'
|
||||||
apiKeyStorage,
|
|
||||||
chatsStorage,
|
|
||||||
addMessage,
|
|
||||||
clearMessages
|
|
||||||
} from './Storage.svelte'
|
|
||||||
import {
|
import {
|
||||||
type Request,
|
type Request,
|
||||||
type Response,
|
type Response,
|
||||||
|
@ -183,14 +178,9 @@
|
||||||
|
|
||||||
// Provide the settings by mapping the settingsMap to key/value pairs
|
// Provide the settings by mapping the settingsMap to key/value pairs
|
||||||
...settingsMap.reduce((acc, setting) => {
|
...settingsMap.reduce((acc, setting) => {
|
||||||
const value = (
|
const value = (settings.querySelector(`#settings-${setting.key}`) as HTMLInputElement).value
|
||||||
settings.querySelector(
|
|
||||||
`#settings-${setting.key}`
|
|
||||||
) as HTMLInputElement
|
|
||||||
).value
|
|
||||||
if (value) {
|
if (value) {
|
||||||
acc[setting.key] =
|
acc[setting.key] = setting.type === 'number' ? parseFloat(value) : value
|
||||||
setting.type === 'number' ? parseFloat(value) : value
|
|
||||||
}
|
}
|
||||||
return acc
|
return acc
|
||||||
}, {})
|
}, {})
|
||||||
|
@ -242,9 +232,7 @@
|
||||||
addMessage(chatId, choice.message)
|
addMessage(chatId, choice.message)
|
||||||
// Use TTS to read the response, if query was recorded
|
// Use TTS to read the response, if query was recorded
|
||||||
if (recorded && 'SpeechSynthesisUtterance' in window) {
|
if (recorded && 'SpeechSynthesisUtterance' in window) {
|
||||||
const utterance = new SpeechSynthesisUtterance(
|
const utterance = new SpeechSynthesisUtterance(choice.message.content)
|
||||||
choice.message.content
|
|
||||||
)
|
|
||||||
window.speechSynthesis.speak(utterance)
|
window.speechSynthesis.speak(utterance)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -278,9 +266,7 @@
|
||||||
const deleteChat = () => {
|
const deleteChat = () => {
|
||||||
if (window.confirm('Are you sure you want to delete this chat?')) {
|
if (window.confirm('Are you sure you want to delete this chat?')) {
|
||||||
replace('/').then(() => {
|
replace('/').then(() => {
|
||||||
chatsStorage.update((chats) =>
|
chatsStorage.update((chats) => chats.filter((chat) => chat.id !== chatId))
|
||||||
chats.filter((chat) => chat.id !== chatId)
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,9 +314,7 @@
|
||||||
|
|
||||||
const clearSettings = () => {
|
const clearSettings = () => {
|
||||||
settingsMap.forEach((setting) => {
|
settingsMap.forEach((setting) => {
|
||||||
const input = settings.querySelector(
|
const input = settings.querySelector(`#settings-${setting.key}`) as HTMLInputElement
|
||||||
`#settings-${setting.key}`
|
|
||||||
) as HTMLInputElement
|
|
||||||
input.value = ''
|
input.value = ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -397,9 +381,7 @@
|
||||||
{#if message.role === 'user'}
|
{#if message.role === 'user'}
|
||||||
<article
|
<article
|
||||||
class="message is-info user-message"
|
class="message is-info user-message"
|
||||||
class:has-text-right={message.content
|
class:has-text-right={message.content.split('\n').filter((line) => line.trim()).length === 1}
|
||||||
.split('\n')
|
|
||||||
.filter((line) => line.trim()).length === 1}
|
|
||||||
>
|
>
|
||||||
<div class="message-body content">
|
<div class="message-body content">
|
||||||
<a
|
<a
|
||||||
|
@ -445,13 +427,9 @@
|
||||||
/>
|
/>
|
||||||
{#if message.usage}
|
{#if message.usage}
|
||||||
<p class="is-size-7">
|
<p class="is-size-7">
|
||||||
This message was generated using <span class="has-text-weight-bold"
|
This message was generated using <span class="has-text-weight-bold">{message.usage.total_tokens}</span>
|
||||||
>{message.usage.total_tokens}</span
|
|
||||||
>
|
|
||||||
tokens ~=
|
tokens ~=
|
||||||
<span class="has-text-weight-bold"
|
<span class="has-text-weight-bold">${(message.usage.total_tokens * tokenPrice).toFixed(6)}</span>
|
||||||
>${(message.usage.total_tokens * tokenPrice).toFixed(6)}</span
|
|
||||||
>
|
|
||||||
</p>
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
@ -463,10 +441,7 @@
|
||||||
<progress class="progress is-small is-dark" max="100" />
|
<progress class="progress is-small is-dark" max="100" />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<form
|
<form class="field has-addons has-addons-right" on:submit|preventDefault={() => submitForm()}>
|
||||||
class="field has-addons has-addons-right"
|
|
||||||
on:submit|preventDefault={() => submitForm()}
|
|
||||||
>
|
|
||||||
<p class="control is-expanded">
|
<p class="control is-expanded">
|
||||||
<textarea
|
<textarea
|
||||||
class="input is-info is-focused chat-input"
|
class="input is-info is-focused chat-input"
|
||||||
|
@ -488,17 +463,12 @@
|
||||||
/>
|
/>
|
||||||
</p>
|
</p>
|
||||||
<p class="control" class:is-hidden={!recognition}>
|
<p class="control" class:is-hidden={!recognition}>
|
||||||
<button
|
<button class="button" class:is-pulse={recording} on:click|preventDefault={recordToggle}
|
||||||
class="button"
|
|
||||||
class:is-pulse={recording}
|
|
||||||
on:click|preventDefault={recordToggle}
|
|
||||||
><span class="greyscale">🎤</span></button
|
><span class="greyscale">🎤</span></button
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
<p class="control">
|
<p class="control">
|
||||||
<button class="button" on:click|preventDefault={showSettings}
|
<button class="button" on:click|preventDefault={showSettings}><span class="greyscale">⚙️</span></button>
|
||||||
><span class="greyscale">⚙️</span></button
|
|
||||||
>
|
|
||||||
</p>
|
</p>
|
||||||
<p class="control">
|
<p class="control">
|
||||||
<button class="button is-info" type="submit">Send</button>
|
<button class="button is-info" type="submit">Send</button>
|
||||||
|
@ -524,9 +494,7 @@
|
||||||
{#each settingsMap as setting}
|
{#each settingsMap as setting}
|
||||||
<div class="field is-horizontal">
|
<div class="field is-horizontal">
|
||||||
<div class="field-label is-normal">
|
<div class="field-label is-normal">
|
||||||
<label class="label" for="settings-{setting.key}"
|
<label class="label" for="settings-{setting.key}">{setting.name}</label>
|
||||||
>{setting.name}</label
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="field-body">
|
<div class="field-body">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
@ -557,9 +525,7 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<footer class="modal-card-foot">
|
<footer class="modal-card-foot">
|
||||||
<button class="button is-info" on:click={closeSettings}
|
<button class="button is-info" on:click={closeSettings}>Close settings</button>
|
||||||
>Close settings</button
|
|
||||||
>
|
|
||||||
<button class="button" on:click={clearSettings}>Clear settings</button>
|
<button class="button" on:click={clearSettings}>Clear settings</button>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue