- Added multi-provider AI infrastructure (OpenAI/Ollama) - Implemented real-time tag suggestions with debounced analysis - Created AI diagnostics and database maintenance tools in Settings - Added automated garbage collection for orphan labels - Refined UX with deterministic color hashing and interactive ghost tags
66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
# Story 2.1: Infrastructure IA & Abstraction Provider
|
|
|
|
Status: done
|
|
|
|
## Story
|
|
|
|
As an administrator,
|
|
I want to configure my AI provider (OpenAI or Ollama) centrally,
|
|
so that the application can use artificial intelligence securely.
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. **Given** an `AIProvider` interface and the `Vercel AI SDK` installed.
|
|
2. **When** I provide my API key or Ollama instance URL in environment variables.
|
|
3. **Then** the system initializes the appropriate driver.
|
|
4. **And** no API keys are exposed to the client-side.
|
|
|
|
## Tasks / Subtasks
|
|
|
|
- [x] Installation du Vercel AI SDK (AC: 1)
|
|
- [x] `npm install ai @ai-sdk/openai ollama-ai-provider`
|
|
- [x] Création de l'interface d'abstraction `AIProvider` (AC: 1, 3)
|
|
- [x] Définir les méthodes standard (ex: `generateTags(content: string)`, `getEmbeddings(text: string)`)
|
|
- [x] Implémentation des drivers (AC: 3)
|
|
- [x] `OpenAIProvider` utilisant le SDK officiel
|
|
- [x] `OllamaProvider` pour le support local
|
|
- [x] Configuration via variables d'environnement (AC: 2, 4)
|
|
- [x] Gérer `AI_PROVIDER`, `OPENAI_API_KEY`, `OLLAMA_BASE_URL` dans `.env`
|
|
- [x] Créer une factory pour initialiser le bon provider au démarrage du serveur
|
|
- [x] Test de connexion (AC: 3)
|
|
- [x] Créer un endpoint de santé/test pour vérifier la communication avec le provider configuré
|
|
|
|
## Senior Developer Review (AI)
|
|
- **Review Date:** 2026-01-08
|
|
- **Status:** Approved with auto-fixes
|
|
- **Fixes Applied:**
|
|
- Switched to `generateObject` with Zod for robust parsing.
|
|
- Added strict error handling and timeouts.
|
|
- Improved prompts and system messages.
|
|
|
|
## Dev Agent Record
|
|
|
|
### Agent Model Used
|
|
BMad Master (Gemini 2.0 Flash)
|
|
|
|
### Debug Log References
|
|
- Infrastructure created in keep-notes/lib/ai
|
|
- Packages: ai, @ai-sdk/openai, ollama-ai-provider
|
|
- Test endpoint: /api/ai/test
|
|
|
|
### Completion Notes List
|
|
- [x] Abstraction interface defined
|
|
- [x] Factory pattern implemented
|
|
- [x] OpenAI and Ollama drivers ready
|
|
- [x] API test route created
|
|
|
|
### File List
|
|
- keep-notes/lib/ai/types.ts
|
|
- keep-notes/lib/ai/factory.ts
|
|
- keep-notes/lib/ai/providers/openai.ts
|
|
- keep-notes/lib/ai/providers/ollama.ts
|
|
- keep-notes/app/api/ai/test/route.ts
|
|
|
|
Status: review
|
|
|