Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Environment:PacktPublishing LLM Engineers Handbook API Credentials

From Leeroopedia


Knowledge Sources
Domains Infrastructure, Security
Last Updated 2026-02-08 08:00 GMT

Overview

Centralized credential management via `.env` file and Pydantic Settings for OpenAI, HuggingFace, Comet ML, AWS, and LinkedIn API access.

Description

This environment documents all API keys, tokens, and credentials required across the entire project. Credentials are loaded through Pydantic BaseSettings from a `.env` file (or ZenML secret store as fallback). Each workflow requires a different subset of credentials. No credentials have default values that are valid for production use; they must all be explicitly configured by the user.

Usage

Use this environment reference when setting up the project for the first time or when a workflow fails due to missing credentials. The settings module at `llm_engineering/settings.py` centralizes all credential loading with clear defaults and validation.

System Requirements

Category Requirement Notes
File `.env` in project root Primary credential source
Alternative ZenML Secret Store Fallback if `.env` not available

Dependencies

Python Packages

  • `pydantic-settings` >= 2.1.0 (settings management)
  • `python-dotenv` (transitive, for `.env` loading)

Credentials

Core API Keys

  • `OPENAI_API_KEY`: OpenAI API key for GPT-4o-mini (used in dataset generation, RAG query expansion, self-query, LLM-as-judge evaluation)
  • `OPENAI_MODEL_ID`: OpenAI model identifier (default: `gpt-4o-mini`)
  • `HUGGINGFACE_ACCESS_TOKEN`: HuggingFace Hub token for model/dataset downloads and uploads
  • `COMET_API_KEY`: Comet ML API key for experiment tracking during training
  • `COMET_PROJECT`: Comet ML project name (default: `twin`)

AWS Credentials

  • `AWS_REGION`: AWS region (default: `eu-central-1`)
  • `AWS_ACCESS_KEY`: AWS IAM access key ID
  • `AWS_SECRET_KEY`: AWS IAM secret access key
  • `AWS_ARN_ROLE`: SageMaker execution role ARN

Database Credentials

  • `DATABASE_HOST`: MongoDB connection URI (default: `mongodb://llm_engineering:llm_engineering@127.0.0.1:27017`)
  • `DATABASE_NAME`: MongoDB database name (default: `twin`)
  • `QDRANT_DATABASE_HOST`: Qdrant host (default: `localhost`)
  • `QDRANT_DATABASE_PORT`: Qdrant port (default: `6333`)
  • `USE_QDRANT_CLOUD`: Boolean for Qdrant Cloud usage (default: `False`)
  • `QDRANT_CLOUD_URL`: Qdrant Cloud endpoint URL
  • `QDRANT_APIKEY`: Qdrant Cloud API key

LinkedIn Credentials

  • `LINKEDIN_USERNAME`: LinkedIn login email
  • `LINKEDIN_PASSWORD`: LinkedIn login password

Credential Requirements by Workflow

Workflow Required Credentials
Digital Data ETL `DATABASE_HOST`, `LINKEDIN_USERNAME`/`PASSWORD` (if crawling LinkedIn)
Feature Engineering `DATABASE_HOST`, `QDRANT_*`
Dataset Generation `OPENAI_API_KEY`, `HUGGINGFACE_ACCESS_TOKEN`, `QDRANT_*`
LLM Finetuning `HUGGINGFACE_ACCESS_TOKEN`, `COMET_API_KEY`, `AWS_*`
Model Evaluation `OPENAI_API_KEY`, `HUGGINGFACE_ACCESS_TOKEN`, `AWS_*`
RAG Inference `OPENAI_API_KEY`, `AWS_*`, `QDRANT_*`

Quick Install

# Create .env file from template
cat > .env << 'EOF'
OPENAI_API_KEY=sk-...
HUGGINGFACE_ACCESS_TOKEN=hf_...
COMET_API_KEY=...
AWS_REGION=eu-central-1
AWS_ACCESS_KEY=...
AWS_SECRET_KEY=...
AWS_ARN_ROLE=arn:aws:iam::...
EOF

Code Evidence

Settings class definition from `llm_engineering/settings.py:7-8`:

class Settings(BaseSettings):
    model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8")

ZenML secret store fallback from `llm_engineering/settings.py:95-101`:

try:
    # Try loading from ZenML secret store
    ...
except Exception:
    logger.warning(
        "Failed to load settings from the ZenML secret store. Defaulting to loading the settings from the '.env' file."
    )

Credential validation assertions from `llm_engineering/model/finetuning/sagemaker.py:25-26`:

assert settings.HUGGINGFACE_ACCESS_TOKEN, "Hugging Face access token is required."
assert settings.AWS_ARN_ROLE, "AWS ARN role is required."

Evaluation credential assertions from `llm_engineering/model/evaluation/sagemaker.py:18-20`:

assert settings.HUGGINGFACE_ACCESS_TOKEN, "Hugging Face access token is required."
assert settings.OPENAI_API_KEY, "OpenAI API key is required."
assert settings.AWS_ARN_ROLE, "AWS ARN role is required."

Common Errors

Error Message Cause Solution
`AssertionError: Hugging Face access token is required.` `HUGGINGFACE_ACCESS_TOKEN` missing Add token to `.env` file
`AssertionError: OpenAI API key is required.` `OPENAI_API_KEY` missing Add key to `.env` file
`AssertionError: AWS ARN role is required.` `AWS_ARN_ROLE` missing Run IAM role creation script, add ARN to `.env`
`Failed to load settings from ZenML secret store` ZenML not configured Create `.env` file (settings auto-fallback)

Compatibility Notes

  • ZenML Secrets: If ZenML is configured with a secret store, credentials can be loaded from there instead of `.env`.
  • Security: The `.env` file is gitignored. Never commit credentials to version control.
  • Defaults: Database credentials have working defaults for local Docker development. API keys have no functional defaults.

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment