2025년 April 18일
  1. 개발 히스토리
  2. [Frontend] 지식베이스 기록&삭제, 세션 삭제 구현

[Frontend] 지식베이스 기록&삭제, 세션 삭제 구현

개요

사용자의 지식베이스 파일 목록 조회 및 삭제, 대화 세션 삭제 기능을 구현하여, 프로젝트별 데이터 관리를 강화함.

주요 기능 및 동작 흐름

지식베이스 파일 목록 조회 (useEffect => /getInfoBase)

컴포넌트 초기 로딩 시, activeProject 값을 기준으로 해당 프로젝트에 등록된 지식베이스 파일들을 조회.

응답받은 파일 정보를 files 상태에 추가.

API 경로 : POST / getInfoBase

요청 파라미터 :

{
  "activeProject": { /* 프로젝트 정보 */ }
}
useEffect(() => {
  const fetchGetInfoBase = async () => {
    const response = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/getInfoBase`, { ... });
    ...
    const newFiles = data.map(f => ({
      name: f.file_url,
      source: 'local',
      id: f.id
    }));
    setFiles([...files, ...newFiles]);
  };
  
  if (!initialized.current) {
    initialized.current = true;
    fetchGetInfoBase();
    newChat();
  }
}, []);

지식베이스 파일 삭제 (handleDeleteFile)

유저가 Trash2 아이콘을 클릭하면 해당 파일을 백엔드 서버에 삭제 요청.

삭제 성공 시 files 상태에서 해당 파일 제거.

API 경로 : POST / DeleteFile

요청 파라미터 :

{
  "activeProject": { /* 프로젝트 정보 */ },
  "file": {
    "name": "파일명",
    ...
  }
}
const handleDeleteFile = async (file) => {
  const response = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/DeleteFile`, { ... });
  if (response.ok) {
    setFiles(files.filter(pre => pre.name !== file.name));
  } else {
    alert("지식베이스 삭제 오류발생");
  }
};

세션 삭제 기능 (handleEeletSession)

대화 세션 앞 Trash2 아이콘 클릭 시 삭제 요청

삭제 성공 시 currentSessionLogs 상태에서 제거됨.

API 경로 : POST / DeleteSession

요청 파라미터 :

{
  "session_id": "세션 ID"
}
const handleDeleteSession = async (session_id) => {
  const response = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/DeleteSession`, { ... });
  if (response.ok) {
    setcurrentSessionLogs(currentSessionLogs.filter(pre => pre.id !== session_id));
  } else {
    alert("세션 삭제 오류발생");
  }
};

UI 구성

Leave a Reply

Your email address will not be published. Required fields are marked *

연관 글
BCT NEWS
인기 글
워드프레스 보안
워드프레스 모음
워드프레스 유지보수
워드프레스 모음