fix: make paragraph refactor service use configured AI provider

The paragraph-refactor service was using OLLAMA_BASE_URL directly from
environment variables instead of using the configured AI provider from
the database. This caused "OLLAMA error" even when OpenAI was configured
in the admin interface.

Changes:
- paragraph-refactor.service.ts: Now uses getSystemConfig() and
  getTagsProvider() from factory instead of direct Ollama calls
- factory.ts: Added proper error messages when API keys are missing
- .env.docker.example: Updated with new provider configuration
  variables (AI_PROVIDER_TAGS, AI_PROVIDER_EMBEDDING)

This fixes the issue where AI reformulation features (Clarify, Shorten,
Improve Style) would fail with OLLAMA errors even when OpenAI was
properly configured in the admin settings.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-12 22:51:24 +01:00
parent 58e486c68e
commit 5d315a6bdd
10 changed files with 3025 additions and 3072 deletions

View File

@@ -14,19 +14,37 @@ NEXTAUTH_URL="http://YOUR_SERVER_IP:3000"
# ============================================
# AI Provider Configuration
# ============================================
# You can configure separate providers for tags and embeddings
# Options: ollama, openai, custom
# For local Ollama in Docker (service name):
AI_PROVIDER=ollama
OLLAMA_BASE_URL="http://ollama:11434"
OLLAMA_MODEL="granite4:latest"
# AI_PROVIDER_TAGS=ollama
# AI_PROVIDER_EMBEDDING=ollama
# OLLAMA_BASE_URL="http://ollama:11434"
# AI_MODEL_TAGS="granite4:latest"
# AI_MODEL_EMBEDDING="embeddinggemma:latest"
# For external Ollama (on host or different server):
# AI_PROVIDER=ollama
# AI_PROVIDER_TAGS=ollama
# AI_PROVIDER_EMBEDDING=ollama
# OLLAMA_BASE_URL="http://YOUR_SERVER_IP:11434"
# OLLAMA_MODEL="granite4:latest"
# AI_MODEL_TAGS="granite4:latest"
# AI_MODEL_EMBEDDING="embeddinggemma:latest"
# For OpenAI:
# AI_PROVIDER=openai
# For OpenAI (recommended for production):
# AI_PROVIDER_TAGS=openai
# AI_PROVIDER_EMBEDDING=openai
# OPENAI_API_KEY="sk-..."
# AI_MODEL_TAGS="gpt-4o-mini"
# AI_MODEL_EMBEDDING="text-embedding-3-small"
# Mixed setup (e.g., Ollama for tags, OpenAI for embeddings):
# AI_PROVIDER_TAGS=ollama
# AI_PROVIDER_EMBEDDING=openai
# OLLAMA_BASE_URL="http://ollama:11434"
# OPENAI_API_KEY="sk-..."
# AI_MODEL_TAGS="granite4:latest"
# AI_MODEL_EMBEDDING="text-embedding-3-small"
# ============================================
# Email Configuration (Optional)
@@ -37,8 +55,3 @@ OLLAMA_MODEL="granite4:latest"
# SMTP_USER="your-email@gmail.com"
# SMTP_PASS="your-app-password"
# SMTP_FROM="noreply@memento.app"
# ============================================
# OpenAI (Optional - for GPT models)
# ============================================
# OPENAI_API_KEY="sk-..."