Configuration File
GetProfile uses a JSON configuration file. Createconfig/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.${VAR_NAME} syntax.
Required Secrets
Provider-specific keys (optional, fallback to
LLM_API_KEY):
OPENAI_API_KEY- OpenAI-specific keyANTHROPIC_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_PROVIDER→upstreamsectionGETPROFILE_MAX_MESSAGES→memory.maxMessagesPerProfileGETPROFILE_SUMMARY_INTERVAL→memory.summarizationIntervalLLM_API_KEY,LLM_PROVIDER,LLM_MODEL,LLM_BASE_URL→llmsectionPORT,HOST→serversection
Configuration Sections
database
database
llm
llm
LLM used for internal processing (extraction, summarization).OpenAI Example:Anthropic Example:OpenRouter Example:
upstream
upstream
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, orcustomX-Upstream-Key: API key for that providerX-Upstream-Base-URL: Custom base URL (optional)
memory
memory
traits
traits
server
server