feat(app): lint & beautify

This commit is contained in:
ItzCrazyKns
2025-10-18 18:50:08 +05:30
parent d43ef9e43d
commit 2c9012e99c
7 changed files with 407 additions and 395 deletions

View File

@@ -11,4 +11,5 @@ export const getConfiguredModelProviderById = (
return getConfiguredModelProviders().find((p) => p.id === id) ?? undefined;
};
export const getSearxngURL = () => configManager.getConfig('search.searxngURL', '')
export const getSearxngURL = () =>
configManager.getConfig('search.searxngURL', '');

View File

@@ -17,7 +17,6 @@ type StringUIConfigField = BaseUIConfigField & {
type SelectUIConfigFieldOptions = {
name: string;
key: string;
value: string;
};
@@ -56,8 +55,8 @@ type Config = {
};
modelProviders: ConfigModelProvider[];
search: {
[key: string]: any
}
[key: string]: any;
};
};
type EnvMap = {
@@ -76,7 +75,7 @@ type ModelProviderUISection = {
type UIConfigSections = {
general: UIConfigField[];
modelProviders: ModelProviderUISection[];
search: UIConfigField[];
search: UIConfigField[];
};
export type {
@@ -84,6 +83,8 @@ export type {
Config,
EnvMap,
UIConfigSections,
SelectUIConfigField,
StringUIConfigField,
ModelProviderUISection,
ConfigModelProvider,
};

View File

@@ -5,7 +5,7 @@ import OllamaProvider from './ollama';
export const providers: Record<string, ProviderConstructor<any>> = {
openai: OpenAIProvider,
ollama: OllamaProvider
ollama: OllamaProvider,
};
export const getModelProvidersUIConfigSection =

View File

@@ -7,129 +7,131 @@ import { UIConfigField } from '@/lib/config/types';
import { getConfiguredModelProviderById } from '@/lib/config/serverRegistry';
interface OllamaConfig {
baseURL: string;
baseURL: string;
}
const providerConfigFields: UIConfigField[] = [
{
type: 'string',
name: 'Base URL',
key: 'baseURL',
description: 'The base URL for the Ollama',
required: true,
placeholder: 'Ollama Base URL',
default: process.env.DOCKER ? 'http://host.docker.internal:11434' : 'http://localhost:11434',
env: 'OLLAMA_BASE_URL',
scope: 'server',
},
{
type: 'string',
name: 'Base URL',
key: 'baseURL',
description: 'The base URL for the Ollama',
required: true,
placeholder: 'Ollama Base URL',
default: process.env.DOCKER
? 'http://host.docker.internal:11434'
: 'http://localhost:11434',
env: 'OLLAMA_BASE_URL',
scope: 'server',
},
];
class OllamaProvider extends BaseModelProvider<OllamaConfig> {
constructor(id: string, name: string, config: OllamaConfig) {
super(id, name, config);
}
constructor(id: string, name: string, config: OllamaConfig) {
super(id, name, config);
}
async getDefaultModels(): Promise<ModelList> {
try {
const res = await fetch(`${this.config.baseURL}/api/tags`, {
method: "GET",
headers: {
'Content-type': 'application/json'
}
})
async getDefaultModels(): Promise<ModelList> {
try {
const res = await fetch(`${this.config.baseURL}/api/tags`, {
method: 'GET',
headers: {
'Content-type': 'application/json',
},
});
const data = await res.json()
const models: Model[] = data.models.map((m: any) => {
return {
name: m.name,
key: m.model
}
})
return {
embedding: models,
chat: models,
};
} catch (err) {
if (err instanceof TypeError) {
throw new Error('Error connecting to Ollama API. Please ensure the base URL is correct and the Ollama server is running.');
}
throw err;
}
}
async getModelList(): Promise<ModelList> {
const defaultModels = await this.getDefaultModels();
const configProvider = getConfiguredModelProviderById(this.id)!;
const data = await res.json();
const models: Model[] = data.models.map((m: any) => {
return {
embedding: [
...defaultModels.embedding,
...configProvider.embeddingModels,
],
chat: [...defaultModels.chat, ...configProvider.chatModels],
name: m.name,
key: m.model,
};
});
return {
embedding: models,
chat: models,
};
} catch (err) {
if (err instanceof TypeError) {
throw new Error(
'Error connecting to Ollama API. Please ensure the base URL is correct and the Ollama server is running.',
);
}
throw err;
}
}
async getModelList(): Promise<ModelList> {
const defaultModels = await this.getDefaultModels();
const configProvider = getConfiguredModelProviderById(this.id)!;
return {
embedding: [
...defaultModels.embedding,
...configProvider.embeddingModels,
],
chat: [...defaultModels.chat, ...configProvider.chatModels],
};
}
async loadChatModel(key: string): Promise<BaseChatModel> {
const modelList = await this.getModelList();
const exists = modelList.chat.find((m) => m.key === key);
if (!exists) {
throw new Error(
'Error Loading Ollama Chat Model. Invalid Model Selected',
);
}
async loadChatModel(key: string): Promise<BaseChatModel> {
const modelList = await this.getModelList();
return new ChatOllama({
temperature: 0.7,
model: key,
baseUrl: this.config.baseURL,
});
}
const exists = modelList.chat.find((m) => m.key === key);
async loadEmbeddingModel(key: string): Promise<Embeddings> {
const modelList = await this.getModelList();
const exists = modelList.embedding.find((m) => m.key === key);
if (!exists) {
throw new Error(
'Error Loading Ollama Chat Model. Invalid Model Selected',
);
}
return new ChatOllama({
temperature: 0.7,
model: key,
baseUrl: this.config.baseURL,
});
if (!exists) {
throw new Error(
'Error Loading Ollama Embedding Model. Invalid Model Selected.',
);
}
async loadEmbeddingModel(key: string): Promise<Embeddings> {
const modelList = await this.getModelList();
const exists = modelList.embedding.find((m) => m.key === key);
return new OllamaEmbeddings({
model: key,
baseUrl: this.config.baseURL,
});
}
if (!exists) {
throw new Error(
'Error Loading Ollama Embedding Model. Invalid Model Selected.',
);
}
static parseAndValidate(raw: any): OllamaConfig {
if (!raw || typeof raw !== 'object')
throw new Error('Invalid config provided. Expected object');
if (!raw.baseURL)
throw new Error('Invalid config provided. Base URL must be provided');
return new OllamaEmbeddings({
model: key,
baseUrl: this.config.baseURL,
});
}
return {
baseURL: String(raw.baseURL),
};
}
static parseAndValidate(raw: any): OllamaConfig {
if (!raw || typeof raw !== 'object')
throw new Error('Invalid config provided. Expected object');
if (!raw.baseURL)
throw new Error(
'Invalid config provided. Base URL must be provided',
);
static getProviderConfigFields(): UIConfigField[] {
return providerConfigFields;
}
return {
baseURL: String(raw.baseURL),
};
}
static getProviderConfigFields(): UIConfigField[] {
return providerConfigFields;
}
static getProviderMetadata(): ProviderMetadata {
return {
key: 'ollama',
name: 'Ollama',
};
}
static getProviderMetadata(): ProviderMetadata {
return {
key: 'ollama',
name: 'Ollama',
};
}
}
export default OllamaProvider;

View File

@@ -67,7 +67,6 @@ class ModelRegistry {
chatModels: m.chat,
embeddingModels: m.embedding,
});
}),
);