105 lines
3.0 KiB
Plaintext
105 lines
3.0 KiB
Plaintext
|
|
# Knowledge Base Schema for RAG Integration with SurrealDB
|
||
|
|
# Defines document structures for best practices and extension metadata
|
||
|
|
# stored in the vector database with embeddings for semantic search
|
||
|
|
|
||
|
|
# Document types
|
||
|
|
let DocType = [
|
||
|
|
"best_practice",
|
||
|
|
"extension_metadata",
|
||
|
|
"deployment_guide",
|
||
|
|
"troubleshooting",
|
||
|
|
] | Array;
|
||
|
|
|
||
|
|
# Base document metadata (common to all knowledge documents)
|
||
|
|
let DocumentMetadata = {
|
||
|
|
source_path | String,
|
||
|
|
doc_type | DocType,
|
||
|
|
category | String,
|
||
|
|
tags | Array,
|
||
|
|
version | String,
|
||
|
|
created_at | String,
|
||
|
|
updated_at | String,
|
||
|
|
};
|
||
|
|
|
||
|
|
# Best Practice document structure
|
||
|
|
let BestPracticeDoc = {
|
||
|
|
id | String,
|
||
|
|
title | String,
|
||
|
|
description | String,
|
||
|
|
category | String, # deployment, security, reliability, operations, architecture, quality
|
||
|
|
relevance | Number, # 0-100 relevance score
|
||
|
|
tags | Array, # categorization tags
|
||
|
|
source | String, # source reference
|
||
|
|
implementation_notes | Array, # practical implementation details
|
||
|
|
related_practices | Array, # IDs of related best practices
|
||
|
|
|
||
|
|
# RAG fields
|
||
|
|
content | String, # full text for embedding
|
||
|
|
embedding | Array, # vector embedding (1536-dim)
|
||
|
|
chunk_index | Number, # if document is chunked
|
||
|
|
source_path | String, # file location of source
|
||
|
|
indexed_at | String, # timestamp when indexed
|
||
|
|
} & DocumentMetadata;
|
||
|
|
|
||
|
|
# Extension Metadata document structure
|
||
|
|
let ExtensionMetadataDoc = {
|
||
|
|
id | String,
|
||
|
|
name | String,
|
||
|
|
version | String,
|
||
|
|
category | String, # provider, taskserv
|
||
|
|
description | String,
|
||
|
|
dependencies | Array, # names of extensions this depends on
|
||
|
|
tags | Array,
|
||
|
|
best_practices | Array, # IDs of best practices that apply
|
||
|
|
|
||
|
|
# Additional metadata
|
||
|
|
author | String,
|
||
|
|
license | String,
|
||
|
|
documentation_url | String,
|
||
|
|
repository_url | String,
|
||
|
|
|
||
|
|
# Dependency graph information
|
||
|
|
dependency_count | Number, # number of direct dependencies
|
||
|
|
dependents | Array, # extensions that depend on this
|
||
|
|
initialization_order | Number, # position in topological sort
|
||
|
|
|
||
|
|
# RAG fields
|
||
|
|
content | String, # full text for embedding
|
||
|
|
embedding | Array, # vector embedding (1536-dim)
|
||
|
|
source_path | String, # file location of metadata.ncl
|
||
|
|
indexed_at | String, # timestamp when indexed
|
||
|
|
} & DocumentMetadata;
|
||
|
|
|
||
|
|
# Document relationship (for graph structure)
|
||
|
|
let DocumentRelationship = {
|
||
|
|
source_id | String,
|
||
|
|
target_id | String,
|
||
|
|
relationship_type | ["relates_to", "depends_on", "implements", "extends"],
|
||
|
|
strength | Number, # 0-1 relevance strength
|
||
|
|
created_at | String,
|
||
|
|
};
|
||
|
|
|
||
|
|
# Knowledge base statistics (metadata about the index)
|
||
|
|
let KnowledgeBaseStats = {
|
||
|
|
namespace | String,
|
||
|
|
database | String,
|
||
|
|
total_documents | Number,
|
||
|
|
by_doc_type | {
|
||
|
|
best_practice | Number,
|
||
|
|
extension_metadata | Number,
|
||
|
|
_,
|
||
|
|
},
|
||
|
|
embedding_dimension | Number,
|
||
|
|
total_relationships | Number,
|
||
|
|
last_indexed_at | String,
|
||
|
|
vector_index_status | ["healthy", "degraded", "error"],
|
||
|
|
};
|
||
|
|
|
||
|
|
{
|
||
|
|
DocumentMetadata,
|
||
|
|
BestPracticeDoc,
|
||
|
|
ExtensionMetadataDoc,
|
||
|
|
DocumentRelationship,
|
||
|
|
KnowledgeBaseStats,
|
||
|
|
}
|