Skip to main content

Configuration File

GetProfile uses a JSON configuration file. Create config/getprofile.json:
Provider-Agnostic: GetProfile works with OpenAI, Anthropic, OpenRouter, or any OpenAI-compatible API. Just change the provider field and model name.

Environment Variables

Minimalistic Approach: GetProfile only uses environment variables for secrets and high-level server settings. All other configuration goes in config/getprofile.json.
Configuration values can reference environment variables using ${VAR_NAME} syntax.

Required Secrets

Provider-specific keys (optional, fallback to LLM_API_KEY):
  • OPENAI_API_KEY - OpenAI-specific key
  • ANTHROPIC_API_KEY - Anthropic-specific key

Server Settings

Optional Secrets

Environment Variable Support: All configuration can be set via environment variables for backward compatibility and deployment flexibility. The config file (config/getprofile.json) is the recommended approach for structured configuration, but environment variables take precedence when both are set.Environment variables that map to config file settings:
  • UPSTREAM_API_KEY, UPSTREAM_BASE_URL, UPSTREAM_PROVIDERupstream section
  • GETPROFILE_MAX_MESSAGESmemory.maxMessagesPerProfile
  • GETPROFILE_SUMMARY_INTERVALmemory.summarizationInterval
  • LLM_API_KEY, LLM_PROVIDER, LLM_MODEL, LLM_BASE_URLllm section
  • PORT, HOSTserver section
Priority order: Environment variables > Config file > Defaults

Configuration Sections

LLM used for internal processing (extraction, summarization).OpenAI Example:
Anthropic Example:
OpenRouter Example:
LLM provider where chat completion requests are forwarded. Can be different from the LLM used for extraction.Same as LLM (default):
Different provider:
Per-request override via headers: Clients can override the upstream provider using headers:
  • X-Upstream-Provider: openai, anthropic, or custom
  • X-Upstream-Key: API key for that provider
  • X-Upstream-Base-URL: Custom base URL (optional)