diff --git a/.env.example b/.env.example index d93ee34e..019d9e98 100644 --- a/.env.example +++ b/.env.example @@ -5,7 +5,7 @@ # Supported providers: openai, groq, ollama, gemini, anthropic, lmstudio, vertexai HINDSIGHT_API_LLM_PROVIDER=openai HINDSIGHT_API_LLM_API_KEY=your-api-key-here -HINDSIGHT_API_LLM_MODEL=o3-mini +HINDSIGHT_API_LLM_MODEL=gpt-4o-mini HINDSIGHT_API_LLM_BASE_URL=https://api.openai.com/v1 # Example: Anthropic Claude configuration diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4ad0160c..f00efac1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -171,10 +171,9 @@ jobs: test-rust-cli: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu @@ -234,7 +233,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -345,7 +343,9 @@ jobs: - name: Smoke test - verify container starts if: matrix.variant == 'slim' env: - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_EMBEDDINGS_PROVIDER: openai HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} HINDSIGHT_API_RERANKER_PROVIDER: cohere @@ -355,15 +355,13 @@ jobs: test-api: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }} HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Prefer CPU-only PyTorch in CI (but keep PyPI for everything else) UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu @@ -417,10 +415,9 @@ jobs: test-python-client: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Prefer CPU-only PyTorch in CI (but keep PyPI for everything else) @@ -462,7 +459,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -495,10 +491,9 @@ jobs: test-typescript-client: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Prefer CPU-only PyTorch in CI (but keep PyPI for everything else) @@ -545,7 +540,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -578,10 +572,9 @@ jobs: test-rust-client: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Prefer CPU-only PyTorch in CI (but keep PyPI for everything else) @@ -627,7 +620,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -660,10 +652,9 @@ jobs: test-go-client: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Prefer CPU-only PyTorch in CI (but keep PyPI for everything else) @@ -703,7 +694,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -740,10 +730,9 @@ jobs: test-openclaw-integration: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 HINDSIGHT_EMBED_PACKAGE_PATH: ${{ github.workspace }}/hindsight-embed GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -810,7 +799,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -843,10 +831,9 @@ jobs: test-integration: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu @@ -903,7 +890,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -994,10 +980,9 @@ jobs: test-embed: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini # Prefer CPU-only PyTorch in CI UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu @@ -1039,14 +1024,13 @@ jobs: test-hindsight-all: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini # For test_server_integration.py compatibility - HINDSIGHT_LLM_PROVIDER: groq - HINDSIGHT_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_LLM_MODEL: openai/gpt-oss-20b + HINDSIGHT_LLM_PROVIDER: openai + HINDSIGHT_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_LLM_MODEL: gpt-4o-mini # Prefer CPU-only PyTorch in CI UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu @@ -1089,10 +1073,9 @@ jobs: runs-on: ubuntu-latest needs: test-rust-cli env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini HINDSIGHT_API_URL: http://localhost:8888 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu @@ -1148,7 +1131,6 @@ jobs: HINDSIGHT_API_LLM_PROVIDER=${{ env.HINDSIGHT_API_LLM_PROVIDER }} HINDSIGHT_API_LLM_API_KEY=${{ env.HINDSIGHT_API_LLM_API_KEY }} HINDSIGHT_API_LLM_MODEL=${{ env.HINDSIGHT_API_LLM_MODEL }} - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER=${{ env.HINDSIGHT_API_LLM_GROQ_SERVICE_TIER }} EOF - name: Start API server @@ -1183,10 +1165,9 @@ jobs: test-upgrade: runs-on: ubuntu-latest env: - HINDSIGHT_API_LLM_PROVIDER: groq - HINDSIGHT_API_LLM_API_KEY: ${{ secrets.GROQ_API_KEY }} - HINDSIGHT_API_LLM_MODEL: openai/gpt-oss-20b - HINDSIGHT_API_LLM_GROQ_SERVICE_TIER: flex + HINDSIGHT_API_LLM_PROVIDER: openai + HINDSIGHT_API_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} + HINDSIGHT_API_LLM_MODEL: gpt-4o-mini GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} UV_INDEX: pytorch=https://download.pytorch.org/whl/cpu diff --git a/CLAUDE.md b/CLAUDE.md index cc8340e5..46813775 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -317,7 +317,7 @@ npm install Required env vars: - `HINDSIGHT_API_LLM_PROVIDER`: openai, anthropic, gemini, groq, ollama, lmstudio - `HINDSIGHT_API_LLM_API_KEY`: Your API key -- `HINDSIGHT_API_LLM_MODEL`: Model name (e.g., o3-mini, claude-sonnet-4-20250514) +- `HINDSIGHT_API_LLM_MODEL`: Model name (e.g., gpt-4o-mini, claude-sonnet-4-20250514) Optional (uses local models by default): - `HINDSIGHT_API_EMBEDDINGS_PROVIDER`: local (default) or tei diff --git a/docker/test-image.sh b/docker/test-image.sh index 10cc55f6..e4fe4592 100755 --- a/docker/test-image.sh +++ b/docker/test-image.sh @@ -13,9 +13,9 @@ # target - Optional: 'cp-only' for control plane, otherwise assumes API image (default: api) # # Environment variables: -# GROQ_API_KEY - Required for API/standalone images (LLM verification) -# HINDSIGHT_API_LLM_PROVIDER - LLM provider (default: groq) -# HINDSIGHT_API_LLM_MODEL - LLM model (default: llama-3.3-70b-versatile) +# HINDSIGHT_API_LLM_API_KEY - Required for API/standalone images (LLM verification) +# HINDSIGHT_API_LLM_PROVIDER - LLM provider (default: openai) +# HINDSIGHT_API_LLM_MODEL - LLM model (default: gpt-4o-mini) # HINDSIGHT_API_EMBEDDINGS_PROVIDER - Embeddings provider (optional, for slim images: openai, cohere, tei) # HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY - OpenAI API key for embeddings (optional) # HINDSIGHT_API_RERANKER_PROVIDER - Reranker provider (optional, for slim images: cohere, tei) @@ -34,7 +34,7 @@ # ./docker/test-image.sh hindsight-control-plane:test cp-only # # # Test slim image with external providers -# export GROQ_API_KEY=gsk_xxx +# export HINDSIGHT_API_LLM_API_KEY=sk_xxx # export HINDSIGHT_API_EMBEDDINGS_PROVIDER=openai # export HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY=sk-xxx # export HINDSIGHT_API_RERANKER_PROVIDER=cohere @@ -60,8 +60,8 @@ IMAGE="${1:-}" TARGET="${2:-api}" TIMEOUT="${SMOKE_TEST_TIMEOUT:-120}" CONTAINER_NAME="${SMOKE_TEST_CONTAINER_NAME:-hindsight-smoke-test}" -LLM_PROVIDER="${HINDSIGHT_API_LLM_PROVIDER:-groq}" -LLM_MODEL="${HINDSIGHT_API_LLM_MODEL:-llama-3.3-70b-versatile}" +LLM_PROVIDER="${HINDSIGHT_API_LLM_PROVIDER:-openai}" +LLM_MODEL="${HINDSIGHT_API_LLM_MODEL:-gpt-4o-mini}" # Validate arguments if [ -z "$IMAGE" ]; then @@ -88,9 +88,9 @@ else fi # Check for required environment variables -if [ "$NEEDS_LLM" = true ] && [ -z "${GROQ_API_KEY:-}" ]; then - echo -e "${RED}Error: GROQ_API_KEY environment variable is required for API/standalone images${NC}" - echo "Set it with: export GROQ_API_KEY=your-api-key" +if [ "$NEEDS_LLM" = true ] && [ -z "${HINDSIGHT_API_LLM_API_KEY:-}" ]; then + echo -e "${RED}Error: HINDSIGHT_API_LLM_API_KEY environment variable is required for API/standalone images${NC}" + echo "Set it with: export HINDSIGHT_API_LLM_API_KEY=your-api-key" exit 2 fi @@ -123,7 +123,7 @@ else # Build docker run command with required and optional env vars DOCKER_CMD="docker run -d --name $CONTAINER_NAME" DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_PROVIDER=$LLM_PROVIDER" - DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_API_KEY=${GROQ_API_KEY}" + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_API_KEY=${HINDSIGHT_API_LLM_API_KEY}" DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_MODEL=$LLM_MODEL" # Add optional embeddings provider config diff --git a/docker/test-slim-local.sh b/docker/test-slim-local.sh index 08dabbb1..5830a079 100755 --- a/docker/test-slim-local.sh +++ b/docker/test-slim-local.sh @@ -6,24 +6,17 @@ # It expects API keys to be set in environment variables. # # Usage: -# export GROQ_API_KEY=gsk_xxx # export OPENAI_API_KEY=sk-xxx # export COHERE_API_KEY=xxx # ./docker/test-slim-local.sh # # Or inline: -# GROQ_API_KEY=gsk_xxx OPENAI_API_KEY=sk_xxx COHERE_API_KEY=xxx ./docker/test-slim-local.sh +# OPENAI_API_KEY=sk_xxx COHERE_API_KEY=xxx ./docker/test-slim-local.sh # set -euo pipefail # Check for required API keys -if [ -z "${GROQ_API_KEY:-}" ]; then - echo "❌ Error: GROQ_API_KEY environment variable is required" - echo "Set it with: export GROQ_API_KEY=gsk_xxx" - exit 1 -fi - if [ -z "${OPENAI_API_KEY:-}" ]; then echo "❌ Error: OPENAI_API_KEY environment variable is required" echo "Set it with: export OPENAI_API_KEY=sk-xxx" @@ -41,7 +34,10 @@ IMAGE="${1:-hindsight-slim:test}" echo "Testing image: $IMAGE" echo "" -# Set up external providers +# Set up LLM and external providers +export HINDSIGHT_API_LLM_PROVIDER=openai +export HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY +export HINDSIGHT_API_LLM_MODEL=gpt-4o-mini export HINDSIGHT_API_EMBEDDINGS_PROVIDER=openai export HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY=$OPENAI_API_KEY export HINDSIGHT_API_RERANKER_PROVIDER=cohere diff --git a/hindsight-api/hindsight_api/config.py b/hindsight-api/hindsight_api/config.py index a87330f5..99ce6e54 100644 --- a/hindsight-api/hindsight_api/config.py +++ b/hindsight-api/hindsight_api/config.py @@ -314,7 +314,7 @@ DEFAULT_LLM_PROVIDER = "openai" # Provider-specific default models PROVIDER_DEFAULT_MODELS = { - "openai": "o3-mini", + "openai": "gpt-4o-mini", "anthropic": "claude-haiku-4-5-20251001", "gemini": "gemini-2.5-flash", "groq": "openai/gpt-oss-120b", @@ -325,7 +325,7 @@ PROVIDER_DEFAULT_MODELS = { "claude-code": "claude-sonnet-4-5-20250929", "mock": "mock-model", } -DEFAULT_LLM_MODEL = "o3-mini" # Fallback if provider not in table +DEFAULT_LLM_MODEL = "gpt-4o-mini" # Fallback if provider not in table DEFAULT_LLM_MAX_CONCURRENT = 32 DEFAULT_LLM_MAX_RETRIES = 10 # Max retry attempts for LLM API calls DEFAULT_LLM_INITIAL_BACKOFF = 1.0 # Initial backoff in seconds for retry exponential backoff diff --git a/hindsight-api/tests/test_provider_default_models.py b/hindsight-api/tests/test_provider_default_models.py index 433d8b94..cc424111 100644 --- a/hindsight-api/tests/test_provider_default_models.py +++ b/hindsight-api/tests/test_provider_default_models.py @@ -93,7 +93,7 @@ def test_per_operation_provider_default_model(): config = HindsightConfig.from_env() # Global LLM should use OpenAI default - assert config.llm_model == "o3-mini", f"Expected o3-mini, got {config.llm_model}" + assert config.llm_model == "gpt-4o-mini", f"Expected gpt-4o-mini, got {config.llm_model}" # Retain should use Anthropic default assert ( diff --git a/hindsight-docs/docs/cookbook/applications/go-memory-service.md b/hindsight-docs/docs/cookbook/applications/go-memory-service.md index 2cc8db82..ef0728fc 100644 --- a/hindsight-docs/docs/cookbook/applications/go-memory-service.md +++ b/hindsight-docs/docs/cookbook/applications/go-memory-service.md @@ -29,7 +29,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/docs/cookbook/recipes/litellm-memory-demo.md b/hindsight-docs/docs/cookbook/recipes/litellm-memory-demo.md index 3e7594b4..d633f706 100644 --- a/hindsight-docs/docs/cookbook/recipes/litellm-memory-demo.md +++ b/hindsight-docs/docs/cookbook/recipes/litellm-memory-demo.md @@ -31,7 +31,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/docs/cookbook/recipes/quickstart.md b/hindsight-docs/docs/cookbook/recipes/quickstart.md index b219fe9a..cea1cd77 100644 --- a/hindsight-docs/docs/cookbook/recipes/quickstart.md +++ b/hindsight-docs/docs/cookbook/recipes/quickstart.md @@ -25,7 +25,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/docs/cookbook/recipes/tool-learning-demo.md b/hindsight-docs/docs/cookbook/recipes/tool-learning-demo.md index 927eec91..c2e3b870 100644 --- a/hindsight-docs/docs/cookbook/recipes/tool-learning-demo.md +++ b/hindsight-docs/docs/cookbook/recipes/tool-learning-demo.md @@ -35,7 +35,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/docs/developer/models.md b/hindsight-docs/docs/developer/models.md index 5afd4eb4..f45f8ade 100644 --- a/hindsight-docs/docs/developer/models.md +++ b/hindsight-docs/docs/developer/models.md @@ -53,7 +53,7 @@ Each provider has a recommended default model that's used when `HINDSIGHT_API_LL | Provider | Default Model | |----------|--------------| -| `openai` | `o3-mini` | +| `openai` | `gpt-4o-mini` | | `anthropic` | `claude-haiku-4-5-20251001` | | `gemini` | `gemini-2.5-flash` | | `groq` | `openai/gpt-oss-120b` | @@ -80,7 +80,7 @@ export HINDSIGHT_API_LLM_MODEL=claude-sonnet-4-5-20250929 This also applies to per-operation overrides: ```bash -# Global: OpenAI o3-mini (default) +# Global: OpenAI gpt-4o-mini (default) export HINDSIGHT_API_LLM_PROVIDER=openai # Retain: Anthropic claude-haiku-4-5-20251001 (default) diff --git a/hindsight-docs/docs/sdks/integrations/openclaw.md b/hindsight-docs/docs/sdks/integrations/openclaw.md index bcd1567e..86a4f0b9 100644 --- a/hindsight-docs/docs/sdks/integrations/openclaw.md +++ b/hindsight-docs/docs/sdks/integrations/openclaw.md @@ -30,7 +30,7 @@ export GROQ_API_KEY="your-key" # Option E: Claude Code (uses claude-sonnet-4-20250514, no API key needed) export HINDSIGHT_API_LLM_PROVIDER=claude-code -# Option F: OpenAI Codex (uses o3-mini, no API key needed) +# Option F: OpenAI Codex (uses gpt-4o-mini, no API key needed) export HINDSIGHT_API_LLM_PROVIDER=openai-codex ``` @@ -103,7 +103,7 @@ The plugin auto-detects your LLM provider from these environment variables: | Gemini | `GEMINI_API_KEY` | `gemini-2.5-flash` | | | Groq | `GROQ_API_KEY` | `openai/gpt-oss-20b` | | | Claude Code | `HINDSIGHT_API_LLM_PROVIDER=claude-code` | `claude-sonnet-4-20250514` | No API key needed | -| OpenAI Codex | `HINDSIGHT_API_LLM_PROVIDER=openai-codex` | `o3-mini` | No API key needed | +| OpenAI Codex | `HINDSIGHT_API_LLM_PROVIDER=openai-codex` | `gpt-4o-mini` | No API key needed | **Override with explicit config:** diff --git a/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/litellm-memory-demo.md b/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/litellm-memory-demo.md index 3e7594b4..d633f706 100644 --- a/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/litellm-memory-demo.md +++ b/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/litellm-memory-demo.md @@ -31,7 +31,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/quickstart.md b/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/quickstart.md index b219fe9a..cea1cd77 100644 --- a/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/quickstart.md +++ b/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/quickstart.md @@ -25,7 +25,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/tool-learning-demo.md b/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/tool-learning-demo.md index 927eec91..c2e3b870 100644 --- a/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/tool-learning-demo.md +++ b/hindsight-docs/versioned_docs/version-0.3/cookbook/recipes/tool-learning-demo.md @@ -35,7 +35,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.4/cookbook/applications/go-memory-service.md b/hindsight-docs/versioned_docs/version-0.4/cookbook/applications/go-memory-service.md index 2cc8db82..ef0728fc 100644 --- a/hindsight-docs/versioned_docs/version-0.4/cookbook/applications/go-memory-service.md +++ b/hindsight-docs/versioned_docs/version-0.4/cookbook/applications/go-memory-service.md @@ -29,7 +29,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/litellm-memory-demo.md b/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/litellm-memory-demo.md index 3e7594b4..d633f706 100644 --- a/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/litellm-memory-demo.md +++ b/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/litellm-memory-demo.md @@ -31,7 +31,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/quickstart.md b/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/quickstart.md index b219fe9a..cea1cd77 100644 --- a/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/quickstart.md +++ b/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/quickstart.md @@ -25,7 +25,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/tool-learning-demo.md b/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/tool-learning-demo.md index 927eec91..c2e3b870 100644 --- a/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/tool-learning-demo.md +++ b/hindsight-docs/versioned_docs/version-0.4/cookbook/recipes/tool-learning-demo.md @@ -35,7 +35,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/hindsight-docs/versioned_docs/version-0.4/developer/models.md b/hindsight-docs/versioned_docs/version-0.4/developer/models.md index 5afd4eb4..f45f8ade 100644 --- a/hindsight-docs/versioned_docs/version-0.4/developer/models.md +++ b/hindsight-docs/versioned_docs/version-0.4/developer/models.md @@ -53,7 +53,7 @@ Each provider has a recommended default model that's used when `HINDSIGHT_API_LL | Provider | Default Model | |----------|--------------| -| `openai` | `o3-mini` | +| `openai` | `gpt-4o-mini` | | `anthropic` | `claude-haiku-4-5-20251001` | | `gemini` | `gemini-2.5-flash` | | `groq` | `openai/gpt-oss-120b` | @@ -80,7 +80,7 @@ export HINDSIGHT_API_LLM_MODEL=claude-sonnet-4-5-20250929 This also applies to per-operation overrides: ```bash -# Global: OpenAI o3-mini (default) +# Global: OpenAI gpt-4o-mini (default) export HINDSIGHT_API_LLM_PROVIDER=openai # Retain: Anthropic claude-haiku-4-5-20251001 (default) diff --git a/hindsight-docs/versioned_docs/version-0.4/sdks/integrations/openclaw.md b/hindsight-docs/versioned_docs/version-0.4/sdks/integrations/openclaw.md index bcd1567e..86a4f0b9 100644 --- a/hindsight-docs/versioned_docs/version-0.4/sdks/integrations/openclaw.md +++ b/hindsight-docs/versioned_docs/version-0.4/sdks/integrations/openclaw.md @@ -30,7 +30,7 @@ export GROQ_API_KEY="your-key" # Option E: Claude Code (uses claude-sonnet-4-20250514, no API key needed) export HINDSIGHT_API_LLM_PROVIDER=claude-code -# Option F: OpenAI Codex (uses o3-mini, no API key needed) +# Option F: OpenAI Codex (uses gpt-4o-mini, no API key needed) export HINDSIGHT_API_LLM_PROVIDER=openai-codex ``` @@ -103,7 +103,7 @@ The plugin auto-detects your LLM provider from these environment variables: | Gemini | `GEMINI_API_KEY` | `gemini-2.5-flash` | | | Groq | `GROQ_API_KEY` | `openai/gpt-oss-20b` | | | Claude Code | `HINDSIGHT_API_LLM_PROVIDER=claude-code` | `claude-sonnet-4-20250514` | No API key needed | -| OpenAI Codex | `HINDSIGHT_API_LLM_PROVIDER=openai-codex` | `o3-mini` | No API key needed | +| OpenAI Codex | `HINDSIGHT_API_LLM_PROVIDER=openai-codex` | `gpt-4o-mini` | No API key needed | **Override with explicit config:** diff --git a/skills/hindsight-docs/references/cookbook/applications/go-memory-service.md b/skills/hindsight-docs/references/cookbook/applications/go-memory-service.md index 2cc8db82..ef0728fc 100644 --- a/skills/hindsight-docs/references/cookbook/applications/go-memory-service.md +++ b/skills/hindsight-docs/references/cookbook/applications/go-memory-service.md @@ -29,7 +29,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/skills/hindsight-docs/references/cookbook/recipes/litellm-memory-demo.md b/skills/hindsight-docs/references/cookbook/recipes/litellm-memory-demo.md index 3e7594b4..d633f706 100644 --- a/skills/hindsight-docs/references/cookbook/recipes/litellm-memory-demo.md +++ b/skills/hindsight-docs/references/cookbook/recipes/litellm-memory-demo.md @@ -31,7 +31,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/skills/hindsight-docs/references/cookbook/recipes/quickstart.md b/skills/hindsight-docs/references/cookbook/recipes/quickstart.md index b219fe9a..cea1cd77 100644 --- a/skills/hindsight-docs/references/cookbook/recipes/quickstart.md +++ b/skills/hindsight-docs/references/cookbook/recipes/quickstart.md @@ -25,7 +25,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/skills/hindsight-docs/references/cookbook/recipes/tool-learning-demo.md b/skills/hindsight-docs/references/cookbook/recipes/tool-learning-demo.md index 927eec91..c2e3b870 100644 --- a/skills/hindsight-docs/references/cookbook/recipes/tool-learning-demo.md +++ b/skills/hindsight-docs/references/cookbook/recipes/tool-learning-demo.md @@ -35,7 +35,7 @@ export OPENAI_API_KEY=your-key docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ - -e HINDSIGHT_API_LLM_MODEL=o3-mini \ + -e HINDSIGHT_API_LLM_MODEL=gpt-4o-mini \ -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \ ghcr.io/vectorize-io/hindsight:latest ``` diff --git a/skills/hindsight-docs/references/developer/models.md b/skills/hindsight-docs/references/developer/models.md index 5afd4eb4..f45f8ade 100644 --- a/skills/hindsight-docs/references/developer/models.md +++ b/skills/hindsight-docs/references/developer/models.md @@ -53,7 +53,7 @@ Each provider has a recommended default model that's used when `HINDSIGHT_API_LL | Provider | Default Model | |----------|--------------| -| `openai` | `o3-mini` | +| `openai` | `gpt-4o-mini` | | `anthropic` | `claude-haiku-4-5-20251001` | | `gemini` | `gemini-2.5-flash` | | `groq` | `openai/gpt-oss-120b` | @@ -80,7 +80,7 @@ export HINDSIGHT_API_LLM_MODEL=claude-sonnet-4-5-20250929 This also applies to per-operation overrides: ```bash -# Global: OpenAI o3-mini (default) +# Global: OpenAI gpt-4o-mini (default) export HINDSIGHT_API_LLM_PROVIDER=openai # Retain: Anthropic claude-haiku-4-5-20251001 (default) diff --git a/skills/hindsight-docs/references/sdks/integrations/openclaw.md b/skills/hindsight-docs/references/sdks/integrations/openclaw.md index bcd1567e..86a4f0b9 100644 --- a/skills/hindsight-docs/references/sdks/integrations/openclaw.md +++ b/skills/hindsight-docs/references/sdks/integrations/openclaw.md @@ -30,7 +30,7 @@ export GROQ_API_KEY="your-key" # Option E: Claude Code (uses claude-sonnet-4-20250514, no API key needed) export HINDSIGHT_API_LLM_PROVIDER=claude-code -# Option F: OpenAI Codex (uses o3-mini, no API key needed) +# Option F: OpenAI Codex (uses gpt-4o-mini, no API key needed) export HINDSIGHT_API_LLM_PROVIDER=openai-codex ``` @@ -103,7 +103,7 @@ The plugin auto-detects your LLM provider from these environment variables: | Gemini | `GEMINI_API_KEY` | `gemini-2.5-flash` | | | Groq | `GROQ_API_KEY` | `openai/gpt-oss-20b` | | | Claude Code | `HINDSIGHT_API_LLM_PROVIDER=claude-code` | `claude-sonnet-4-20250514` | No API key needed | -| OpenAI Codex | `HINDSIGHT_API_LLM_PROVIDER=openai-codex` | `o3-mini` | No API key needed | +| OpenAI Codex | `HINDSIGHT_API_LLM_PROVIDER=openai-codex` | `gpt-4o-mini` | No API key needed | **Override with explicit config:**