retrieve conversation history for askserice
This commit is contained in:
		
							parent
							
								
									3d7738826c
								
							
						
					
					
						commit
						09aaf1f62d
					
				@ -4,6 +4,7 @@ const { getCurrentModelInfo, windowPool, captureScreenshot } = require('../../wi
 | 
			
		||||
const sessionRepository = require('../common/repositories/session');
 | 
			
		||||
const askRepository = require('./repositories');
 | 
			
		||||
const { getSystemPrompt } = require('../common/prompts/promptBuilder');
 | 
			
		||||
const listenService = require('../listen/listenService');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @class
 | 
			
		||||
@ -34,15 +35,12 @@ class AskService {
 | 
			
		||||
        const { windowPool, updateLayout } = require('../../window/windowManager');
 | 
			
		||||
        const askWindow = windowPool.get('ask');
 | 
			
		||||
 | 
			
		||||
        // 답변이 있거나 스트리밍 중일 때
 | 
			
		||||
        const hasContent = this.state.isStreaming || (this.state.currentResponse && this.state.currentResponse.length > 0);
 | 
			
		||||
 | 
			
		||||
        if (askWindow.isVisible() && hasContent) {
 | 
			
		||||
            // 창을 닫는 대신, 텍스트 입력창만 토글합니다.
 | 
			
		||||
            this.state.showTextInput = !this.state.showTextInput;
 | 
			
		||||
            this._broadcastState(); // 변경된 상태 전파
 | 
			
		||||
            this._broadcastState();
 | 
			
		||||
        } else {
 | 
			
		||||
            // 기존의 창 보이기/숨기기 로직
 | 
			
		||||
            if (askWindow.isVisible()) {
 | 
			
		||||
                askWindow.webContents.send('window-hide-animation');
 | 
			
		||||
                this.state.isVisible = false;
 | 
			
		||||
@ -53,7 +51,6 @@ class AskService {
 | 
			
		||||
                updateLayout();
 | 
			
		||||
                askWindow.webContents.send('window-show-animation');
 | 
			
		||||
            }
 | 
			
		||||
            // 창이 다시 열릴 때를 대비해 상태를 초기화하고 전파합니다.
 | 
			
		||||
            if (this.state.isVisible) {
 | 
			
		||||
                this.state.showTextInput = true;
 | 
			
		||||
                this._broadcastState();
 | 
			
		||||
@ -80,7 +77,7 @@ class AskService {
 | 
			
		||||
     * @param {string} userPrompt
 | 
			
		||||
     * @returns {Promise<{success: boolean, response?: string, error?: string}>}
 | 
			
		||||
     */
 | 
			
		||||
    async sendMessage(userPrompt, conversationHistoryRaw=[]) {
 | 
			
		||||
    async sendMessage(userPrompt) {
 | 
			
		||||
        if (this.abortController) {
 | 
			
		||||
            this.abortController.abort('New request received.');
 | 
			
		||||
        }
 | 
			
		||||
@ -120,7 +117,20 @@ class AskService {
 | 
			
		||||
            const screenshotResult = await captureScreenshot({ quality: 'medium' });
 | 
			
		||||
            const screenshotBase64 = screenshotResult.success ? screenshotResult.base64 : null;
 | 
			
		||||
 | 
			
		||||
            let conversationHistoryRaw = [];
 | 
			
		||||
            try {
 | 
			
		||||
                const history = listenService.getConversationHistory();
 | 
			
		||||
                if (history && Array.isArray(history) && history.length > 0) {
 | 
			
		||||
                    console.log(`[AskService] Using conversation history from ListenService ${history.length} items).`);
 | 
			
		||||
                    conversationHistoryRaw = history;
 | 
			
		||||
                } else {
 | 
			
		||||
                    console.log('[AskService] No active conversation history found in ListenService.');
 | 
			
		||||
                }
 | 
			
		||||
            } catch (error) {
 | 
			
		||||
                console.error('[AskService] Failed to get conversation history from ListenService:', error);
 | 
			
		||||
            }
 | 
			
		||||
            const conversationHistory = this._formatConversationForPrompt(conversationHistoryRaw);
 | 
			
		||||
            console.log(`[AskService] Using conversation history (${conversationHistory}`);
 | 
			
		||||
 | 
			
		||||
            const systemPrompt = getSystemPrompt('pickle_glass_analysis', conversationHistory, false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user