(self)
| 799 | self.send_json_response({'error': str(e)}, status_code=500) |
| 800 | |
| 801 | def handle_create_index(self): |
| 802 | try: |
| 803 | content_length = int(self.headers['Content-Length']) |
| 804 | post_data = self.rfile.read(content_length) |
| 805 | data = json.loads(post_data.decode('utf-8')) |
| 806 | name = data.get('name') |
| 807 | description = data.get('description') |
| 808 | metadata = data.get('metadata', {}) |
| 809 | |
| 810 | if not name: |
| 811 | self.send_json_response({'error': 'Name required'}, status_code=400) |
| 812 | return |
| 813 | |
| 814 | # Add complete metadata from RAG system configuration if available |
| 815 | if RAG_SYSTEM_AVAILABLE and PIPELINE_CONFIGS.get('default'): |
| 816 | default_config = PIPELINE_CONFIGS['default'] |
| 817 | complete_metadata = { |
| 818 | 'status': 'created', |
| 819 | 'metadata_source': 'rag_system_config', |
| 820 | 'created_at': json.loads(json.dumps(datetime.now().isoformat())), |
| 821 | 'chunk_size': 512, # From default config |
| 822 | 'chunk_overlap': 64, # From default config |
| 823 | 'retrieval_mode': 'hybrid', # From default config |
| 824 | 'window_size': 5, # From default config |
| 825 | 'embedding_model': 'Qwen/Qwen3-Embedding-0.6B', # From default config |
| 826 | 'enrich_model': 'qwen3:0.6b', # From default config |
| 827 | 'overview_model': 'qwen3:0.6b', # From default config |
| 828 | 'enable_enrich': True, # From default config |
| 829 | 'latechunk': True, # From default config |
| 830 | 'docling_chunk': True, # From default config |
| 831 | 'note': 'Default configuration from RAG system' |
| 832 | } |
| 833 | # Merge with any provided metadata |
| 834 | complete_metadata.update(metadata) |
| 835 | metadata = complete_metadata |
| 836 | |
| 837 | idx_id = db.create_index(name, description, metadata) |
| 838 | self.send_json_response({'index_id': idx_id}, status_code=201) |
| 839 | except Exception as e: |
| 840 | self.send_json_response({'error': str(e)}, status_code=500) |
| 841 | |
| 842 | def handle_index_file_upload(self, index_id: str): |
| 843 | """Reuse file upload logic but store docs under index.""" |
no test coverage detected