98 lines
4.4 KiB
Markdown
98 lines
4.4 KiB
Markdown
---
|
|
phase: 02-tier-1-2-providers
|
|
plan: 02
|
|
subsystem: providers
|
|
tags: [providers, yaml, tier-1, keyword-anchoring]
|
|
requires: [pkg/providers/schema.go, pkg/providers/loader.go, pkg/providers/registry.go]
|
|
provides:
|
|
- Azure OpenAI 32-hex pattern provider definition
|
|
- Meta AI (Llama API) LLM|-prefixed token provider definition
|
|
- Cohere 40-char token provider definition
|
|
- Mistral AI 32-char keyword-anchored provider definition
|
|
- Inflection AI (Pi) opaque-token provider definition
|
|
- AI21 Labs 32+-char keyword-anchored provider definition
|
|
affects: [providers/, pkg/providers/definitions/]
|
|
tech_stack:
|
|
added: []
|
|
patterns: [yaml-provider-definitions, dual-location-embed, keyword-ac-prefilter]
|
|
key_files:
|
|
created:
|
|
- providers/azure-openai.yaml
|
|
- providers/meta-ai.yaml
|
|
- providers/cohere.yaml
|
|
- providers/mistral.yaml
|
|
- providers/inflection.yaml
|
|
- providers/ai21.yaml
|
|
- pkg/providers/definitions/azure-openai.yaml
|
|
- pkg/providers/definitions/meta-ai.yaml
|
|
- pkg/providers/definitions/cohere.yaml
|
|
- pkg/providers/definitions/mistral.yaml
|
|
- pkg/providers/definitions/inflection.yaml
|
|
- pkg/providers/definitions/ai21.yaml
|
|
modified: []
|
|
decisions:
|
|
- Low-confidence regex (generic character classes) compensated by strong keyword lists for Aho-Corasick pre-filtering
|
|
- Azure OpenAI and Inflection use empty verify blocks (no stable public endpoint / requires deployment URL)
|
|
- Meta AI pattern anchors on LLM| literal prefix to reduce false positives
|
|
metrics:
|
|
duration: 1m
|
|
tasks: 2
|
|
files: 12
|
|
completed: "2026-04-05T11:11:55Z"
|
|
requirements: [PROV-01]
|
|
---
|
|
|
|
# Phase 2 Plan 2: Tier 1 Medium/Low-Confidence Providers Summary
|
|
|
|
Added 6 Tier 1 LLM provider YAML definitions (Azure OpenAI, Meta AI, Cohere, Mistral, Inflection, AI21) with strong keyword lists anchoring generic opaque-token regex patterns, completing Tier 1 at 12/12.
|
|
|
|
## What Was Built
|
|
|
|
Created 12 YAML files (6 providers x dual location) covering the remaining Tier 1 providers that lack distinctive high-confidence prefix patterns. These providers rely on Aho-Corasick keyword pre-filtering (azure, cohere, mistral, jamba, PI_API_KEY, etc.) to reduce false positives since their key formats are opaque hex/alphanumeric tokens.
|
|
|
|
- **Azure OpenAI**: 32-hex pattern, no verify endpoint (requires per-deployment URL)
|
|
- **Meta AI**: `LLM|` literal prefix anchor, api.llama.com verify endpoint
|
|
- **Cohere**: 40-char alphanumeric, api.cohere.ai verify endpoint
|
|
- **Mistral AI**: 32-char alphanumeric, api.mistral.ai verify endpoint
|
|
- **Inflection AI**: 40+-char token, no public verify endpoint
|
|
- **AI21 Labs**: 32+-char alphanumeric, api.ai21.com/studio verify endpoint
|
|
|
|
All providers dual-located for Go embed.FS (pkg/providers/definitions/) and user visibility (providers/). Registry loader test passes with all 9 providers (3 existing + 6 new).
|
|
|
|
## Tasks Completed
|
|
|
|
| Task | Name | Commit | Files |
|
|
|------|-----------------------------------------|---------|-------|
|
|
| 1 | Azure OpenAI, Meta AI, Cohere YAMLs | bca8422 | 6 |
|
|
| 2 | Mistral, Inflection, AI21 YAMLs | adad602 | 6 |
|
|
|
|
## Verification
|
|
|
|
- `go test ./pkg/providers/... -count=1` -- PASS (0.037s)
|
|
- `diff` on all 6 provider pairs -- no drift between providers/ and pkg/providers/definitions/
|
|
- `grep -l 'tier: 1' providers/*.yaml | wc -l` -- 12 (matches Tier 1 complete criterion)
|
|
|
|
## Deviations from Plan
|
|
|
|
None - plan executed exactly as written.
|
|
|
|
## Decisions Made
|
|
|
|
- **Empty verify blocks for Azure OpenAI and Inflection**: Azure OpenAI requires per-deployment URL (`https://{resource}.openai.azure.com/...`) which cannot be hardcoded; Inflection lacks a stable public verify endpoint. Both use empty `url: ""` and empty status arrays to signal "verification unsupported" for Phase 5.
|
|
- **Low confidence on all 6**: Generic character-class regex patterns would cause high false-positive rates without keyword anchoring, so confidence is marked `low` and the AC automaton carries the detection weight.
|
|
|
|
## Key Links
|
|
|
|
- Provider `keywords[]` feeds `NewRegistry()` which builds the Aho-Corasick DFA across all providers
|
|
- Aho-Corasick pre-filter gates per-pattern regex evaluation (established in Phase 01)
|
|
|
|
## Self-Check: PASSED
|
|
|
|
All 12 files verified present:
|
|
- providers/{azure-openai,meta-ai,cohere,mistral,inflection,ai21}.yaml -- FOUND
|
|
- pkg/providers/definitions/{azure-openai,meta-ai,cohere,mistral,inflection,ai21}.yaml -- FOUND
|
|
|
|
Commits verified:
|
|
- bca8422 -- FOUND
|
|
- adad602 -- FOUND
|