- Added `emoji-regex` and `remove-accents` packages to improve text processing capabilities. - Implemented automatic Ollama startup in the chat page for better user experience. - Enhanced setup page to include GPU selection based on hardware specifications. - Updated chat input to support real-time validation and improved user feedback. - Refactored message handling in chat to incorporate new processing features.
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import { useState, useEffect } from 'react';
|
|
import { invoke } from '@tauri-apps/api/core';
|
|
|
|
export type OllamaStatus = 'checking' | 'not_installed' | 'installed_stopped' | 'running';
|
|
|
|
export function useOllamaCheck() {
|
|
const [status, setStatus] = useState<OllamaStatus>('checking');
|
|
|
|
const check = async () => {
|
|
setStatus('checking');
|
|
try {
|
|
// Usar verificação completa que checa instalação E execução
|
|
const result = await invoke<{
|
|
installed: boolean;
|
|
running: boolean;
|
|
status: string;
|
|
}>('check_ollama_full');
|
|
|
|
setStatus(result.status as OllamaStatus);
|
|
} catch (error) {
|
|
console.error('Failed to check ollama:', error);
|
|
// Se falhar, tentar verificação individual como fallback
|
|
try {
|
|
const installed = await invoke<boolean>('check_ollama_installed');
|
|
if (!installed) {
|
|
setStatus('not_installed');
|
|
return;
|
|
}
|
|
|
|
const running = await invoke<boolean>('check_ollama_running');
|
|
if (!running) {
|
|
setStatus('installed_stopped');
|
|
return;
|
|
}
|
|
|
|
setStatus('running');
|
|
} catch (fallbackError) {
|
|
console.error('Fallback check also failed:', fallbackError);
|
|
setStatus('not_installed');
|
|
}
|
|
}
|
|
};
|
|
|
|
useEffect(() => {
|
|
check();
|
|
}, []);
|
|
|
|
return { status, check };
|
|
}
|
|
|