refactor: Cleanup
This commit is contained in:
parent
13fe8607c5
commit
b2590a7f6c
|
|
@ -118,7 +118,7 @@ export class ChatService {
|
||||||
.map((msg) => {
|
.map((msg) => {
|
||||||
if ('id' in msg && 'convId' in msg && 'timestamp' in msg) {
|
if ('id' in msg && 'convId' in msg && 'timestamp' in msg) {
|
||||||
const dbMsg = msg as DatabaseMessage & { extra?: DatabaseMessageExtra[] };
|
const dbMsg = msg as DatabaseMessage & { extra?: DatabaseMessageExtra[] };
|
||||||
return ChatService.convertMessageToChatServiceData(dbMsg);
|
return ChatService.convertDbMessageToApiChatMessageData(dbMsg);
|
||||||
} else {
|
} else {
|
||||||
return msg as ApiChatMessageData;
|
return msg as ApiChatMessageData;
|
||||||
}
|
}
|
||||||
|
|
@ -595,7 +595,7 @@ export class ChatService {
|
||||||
* @returns {ApiChatMessageData} object formatted for the chat completion API
|
* @returns {ApiChatMessageData} object formatted for the chat completion API
|
||||||
* @static
|
* @static
|
||||||
*/
|
*/
|
||||||
static convertMessageToChatServiceData(
|
static convertDbMessageToApiChatMessageData(
|
||||||
message: DatabaseMessage & { extra?: DatabaseMessageExtra[] }
|
message: DatabaseMessage & { extra?: DatabaseMessageExtra[] }
|
||||||
): ApiChatMessageData {
|
): ApiChatMessageData {
|
||||||
if (!message.extra || message.extra.length === 0) {
|
if (!message.extra || message.extra.length === 0) {
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
export { chatService } from './chat';
|
export { chatService } from './chat';
|
||||||
export { slotsService } from './slots';
|
export { slotsService } from './slots';
|
||||||
|
export { PropsService } from './props';
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
import { config } from '$lib/stores/settings.svelte';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PropsService - Server properties management
|
||||||
|
*
|
||||||
|
* This service handles communication with the /props endpoint to retrieve
|
||||||
|
* server configuration, model information, and capabilities.
|
||||||
|
*
|
||||||
|
* **Responsibilities:**
|
||||||
|
* - Fetch server properties from /props endpoint
|
||||||
|
* - Handle API authentication
|
||||||
|
* - Parse and validate server response
|
||||||
|
*
|
||||||
|
* **Used by:**
|
||||||
|
* - ServerStore: Primary consumer for server state management
|
||||||
|
*/
|
||||||
|
export class PropsService {
|
||||||
|
/**
|
||||||
|
* Fetches server properties from the /props endpoint
|
||||||
|
*
|
||||||
|
* @returns {Promise<ApiLlamaCppServerProps>} Server properties
|
||||||
|
* @throws {Error} If the request fails or returns invalid data
|
||||||
|
*/
|
||||||
|
static async fetch(): Promise<ApiLlamaCppServerProps> {
|
||||||
|
const currentConfig = config();
|
||||||
|
const apiKey = currentConfig.apiKey?.toString().trim();
|
||||||
|
|
||||||
|
const response = await fetch('./props', {
|
||||||
|
headers: {
|
||||||
|
...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(
|
||||||
|
`Failed to fetch server properties: ${response.status} ${response.statusText}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
return data as ApiLlamaCppServerProps;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -133,16 +133,6 @@ export class SlotsService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Polling is no longer used - timing data comes from ChatService streaming response
|
|
||||||
* This method logs a warning if called to help identify outdated usage
|
|
||||||
*/
|
|
||||||
fetchAndNotify(): void {
|
|
||||||
console.warn(
|
|
||||||
'SlotsService.fetchAndNotify() is deprecated - use timing data from ChatService instead'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
subscribe(callback: (state: ApiProcessingState | null) => void): () => void {
|
subscribe(callback: (state: ApiProcessingState | null) => void): () => void {
|
||||||
this.callbacks.add(callback);
|
this.callbacks.add(callback);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { browser } from '$app/environment';
|
import { browser } from '$app/environment';
|
||||||
import { SERVER_PROPS_LOCALSTORAGE_KEY } from '$lib/constants/localstorage-keys';
|
import { SERVER_PROPS_LOCALSTORAGE_KEY } from '$lib/constants/localstorage-keys';
|
||||||
import { ChatService } from '$lib/services/chat';
|
import { PropsService } from '$lib/services/props';
|
||||||
import { config } from '$lib/stores/settings.svelte';
|
import { config } from '$lib/stores/settings.svelte';
|
||||||
import { ServerMode, ModelModality } from '$lib/enums';
|
import { ServerMode, ModelModality } from '$lib/enums';
|
||||||
import { updateConfig } from '$lib/stores/settings.svelte';
|
import { updateConfig } from '$lib/stores/settings.svelte';
|
||||||
|
|
@ -241,7 +241,7 @@ class ServerStore {
|
||||||
|
|
||||||
const fetchPromise = (async () => {
|
const fetchPromise = (async () => {
|
||||||
try {
|
try {
|
||||||
const props = await ChatService.getServerProps();
|
const props = await PropsService.fetch();
|
||||||
this._serverProps = props;
|
this._serverProps = props;
|
||||||
this.persistServerProps(props);
|
this.persistServerProps(props);
|
||||||
this._error = null;
|
this._error = null;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue