wip: doctor/cli/docs/api to vector db consolidation; api hardening for descriptions, tenant, and scopes; migrations and conversions of all DALs to EF v10
This commit is contained in:
@@ -14,9 +14,9 @@ LLMs can still be used as optional formatters later, but AKS correctness is grou
|
||||
|
||||
## Architecture
|
||||
1. Ingestion/indexing:
|
||||
- Markdown (`docs/**`) -> section chunks.
|
||||
- OpenAPI (`openapi.json`) -> per-operation chunks + normalized operation tables.
|
||||
- Doctor seed/metadata -> doctor projection chunks.
|
||||
- Markdown allow-list/manifest -> section chunks.
|
||||
- OpenAPI aggregate (`openapi_current.json` style artifact) -> per-operation chunks + normalized operation tables.
|
||||
- Doctor seed + controls metadata (including CLI-discovered Doctor check catalog projection) -> doctor projection chunks.
|
||||
2. Storage:
|
||||
- PostgreSQL tables in schema `advisoryai` via migration `src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/Migrations/002_knowledge_search.sql`.
|
||||
3. Retrieval:
|
||||
@@ -40,22 +40,32 @@ Vector support:
|
||||
|
||||
## Deterministic ingestion rules
|
||||
### Markdown
|
||||
- Source order:
|
||||
1. Allow-list file: `src/AdvisoryAI/StellaOps.AdvisoryAI/KnowledgeSearch/knowledge-docs-allowlist.json`.
|
||||
2. Generated manifest (optional, from CLI tool): `knowledge-docs-manifest.json`.
|
||||
3. Fallback scan roots (`docs/**`) only if allow-list resolves no markdown files.
|
||||
- Chunk by H2/H3 headings.
|
||||
- Stable anchors using slug + duplicate suffix.
|
||||
- Stable chunk IDs from source path + anchor + span.
|
||||
- Metadata includes path, anchor, section path, tags.
|
||||
|
||||
### OpenAPI
|
||||
- Parse `openapi.json` only for deterministic MVP.
|
||||
- Source order:
|
||||
1. Aggregated OpenAPI file path (default `devops/compose/openapi_current.json`).
|
||||
2. Fallback repository scan for `openapi.json` when aggregate is missing.
|
||||
- Parse deterministic JSON aggregate for MVP.
|
||||
- Emit one searchable chunk per HTTP operation.
|
||||
- Preserve structured operation payloads (`request_json`, `responses_json`, `security_json`).
|
||||
|
||||
### Doctor
|
||||
- Source order:
|
||||
1. Seed file `src/AdvisoryAI/StellaOps.AdvisoryAI/KnowledgeSearch/doctor-search-seed.json`.
|
||||
2. Optional Doctor endpoint metadata (`DoctorChecksEndpoint`) when configured.
|
||||
2. Controls file `src/AdvisoryAI/StellaOps.AdvisoryAI/KnowledgeSearch/doctor-search-controls.json` (contains control fields plus fallback metadata from `stella advisoryai sources prepare`).
|
||||
3. Optional Doctor endpoint metadata (`DoctorChecksEndpoint`) when configured.
|
||||
- `stella advisoryai sources prepare` merges configured seed entries with `DoctorEngine.ListChecks()` (when available in CLI runtime) and writes enriched control projection metadata (`title`, `severity`, `description`, `remediation`, `runCommand`, `symptoms`, `tags`, `references`).
|
||||
- Emit doctor chunk + projection record including:
|
||||
- `checkCode`, `title`, `severity`, `runCommand`, remediation, symptoms.
|
||||
- control metadata (`control`, `requiresConfirmation`, `isDestructive`, `inspectCommand`, `verificationCommand`).
|
||||
|
||||
## Ranking strategy
|
||||
Implemented in `src/AdvisoryAI/StellaOps.AdvisoryAI/KnowledgeSearch/KnowledgeSearchService.cs`:
|
||||
@@ -99,6 +109,7 @@ AKS commands:
|
||||
- `stella search "<query>" [--type docs|api|doctor] [--product ...] [--version ...] [--service ...] [--tag ...] [--k N] [--json]`
|
||||
- `stella doctor suggest "<symptom>" [--product ...] [--version ...] [--k N] [--json]`
|
||||
- `stella advisoryai index rebuild [--json]`
|
||||
- `stella advisoryai sources prepare [--repo-root ...] [--docs-allowlist ...] [--docs-manifest-output ...] [--openapi-output ...] [--doctor-seed ...] [--doctor-controls-output ...] [--overwrite] [--json]`
|
||||
|
||||
Output:
|
||||
- Human mode: grouped actionable references.
|
||||
@@ -127,6 +138,7 @@ Init script:
|
||||
Example workflow:
|
||||
```bash
|
||||
docker compose -f devops/compose/docker-compose.advisoryai-knowledge-test.yml up -d
|
||||
stella advisoryai sources prepare --json
|
||||
stella advisoryai index rebuild --json
|
||||
dotnet test src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.Tests.csproj
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user