[{"data":1,"prerenderedAt":1777},["ShallowReactive",2],{"nav-docs":3,"page-/ko/docs/admin/ai/qdrant":924,"surround-/ko/docs/admin/ai/qdrant":1771,"raw-/ko/docs/admin/ai/qdrant":1774},[4,56,246,581,673,817,850,907],{"title":5,"path":6,"stem":7,"children":8,"page":55},"스페이스빌더 시작하기","/getting-started","00.getting-started",[9,13,17,23,29,33,38,42,46,50],{"title":10,"path":11,"stem":12,"children":-1},"스페이스빌더 소개","/getting-started/overview","00.getting-started/00.overview",{"title":14,"path":15,"stem":16,"children":-1},"SetFN 계정 생성","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account",{"title":18,"path":19,"stem":20,"tags":21,"children":-1},"Linux에 설치하기","/getting-started/install-linux","00.getting-started/10.install-linux",[22],"recommended",{"title":24,"path":25,"stem":26,"tags":27,"children":-1},"Docker로 설치하기","/getting-started/install-docker","00.getting-started/12.install-docker",[28],"preparing",{"title":30,"path":31,"stem":32,"children":-1},"Windows에 설치하기","/getting-started/install-windows","00.getting-started/14.install-windows",{"title":34,"path":35,"stem":36,"tags":37,"children":-1},"macOS에 설치하기","/getting-started/install-macos","00.getting-started/16.install-macos",[28],{"title":39,"path":40,"stem":41,"children":-1},"초기 설정","/getting-started/initial-setup","00.getting-started/20.initial-setup",{"title":43,"path":44,"stem":45,"children":-1},"라이선스 활성화","/getting-started/license-activation","00.getting-started/30.license-activation",{"title":47,"path":48,"stem":49,"children":-1},"접속 주소 확인 (로컬/내부망)","/getting-started/access-url","00.getting-started/35.access-url",{"title":51,"path":52,"stem":53,"tags":54,"children":-1},"외부 접속 방식 선택","/getting-started/access-domain","00.getting-started/40.access-domain",[22],false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"스페이스 관리하기","/admin","10.admin",[61,74,111,140,187,200,229],{"title":62,"path":63,"stem":64,"children":65,"page":55},"관리자 홈","/admin/home","10.admin/00.home",[66,70],{"title":67,"path":68,"stem":69,"children":-1},"관리자 페이지 접속","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access",{"title":71,"path":72,"stem":73,"children":-1},"라이선스 관리","/admin/home/license","10.admin/00.home/20.license",{"title":75,"path":76,"stem":77,"children":78,"page":55},"사용자 관리","/admin/user-management","10.admin/10.user-management",[79,83,87,91,95,99,103,107],{"title":80,"path":81,"stem":82,"children":-1},"가입 정책 및 기본 권한 설정하기","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy",{"title":84,"path":85,"stem":86,"children":-1},"사용자 계정 만들기","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member",{"title":88,"path":89,"stem":90,"children":-1},"사용자 계정 수정하기","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member",{"title":92,"path":93,"stem":94,"children":-1},"관리자 추가하기","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin",{"title":96,"path":97,"stem":98,"children":-1},"팀 관리","/admin/user-management/team","10.admin/10.user-management/22.team",{"title":100,"path":101,"stem":102,"children":-1},"레벨 관리","/admin/user-management/level","10.admin/10.user-management/24.level",{"title":104,"path":105,"stem":106,"children":-1},"접속 기록 확인하기","/admin/user-management/access-log","10.admin/10.user-management/30.access-log",{"title":108,"path":109,"stem":110,"children":-1},"계정·보안 정책 설정하기","/admin/user-management/account-security","10.admin/10.user-management/32.account-security",{"title":112,"path":113,"stem":114,"children":115,"page":55},"서비스 구성","/admin/service-config","10.admin/20.service-config",[116,120,124,128,132,136],{"title":117,"path":118,"stem":119,"children":-1},"파일 영역 설정","/admin/service-config/file-area","10.admin/20.service-config/10.file-area",{"title":121,"path":122,"stem":123,"children":-1},"웹훅 설정","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings",{"title":125,"path":126,"stem":127,"children":-1},"커뮤니티 설정","/admin/service-config/community-space","10.admin/20.service-config/22.community-space",{"title":129,"path":130,"stem":131,"children":-1},"AI 챗봇 정책 설정","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot",{"title":133,"path":134,"stem":135,"children":-1},"메일 설정","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings",{"title":137,"path":138,"stem":139,"children":-1},"브랜딩 설정","/admin/service-config/brand","10.admin/20.service-config/40.brand",{"title":141,"path":142,"stem":143,"children":144,"page":55},"지능형 서비스 (AI)","/admin/ai","10.admin/30.ai",[145,149,153,157,161,165,169,175,179,183],{"title":146,"path":147,"stem":148,"children":-1},"AI 모델 설정","/admin/ai/ai-model-setting","10.admin/30.ai/10.ai-model-setting",{"title":150,"path":151,"stem":152,"children":-1},"AI DB 설정","/admin/ai/ai-db-setting","10.admin/30.ai/20.ai-db-setting",{"title":154,"path":155,"stem":156,"children":-1},"벡터 DB 운영 가이드","/admin/ai/vector-db-operations","10.admin/30.ai/22.vector-db-operations",{"title":158,"path":159,"stem":160,"children":-1},"Qdrant 연결","/admin/ai/qdrant","10.admin/30.ai/24.qdrant",{"title":162,"path":163,"stem":164,"children":-1},"Qdrant 서버 준비하기","/admin/ai/qdrant-server-setup","10.admin/30.ai/25.qdrant-server-setup",{"title":166,"path":167,"stem":168,"children":-1},"Milvus 연결","/admin/ai/milvus","10.admin/30.ai/26.milvus",{"title":170,"path":171,"stem":172,"children":173},"지식 인덱싱","/admin/ai/knowledge-indexing","10.admin/30.ai/30.knowledge-indexing",[174],{"title":170,"path":171,"stem":172,"children":-1},{"title":176,"path":177,"stem":178,"children":-1},"AI 연동 및 정책 설정","/admin/ai/ai-link","10.admin/30.ai/40.ai-link",{"title":180,"path":181,"stem":182,"children":-1},"MCP 서버 관리","/admin/ai/mcp-server","10.admin/30.ai/50.mcp-server",{"title":184,"path":185,"stem":186,"children":-1},"검색 관리","/admin/ai/search-management","10.admin/30.ai/60.search-management",{"title":188,"path":189,"stem":190,"children":191,"page":55},"플러그인","/admin/plugin","10.admin/40.plugin",[192,196],{"title":193,"path":194,"stem":195,"children":-1},"플러그인 관리하기","/admin/plugin/overview","10.admin/40.plugin/00.overview",{"title":197,"path":198,"stem":199,"children":-1},"확장 플러그인 설정","/admin/plugin/settings","10.admin/40.plugin/10.settings",{"title":201,"path":202,"stem":203,"children":204,"page":55},"보안 관리","/admin/security","10.admin/50.security",[205,209,213,217,221,225],{"title":206,"path":207,"stem":208,"children":-1},"보안 개요","/admin/security/overview","10.admin/50.security/00.overview",{"title":210,"path":211,"stem":212,"children":-1},"감사 로그 확인하기","/admin/security/audit-log","10.admin/50.security/05.audit-log",{"title":214,"path":215,"stem":216,"children":-1},"차단 관리","/admin/security/block-management","10.admin/50.security/10.block-management",{"title":218,"path":219,"stem":220,"children":-1},"보안 설정","/admin/security/security-setting","10.admin/50.security/12.security-setting",{"title":222,"path":223,"stem":224,"children":-1},"승인 대기 기기 처리하기","/admin/security/device-approvals","10.admin/50.security/14.device-approvals",{"title":226,"path":227,"stem":228,"children":-1},"IP 접근 제한","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction",{"title":230,"path":231,"stem":232,"children":233,"page":55},"시스템 관리","/admin/system-admin","10.admin/60.system-admin",[234,238,242],{"title":235,"path":236,"stem":237,"children":-1},"디바이스 정보","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info",{"title":239,"path":240,"stem":241,"children":-1},"서버 재시작 및 시스템 유지보수","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart",{"title":243,"path":244,"stem":245,"children":-1},"백그라운드 서비스","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service",{"title":247,"path":248,"stem":249,"children":250,"page":55},"워크스페이스 사용하기","/workspace","20.workspace",[251,284,301,372,483,530,562],{"title":252,"path":253,"stem":254,"children":255,"page":55},"메뉴","/workspace/menu","20.workspace/05.menu",[256,260,264,268,272,276,280],{"title":257,"path":258,"stem":259,"children":-1},"워크스페이스 소개","/workspace/menu/overview","20.workspace/05.menu/00.overview",{"title":261,"path":262,"stem":263,"children":-1},"팀 스페이스","/workspace/menu/team-space","20.workspace/05.menu/05.team-space",{"title":265,"path":266,"stem":267,"children":-1},"클라이언트 스페이스","/workspace/menu/client-space","20.workspace/05.menu/06.client-space",{"title":269,"path":270,"stem":271,"children":-1},"즐겨찾기","/workspace/menu/favorites","20.workspace/05.menu/10.favorites",{"title":273,"path":274,"stem":275,"children":-1},"최근 문서","/workspace/menu/recent","20.workspace/05.menu/20.recent",{"title":277,"path":278,"stem":279,"children":-1},"외부 공유","/workspace/menu/external-share","20.workspace/05.menu/30.external-share",{"title":281,"path":282,"stem":283,"children":-1},"휴지통","/workspace/menu/trash","20.workspace/05.menu/40.trash",{"title":285,"path":286,"stem":287,"children":288,"page":55},"계정","/workspace/account","20.workspace/10.account",[289,293,297],{"title":290,"path":291,"stem":292,"children":-1},"회원가입 및 로그인","/workspace/account/signup","20.workspace/10.account/10.signup",{"title":294,"path":295,"stem":296,"children":-1},"비밀번호 재설정","/workspace/account/reset-password","20.workspace/10.account/20.reset-password",{"title":298,"path":299,"stem":300,"children":-1},"계정 설정","/workspace/account/account-settings","20.workspace/10.account/30.account-settings",{"title":302,"path":303,"stem":304,"children":305,"page":55},"폴더","/workspace/folder","20.workspace/20.folder",[306,310,314,318,322,328,333,337,341,346,350,354,358,362,368],{"title":307,"path":308,"stem":309,"children":-1},"폴더 기본 기능","/workspace/folder/basic","20.workspace/20.folder/10.basic",{"title":311,"path":312,"stem":313,"children":-1},"여러 폴더 한꺼번에 만들기","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation",{"title":315,"path":316,"stem":317,"children":-1},"필터","/workspace/folder/filter","20.workspace/20.folder/13.filter",{"title":319,"path":320,"stem":321,"children":-1},"폴더 보기 옵션 설정","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options",{"title":323,"path":324,"stem":325,"tags":326,"children":-1},"폴더를 게시판으로 사용하기","/workspace/folder/board-view","20.workspace/20.folder/15.board-view",[327],"hot",{"title":329,"path":330,"stem":331,"tags":332,"children":-1},"폴더 웹 보기","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view",[327],{"title":334,"path":335,"stem":336,"children":-1},"폴더 정리","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize",{"title":338,"path":339,"stem":340,"children":-1},"폴더 공지 (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme",{"title":342,"path":343,"stem":344,"tags":345,"children":-1},"폴더/파일 목록 내보내기","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export",[327],{"title":347,"path":348,"stem":349,"children":-1},"레벨별 접근 권한 설정","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions",{"title":351,"path":352,"stem":353,"children":-1},"팀별 접근 권한 설정","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions",{"title":355,"path":356,"stem":357,"children":-1},"파일 규칙 설정하기","/workspace/folder/file-rules","20.workspace/20.folder/28.file-rules",{"title":359,"path":360,"stem":361,"children":-1},"폴더 웹훅","/workspace/folder/webhook","20.workspace/20.folder/30.webhook",{"title":363,"path":364,"stem":365,"children":366},"폴더 지식인덱스 설정하기","/workspace/folder/knowledge-index","20.workspace/20.folder/32.knowledge-index",[367],{"title":363,"path":364,"stem":365,"children":-1},{"title":369,"path":370,"stem":371,"children":-1},"업무 자동화 폴더","/workspace/folder/automation","20.workspace/20.folder/40.automation",{"title":373,"path":374,"stem":375,"children":376,"page":55},"파일","/workspace/file","20.workspace/30.file",[377,381,386,390,394,398,402,406,410,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479],{"title":378,"path":379,"stem":380,"children":-1},"파일 관리 기본 기능","/workspace/file/overview","20.workspace/30.file/00.overview",{"title":382,"path":383,"stem":384,"tags":385,"children":-1},"파일 보면서 목록 확인하기","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file",[327],{"title":387,"path":388,"stem":389,"children":-1},"텍스트 파일 보기 및 편집","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer",{"title":391,"path":392,"stem":393,"children":-1},"HTML 파일 보기","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer",{"title":395,"path":396,"stem":397,"children":-1},"CSV 파일 보기 및 편집","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer",{"title":399,"path":400,"stem":401,"children":-1},"이미지/동영상 파일 보기","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer",{"title":403,"path":404,"stem":405,"children":-1},"오피스/PDF 파일 보기","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer",{"title":407,"path":408,"stem":409,"children":-1},"웹페이지 붙여넣기 (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html",{"title":411,"path":412,"stem":413,"tags":414,"children":-1},"스크린샷 붙여넣기","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot",[327],{"title":416,"path":417,"stem":418,"children":-1},"마크다운 붙여넣기 (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md",{"title":420,"path":421,"stem":422,"children":-1},"스크린 녹화하기","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording",{"title":424,"path":425,"stem":426,"children":-1},"파일 태그","/workspace/file/file-tag","20.workspace/30.file/33.file-tag",{"title":428,"path":429,"stem":430,"children":-1},"파일 이름 일괄 변경","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise",{"title":432,"path":433,"stem":434,"children":-1},"파일 변환","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview",{"title":436,"path":437,"stem":438,"children":-1},"템플릿 파일","/workspace/file/templates","20.workspace/30.file/41.templates",{"title":440,"path":441,"stem":442,"children":-1},"할일 목록 (Todo)","/workspace/file/template-todo","20.workspace/30.file/42.template-todo",{"title":444,"path":445,"stem":446,"children":-1},"결재 서식","/workspace/file/template-approval","20.workspace/30.file/43.template-approval",{"title":448,"path":449,"stem":450,"children":-1},"칸반 보드","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban",{"title":452,"path":453,"stem":454,"children":-1},"타임라인","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline",{"title":456,"path":457,"stem":458,"children":-1},"메모장","/workspace/file/template-memo","20.workspace/30.file/46.template-memo",{"title":460,"path":461,"stem":462,"children":-1},"AI 채팅 파일","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":464,"path":465,"stem":466,"children":-1},"파일 변경 기록 확인","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail",{"title":468,"path":469,"stem":470,"children":-1},"파일 버전 관리","/workspace/file/version-trail","20.workspace/30.file/51.version-trail",{"title":472,"path":473,"stem":474,"children":-1},"편집 잠금","/workspace/file/file-lock","20.workspace/30.file/52.file-lock",{"title":476,"path":477,"stem":478,"children":-1},"파일 암호화","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt",{"title":480,"path":481,"stem":482,"children":-1},"디스크 파일 등록","/workspace/file/disk-file-registration","20.workspace/30.file/60.disk-file-registration",{"title":484,"path":485,"stem":486,"children":487,"page":55},"협업","/workspace/cooperation","20.workspace/35.cooperation",[488,492,496,500,505,509,513,517,522,526],{"title":489,"path":490,"stem":491,"children":-1},"파일·폴더 댓글","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments",{"title":493,"path":494,"stem":495,"children":-1},"채팅","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat",{"title":497,"path":498,"stem":499,"children":-1},"협업 채팅 및 편집 잠금","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat",{"title":501,"path":502,"stem":503,"tags":504,"children":-1},"팀원 작업 위치 따라가기","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location",[327],{"title":506,"path":507,"stem":508,"children":-1},"멘션","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention",{"title":510,"path":511,"stem":512,"children":-1},"쪽지","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm",{"title":514,"path":515,"stem":516,"children":-1},"알림 보관함","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox",{"title":518,"path":519,"stem":520,"tags":521,"children":-1},"팀 활동 확인하기","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity",[327],{"title":523,"path":524,"stem":525,"children":-1},"외부 공유 링크 만들기","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",{"title":527,"path":528,"stem":529,"children":-1},"외부 공유 이메일 전송","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email",{"title":531,"path":532,"stem":533,"children":534,"page":55},"검색","/workspace/search","20.workspace/40.search",[535,539,544,550,554,558],{"title":536,"path":537,"stem":538,"children":-1},"파일 검색","/workspace/search/search","20.workspace/40.search/00.search",{"title":540,"path":541,"stem":542,"tags":543,"children":-1},"문맥 검색 (AI 검색)","/workspace/search/context-search","20.workspace/40.search/10.context-search",[327],{"title":545,"path":546,"stem":547,"tags":548,"children":-1},"이미지 검색","/workspace/search/image-search","20.workspace/40.search/20.image-search",[549],"new",{"title":551,"path":552,"stem":553,"children":-1},"채팅 검색","/workspace/search/chat-search","20.workspace/40.search/30.chat-search",{"title":555,"path":556,"stem":557,"children":-1},"댓글 검색","/workspace/search/comment-search","20.workspace/40.search/40.comment-search",{"title":559,"path":560,"stem":561,"children":-1},"유의어 검색","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search",{"title":563,"path":564,"stem":565,"children":566,"page":55},"AI","/workspace/ai","20.workspace/50.ai",[567,571,576],{"title":568,"path":569,"stem":570,"children":-1},"AI 기능 요약","/workspace/ai/overview","20.workspace/50.ai/00.overview",{"title":572,"path":573,"stem":574,"tags":575,"children":-1},"로컬 AI에게 업무 요청하기","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[327],{"title":577,"path":578,"stem":579,"tags":580,"children":-1},"외부 AI 활용하기","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai",[549],{"title":582,"path":583,"stem":584,"children":585,"page":55},"웹스페이스","/webspace","40.webspace",[586,590,594,598,602,606,611,615,619,623,627,656],{"title":587,"path":588,"stem":589,"children":-1},"웹스페이스(Webspace)란?","/webspace/overview","40.webspace/00.overview",{"title":591,"path":592,"stem":593,"children":-1},"웹사이트 배포하기","/webspace/website-release","40.webspace/10.website-release",{"title":595,"path":596,"stem":597,"children":-1},"스키마 파일(.sfn) 만들기","/webspace/create-database","40.webspace/20.create-database",{"title":599,"path":600,"stem":601,"children":-1},"API 빌드 및 데이터베이스 배포하기","/webspace/api-overview","40.webspace/24.api-overview",{"title":603,"path":604,"stem":605,"children":-1},"프론트엔드 샘플 확인하기","/webspace/frontend-example","40.webspace/26.frontend-example",{"title":607,"path":608,"stem":609,"tags":610,"children":-1},"팀 내부용 웹서비스 만들기","/webspace/internal-webservice","40.webspace/32.internal-webservice",[327],{"title":612,"path":613,"stem":614,"children":-1},"외부 공개용 웹서비스 만들기","/webspace/external-webservice","40.webspace/34.external-webservice",{"title":616,"path":617,"stem":618,"children":-1},"SQL 가져오기와 내보내기","/webspace/sql-converter","40.webspace/42.sql-converter",{"title":620,"path":621,"stem":622,"children":-1},"개발자 팁 2: Code 컨버터","/webspace/code-converter","40.webspace/44.code-converter",{"title":624,"path":625,"stem":626,"children":-1},"성능과 확장","/webspace/performance","40.webspace/48.performance",{"title":628,"path":629,"stem":630,"children":631,"page":55},"웹스페이스 관리","/webspace/admin","40.webspace/50.admin",[632,636,640,644,648,652],{"title":633,"path":634,"stem":635,"children":-1},"웹스페이스 관리 시작하기","/webspace/admin/overview","40.webspace/50.admin/00.overview",{"title":637,"path":638,"stem":639,"children":-1},"운영 현황","/webspace/admin/operations","40.webspace/50.admin/10.operations",{"title":641,"path":642,"stem":643,"children":-1},"워크스페이스 접근","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access",{"title":645,"path":646,"stem":647,"children":-1},"API · 사이트 보안","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security",{"title":649,"path":650,"stem":651,"children":-1},"서비스 및 용량","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity",{"title":653,"path":654,"stem":655,"children":-1},"배포 관리와 프론트엔드 릴리스","/webspace/admin/deployments","40.webspace/50.admin/50.deployments",{"title":657,"path":658,"stem":659,"children":660,"page":55},"웹스페이스 따라해보기","/webspace/examples","40.webspace/60.examples",[661,665,669],{"title":662,"path":663,"stem":664,"children":-1},"웹스페이스 응용편","/webspace/examples/overview","40.webspace/60.examples/00.overview",{"title":666,"path":667,"stem":668,"children":-1},"나만의 업무 시스템 만들기","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system",{"title":670,"path":671,"stem":672,"children":-1},"실시간 오목 게임 만들기","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",{"title":674,"path":675,"stem":676,"children":677,"page":55},"플러그인 사용하기","/plugin","50.plugin",[678,682,699,748,766,796],{"title":679,"path":680,"stem":681,"children":-1},"플러그인 개요","/plugin/overview","50.plugin/00.overview",{"title":683,"path":684,"stem":685,"children":686,"page":55},"캘린더","/plugin/calendar","50.plugin/10.calendar",[687,691,695],{"title":688,"path":689,"stem":690,"children":-1},"캘린더 소개","/plugin/calendar/overview","50.plugin/10.calendar/00.overview",{"title":692,"path":693,"stem":694,"children":-1},"일정 생성, 수정 및 삭제하기","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event",{"title":696,"path":697,"stem":698,"children":-1},"활동 기록 확인하기","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity",{"title":700,"path":701,"stem":702,"children":703,"page":55},"이메일","/plugin/email","50.plugin/20.email",[704,708,712,716,720,724,728,732,736,740,744],{"title":705,"path":706,"stem":707,"children":-1},"이메일 소개","/plugin/email/overview","50.plugin/20.email/00.overview",{"title":709,"path":710,"stem":711,"children":-1},"이메일 설정","/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting",{"title":713,"path":714,"stem":715,"children":-1},"외부 이메일 연결","/plugin/email/external-email","50.plugin/20.email/07.external-email",{"title":717,"path":718,"stem":719,"children":-1},"이메일 기본 기능","/plugin/email/email-basic","50.plugin/20.email/10.email-basic",{"title":721,"path":722,"stem":723,"children":-1},"메일 AI 어시스턴트 사용하기","/plugin/email/email-ai-assistant","50.plugin/20.email/15.email-ai-assistant",{"title":725,"path":726,"stem":727,"children":-1},"이메일 작성 및 전송","/plugin/email/email-compose","50.plugin/20.email/20.email-compose",{"title":729,"path":730,"stem":731,"children":-1},"파일 첨부하기","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment",{"title":733,"path":734,"stem":735,"children":-1},"이메일 폴더 관리","/plugin/email/email-folders","50.plugin/20.email/40.email-folders",{"title":737,"path":738,"stem":739,"children":-1},"이메일 자동 분류하기","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify",{"title":741,"path":742,"stem":743,"children":-1},"이메일 파일 보관 및 공유","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space",{"title":745,"path":746,"stem":747,"children":-1},"이메일 보안","/plugin/email/email-security","50.plugin/20.email/70.email-security",{"title":749,"path":750,"stem":751,"children":752,"page":55},"워크플로우 (업무자동화)","/plugin/workflow","50.plugin/30.workflow",[753,757,762],{"title":754,"path":755,"stem":756,"children":-1},"워크플로우 소개","/plugin/workflow/overview","50.plugin/30.workflow/00.overview",{"title":758,"path":759,"stem":760,"tags":761,"children":-1},"새 워크플로우 만들기","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[327],{"title":763,"path":764,"stem":765,"children":-1},"실행 기록 확인하기","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history",{"title":767,"path":768,"stem":769,"children":770,"page":55},"파인튜닝 (AI 학습)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[771,776,780,784,788,792],{"title":772,"path":773,"stem":774,"tags":775,"children":-1},"파인튜닝 소개","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview",[327],{"title":777,"path":778,"stem":779,"children":-1},"학습 데이터 전처리","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing",{"title":781,"path":782,"stem":783,"children":-1},"학습","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training",{"title":785,"path":786,"stem":787,"children":-1},"평가","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation",{"title":789,"path":790,"stem":791,"children":-1},"채팅 테스트","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test",{"title":793,"path":794,"stem":795,"children":-1},"내보내기","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export",{"title":797,"path":798,"stem":799,"children":800,"page":55},"EDC (데이터 수집)","/plugin/edc","50.plugin/50.edc",[801,805,809,813],{"title":802,"path":803,"stem":804,"children":-1},"EDC 소개","/plugin/edc/overview","50.plugin/50.edc/00.overview",{"title":806,"path":807,"stem":808,"children":-1},"데이터 입력, Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry",{"title":810,"path":811,"stem":812,"children":-1},"빌더","/plugin/edc/builder","50.plugin/50.edc/20.builder",{"title":814,"path":815,"stem":816,"children":-1},"사용자/기관 설정","/plugin/edc/account","50.plugin/50.edc/30.account",{"title":818,"path":819,"stem":820,"children":821,"page":55},"FAQ","/faq","99.FAQ",[822,826,830,834,838,842,846],{"title":823,"path":824,"stem":825,"children":-1},"SetFN vs 클라우드 서비스 비교","/faq/comparison-cloud","99.FAQ/10.comparison-cloud",{"title":827,"path":828,"stem":829,"children":-1},"SetFN vs NAS 비교","/faq/comparison-nas","99.FAQ/20.comparison-nas",{"title":831,"path":832,"stem":833,"children":-1},"보안 정책","/faq/security-policy","99.FAQ/30.security-policy",{"title":835,"path":836,"stem":837,"children":-1},"SetFN은 왜 빠른가요","/faq/why-fast","99.FAQ/40.why-fast",{"title":839,"path":840,"stem":841,"children":-1},"라이선스 FAQ","/faq/license-faq","99.FAQ/50.license-faq",{"title":843,"path":844,"stem":845,"children":-1},"AI 기능 FAQ","/faq/ai-faq","99.FAQ/60.ai-faq",{"title":847,"path":848,"stem":849,"children":-1},"문제 해결 가이드","/faq/troubleshooting","99.FAQ/70.troubleshooting",{"title":851,"path":852,"stem":853,"children":854,"page":55},"응용편(초안)","/draft","draft",[855,859,863,867,871,875,879,883,887,891,895,899,903],{"title":856,"path":857,"stem":858,"children":-1},"예시 1. 소개 페이지 만들기","/draft/static-intro","draft/05.static-intro",{"title":860,"path":861,"stem":862,"children":-1},"예시 2. 공지 게시판 만들기","/draft/public-notice-board","draft/07.public-notice-board",{"title":864,"path":865,"stem":866,"children":-1},"예시 3. 커피챗 예약 시스템 만들기","/draft/coffee-chat-booking","draft/08.coffee-chat-booking",{"title":868,"path":869,"stem":870,"children":-1},"예시 4. 휴가 신청 시스템 만들기","/draft/leave-request","draft/09.leave-request",{"title":872,"path":873,"stem":874,"children":-1},"예시 5. 실시간 팀 채팅 만들기","/draft/team-chat","draft/10.team-chat",{"title":876,"path":877,"stem":878,"children":-1},"예시 6. 채용 지원 서류 제출함 만들기","/draft/client-submission","draft/11.client-submission",{"title":880,"path":881,"stem":882,"children":-1},"예시 7. 팀과 레벨에 따른 이슈 트래커 만들기","/draft/crm-basic","draft/12.crm-basic",{"title":884,"path":885,"stem":886,"children":-1},"예시 8. 이슈 상태별 필터와 통계 요약 화면 만들기","/draft/crm-search-filter","draft/13.crm-search-filter",{"title":888,"path":889,"stem":890,"children":-1},"예시 9. 실시간 커뮤니티 채팅과 운영 기능 만들기","/draft/community-moderation","draft/14.community-moderation",{"title":892,"path":893,"stem":894,"children":-1},"예시 10. 실시간 출석체크·투표 만들기","/draft/attendance-poll","draft/15.attendance-poll",{"title":896,"path":897,"stem":898,"children":-1},"예시 11. 찬반 논쟁 배틀 만들기","/draft/debate-battle","draft/16.debate-battle",{"title":900,"path":901,"stem":902,"children":-1},"예시 13. 공지사항 읽음 확인 만들기","/draft/announcement-read","draft/18.announcement-read",{"title":904,"path":905,"stem":906,"children":-1},"예시 14. 재고 관리 시스템 만들기","/draft/inventory-management","draft/19.inventory-management",{"title":908,"path":909,"stem":910,"children":911,"page":55},"SJAUTO","/sjauto","sjauto",[912,915,918,921],{"title":67,"path":913,"stem":914,"children":-1},"/sjauto/admin-page-access","sjauto/00.admin-page-access",{"title":290,"path":916,"stem":917,"children":-1},"/sjauto/signup","sjauto/10.signup",{"title":460,"path":919,"stem":920,"children":-1},"/sjauto/ai-chat-file","sjauto/ai-chat-file",{"title":666,"path":922,"stem":923,"children":-1},"/sjauto/webspace-schema-example","sjauto/webspace-schema-example",{"id":925,"title":158,"body":926,"cover":1757,"description":1758,"extension":1759,"image":1757,"meta":1760,"navigation":1112,"path":159,"seo":1762,"stem":160,"tags":1757,"thumbnail":1757,"__hash__":1770},"docs_ko/10.admin/30.ai/24.qdrant.md",{"type":927,"value":928,"toc":1742},"minimal",[929,933,937,940,943,948,957,960,964,1028,1031,1038,1065,1177,1180,1247,1251,1264,1278,1285,1289,1332,1335,1345,1437,1444,1450,1454,1457,1503,1518,1522,1539,1550,1577,1583,1587,1592,1636,1639,1644,1647,1662,1667,1670,1685,1696,1700,1707,1710,1713,1717,1738],[930,931,158],"h1",{"id":932},"qdrant-연결",[934,935,936],"p",{},"Qdrant는 별도 서버로 운영하는 벡터 DB입니다. 문서가 많아 검색 데이터가 수만 건을 넘거나, AI 검색 데이터를 SpaceBuilder 서버와 분리해서 운영하고 싶을 때 사용합니다.",[934,938,939],{},"Qdrant를 쓰더라도 원본 파일과 문서 텍스트는 SpaceBuilder에 그대로 남습니다. Qdrant에는 검색에 필요한 벡터와 최소한의 정보만 저장됩니다.",[941,942],"hr",{},[944,945,947],"h2",{"id":946},"qdrant-설치","Qdrant 설치",[934,949,950,951,956],{},"SpaceBuilder 서버에서 접속할 수 있는 Qdrant 서버가 필요합니다. 이미 운영 중인 Qdrant가 있다면 이 절은 건너뛰고 ",[952,953,955],"a",{"href":954},"#%EC%97%B0%EA%B2%B0-%EC%84%A4%EC%A0%95","연결 설정","으로 가세요.",[934,958,959],{},"Qdrant는 Docker로 설치하는 것이 가장 간단합니다. 아래 절차는 Linux 서버에 Docker가 설치되어 있다는 전제입니다.",[961,962,963],"h3",{"id":963},"준비",[965,966,967,980],"table",{},[968,969,970],"thead",{},[971,972,973,977],"tr",{},[974,975,976],"th",{},"항목",[974,978,979],{},"내용",[981,982,983,992,1005,1013],"tbody",{},[971,984,985,989],{},[986,987,988],"td",{},"서버",[986,990,991],{},"SpaceBuilder와 같은 서버에 두어도 되고, 별도 서버여도 됩니다. 같은 서버라면 SpaceBuilder와 메모리를 나눠 쓰므로 여유를 두세요.",[971,993,994,997],{},[986,995,996],{},"메모리",[986,998,999,1000,1004],{},"벡터는 검색 속도를 위해 메모리에 올라갑니다. Qdrant 권장 계산식(벡터 수 × 차원 × 4바이트 × 1.5)으로 ",[1001,1002,1003],"code",{},"bge-m3","(1024차원) 기준 벡터 10만 개에 약 0.6GB, 100만 개에 약 6GB가 필요합니다.",[971,1006,1007,1010],{},[986,1008,1009],{},"디스크",[986,1011,1012],{},"벡터와 문서 조각 텍스트를 함께 저장하므로 메모리 필요량의 2~3배를 잡으세요.",[971,1014,1015,1018],{},[986,1016,1017],{},"포트",[986,1019,1020,1023,1024,1027],{},[1001,1021,1022],{},"6333","(REST API). SpaceBuilder는 이 포트만 사용합니다. gRPC 포트 ",[1001,1025,1026],{},"6334","는 열지 않아도 됩니다.",[961,1029,1030],{"id":1030},"실행",[934,1032,1033,1034,1037],{},"데이터가 컨테이너를 지워도 남도록 저장 폴더를 반드시 연결하세요. 아래는 ",[1001,1035,1036],{},"/data/qdrant","에 저장하고, 서버가 재부팅되어도 자동으로 다시 시작되도록 설정한 예시입니다.",[934,1039,1040,1041,1044,1045,1048,1049,1052,1053,1057,1058,1064],{},"이미지 버전은 ",[1001,1042,1043],{},"QDRANT_VERSION"," 변수로 고정합니다. 버전을 지정하지 않으면 ",[1001,1046,1047],{},"latest","가 설치되어, 컨테이너를 다시 만들 때 의도하지 않게 버전이 올라갈 수 있습니다. 예시의 ",[1001,1050,1051],{},"v1.13.0","은 이 문서의 ",[952,1054,1056],{"href":1055},"#%EC%A0%80%EC%9E%A5%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%99%95%EC%9D%B8","파일별 벡터 수 확인","이 동작하는 1.12 이상의 버전입니다. 실제로 설치할 때는 ",[952,1059,1063],{"href":1060,"rel":1061},"https://github.com/qdrant/qdrant/releases",[1062],"nofollow","Qdrant 릴리스 페이지","에서 검증한 안정 버전으로 바꾸세요.",[1066,1067,1072],"pre",{"className":1068,"code":1069,"language":1070,"meta":1071,"style":1071},"language-bash shiki shiki-themes github-light github-dark monokai","QDRANT_VERSION=v1.13.0\nsudo mkdir -p /data/qdrant\n\ndocker run -d --name qdrant \\\n  --restart unless-stopped \\\n  -p 6333:6333 \\\n  -v /data/qdrant:/qdrant/storage \\\n  qdrant/qdrant:${QDRANT_VERSION}\n","bash","",[1001,1073,1074,1090,1107,1114,1135,1146,1157,1168],{"__ignoreMap":1071},[1075,1076,1079,1082,1086],"span",{"class":1077,"line":1078},"line",1,[1075,1080,1043],{"class":1081},"sMOD_",[1075,1083,1085],{"class":1084},"sC2Qs","=",[1075,1087,1089],{"class":1088},"sstjo","v1.13.0\n",[1075,1091,1093,1097,1100,1104],{"class":1077,"line":1092},2,[1075,1094,1096],{"class":1095},"srTi1","sudo",[1075,1098,1099],{"class":1088}," mkdir",[1075,1101,1103],{"class":1102},"s7F3e"," -p",[1075,1105,1106],{"class":1088}," /data/qdrant\n",[1075,1108,1110],{"class":1077,"line":1109},3,[1075,1111,1113],{"emptyLinePlaceholder":1112},true,"\n",[1075,1115,1117,1120,1123,1126,1129,1132],{"class":1077,"line":1116},4,[1075,1118,1119],{"class":1095},"docker",[1075,1121,1122],{"class":1088}," run",[1075,1124,1125],{"class":1102}," -d",[1075,1127,1128],{"class":1102}," --name",[1075,1130,1131],{"class":1088}," qdrant",[1075,1133,1134],{"class":1102}," \\\n",[1075,1136,1138,1141,1144],{"class":1077,"line":1137},5,[1075,1139,1140],{"class":1102},"  --restart",[1075,1142,1143],{"class":1088}," unless-stopped",[1075,1145,1134],{"class":1102},[1075,1147,1149,1152,1155],{"class":1077,"line":1148},6,[1075,1150,1151],{"class":1102},"  -p",[1075,1153,1154],{"class":1088}," 6333:6333",[1075,1156,1134],{"class":1102},[1075,1158,1160,1163,1166],{"class":1077,"line":1159},7,[1075,1161,1162],{"class":1102},"  -v",[1075,1164,1165],{"class":1088}," /data/qdrant:/qdrant/storage",[1075,1167,1134],{"class":1102},[1075,1169,1171,1174],{"class":1077,"line":1170},8,[1075,1172,1173],{"class":1088},"  qdrant/qdrant:",[1075,1175,1176],{"class":1081},"${QDRANT_VERSION}\n",[934,1178,1179],{},"SpaceBuilder와 다른 서버에서 운영하거나 여러 사람이 접근할 수 있는 네트워크라면 API 키를 함께 켜세요. 키는 길고 추측하기 어려운 값으로 정합니다.",[1066,1181,1183],{"className":1068,"code":1182,"language":1070,"meta":1071,"style":1071},"QDRANT_VERSION=v1.13.0\ndocker run -d --name qdrant \\\n  --restart unless-stopped \\\n  -p 6333:6333 \\\n  -v /data/qdrant:/qdrant/storage \\\n  -e QDRANT__SERVICE__API_KEY='\u003CAPI 키>' \\\n  qdrant/qdrant:${QDRANT_VERSION}\n",[1001,1184,1185,1193,1207,1215,1223,1231,1241],{"__ignoreMap":1071},[1075,1186,1187,1189,1191],{"class":1077,"line":1078},[1075,1188,1043],{"class":1081},[1075,1190,1085],{"class":1084},[1075,1192,1089],{"class":1088},[1075,1194,1195,1197,1199,1201,1203,1205],{"class":1077,"line":1092},[1075,1196,1119],{"class":1095},[1075,1198,1122],{"class":1088},[1075,1200,1125],{"class":1102},[1075,1202,1128],{"class":1102},[1075,1204,1131],{"class":1088},[1075,1206,1134],{"class":1102},[1075,1208,1209,1211,1213],{"class":1077,"line":1109},[1075,1210,1140],{"class":1102},[1075,1212,1143],{"class":1088},[1075,1214,1134],{"class":1102},[1075,1216,1217,1219,1221],{"class":1077,"line":1116},[1075,1218,1151],{"class":1102},[1075,1220,1154],{"class":1088},[1075,1222,1134],{"class":1102},[1075,1224,1225,1227,1229],{"class":1077,"line":1137},[1075,1226,1162],{"class":1102},[1075,1228,1165],{"class":1088},[1075,1230,1134],{"class":1102},[1075,1232,1233,1236,1239],{"class":1077,"line":1148},[1075,1234,1235],{"class":1102},"  -e",[1075,1237,1238],{"class":1088}," QDRANT__SERVICE__API_KEY='\u003CAPI 키>'",[1075,1240,1134],{"class":1102},[1075,1242,1243,1245],{"class":1077,"line":1159},[1075,1244,1173],{"class":1088},[1075,1246,1176],{"class":1081},[961,1248,1250],{"id":1249},"설치-확인","설치 확인",[1066,1252,1254],{"className":1068,"code":1253,"language":1070,"meta":1071,"style":1071},"curl http://localhost:6333/collections\n",[1001,1255,1256],{"__ignoreMap":1071},[1075,1257,1258,1261],{"class":1077,"line":1078},[1075,1259,1260],{"class":1095},"curl",[1075,1262,1263],{"class":1088}," http://localhost:6333/collections\n",[934,1265,1266,1269,1270,1273,1274,1277],{},[1001,1267,1268],{},"\"status\":\"ok\"","가 포함된 응답이 오면 정상입니다. API 키를 켰다면 ",[1001,1271,1272],{},"curl -H 'api-key: \u003CAPI 키>' http://localhost:6333/collections","처럼 ",[1001,1275,1276],{},"api-key"," 헤더를 붙여야 응답이 옵니다.",[934,1279,1280,1281,1284],{},"브라우저에서 ",[1001,1282,1283],{},"http://\u003CQdrant 서버 주소>:6333/dashboard","를 열면 컬렉션과 저장된 데이터를 볼 수 있는 대시보드가 나옵니다.",[961,1286,1288],{"id":1287},"운영-팁","운영 팁",[1290,1291,1292,1310,1323],"ul",{},[1293,1294,1295,1299,1300,1302,1303,1306,1307,1309],"li",{},[1296,1297,1298],"strong",{},"업데이트",": Qdrant 공식 업그레이드 안내에 따라 마이너 버전을 한 단계씩(예: 1.12 → 1.13) 올리세요. ",[1001,1301,1043],{},"을 다음 버전으로 바꾸고 ",[1001,1304,1305],{},"docker pull qdrant/qdrant:${QDRANT_VERSION}","으로 이미지를 받은 뒤, 컨테이너를 지우고 같은 명령으로 다시 실행합니다. 데이터는 ",[1001,1308,1036],{},"에 남습니다.",[1293,1311,1312,1315,1316,1318,1319,1322],{},[1296,1313,1314],{},"백업",": 컨테이너를 멈춘 뒤 ",[1001,1317,1036],{}," 폴더를 통째로 복사하거나, Qdrant의 스냅샷 API를 사용합니다. 다만 벡터는 원본에서 다시 만들 수 있는 파생 데이터라, 백업이 없어도 SpaceBuilder에서 ",[1001,1320,1321],{},"전체 데이터 다시 인덱싱","으로 복구할 수 있습니다.",[1293,1324,1325,1328,1329,1331],{},[1296,1326,1327],{},"방화벽",": SpaceBuilder 서버만 ",[1001,1330,1022],{}," 포트에 접속할 수 있게 제한하세요. HTTPS로 접속해야 한다면 Qdrant 앞에 리버스 프록시를 두는 방식을 권장합니다.",[944,1333,955],{"id":1334},"연결-설정",[934,1336,1337,1340,1341,1344],{},[952,1338,150],{"href":1339},"/admin/ai/ai-db-setting/"," 화면의 ",[1001,1342,1343],{},"로컬 AI DB 구성","에서 아래와 같이 입력하고 저장합니다.",[965,1346,1347,1359],{},[968,1348,1349],{},[971,1350,1351,1353,1356],{},[974,1352,976],{},[974,1354,1355],{},"입력 값",[974,1357,1358],{},"설명",[981,1360,1361,1374,1394,1409,1420],{},[971,1362,1363,1366,1371],{},[986,1364,1365],{},"드라이버",[986,1367,1368],{},[1001,1369,1370],{},"Qdrant",[986,1372,1373],{},"외부 Qdrant 서버를 사용합니다.",[971,1375,1376,1379,1384],{},[986,1377,1378],{},"엔드포인트",[986,1380,1381],{},[1001,1382,1383],{},"http://\u003CQdrant 서버 주소>:6333",[986,1385,1386,1389,1390,1393],{},[1001,1387,1388],{},"http://","를 생략하면 자동으로 붙습니다. 비워두면 ",[1001,1391,1392],{},"http://localhost:6333","을 사용합니다.",[971,1395,1396,1399,1402],{},[986,1397,1398],{},"컬렉션",[986,1400,1401],{},"이 인스턴스(현재 SpaceBuilder) 전용 이름",[986,1403,1404,1405,1408],{},"화면에 표시되는 권장 이름(",[1001,1406,1407],{},"setfn_knowledge_...",")을 사용하는 것을 권장합니다.",[971,1410,1411,1414,1417],{},[986,1412,1413],{},"API 키",[986,1415,1416],{},"Qdrant에 설정한 API 키",[986,1418,1419],{},"인증을 켜지 않았다면 비워둡니다. 저장된 값은 마스킹되어 표시되며, 바꾸지 않으면 그대로 유지됩니다. 비우고 저장하면 삭제됩니다.",[971,1421,1422,1425,1428],{},[986,1423,1424],{},"벡터 차원",[986,1426,1427],{},"임베딩 모델의 출력 차원",[986,1429,1430,1432,1433,1436],{},[1001,1431,1003],{},"는 ",[1001,1434,1435],{},"1024","입니다. 모델을 고르면 알려진 모델은 자동으로 입력됩니다.",[934,1438,1439,1440,1443],{},"Qdrant는 서비스형 저장소라 ",[1001,1441,1442],{},"데이터 경로"," 입력란이 표시되지 않습니다. 데이터는 모두 Qdrant 서버에 저장됩니다.",[934,1445,1446,1447,1449],{},"저장하면 인덱싱 스케줄러가 바로 새 설정을 확인하고, 필요한 경우 원본 전체 재인덱싱을 자동으로 시작합니다. 따로 ",[1001,1448,1321],{},"을 누르지 않아도 됩니다.",[944,1451,1453],{"id":1452},"컬렉션은-자동으로-만들어집니다","컬렉션은 자동으로 만들어집니다",[934,1455,1456],{},"Qdrant 대시보드에서 컬렉션을 미리 만들 필요가 없습니다. SpaceBuilder가 첫 번째 검색 데이터를 저장할 때 설정한 이름으로 컬렉션을 만들고, 검색 필터에 필요한 인덱스도 함께 만듭니다.",[965,1458,1459,1469],{},[968,1460,1461],{},[971,1462,1463,1466],{},[974,1464,1465],{},"자동 생성 항목",[974,1467,1468],{},"값",[981,1470,1471,1479,1487,1495],{},[971,1472,1473,1476],{},[986,1474,1475],{},"벡터 형식",[986,1477,1478],{},"이름 없는 단일 벡터(dense)",[971,1480,1481,1484],{},[986,1482,1483],{},"벡터 크기",[986,1485,1486],{},"설정한 벡터 차원",[971,1488,1489,1492],{},[986,1490,1491],{},"거리 계산",[986,1493,1494],{},"Cosine",[971,1496,1497,1500],{},[986,1498,1499],{},"필터 인덱스",[986,1501,1502],{},"인스턴스, 세대, 공간, 소유자, 원본 경로",[934,1504,1505,1506,1509,1510,1513,1514,1517],{},"첫 인덱싱 전에는 ",[1001,1507,1508],{},"로컬 AI DB 운영 현황","의 ",[1001,1511,1512],{},"컬렉션 구성","에 ",[1001,1515,1516],{},"아직 생성되지 않음 · 첫 인덱싱 때 자동으로 만들어집니다","가 표시됩니다. 오류가 아니므로 인덱싱이 시작될 때까지 기다리면 됩니다.",[961,1519,1521],{"id":1520},"컬렉션을-직접-만들-때-주의할-점","컬렉션을 직접 만들 때 주의할 점",[934,1523,1524,1525,1528,1529,1532,1533,1513,1535,1538],{},"Qdrant 대시보드의 ",[1001,1526,1527],{},"Create New Collection"," 화면에서 ",[1001,1530,1531],{},"Simple Hybrid Search","나 이름이 있는 벡터(named vector)로 만든 컬렉션은 SpaceBuilder와 호환되지 않습니다. 이런 컬렉션을 지정하면 ",[1001,1534,1512],{},[1001,1536,1537],{},"컬렉션 설정 확인 필요","가 표시되고 인덱싱이 저장 단계에서 실패합니다.",[934,1540,1541,1542,1545,1546,1549],{},"컬렉션을 직접 만들어야 한다면 대시보드의 ",[1001,1543,1544],{},"Console","에서 아래 요청을 실행하세요. ",[1001,1547,1548],{},"size","는 설정한 벡터 차원과 같아야 합니다.",[1066,1551,1555],{"className":1552,"code":1553,"language":1554,"meta":1071,"style":1071},"language-http shiki shiki-themes github-light github-dark monokai","PUT /collections/setfn_knowledge_example\n{\n  \"vectors\": { \"size\": 1024, \"distance\": \"Cosine\" }\n}\n","http",[1001,1556,1557,1562,1567,1572],{"__ignoreMap":1071},[1075,1558,1559],{"class":1077,"line":1078},[1075,1560,1561],{},"PUT /collections/setfn_knowledge_example\n",[1075,1563,1564],{"class":1077,"line":1092},[1075,1565,1566],{},"{\n",[1075,1568,1569],{"class":1077,"line":1109},[1075,1570,1571],{},"  \"vectors\": { \"size\": 1024, \"distance\": \"Cosine\" }\n",[1075,1573,1574],{"class":1077,"line":1116},[1075,1575,1576],{},"}\n",[1578,1579,1580],"note",{},[934,1581,1582],{},"이미 잘못된 형식으로 만든 컬렉션이 있다면, 다른 컬렉션 이름으로 바꿔 저장하거나 해당 컬렉션을 삭제한 뒤 SpaceBuilder가 다시 만들도록 두세요. 차원이나 거리 계산 방식이 다른 컬렉션은 사용할 수 없습니다.",[944,1584,1586],{"id":1585},"저장된-데이터-확인","저장된 데이터 확인",[934,1588,1589,1591],{},[1001,1590,1508],{},"에서 Qdrant 상태를 확인합니다.",[965,1593,1594,1603],{},[968,1595,1596],{},[971,1597,1598,1600],{},[974,1599,976],{},[974,1601,1602],{},"의미",[981,1604,1605,1613,1621,1629],{},[971,1606,1607,1610],{},[986,1608,1609],{},"연결 상태",[986,1611,1612],{},"Qdrant 서버에 접속할 수 있는지 여부",[971,1614,1615,1618],{},[986,1616,1617],{},"데이터(엔티티) 수",[986,1619,1620],{},"이 인스턴스가 저장한 벡터 수입니다. 같은 컬렉션을 쓰는 다른 인스턴스의 데이터는 포함하지 않습니다.",[971,1622,1623,1626],{},[986,1624,1625],{},"컬렉션 수",[986,1627,1628],{},"Qdrant 서버에 있는 전체 컬렉션 수입니다. SpaceBuilder가 만든 것 외의 컬렉션도 포함됩니다.",[971,1630,1631,1633],{},[986,1632,1512],{},[986,1634,1635],{},"설정한 컬렉션의 차원과 거리 계산 방식이 SpaceBuilder와 맞는지 여부",[934,1637,1638],{},"벡터 1개는 문서 조각(청크) 1개입니다. 문서는 형식에 따라 섹션, 페이지, 행 단위로 먼저 나누고, 다시 한국어 기준 약 700~1,000자 크기로 나눠 저장합니다. 그래서 문서 수보다 벡터 수가 훨씬 많은 것이 정상입니다.",[934,1640,1524,1641,1643],{},[1001,1642,1544],{},"에서 실제 저장 내용을 볼 수 있습니다.",[934,1645,1646],{},"파일별 벡터 수 확인:",[1066,1648,1650],{"className":1552,"code":1649,"language":1554,"meta":1071,"style":1071},"POST /collections/setfn_knowledge_example/facet\n{ \"key\": \"source_path\", \"limit\": 50 }\n",[1001,1651,1652,1657],{"__ignoreMap":1071},[1075,1653,1654],{"class":1077,"line":1078},[1075,1655,1656],{},"POST /collections/setfn_knowledge_example/facet\n",[1075,1658,1659],{"class":1077,"line":1092},[1075,1660,1661],{},"{ \"key\": \"source_path\", \"limit\": 50 }\n",[1578,1663,1664],{},[934,1665,1666],{},"facet API는 Qdrant 1.12 이상에서만 동작합니다. 여러 인스턴스가 같은 컬렉션을 함께 쓰면 다른 인스턴스가 저장한 벡터 수까지 합산됩니다.",[934,1668,1669],{},"저장된 문서 조각 일부 확인:",[1066,1671,1673],{"className":1552,"code":1672,"language":1554,"meta":1071,"style":1071},"POST /collections/setfn_knowledge_example/points/scroll\n{ \"limit\": 10, \"with_payload\": [\"source_path\", \"text\"], \"with_vector\": false }\n",[1001,1674,1675,1680],{"__ignoreMap":1071},[1075,1676,1677],{"class":1077,"line":1078},[1075,1678,1679],{},"POST /collections/setfn_knowledge_example/points/scroll\n",[1075,1681,1682],{"class":1077,"line":1092},[1075,1683,1684],{},"{ \"limit\": 10, \"with_payload\": [\"source_path\", \"text\"], \"with_vector\": false }\n",[1686,1687,1688],"warning",{},[934,1689,1690,1691,1509,1693,1695],{},"Qdrant 대시보드에서 포인트를 직접 수정하거나 삭제하지 마세요. SpaceBuilder가 기록한 상태와 달라져 검색 결과가 빠지거나 정리 작업이 반복될 수 있습니다. 데이터를 다시 만들어야 하면 ",[952,1692,150],{"href":1339},[1001,1694,1321],{},"을 사용하세요.",[944,1697,1699],{"id":1698},"여러-인스턴스가-qdrant-하나를-함께-쓸-때","여러 인스턴스가 Qdrant 하나를 함께 쓸 때",[934,1701,1702,1703,1706],{},"인스턴스마다 다른 컬렉션 이름을 쓰면 데이터가 완전히 분리됩니다. 기본 컬렉션 이름(",[1001,1704,1705],{},"knowledge_vectors",")을 그대로 쓰면 화면에 경고와 함께 이 인스턴스의 권장 이름이 표시됩니다.",[934,1708,1709],{},"같은 컬렉션을 함께 쓰더라도 새로 저장하는 벡터에는 인스턴스 격리 키가 붙어, 검색과 삭제는 각 인스턴스의 데이터 안에서만 이루어집니다. 다만 백업, 용량 관리, 삭제를 인스턴스별로 하려면 컬렉션을 나누는 것이 안전합니다.",[934,1711,1712],{},"같은 서버에서 실행 중인 다른 SpaceBuilder 프로젝트가 같은 컬렉션을 쓰고 있으면 설정 화면에 경고가 표시됩니다.",[944,1714,1716],{"id":1715},"관련-문서","관련 문서",[1290,1718,1719,1723,1728,1733],{},[1293,1720,1721],{},[952,1722,150],{"href":1339},[1293,1724,1725],{},[952,1726,154],{"href":1727},"/admin/ai/vector-db-operations/",[1293,1729,1730],{},[952,1731,166],{"href":1732},"/admin/ai/milvus/",[1293,1734,1735],{},[952,1736,170],{"href":1737},"/admin/ai/knowledge-indexing/",[1739,1740,1741],"style",{},"html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":1071,"searchDepth":1092,"depth":1109,"links":1743},[1744,1750,1751,1754,1755,1756],{"id":946,"depth":1092,"text":947,"children":1745},[1746,1747,1748,1749],{"id":963,"depth":1109,"text":963},{"id":1030,"depth":1109,"text":1030},{"id":1249,"depth":1109,"text":1250},{"id":1287,"depth":1109,"text":1288},{"id":1334,"depth":1092,"text":955},{"id":1452,"depth":1092,"text":1453,"children":1752},[1753],{"id":1520,"depth":1109,"text":1521},{"id":1585,"depth":1092,"text":1586},{"id":1698,"depth":1092,"text":1699},{"id":1715,"depth":1092,"text":1716},null,"외부 벡터 DB인 Qdrant를 SpaceBuilder의 AI DB로 연결하고, 컬렉션과 저장 데이터를 확인하는 방법을 설명합니다.","md",{"slug":1761},"/admin/ai/qdrant/",{"title":1763,"description":1758,"ogType":1764,"twitterCard":1765,"keywords":1766},"Qdrant 연결 | Admin Docs","article","summary_large_image",[1370,1767,1768,1398,1769,170],"벡터 DB","AI DB","RAG","0lH6TQDy30KrnvHE6w1W6Ta7DYHZa873m9L9RHYgg1o",[1772,1773],{"title":154,"path":155,"stem":156,"children":-1},{"title":162,"path":163,"stem":164,"children":-1},{"title":158,"filename":1775,"content":1776},"qdrant","# Qdrant 연결\r\n\r\nQdrant는 별도 서버로 운영하는 벡터 DB입니다. 문서가 많아 검색 데이터가 수만 건을 넘거나, AI 검색 데이터를 SpaceBuilder 서버와 분리해서 운영하고 싶을 때 사용합니다.\r\n\r\nQdrant를 쓰더라도 원본 파일과 문서 텍스트는 SpaceBuilder에 그대로 남습니다. Qdrant에는 검색에 필요한 벡터와 최소한의 정보만 저장됩니다.\r\n\r\n---\r\n\r\n## Qdrant 설치\r\n\r\nSpaceBuilder 서버에서 접속할 수 있는 Qdrant 서버가 필요합니다. 이미 운영 중인 Qdrant가 있다면 이 절은 건너뛰고 [연결 설정](#연결-설정)으로 가세요.\r\n\r\nQdrant는 Docker로 설치하는 것이 가장 간단합니다. 아래 절차는 Linux 서버에 Docker가 설치되어 있다는 전제입니다.\r\n\r\n### 준비\r\n\r\n| 항목 | 내용 |\r\n|------|------|\r\n| 서버 | SpaceBuilder와 같은 서버에 두어도 되고, 별도 서버여도 됩니다. 같은 서버라면 SpaceBuilder와 메모리를 나눠 쓰므로 여유를 두세요. |\r\n| 메모리 | 벡터는 검색 속도를 위해 메모리에 올라갑니다. Qdrant 권장 계산식(벡터 수 × 차원 × 4바이트 × 1.5)으로 `bge-m3`(1024차원) 기준 벡터 10만 개에 약 0.6GB, 100만 개에 약 6GB가 필요합니다. |\r\n| 디스크 | 벡터와 문서 조각 텍스트를 함께 저장하므로 메모리 필요량의 2~3배를 잡으세요. |\r\n| 포트 | `6333`(REST API). SpaceBuilder는 이 포트만 사용합니다. gRPC 포트 `6334`는 열지 않아도 됩니다. |\r\n\r\n### 실행\r\n\r\n데이터가 컨테이너를 지워도 남도록 저장 폴더를 반드시 연결하세요. 아래는 `/data/qdrant`에 저장하고, 서버가 재부팅되어도 자동으로 다시 시작되도록 설정한 예시입니다.\r\n\r\n이미지 버전은 `QDRANT_VERSION` 변수로 고정합니다. 버전을 지정하지 않으면 `latest`가 설치되어, 컨테이너를 다시 만들 때 의도하지 않게 버전이 올라갈 수 있습니다. 예시의 `v1.13.0`은 이 문서의 [파일별 벡터 수 확인](#저장된-데이터-확인)이 동작하는 1.12 이상의 버전입니다. 실제로 설치할 때는 [Qdrant 릴리스 페이지](https://github.com/qdrant/qdrant/releases)에서 검증한 안정 버전으로 바꾸세요.\r\n\r\n```bash\r\nQDRANT_VERSION=v1.13.0\r\nsudo mkdir -p /data/qdrant\r\n\r\ndocker run -d --name qdrant \\\r\n  --restart unless-stopped \\\r\n  -p 6333:6333 \\\r\n  -v /data/qdrant:/qdrant/storage \\\r\n  qdrant/qdrant:${QDRANT_VERSION}\r\n```\r\n\r\nSpaceBuilder와 다른 서버에서 운영하거나 여러 사람이 접근할 수 있는 네트워크라면 API 키를 함께 켜세요. 키는 길고 추측하기 어려운 값으로 정합니다.\r\n\r\n```bash\r\nQDRANT_VERSION=v1.13.0\r\ndocker run -d --name qdrant \\\r\n  --restart unless-stopped \\\r\n  -p 6333:6333 \\\r\n  -v /data/qdrant:/qdrant/storage \\\r\n  -e QDRANT__SERVICE__API_KEY='\u003CAPI 키>' \\\r\n  qdrant/qdrant:${QDRANT_VERSION}\r\n```\r\n\r\n### 설치 확인\r\n\r\n```bash\r\ncurl http://localhost:6333/collections\r\n```\r\n\r\n`\"status\":\"ok\"`가 포함된 응답이 오면 정상입니다. API 키를 켰다면 `curl -H 'api-key: \u003CAPI 키>' http://localhost:6333/collections`처럼 `api-key` 헤더를 붙여야 응답이 옵니다.\r\n\r\n브라우저에서 `http://\u003CQdrant 서버 주소>:6333/dashboard`를 열면 컬렉션과 저장된 데이터를 볼 수 있는 대시보드가 나옵니다.\r\n\r\n### 운영 팁\r\n\r\n- **업데이트**: Qdrant 공식 업그레이드 안내에 따라 마이너 버전을 한 단계씩(예: 1.12 → 1.13) 올리세요. `QDRANT_VERSION`을 다음 버전으로 바꾸고 `docker pull qdrant/qdrant:${QDRANT_VERSION}`으로 이미지를 받은 뒤, 컨테이너를 지우고 같은 명령으로 다시 실행합니다. 데이터는 `/data/qdrant`에 남습니다.\r\n- **백업**: 컨테이너를 멈춘 뒤 `/data/qdrant` 폴더를 통째로 복사하거나, Qdrant의 스냅샷 API를 사용합니다. 다만 벡터는 원본에서 다시 만들 수 있는 파생 데이터라, 백업이 없어도 SpaceBuilder에서 `전체 데이터 다시 인덱싱`으로 복구할 수 있습니다.\r\n- **방화벽**: SpaceBuilder 서버만 `6333` 포트에 접속할 수 있게 제한하세요. HTTPS로 접속해야 한다면 Qdrant 앞에 리버스 프록시를 두는 방식을 권장합니다.\r\n\r\n## 연결 설정\r\n\r\n[AI DB 설정](/admin/ai/ai-db-setting/) 화면의 `로컬 AI DB 구성`에서 아래와 같이 입력하고 저장합니다.\r\n\r\n| 항목 | 입력 값 | 설명 |\r\n|------|---------|------|\r\n| 드라이버 | `Qdrant` | 외부 Qdrant 서버를 사용합니다. |\r\n| 엔드포인트 | `http://\u003CQdrant 서버 주소>:6333` | `http://`를 생략하면 자동으로 붙습니다. 비워두면 `http://localhost:6333`을 사용합니다. |\r\n| 컬렉션 | 이 인스턴스(현재 SpaceBuilder) 전용 이름 | 화면에 표시되는 권장 이름(`setfn_knowledge_...`)을 사용하는 것을 권장합니다. |\r\n| API 키 | Qdrant에 설정한 API 키 | 인증을 켜지 않았다면 비워둡니다. 저장된 값은 마스킹되어 표시되며, 바꾸지 않으면 그대로 유지됩니다. 비우고 저장하면 삭제됩니다. |\r\n| 벡터 차원 | 임베딩 모델의 출력 차원 | `bge-m3`는 `1024`입니다. 모델을 고르면 알려진 모델은 자동으로 입력됩니다. |\r\n\r\nQdrant는 서비스형 저장소라 `데이터 경로` 입력란이 표시되지 않습니다. 데이터는 모두 Qdrant 서버에 저장됩니다.\r\n\r\n저장하면 인덱싱 스케줄러가 바로 새 설정을 확인하고, 필요한 경우 원본 전체 재인덱싱을 자동으로 시작합니다. 따로 `전체 데이터 다시 인덱싱`을 누르지 않아도 됩니다.\r\n\r\n## 컬렉션은 자동으로 만들어집니다\r\n\r\nQdrant 대시보드에서 컬렉션을 미리 만들 필요가 없습니다. SpaceBuilder가 첫 번째 검색 데이터를 저장할 때 설정한 이름으로 컬렉션을 만들고, 검색 필터에 필요한 인덱스도 함께 만듭니다.\r\n\r\n| 자동 생성 항목 | 값 |\r\n|----------------|-----|\r\n| 벡터 형식 | 이름 없는 단일 벡터(dense) |\r\n| 벡터 크기 | 설정한 벡터 차원 |\r\n| 거리 계산 | Cosine |\r\n| 필터 인덱스 | 인스턴스, 세대, 공간, 소유자, 원본 경로 |\r\n\r\n첫 인덱싱 전에는 `로컬 AI DB 운영 현황`의 `컬렉션 구성`에 `아직 생성되지 않음 · 첫 인덱싱 때 자동으로 만들어집니다`가 표시됩니다. 오류가 아니므로 인덱싱이 시작될 때까지 기다리면 됩니다.\r\n\r\n### 컬렉션을 직접 만들 때 주의할 점\r\n\r\nQdrant 대시보드의 `Create New Collection` 화면에서 `Simple Hybrid Search`나 이름이 있는 벡터(named vector)로 만든 컬렉션은 SpaceBuilder와 호환되지 않습니다. 이런 컬렉션을 지정하면 `컬렉션 구성`에 `컬렉션 설정 확인 필요`가 표시되고 인덱싱이 저장 단계에서 실패합니다.\r\n\r\n컬렉션을 직접 만들어야 한다면 대시보드의 `Console`에서 아래 요청을 실행하세요. `size`는 설정한 벡터 차원과 같아야 합니다.\r\n\r\n```http\r\nPUT /collections/setfn_knowledge_example\r\n{\r\n  \"vectors\": { \"size\": 1024, \"distance\": \"Cosine\" }\r\n}\r\n```\r\n\r\n::note\r\n이미 잘못된 형식으로 만든 컬렉션이 있다면, 다른 컬렉션 이름으로 바꿔 저장하거나 해당 컬렉션을 삭제한 뒤 SpaceBuilder가 다시 만들도록 두세요. 차원이나 거리 계산 방식이 다른 컬렉션은 사용할 수 없습니다.\r\n::\r\n\r\n## 저장된 데이터 확인\r\n\r\n`로컬 AI DB 운영 현황`에서 Qdrant 상태를 확인합니다.\r\n\r\n| 항목 | 의미 |\r\n|------|------|\r\n| 연결 상태 | Qdrant 서버에 접속할 수 있는지 여부 |\r\n| 데이터(엔티티) 수 | 이 인스턴스가 저장한 벡터 수입니다. 같은 컬렉션을 쓰는 다른 인스턴스의 데이터는 포함하지 않습니다. |\r\n| 컬렉션 수 | Qdrant 서버에 있는 전체 컬렉션 수입니다. SpaceBuilder가 만든 것 외의 컬렉션도 포함됩니다. |\r\n| 컬렉션 구성 | 설정한 컬렉션의 차원과 거리 계산 방식이 SpaceBuilder와 맞는지 여부 |\r\n\r\n벡터 1개는 문서 조각(청크) 1개입니다. 문서는 형식에 따라 섹션, 페이지, 행 단위로 먼저 나누고, 다시 한국어 기준 약 700~1,000자 크기로 나눠 저장합니다. 그래서 문서 수보다 벡터 수가 훨씬 많은 것이 정상입니다.\r\n\r\nQdrant 대시보드의 `Console`에서 실제 저장 내용을 볼 수 있습니다.\r\n\r\n파일별 벡터 수 확인:\r\n\r\n```http\r\nPOST /collections/setfn_knowledge_example/facet\r\n{ \"key\": \"source_path\", \"limit\": 50 }\r\n```\r\n\r\n::note\r\nfacet API는 Qdrant 1.12 이상에서만 동작합니다. 여러 인스턴스가 같은 컬렉션을 함께 쓰면 다른 인스턴스가 저장한 벡터 수까지 합산됩니다.\r\n::\r\n\r\n저장된 문서 조각 일부 확인:\r\n\r\n```http\r\nPOST /collections/setfn_knowledge_example/points/scroll\r\n{ \"limit\": 10, \"with_payload\": [\"source_path\", \"text\"], \"with_vector\": false }\r\n```\r\n\r\n::warning\r\nQdrant 대시보드에서 포인트를 직접 수정하거나 삭제하지 마세요. SpaceBuilder가 기록한 상태와 달라져 검색 결과가 빠지거나 정리 작업이 반복될 수 있습니다. 데이터를 다시 만들어야 하면 [AI DB 설정](/admin/ai/ai-db-setting/)의 `전체 데이터 다시 인덱싱`을 사용하세요.\r\n::\r\n\r\n## 여러 인스턴스가 Qdrant 하나를 함께 쓸 때\r\n\r\n인스턴스마다 다른 컬렉션 이름을 쓰면 데이터가 완전히 분리됩니다. 기본 컬렉션 이름(`knowledge_vectors`)을 그대로 쓰면 화면에 경고와 함께 이 인스턴스의 권장 이름이 표시됩니다.\r\n\r\n같은 컬렉션을 함께 쓰더라도 새로 저장하는 벡터에는 인스턴스 격리 키가 붙어, 검색과 삭제는 각 인스턴스의 데이터 안에서만 이루어집니다. 다만 백업, 용량 관리, 삭제를 인스턴스별로 하려면 컬렉션을 나누는 것이 안전합니다.\r\n\r\n같은 서버에서 실행 중인 다른 SpaceBuilder 프로젝트가 같은 컬렉션을 쓰고 있으면 설정 화면에 경고가 표시됩니다.\r\n\r\n## 관련 문서\r\n\r\n- [AI DB 설정](/admin/ai/ai-db-setting/)\r\n- [벡터 DB 운영 가이드](/admin/ai/vector-db-operations/)\r\n- [Milvus 연결](/admin/ai/milvus/)\r\n- [지식 인덱싱](/admin/ai/knowledge-indexing/)\n",1790652133021]