diff --git a/src/services/conversation-service.ts b/src/services/conversation-service.ts index f1e61e5..641f702 100644 --- a/src/services/conversation-service.ts +++ b/src/services/conversation-service.ts @@ -6,6 +6,7 @@ import { } from '../summary-service'; import { sendChatAction } from '../telegram'; import { createLogger } from '../utils/logger'; +import { saveConversationMessage } from './conversation-storage'; const logger = createLogger('conversation'); @@ -33,10 +34,16 @@ export class ConversationService { logger.error('타이핑 액션 전송 실패', err as Error) ); - // 2. 사용자 메시지 버퍼에 추가 + // 2. 새 시스템에 사용자 메시지 저장 + await saveConversationMessage(this.env.DB, telegramUserId, { + role: 'user', + content: text, + }); + + // 3. 기존 버퍼에도 저장 (호환성 - 나중에 제거) await addToBuffer(this.env.DB, userId, chatId, 'user', text); - // 3. AI 응답 생성 + // 4. AI 응답 생성 let responseText = await generateAIResponse( this.env, userId, @@ -51,12 +58,19 @@ export class ConversationService { responseText = responseText.slice(directIndex + '__DIRECT__'.length).trim(); } - // 4. 봇 응답 버퍼에 추가 (키보드 데이터 마커 등은 그대로 저장) - // 실제 사용자에게 보여질 텍스트만 저장하는 것이 좋으나, + // 5. 새 시스템에 봇 응답 저장 + await saveConversationMessage(this.env.DB, telegramUserId, { + role: 'assistant', + content: responseText, + }); + + // 6. 기존 버퍼에도 저장 (호환성 - 나중에 제거) + // 봇 응답 버퍼에 추가 (키보드 데이터 마커 등은 그대로 저장) + // 실제 사용자에게 보여질 텍스트만 저장하는 것이 좋으나, // 현재 구조상 전체를 저장하고 나중에 컨텍스트로 활용 시 정제될 수 있음 await addToBuffer(this.env.DB, userId, chatId, 'bot', responseText); - // 5. 임계값 도달 시 프로필 업데이트 (요약) + // 7. 임계값 도달 시 프로필 업데이트 (요약) const { summarized } = await processAndSummarize( this.env, userId,