[{"data":1,"prerenderedAt":1990},["ShallowReactive",2],{"nav-docs":3,"page-/ko/docs/admin/ai/milvus":924,"surround-/ko/docs/admin/ai/milvus":1984,"raw-/ko/docs/admin/ai/milvus":1987},[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":166,"body":926,"cover":1969,"description":1970,"extension":1971,"image":1969,"meta":1972,"navigation":1974,"path":167,"seo":1975,"stem":168,"tags":1969,"thumbnail":1969,"__hash__":1983},"docs_ko/10.admin/30.ai/26.milvus.md",{"type":927,"value":928,"toc":1956},"minimal",[929,933,937,940,943,948,966,978,982,1040,1043,1046,1112,1141,1155,1159,1165,1199,1214,1218,1230,1240,1244,1274,1277,1284,1423,1473,1483,1501,1670,1676,1680,1690,1788,1795,1799,1805,1854,1857,1915,1927,1931,1952],[930,931,166],"h1",{"id":932},"milvus-연결",[934,935,936],"p",{},"Milvus는 대용량 벡터 검색에 쓰는 외부 벡터 DB입니다. 이미 조직에서 Milvus를 운영하고 있거나, 검색 데이터가 매우 많아 별도 클러스터로 관리하려는 경우에 사용합니다.",[934,938,939],{},"Milvus를 쓰더라도 원본 파일과 문서 텍스트는 SpaceBuilder에 그대로 남습니다. Milvus에는 검색에 필요한 벡터와 최소한의 정보만 저장됩니다.",[941,942],"hr",{},[944,945,947],"h2",{"id":946},"milvus-설치","Milvus 설치",[934,949,950,951,955,956,959,960,965],{},"SpaceBuilder는 Milvus 2.4 이상의 REST API(v2, 기본 포트 ",[952,953,954],"code",{},"19530",")를 사용합니다. 모든 요청을 ",[952,957,958],{},"/v2/vectordb/..."," 경로로 보내므로 Milvus 2.3 이하에서는 동작하지 않습니다. SpaceBuilder 서버에서 이 포트로 접속할 수 있는 Milvus가 필요합니다. 이미 운영 중인 Milvus가 있다면 이 절은 건너뛰고 ",[961,962,964],"a",{"href":963},"#%EC%BB%AC%EB%A0%89%EC%85%98-%EB%AF%B8%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0","컬렉션 미리 만들기","로 가세요.",[934,967,968,969,973,974,977],{},"Milvus는 단일 서버용 ",[970,971,972],"strong",{},"Standalone","과 대규모 클러스터용 ",[970,975,976],{},"Distributed"," 두 가지 방식이 있습니다. SpaceBuilder 연결에는 Standalone이면 충분합니다.",[979,980,981],"h3",{"id":981},"준비",[983,984,985,998],"table",{},[986,987,988],"thead",{},[989,990,991,995],"tr",{},[992,993,994],"th",{},"항목",[992,996,997],{},"내용",[999,1000,1001,1010,1018,1026],"tbody",{},[989,1002,1003,1007],{},[1004,1005,1006],"td",{},"서버",[1004,1008,1009],{},"Linux 서버에 Docker가 설치되어 있어야 합니다. Milvus는 Qdrant보다 무겁기 때문에 SpaceBuilder와 다른 서버에 두는 것을 권장합니다.",[989,1011,1012,1015],{},[1004,1013,1014],{},"메모리",[1004,1016,1017],{},"최소 8GB. 벡터가 100만 개를 넘으면 16GB 이상을 권장합니다.",[989,1019,1020,1023],{},[1004,1021,1022],{},"디스크",[1004,1024,1025],{},"데이터와 로그를 함께 저장하므로 넉넉하게 잡으세요. SSD를 권장합니다.",[989,1027,1028,1031],{},[1004,1029,1030],{},"포트",[1004,1032,1033,1035,1036,1039],{},[952,1034,954],{},"(API). SpaceBuilder는 이 포트만 사용합니다. ",[952,1037,1038],{},"9091","은 상태 확인과 관리 화면용입니다.",[979,1041,1042],{"id":1042},"실행",[934,1044,1045],{},"Milvus가 제공하는 설치 스크립트를 사용하면 필요한 구성 요소가 포함된 컨테이너 하나로 실행됩니다.",[1047,1048,1053],"pre",{"className":1049,"code":1050,"language":1051,"meta":1052,"style":1052},"language-bash shiki shiki-themes github-light github-dark monokai","mkdir -p ~/milvus && cd ~/milvus\ncurl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh\nbash standalone_embed.sh start\n","bash","",[952,1054,1055,1083,1101],{"__ignoreMap":1052},[1056,1057,1060,1064,1068,1072,1076,1080],"span",{"class":1058,"line":1059},"line",1,[1056,1061,1063],{"class":1062},"srTi1","mkdir",[1056,1065,1067],{"class":1066},"s7F3e"," -p",[1056,1069,1071],{"class":1070},"sstjo"," ~/milvus",[1056,1073,1075],{"class":1074},"sMOD_"," && ",[1056,1077,1079],{"class":1078},"sTrkL","cd",[1056,1081,1082],{"class":1070}," ~/milvus\n",[1056,1084,1086,1089,1092,1095,1098],{"class":1058,"line":1085},2,[1056,1087,1088],{"class":1062},"curl",[1056,1090,1091],{"class":1066}," -sfL",[1056,1093,1094],{"class":1070}," https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh",[1056,1096,1097],{"class":1066}," -o",[1056,1099,1100],{"class":1070}," standalone_embed.sh\n",[1056,1102,1104,1106,1109],{"class":1058,"line":1103},3,[1056,1105,1051],{"class":1062},[1056,1107,1108],{"class":1070}," standalone_embed.sh",[1056,1110,1111],{"class":1070}," start\n",[1113,1114,1115,1123,1134],"ul",{},[1116,1117,1118,1119,1122],"li",{},"데이터는 스크립트를 실행한 폴더 아래 ",[952,1120,1121],{},"volumes/milvus","에 저장됩니다. 이 폴더를 지우면 데이터가 사라집니다.",[1116,1124,1125,1126,1129,1130,1133],{},"멈추거나 다시 시작할 때는 같은 폴더에서 ",[952,1127,1128],{},"bash standalone_embed.sh stop"," / ",[952,1131,1132],{},"bash standalone_embed.sh start","를 실행합니다.",[1116,1135,1136,1137,1140],{},"설정을 바꿀 때는 같은 폴더에 생성된 ",[952,1138,1139],{},"user.yaml","을 수정하고 다시 시작합니다.",[1142,1143,1144],"note",{},[934,1145,1146,1147,1150,1151,1154],{},"Docker Compose로 직접 구성하려면 Milvus 릴리스 페이지에서 사용하려는 버전의 ",[952,1148,1149],{},"milvus-standalone-docker-compose.yml","을 내려받아 ",[952,1152,1153],{},"docker compose up -d","로 실행합니다. 이 방식은 etcd와 MinIO 컨테이너가 함께 실행됩니다.",[979,1156,1158],{"id":1157},"인증-켜기","인증 켜기",[934,1160,1161,1162,1164],{},"SpaceBuilder와 다른 서버에서 운영하거나 여러 사람이 접근할 수 있는 네트워크라면 인증을 켜세요. ",[952,1163,1139],{},"에 아래를 추가하고 다시 시작합니다.",[1047,1166,1170],{"className":1167,"code":1168,"language":1169,"meta":1052,"style":1052},"language-yaml shiki shiki-themes github-light github-dark monokai","common:\n  security:\n    authorizationEnabled: true\n","yaml",[952,1171,1172,1181,1188],{"__ignoreMap":1052},[1056,1173,1174,1178],{"class":1058,"line":1059},[1056,1175,1177],{"class":1176},"s5clZ","common",[1056,1179,1180],{"class":1074},":\n",[1056,1182,1183,1186],{"class":1058,"line":1085},[1056,1184,1185],{"class":1176},"  security",[1056,1187,1180],{"class":1074},[1056,1189,1190,1193,1196],{"class":1058,"line":1103},[1056,1191,1192],{"class":1176},"    authorizationEnabled",[1056,1194,1195],{"class":1074},": ",[1056,1197,1198],{"class":1066},"true\n",[934,1200,1201,1202,1205,1206,1209,1210,1213],{},"인증을 켜면 기본 계정 ",[952,1203,1204],{},"root"," / 비밀번호 ",[952,1207,1208],{},"Milvus","로 접속할 수 있습니다. 기본 비밀번호는 반드시 바꾸고, SpaceBuilder 전용 계정을 따로 만드는 것을 권장합니다. SpaceBuilder 연결 설정에는 API 키(토큰, ",[952,1211,1212],{},"사용자명:비밀번호"," 형식) 또는 사용자 이름과 비밀번호를 입력할 수 있습니다. 둘 다 입력하면 API 키를 사용합니다.",[979,1215,1217],{"id":1216},"설치-확인","설치 확인",[1047,1219,1221],{"className":1049,"code":1220,"language":1051,"meta":1052,"style":1052},"curl http://localhost:9091/healthz\n",[952,1222,1223],{"__ignoreMap":1052},[1056,1224,1225,1227],{"class":1058,"line":1059},[1056,1226,1088],{"class":1062},[1056,1228,1229],{"class":1070}," http://localhost:9091/healthz\n",[934,1231,1232,1235,1236,1239],{},[952,1233,1234],{},"OK","가 오면 정상입니다. 브라우저에서 ",[952,1237,1238],{},"http://\u003CMilvus 서버 주소>:9091/webui/","를 열면 컬렉션과 상태를 볼 수 있는 관리 화면이 나옵니다(Milvus 2.5 이상).",[979,1241,1243],{"id":1242},"운영-팁","운영 팁",[1113,1245,1246,1258,1268],{},[1116,1247,1248,1251,1252,1254,1255,1257],{},[970,1249,1250],{},"방화벽",": SpaceBuilder 서버만 ",[952,1253,954],{}," 포트에 접속할 수 있게 제한하세요. ",[952,1256,1038],{},"은 외부에 열지 마세요.",[1116,1259,1260,1263,1264,1267],{},[970,1261,1262],{},"백업",": 벡터는 원본에서 다시 만들 수 있는 파생 데이터입니다. 별도 백업 없이도 SpaceBuilder에서 ",[952,1265,1266],{},"전체 데이터 다시 인덱싱","으로 복구할 수 있습니다.",[1116,1269,1270,1273],{},[970,1271,1272],{},"업데이트",": Milvus 버전을 올릴 때는 Milvus 공식 업그레이드 안내를 따르세요. 마이너 버전이 달라지면 데이터 마이그레이션이 필요할 수 있습니다.",[944,1275,964],{"id":1276},"컬렉션-미리-만들기",[934,1278,1279,1280,1283],{},"Qdrant와 달리 ",[970,1281,1282],{},"Milvus 컬렉션은 자동으로 만들어지지 않습니다."," 연결 설정을 저장하기 전에 아래 구조로 컬렉션을 먼저 만들어야 합니다.",[983,1285,1286,1299],{},[986,1287,1288],{},[989,1289,1290,1293,1296],{},[992,1291,1292],{},"필드",[992,1294,1295],{},"타입",[992,1297,1298],{},"설명",[999,1300,1301,1314,1327,1339,1352,1373,1385,1398,1410],{},[989,1302,1303,1308,1311],{},[1004,1304,1305],{},[952,1306,1307],{},"id",[1004,1309,1310],{},"VARCHAR(64), 기본 키",[1004,1312,1313],{},"벡터 ID",[989,1315,1316,1321,1324],{},[1004,1317,1318],{},[952,1319,1320],{},"instance_namespace",[1004,1322,1323],{},"VARCHAR(64)",[1004,1325,1326],{},"인스턴스 격리 키. 인스턴스(따로 설치해 운영하는 SpaceBuilder 하나)마다 다른 값입니다.",[989,1328,1329,1334,1336],{},[1004,1330,1331],{},[952,1332,1333],{},"generation_id",[1004,1335,1323],{},[1004,1337,1338],{},"인덱싱 세대",[989,1340,1341,1346,1349],{},[1004,1342,1343],{},[952,1344,1345],{},"chunk_id",[1004,1347,1348],{},"INT64",[1004,1350,1351],{},"문서 조각 번호",[989,1353,1354,1359,1362],{},[1004,1355,1356],{},[952,1357,1358],{},"space_flag",[1004,1360,1361],{},"VARCHAR(16)",[1004,1363,1364,1365,1368,1369,1372],{},"팀 공간(",[952,1366,1367],{},"team",") 또는 개인 공간(",[952,1370,1371],{},"client",")",[989,1374,1375,1380,1382],{},[1004,1376,1377],{},[952,1378,1379],{},"owner_id",[1004,1381,1323],{},[1004,1383,1384],{},"소유자",[989,1386,1387,1392,1395],{},[1004,1388,1389],{},[952,1390,1391],{},"source_path",[1004,1393,1394],{},"VARCHAR",[1004,1396,1397],{},"원본 파일 경로",[989,1399,1400,1405,1407],{},[1004,1401,1402],{},[952,1403,1404],{},"text",[1004,1406,1394],{},[1004,1408,1409],{},"검색 결과에 보여줄 문서 조각",[989,1411,1412,1417,1420],{},[1004,1413,1414],{},[952,1415,1416],{},"vector",[1004,1418,1419],{},"FLOAT_VECTOR",[1004,1421,1422],{},"임베딩 벡터. 차원은 임베딩 모델과 같아야 합니다.",[1113,1424,1425,1441,1450,1464],{},[1116,1426,1427,1429,1430,1433,1434,1437,1438,1372],{},[952,1428,1416],{}," 필드의 차원(",[952,1431,1432],{},"dim",")은 SpaceBuilder에 설정할 벡터 차원과 같아야 합니다. (",[952,1435,1436],{},"bge-m3","는 ",[952,1439,1440],{},"1024",[1116,1442,1443,1445,1446,1449],{},[952,1444,1416],{}," 필드의 인덱스 거리 계산 방식(metric)은 ",[952,1447,1448],{},"COSINE","이어야 합니다.",[1116,1451,1452,1453,1455,1456,1459,1460,1463],{},"SpaceBuilder는 ",[952,1454,1404],{},"를 4,096자에서 잘라 저장합니다. UTF-8에서 한글은 글자당 3바이트, 이모지는 4바이트이므로 ",[952,1457,1458],{},"max_length","를 ",[952,1461,1462],{},"16384","(4,096자 × 4바이트) 이상으로 잡으면 어떤 문서 조각도 길이 제한에 걸리지 않습니다.",[1116,1465,1466,1468,1469,1472],{},[952,1467,1391],{},"는 파일 경로가 길고 한글이 섞일 수 있으므로 ",[952,1470,1471],{},"4096"," 정도로 넉넉하게 잡으세요.",[934,1474,1475,1476,1479,1480,1482],{},"아래는 Milvus REST API(v2)로 컬렉션을 만드는 명령입니다. ",[952,1477,1478],{},"\u003CMilvus 서버 주소>",", 인증 정보, 컬렉션 이름, ",[952,1481,1432],{}," 값은 환경에 맞게 바꾸세요.",[1113,1484,1485,1495],{},[1116,1486,1487,1490,1491,1494],{},[952,1488,1489],{},"Authorization","에는 ",[952,1492,1493],{},"\u003C사용자명>:\u003C비밀번호>","를 넣거나, 그 자리에 API 키(토큰)를 넣습니다.",[1116,1496,1497,1498,1500],{},"인증을 켜지 않았다면 ",[952,1499,1489],{}," 줄을 지우세요.",[1047,1502,1504],{"className":1049,"code":1503,"language":1051,"meta":1052,"style":1052},"curl -X POST \"http://\u003CMilvus 서버 주소>:19530/v2/vectordb/collections/create\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer \u003C사용자명>:\u003C비밀번호>\" \\\n  -d '{\n    \"collectionName\": \"setfn_knowledge_example\",\n    \"schema\": {\n      \"autoId\": false,\n      \"enableDynamicField\": false,\n      \"fields\": [\n        { \"fieldName\": \"id\", \"dataType\": \"VarChar\", \"isPrimary\": true, \"elementTypeParams\": { \"max_length\": 64 } },\n        { \"fieldName\": \"instance_namespace\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\n        { \"fieldName\": \"generation_id\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\n        { \"fieldName\": \"chunk_id\", \"dataType\": \"Int64\" },\n        { \"fieldName\": \"space_flag\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 16 } },\n        { \"fieldName\": \"owner_id\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\n        { \"fieldName\": \"source_path\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 4096 } },\n        { \"fieldName\": \"text\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 16384 } },\n        { \"fieldName\": \"vector\", \"dataType\": \"FloatVector\", \"elementTypeParams\": { \"dim\": 1024 } }\n      ]\n    },\n    \"indexParams\": [\n      { \"fieldName\": \"vector\", \"indexName\": \"vector\", \"metricType\": \"COSINE\", \"params\": { \"index_type\": \"AUTOINDEX\" } }\n    ]\n  }'\n",[952,1505,1506,1522,1532,1541,1550,1556,1562,1568,1574,1580,1586,1592,1598,1604,1610,1616,1622,1628,1634,1640,1646,1652,1658,1664],{"__ignoreMap":1052},[1056,1507,1508,1510,1513,1516,1519],{"class":1058,"line":1059},[1056,1509,1088],{"class":1062},[1056,1511,1512],{"class":1066}," -X",[1056,1514,1515],{"class":1070}," POST",[1056,1517,1518],{"class":1070}," \"http://\u003CMilvus 서버 주소>:19530/v2/vectordb/collections/create\"",[1056,1520,1521],{"class":1066}," \\\n",[1056,1523,1524,1527,1530],{"class":1058,"line":1085},[1056,1525,1526],{"class":1066},"  -H",[1056,1528,1529],{"class":1070}," \"Content-Type: application/json\"",[1056,1531,1521],{"class":1066},[1056,1533,1534,1536,1539],{"class":1058,"line":1103},[1056,1535,1526],{"class":1066},[1056,1537,1538],{"class":1070}," \"Authorization: Bearer \u003C사용자명>:\u003C비밀번호>\"",[1056,1540,1521],{"class":1066},[1056,1542,1544,1547],{"class":1058,"line":1543},4,[1056,1545,1546],{"class":1066},"  -d",[1056,1548,1549],{"class":1070}," '{\n",[1056,1551,1553],{"class":1058,"line":1552},5,[1056,1554,1555],{"class":1070},"    \"collectionName\": \"setfn_knowledge_example\",\n",[1056,1557,1559],{"class":1058,"line":1558},6,[1056,1560,1561],{"class":1070},"    \"schema\": {\n",[1056,1563,1565],{"class":1058,"line":1564},7,[1056,1566,1567],{"class":1070},"      \"autoId\": false,\n",[1056,1569,1571],{"class":1058,"line":1570},8,[1056,1572,1573],{"class":1070},"      \"enableDynamicField\": false,\n",[1056,1575,1577],{"class":1058,"line":1576},9,[1056,1578,1579],{"class":1070},"      \"fields\": [\n",[1056,1581,1583],{"class":1058,"line":1582},10,[1056,1584,1585],{"class":1070},"        { \"fieldName\": \"id\", \"dataType\": \"VarChar\", \"isPrimary\": true, \"elementTypeParams\": { \"max_length\": 64 } },\n",[1056,1587,1589],{"class":1058,"line":1588},11,[1056,1590,1591],{"class":1070},"        { \"fieldName\": \"instance_namespace\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\n",[1056,1593,1595],{"class":1058,"line":1594},12,[1056,1596,1597],{"class":1070},"        { \"fieldName\": \"generation_id\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\n",[1056,1599,1601],{"class":1058,"line":1600},13,[1056,1602,1603],{"class":1070},"        { \"fieldName\": \"chunk_id\", \"dataType\": \"Int64\" },\n",[1056,1605,1607],{"class":1058,"line":1606},14,[1056,1608,1609],{"class":1070},"        { \"fieldName\": \"space_flag\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 16 } },\n",[1056,1611,1613],{"class":1058,"line":1612},15,[1056,1614,1615],{"class":1070},"        { \"fieldName\": \"owner_id\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\n",[1056,1617,1619],{"class":1058,"line":1618},16,[1056,1620,1621],{"class":1070},"        { \"fieldName\": \"source_path\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 4096 } },\n",[1056,1623,1625],{"class":1058,"line":1624},17,[1056,1626,1627],{"class":1070},"        { \"fieldName\": \"text\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 16384 } },\n",[1056,1629,1631],{"class":1058,"line":1630},18,[1056,1632,1633],{"class":1070},"        { \"fieldName\": \"vector\", \"dataType\": \"FloatVector\", \"elementTypeParams\": { \"dim\": 1024 } }\n",[1056,1635,1637],{"class":1058,"line":1636},19,[1056,1638,1639],{"class":1070},"      ]\n",[1056,1641,1643],{"class":1058,"line":1642},20,[1056,1644,1645],{"class":1070},"    },\n",[1056,1647,1649],{"class":1058,"line":1648},21,[1056,1650,1651],{"class":1070},"    \"indexParams\": [\n",[1056,1653,1655],{"class":1058,"line":1654},22,[1056,1656,1657],{"class":1070},"      { \"fieldName\": \"vector\", \"indexName\": \"vector\", \"metricType\": \"COSINE\", \"params\": { \"index_type\": \"AUTOINDEX\" } }\n",[1056,1659,1661],{"class":1058,"line":1660},23,[1056,1662,1663],{"class":1070},"    ]\n",[1056,1665,1667],{"class":1058,"line":1666},24,[1056,1668,1669],{"class":1070},"  }'\n",[934,1671,1672,1675],{},[952,1673,1674],{},"\"code\":0","이 포함된 응답이 오면 컬렉션이 만들어진 것입니다.",[944,1677,1679],{"id":1678},"연결-설정","연결 설정",[934,1681,1682,1685,1686,1689],{},[961,1683,150],{"href":1684},"/admin/ai/ai-db-setting/"," 화면의 ",[952,1687,1688],{},"로컬 AI DB 구성","에서 아래와 같이 입력하고 저장합니다.",[983,1691,1692,1703],{},[986,1693,1694],{},[989,1695,1696,1698,1701],{},[992,1697,994],{},[992,1699,1700],{},"입력 값",[992,1702,1298],{},[999,1704,1705,1717,1737,1752,1763,1774],{},[989,1706,1707,1710,1714],{},[1004,1708,1709],{},"드라이버",[1004,1711,1712],{},[952,1713,1208],{},[1004,1715,1716],{},"외부 Milvus 서버를 사용합니다.",[989,1718,1719,1722,1727],{},[1004,1720,1721],{},"엔드포인트",[1004,1723,1724],{},[952,1725,1726],{},"http://\u003CMilvus 서버 주소>:19530",[1004,1728,1729,1732,1733,1736],{},[952,1730,1731],{},"http://","를 생략하면 자동으로 붙습니다. 비워두면 ",[952,1734,1735],{},"http://localhost:19530","을 사용합니다.",[989,1738,1739,1742,1745],{},[1004,1740,1741],{},"컬렉션",[1004,1743,1744],{},"미리 만든 컬렉션 이름",[1004,1746,1747,1748,1751],{},"인스턴스마다 다른 이름을 권장합니다. 화면에 이 인스턴스의 권장 이름(",[952,1749,1750],{},"setfn_knowledge_...",")이 표시됩니다.",[989,1753,1754,1757,1760],{},[1004,1755,1756],{},"API 키",[1004,1758,1759],{},"Milvus 토큰",[1004,1761,1762],{},"인증을 켠 Milvus에 토큰으로 접속할 때만 입력합니다. 저장된 값은 마스킹되어 표시되며, 바꾸지 않으면 그대로 유지됩니다. 비우고 저장하면 삭제됩니다.",[989,1764,1765,1768,1771],{},[1004,1766,1767],{},"사용자 이름 / 비밀번호",[1004,1769,1770],{},"Milvus 계정",[1004,1772,1773],{},"계정 인증을 쓸 때 입력합니다. 비밀번호는 바꿀 때만 입력하고, 비워두면 저장된 값을 유지합니다.",[989,1775,1776,1779,1785],{},[1004,1777,1778],{},"벡터 차원",[1004,1780,1781,1782,1784],{},"컬렉션의 ",[952,1783,1432],{},"과 같은 값",[1004,1786,1787],{},"다르면 연결은 되지만 인덱싱이 저장 단계에서 실패합니다.",[934,1789,1790,1791,1794],{},"Milvus는 서비스형 저장소라 ",[952,1792,1793],{},"데이터 경로"," 입력란이 표시되지 않습니다. 저장하면 인덱싱 스케줄러가 새 설정을 확인하고, 필요한 경우 원본 전체 재인덱싱을 자동으로 시작합니다.",[944,1796,1798],{"id":1797},"연결-확인","연결 확인",[934,1800,1801,1804],{},[952,1802,1803],{},"로컬 AI DB 운영 현황","에서 상태를 확인합니다.",[983,1806,1807,1816],{},[986,1808,1809],{},[989,1810,1811,1813],{},[992,1812,994],{},[992,1814,1815],{},"정상일 때",[999,1817,1818,1828,1838,1846],{},[989,1819,1820,1823],{},[1004,1821,1822],{},"연결 상태",[1004,1824,1825],{},[952,1826,1827],{},"연결됨",[989,1829,1830,1833],{},[1004,1831,1832],{},"컬렉션 구성",[1004,1834,1835],{},[952,1836,1837],{},"정상 (차원·거리 설정 일치)",[989,1839,1840,1843],{},[1004,1841,1842],{},"데이터(엔티티) 수",[1004,1844,1845],{},"인덱싱이 진행되면서 늘어납니다. 이 인스턴스가 저장한 벡터만 셉니다.",[989,1847,1848,1851],{},[1004,1849,1850],{},"컬렉션 수",[1004,1852,1853],{},"Milvus 서버에 있는 전체 컬렉션 수입니다.",[934,1855,1856],{},"정상이 아닐 때는 아래를 확인하세요.",[983,1858,1859,1869],{},[986,1860,1861],{},[989,1862,1863,1866],{},[992,1864,1865],{},"표시",[992,1867,1868],{},"원인과 조치",[999,1870,1871,1881,1895],{},[989,1872,1873,1878],{},[1004,1874,1875],{},[952,1876,1877],{},"컬렉션이 없습니다 · Milvus에 컬렉션을 먼저 만들어야 합니다",[1004,1879,1880],{},"컬렉션을 아직 만들지 않았거나 이름이 다릅니다. 위의 구조로 컬렉션을 만들거나 이름을 맞추세요.",[989,1882,1883,1892],{},[1004,1884,1885,1888,1889],{},[952,1886,1887],{},"컬렉션 설정 확인 필요"," + ",[952,1890,1891],{},"collection dimension is ..., expected ...",[1004,1893,1894],{},"컬렉션 차원과 설정한 벡터 차원이 다릅니다. 차원이 맞는 새 컬렉션을 만들어 지정하세요.",[989,1896,1897,1904],{},[1004,1898,1899,1888,1901],{},[952,1900,1887],{},[952,1902,1903],{},"collection metric must be COSINE",[1004,1905,1906,1908,1909,1911,1912,1914],{},[952,1907,1416],{}," 인덱스의 metric이 ",[952,1910,1448],{},"이 아닙니다. 인덱스를 ",[952,1913,1448],{},"으로 다시 만드세요.",[1916,1917,1918],"warning",{},[934,1919,1920,1921,1923,1924,1926],{},"Milvus에서 SpaceBuilder가 저장한 데이터를 직접 수정하거나 삭제하지 마세요. SpaceBuilder가 기록한 상태와 달라져 검색 결과가 빠지거나 정리 작업이 반복될 수 있습니다. 데이터를 다시 만들어야 하면 ",[961,1922,150],{"href":1684},"의 ",[952,1925,1266],{},"을 사용하세요.",[944,1928,1930],{"id":1929},"관련-문서","관련 문서",[1113,1932,1933,1937,1942,1947],{},[1116,1934,1935],{},[961,1936,150],{"href":1684},[1116,1938,1939],{},[961,1940,154],{"href":1941},"/admin/ai/vector-db-operations/",[1116,1943,1944],{},[961,1945,158],{"href":1946},"/admin/ai/qdrant/",[1116,1948,1949],{},[961,1950,170],{"href":1951},"/admin/ai/knowledge-indexing/",[1953,1954,1955],"style",{},"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 pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sTrkL, html code.shiki .sTrkL{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}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);}html pre.shiki code .s5clZ, html code.shiki .s5clZ{--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-sepia:#F92672}",{"title":1052,"searchDepth":1085,"depth":1103,"links":1957},[1958,1965,1966,1967,1968],{"id":946,"depth":1085,"text":947,"children":1959},[1960,1961,1962,1963,1964],{"id":981,"depth":1103,"text":981},{"id":1042,"depth":1103,"text":1042},{"id":1157,"depth":1103,"text":1158},{"id":1216,"depth":1103,"text":1217},{"id":1242,"depth":1103,"text":1243},{"id":1276,"depth":1085,"text":964},{"id":1678,"depth":1085,"text":1679},{"id":1797,"depth":1085,"text":1798},{"id":1929,"depth":1085,"text":1930},null,"외부 벡터 DB인 Milvus를 SpaceBuilder의 AI DB로 연결하기 위해 컬렉션을 준비하고 연결 정보를 설정하는 방법을 설명합니다.","md",{"slug":1973},"/admin/ai/milvus/",true,{"title":1976,"description":1970,"ogType":1977,"twitterCard":1978,"keywords":1979},"Milvus 연결 | Admin Docs","article","summary_large_image",[1208,1980,1981,1741,1982,170],"벡터 DB","AI DB","RAG","nU6i8AEJ_Oflnnft6Ol8p2vNo0vKF2snGHaZnOWnZrY",[1985,1986],{"title":162,"path":163,"stem":164,"children":-1},{"title":170,"path":171,"stem":172,"children":-1},{"title":166,"filename":1988,"content":1989},"milvus","# Milvus 연결\r\n\r\nMilvus는 대용량 벡터 검색에 쓰는 외부 벡터 DB입니다. 이미 조직에서 Milvus를 운영하고 있거나, 검색 데이터가 매우 많아 별도 클러스터로 관리하려는 경우에 사용합니다.\r\n\r\nMilvus를 쓰더라도 원본 파일과 문서 텍스트는 SpaceBuilder에 그대로 남습니다. Milvus에는 검색에 필요한 벡터와 최소한의 정보만 저장됩니다.\r\n\r\n---\r\n\r\n## Milvus 설치\r\n\r\nSpaceBuilder는 Milvus 2.4 이상의 REST API(v2, 기본 포트 `19530`)를 사용합니다. 모든 요청을 `/v2/vectordb/...` 경로로 보내므로 Milvus 2.3 이하에서는 동작하지 않습니다. SpaceBuilder 서버에서 이 포트로 접속할 수 있는 Milvus가 필요합니다. 이미 운영 중인 Milvus가 있다면 이 절은 건너뛰고 [컬렉션 미리 만들기](#컬렉션-미리-만들기)로 가세요.\r\n\r\nMilvus는 단일 서버용 **Standalone**과 대규모 클러스터용 **Distributed** 두 가지 방식이 있습니다. SpaceBuilder 연결에는 Standalone이면 충분합니다.\r\n\r\n### 준비\r\n\r\n| 항목 | 내용 |\r\n|------|------|\r\n| 서버 | Linux 서버에 Docker가 설치되어 있어야 합니다. Milvus는 Qdrant보다 무겁기 때문에 SpaceBuilder와 다른 서버에 두는 것을 권장합니다. |\r\n| 메모리 | 최소 8GB. 벡터가 100만 개를 넘으면 16GB 이상을 권장합니다. |\r\n| 디스크 | 데이터와 로그를 함께 저장하므로 넉넉하게 잡으세요. SSD를 권장합니다. |\r\n| 포트 | `19530`(API). SpaceBuilder는 이 포트만 사용합니다. `9091`은 상태 확인과 관리 화면용입니다. |\r\n\r\n### 실행\r\n\r\nMilvus가 제공하는 설치 스크립트를 사용하면 필요한 구성 요소가 포함된 컨테이너 하나로 실행됩니다.\r\n\r\n```bash\r\nmkdir -p ~/milvus && cd ~/milvus\r\ncurl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh\r\nbash standalone_embed.sh start\r\n```\r\n\r\n- 데이터는 스크립트를 실행한 폴더 아래 `volumes/milvus`에 저장됩니다. 이 폴더를 지우면 데이터가 사라집니다.\r\n- 멈추거나 다시 시작할 때는 같은 폴더에서 `bash standalone_embed.sh stop` / `bash standalone_embed.sh start`를 실행합니다.\r\n- 설정을 바꿀 때는 같은 폴더에 생성된 `user.yaml`을 수정하고 다시 시작합니다.\r\n\r\n::note\r\nDocker Compose로 직접 구성하려면 Milvus 릴리스 페이지에서 사용하려는 버전의 `milvus-standalone-docker-compose.yml`을 내려받아 `docker compose up -d`로 실행합니다. 이 방식은 etcd와 MinIO 컨테이너가 함께 실행됩니다.\r\n::\r\n\r\n### 인증 켜기\r\n\r\nSpaceBuilder와 다른 서버에서 운영하거나 여러 사람이 접근할 수 있는 네트워크라면 인증을 켜세요. `user.yaml`에 아래를 추가하고 다시 시작합니다.\r\n\r\n```yaml\r\ncommon:\r\n  security:\r\n    authorizationEnabled: true\r\n```\r\n\r\n인증을 켜면 기본 계정 `root` / 비밀번호 `Milvus`로 접속할 수 있습니다. 기본 비밀번호는 반드시 바꾸고, SpaceBuilder 전용 계정을 따로 만드는 것을 권장합니다. SpaceBuilder 연결 설정에는 API 키(토큰, `사용자명:비밀번호` 형식) 또는 사용자 이름과 비밀번호를 입력할 수 있습니다. 둘 다 입력하면 API 키를 사용합니다.\r\n\r\n### 설치 확인\r\n\r\n```bash\r\ncurl http://localhost:9091/healthz\r\n```\r\n\r\n`OK`가 오면 정상입니다. 브라우저에서 `http://\u003CMilvus 서버 주소>:9091/webui/`를 열면 컬렉션과 상태를 볼 수 있는 관리 화면이 나옵니다(Milvus 2.5 이상).\r\n\r\n### 운영 팁\r\n\r\n- **방화벽**: SpaceBuilder 서버만 `19530` 포트에 접속할 수 있게 제한하세요. `9091`은 외부에 열지 마세요.\r\n- **백업**: 벡터는 원본에서 다시 만들 수 있는 파생 데이터입니다. 별도 백업 없이도 SpaceBuilder에서 `전체 데이터 다시 인덱싱`으로 복구할 수 있습니다.\r\n- **업데이트**: Milvus 버전을 올릴 때는 Milvus 공식 업그레이드 안내를 따르세요. 마이너 버전이 달라지면 데이터 마이그레이션이 필요할 수 있습니다.\r\n\r\n## 컬렉션 미리 만들기\r\n\r\nQdrant와 달리 **Milvus 컬렉션은 자동으로 만들어지지 않습니다.** 연결 설정을 저장하기 전에 아래 구조로 컬렉션을 먼저 만들어야 합니다.\r\n\r\n| 필드 | 타입 | 설명 |\r\n|------|------|------|\r\n| `id` | VARCHAR(64), 기본 키 | 벡터 ID |\r\n| `instance_namespace` | VARCHAR(64) | 인스턴스 격리 키. 인스턴스(따로 설치해 운영하는 SpaceBuilder 하나)마다 다른 값입니다. |\r\n| `generation_id` | VARCHAR(64) | 인덱싱 세대 |\r\n| `chunk_id` | INT64 | 문서 조각 번호 |\r\n| `space_flag` | VARCHAR(16) | 팀 공간(`team`) 또는 개인 공간(`client`) |\r\n| `owner_id` | VARCHAR(64) | 소유자 |\r\n| `source_path` | VARCHAR | 원본 파일 경로 |\r\n| `text` | VARCHAR | 검색 결과에 보여줄 문서 조각 |\r\n| `vector` | FLOAT_VECTOR | 임베딩 벡터. 차원은 임베딩 모델과 같아야 합니다. |\r\n\r\n- `vector` 필드의 차원(`dim`)은 SpaceBuilder에 설정할 벡터 차원과 같아야 합니다. (`bge-m3`는 `1024`)\r\n- `vector` 필드의 인덱스 거리 계산 방식(metric)은 `COSINE`이어야 합니다.\r\n- SpaceBuilder는 `text`를 4,096자에서 잘라 저장합니다. UTF-8에서 한글은 글자당 3바이트, 이모지는 4바이트이므로 `max_length`를 `16384`(4,096자 × 4바이트) 이상으로 잡으면 어떤 문서 조각도 길이 제한에 걸리지 않습니다.\r\n- `source_path`는 파일 경로가 길고 한글이 섞일 수 있으므로 `4096` 정도로 넉넉하게 잡으세요.\r\n\r\n아래는 Milvus REST API(v2)로 컬렉션을 만드는 명령입니다. `\u003CMilvus 서버 주소>`, 인증 정보, 컬렉션 이름, `dim` 값은 환경에 맞게 바꾸세요.\r\n\r\n- `Authorization`에는 `\u003C사용자명>:\u003C비밀번호>`를 넣거나, 그 자리에 API 키(토큰)를 넣습니다.\r\n- 인증을 켜지 않았다면 `Authorization` 줄을 지우세요.\r\n\r\n```bash\r\ncurl -X POST \"http://\u003CMilvus 서버 주소>:19530/v2/vectordb/collections/create\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -H \"Authorization: Bearer \u003C사용자명>:\u003C비밀번호>\" \\\r\n  -d '{\r\n    \"collectionName\": \"setfn_knowledge_example\",\r\n    \"schema\": {\r\n      \"autoId\": false,\r\n      \"enableDynamicField\": false,\r\n      \"fields\": [\r\n        { \"fieldName\": \"id\", \"dataType\": \"VarChar\", \"isPrimary\": true, \"elementTypeParams\": { \"max_length\": 64 } },\r\n        { \"fieldName\": \"instance_namespace\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\r\n        { \"fieldName\": \"generation_id\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\r\n        { \"fieldName\": \"chunk_id\", \"dataType\": \"Int64\" },\r\n        { \"fieldName\": \"space_flag\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 16 } },\r\n        { \"fieldName\": \"owner_id\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 64 } },\r\n        { \"fieldName\": \"source_path\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 4096 } },\r\n        { \"fieldName\": \"text\", \"dataType\": \"VarChar\", \"elementTypeParams\": { \"max_length\": 16384 } },\r\n        { \"fieldName\": \"vector\", \"dataType\": \"FloatVector\", \"elementTypeParams\": { \"dim\": 1024 } }\r\n      ]\r\n    },\r\n    \"indexParams\": [\r\n      { \"fieldName\": \"vector\", \"indexName\": \"vector\", \"metricType\": \"COSINE\", \"params\": { \"index_type\": \"AUTOINDEX\" } }\r\n    ]\r\n  }'\r\n```\r\n\r\n`\"code\":0`이 포함된 응답이 오면 컬렉션이 만들어진 것입니다.\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| 드라이버 | `Milvus` | 외부 Milvus 서버를 사용합니다. |\r\n| 엔드포인트 | `http://\u003CMilvus 서버 주소>:19530` | `http://`를 생략하면 자동으로 붙습니다. 비워두면 `http://localhost:19530`을 사용합니다. |\r\n| 컬렉션 | 미리 만든 컬렉션 이름 | 인스턴스마다 다른 이름을 권장합니다. 화면에 이 인스턴스의 권장 이름(`setfn_knowledge_...`)이 표시됩니다. |\r\n| API 키 | Milvus 토큰 | 인증을 켠 Milvus에 토큰으로 접속할 때만 입력합니다. 저장된 값은 마스킹되어 표시되며, 바꾸지 않으면 그대로 유지됩니다. 비우고 저장하면 삭제됩니다. |\r\n| 사용자 이름 / 비밀번호 | Milvus 계정 | 계정 인증을 쓸 때 입력합니다. 비밀번호는 바꿀 때만 입력하고, 비워두면 저장된 값을 유지합니다. |\r\n| 벡터 차원 | 컬렉션의 `dim`과 같은 값 | 다르면 연결은 되지만 인덱싱이 저장 단계에서 실패합니다. |\r\n\r\nMilvus는 서비스형 저장소라 `데이터 경로` 입력란이 표시되지 않습니다. 저장하면 인덱싱 스케줄러가 새 설정을 확인하고, 필요한 경우 원본 전체 재인덱싱을 자동으로 시작합니다.\r\n\r\n## 연결 확인\r\n\r\n`로컬 AI DB 운영 현황`에서 상태를 확인합니다.\r\n\r\n| 항목 | 정상일 때 |\r\n|------|-----------|\r\n| 연결 상태 | `연결됨` |\r\n| 컬렉션 구성 | `정상 (차원·거리 설정 일치)` |\r\n| 데이터(엔티티) 수 | 인덱싱이 진행되면서 늘어납니다. 이 인스턴스가 저장한 벡터만 셉니다. |\r\n| 컬렉션 수 | Milvus 서버에 있는 전체 컬렉션 수입니다. |\r\n\r\n정상이 아닐 때는 아래를 확인하세요.\r\n\r\n| 표시 | 원인과 조치 |\r\n|------|-------------|\r\n| `컬렉션이 없습니다 · Milvus에 컬렉션을 먼저 만들어야 합니다` | 컬렉션을 아직 만들지 않았거나 이름이 다릅니다. 위의 구조로 컬렉션을 만들거나 이름을 맞추세요. |\r\n| `컬렉션 설정 확인 필요` + `collection dimension is ..., expected ...` | 컬렉션 차원과 설정한 벡터 차원이 다릅니다. 차원이 맞는 새 컬렉션을 만들어 지정하세요. |\r\n| `컬렉션 설정 확인 필요` + `collection metric must be COSINE` | `vector` 인덱스의 metric이 `COSINE`이 아닙니다. 인덱스를 `COSINE`으로 다시 만드세요. |\r\n\r\n::warning\r\nMilvus에서 SpaceBuilder가 저장한 데이터를 직접 수정하거나 삭제하지 마세요. SpaceBuilder가 기록한 상태와 달라져 검색 결과가 빠지거나 정리 작업이 반복될 수 있습니다. 데이터를 다시 만들어야 하면 [AI DB 설정](/admin/ai/ai-db-setting/)의 `전체 데이터 다시 인덱싱`을 사용하세요.\r\n::\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- [Qdrant 연결](/admin/ai/qdrant/)\r\n- [지식 인덱싱](/admin/ai/knowledge-indexing/)\n",1790652132896]