Skip to main content

AI provider

Several Norish features are powered by an AI provider. They're off by default — configure a provider to unlock them.

AI enables:

  • AI fallback when a recipe can't be imported from a URL structurally
  • Image import from screenshots or photos of recipes
  • Video import from YouTube Shorts, Instagram Reels, TikTok, and more
  • Nutritional information generation
  • Allergy detection for ingredients
  • Unit conversion between metric and US units

Enable AI

Set AI_ENABLED=true and configure a provider. Norish speaks the OpenAI API format, so any OpenAI-compatible endpoint works (OpenAI, Azure OpenAI, Open Router, a local Ollama/LM Studio server, …).

docker-compose.yml (environment)
AI_ENABLED: "true"
AI_PROVIDER: openai
AI_MODEL: gpt-5-mini
AI_API_KEY: <your-api-key>
# For an OpenAI-compatible endpoint (Azure, OpenRouter, Ollama, …):
# AI_ENDPOINT: https://your-endpoint/v1
VariableDescriptionDefault
AI_ENABLEDEnable AI features globallyfalse
AI_PROVIDERAI provideropenai
AI_ENDPOINTCustom OpenAI-compatible endpoint(empty)
AI_MODELDefault modelgpt-5-mini
AI_API_KEYAPI key for the provider(empty)
AI_TEMPERATUREGeneration temperature1.0
AI_MAX_TOKENSMaximum tokens for model responses10000
AI_TIMEOUT_MSMaximum time for an AI response (ms)300000
note

AI feature speed and quality vary by provider, model, and region. You can also adjust AI settings at runtime in Settings → Admin.

Video import

Video import downloads the clip with yt-dlp, transcribes the audio, and uses the AI provider to extract the recipe. It requires AI to be enabled.

VariableDescriptionDefault
VIDEO_PARSING_ENABLEDEnable the video parsing pipelinefalse
VIDEO_MAX_LENGTH_SECONDSMaximum accepted video length120
YT_DLP_VERSIONyt-dlp version used by downloader2025.11.12
YT_DLP_BIN_DIRFolder containing the yt-dlp binary./.runtime/bin (dev), /app/bin (prod)
YT_DLP_PROXYHTTP/SOCKS proxy URL for yt-dlp downloads(empty)

Transcription

Transcription turns the video's audio into text for the AI step.

VariableDescriptionDefault
TRANSCRIPTION_PROVIDERTranscription providerdisabled
TRANSCRIPTION_ENDPOINTTranscription endpoint (local/custom providers)(empty)
TRANSCRIPTION_API_KEYTranscription API key(empty)
TRANSCRIPTION_MODELTranscription modelwhisper-1