UNPKG

@yk1028-test/ai-chat-supporter

Version:

AI Chat Supporter - TypeScript library for intelligent chat processing with LangChain integration

78 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OllamaProvider = void 0; const base_1 = require("./base"); const LangChainOllamaProvider_1 = require("./LangChainOllamaProvider"); class OllamaProvider extends base_1.BaseLLMProvider { constructor(config) { super(config); this.name = 'ollama'; this.langChainProvider = null; } async initializeProvider() { try { this.langChainProvider = new LangChainOllamaProvider_1.LangChainOllamaProvider({ baseUrl: this.config.baseUrl || 'http://localhost:11434', model: this.config.model || 'gemma3:1b', temperature: this.config.temperature || 0.7, ...(this.config.maxTokens && { maxTokens: this.config.maxTokens }), }); console.log(`Ollama 제공자 초기화 완료 - 모델: ${this.config.model || 'gemma3:1b'}`); } catch (error) { throw new Error(`Ollama 초기화 실패: ${error instanceof Error ? error.message : 'Unknown error'}`); } } async generateResponse(prompt) { if (!this.langChainProvider) { throw new Error('Ollama 제공자가 초기화되지 않았습니다'); } try { const response = await this.langChainProvider.invoke(prompt); return response; } catch (error) { throw new Error(`Ollama 응답 생성 실패: ${error instanceof Error ? error.message : 'Unknown error'}`); } } async isHealthy() { if (!this.langChainProvider) { return false; } try { return await this.langChainProvider.isHealthy(); } catch (error) { console.warn(`Ollama 건강 상태 확인 실패: ${error instanceof Error ? error.message : 'Unknown error'}`); return false; } } // Ollama 특화 메서드들 async getAvailableModels() { if (!this.langChainProvider) { return []; } try { return await this.langChainProvider.listModels(); } catch (error) { console.warn(`모델 목록 조회 실패: ${error instanceof Error ? error.message : 'Unknown error'}`); return []; } } setModel(model) { this.config.model = model; if (this.langChainProvider) { this.langChainProvider.setModel(model); } } getModel() { return this.config.model || 'gemma3:1b'; } // LangChain 제공자 직접 접근 getLangChainProvider() { return this.langChainProvider; } } exports.OllamaProvider = OllamaProvider; //# sourceMappingURL=ollama.js.map