챗봇 지식 관리 (GCS)
Tenant Knowledge Base (MD) - Google Storage
파일 업로드
AI 학습 데이터 생성
GCS 파일을 분석하여 벡터 DB를 갱신합니다.
setAuthConfig($credentialsPath); $client->addScope(Google_Service_Storage::CLOUD_PLATFORM); $storage = new Google_Service_Storage($client); $msg = ""; // Handle File Upload if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['md_file'])) { $file = $_FILES['md_file']; $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); if ($ext !== 'md') { $msg = "오직 .md 파일만 업로드 가능합니다."; } else { $gcsObjectName = $folderPrefix . basename($file['name']); try { // Upload to GCS $fileContent = file_get_contents($file['tmp_name']); $postBody = new Google_Service_Storage_StorageObject(); $postBody->setName($gcsObjectName); $storage->objects->insert($bucketName, $postBody, [ 'data' => $fileContent, 'mimeType' => 'text/markdown', 'uploadType' => 'media' ]); $msg = "GCS 업로드 성공: " . htmlspecialchars($file['name']); } catch (Exception $e) { $msg = "GCS 업로드 실패: " . $e->getMessage(); } } } // Handle File Delete if (isset($_GET['del'])) { $delFileName = $_GET['del']; // This should be the simple filename $gcsObjectName = $folderPrefix . basename($delFileName); try { $storage->objects->delete($bucketName, $gcsObjectName); $msg = "GCS 파일 삭제 완료: " . htmlspecialchars($delFileName); } catch (Exception $e) { $msg = "GCS 삭제 실패: " . $e->getMessage(); } } // List Files from GCS $files = []; try { $objects = $storage->objects->listObjects($bucketName, ['prefix' => $folderPrefix]); // The list includes the folder itself sometimes, and full paths if ($objects->getItems()) { foreach ($objects->getItems() as $object) { $name = $object->getName(); // Filter out the folder itself "tenant_knowledge_base/" if ($name === $folderPrefix) continue; // Extract pure filename $pureName = str_replace($folderPrefix, '', $name); if(empty($pureName)) continue; $size = $object->getSize(); // bytes $files[] = [ 'name' => $pureName, 'size' => $size ]; } } } catch (Exception $e) { $msg = "파일 목록 로드 실패: " . $e->getMessage(); } ?>
Tenant Knowledge Base (MD) - Google Storage
GCS 파일을 분석하여 벡터 DB를 갱신합니다.