Skip to main content

Overview

NeuraTrade supports multiple AI providers with automatic failover for autonomous trading decisions. The platform uses a provider chain that tries providers in order until one succeeds.

Supported Providers

Anthropic

Claude models (recommended)

OpenAI

GPT-4 and GPT-3.5 models

Zhipu

Chinese AI provider (GLM models)

MiniMax

Alternative Chinese provider

MLX

Local inference (Apple Silicon)

Provider Configuration

Primary Provider

Set your primary AI provider in ~/.neuratrade/config.json:
config.json
{
  "ai": {
    "provider": "anthropic",
    "api_key": "sk-ant-...",
    "base_url": "https://api.anthropic.com/v1"
  }
}
ai.provider
string
default:"zhipu"
Primary AI provider name.Options: anthropic, openai, zhipu, minimax, mlx
ai.api_key
string
required
API key for the primary provider.
Keep your API keys secure. Never commit them to version control.
ai.base_url
string
Custom base URL for the provider API (optional).Defaults:
  • Anthropic: https://api.anthropic.com/v1
  • OpenAI: https://api.openai.com/v1
  • Zhipu: https://open.bigmodel.cn/api/coding/paas/v4
  • MiniMax: https://api.minimax.chat/v1
  • MLX: http://localhost:8080/v1

Failover Chain Configuration

Environment Variable

NEURATRADE_AI_PROVIDER_CHAIN
string
default:"zhipu,minimax"
Comma-separated list of fallback providers.The primary provider is automatically added first, followed by the chain.
NEURATRADE_AI_PROVIDER_CHAIN=anthropic,openai,zhipu

Chain Behavior

The failover chain tries providers in order:
  1. Primary Provider (from config.json)
  2. Failover Providers (from NEURATRADE_AI_PROVIDER_CHAIN)

Max Failover Hops

NEURATRADE_AI_FAILOVER_MAX_HOPS
number
default:"1"
Maximum number of failover attempts.
  • 0: No failover (primary only)
  • 1: Try primary + 1 fallback
  • 2: Try primary + 2 fallbacks
  • -1: Try all providers in chain
NEURATRADE_AI_FAILOVER_MAX_HOPS=2

Provider-Specific Configuration

Anthropic (Claude)

{
  "ai": {
    "provider": "anthropic",
    "api_key": "sk-ant-api03-..."
  }
}
Supported Models:
  • claude-3-5-sonnet-20241022 (recommended)
  • claude-3-opus-20240229
  • claude-3-haiku-20240307

OpenAI

{
  "ai": {
    "provider": "openai",
    "api_key": "sk-proj-..."
  }
}
Supported Models:
  • gpt-4-turbo-preview
  • gpt-4-1106-preview
  • gpt-3.5-turbo-1106

Zhipu (GLM)

{
  "ai": {
    "provider": "zhipu",
    "api_key": "your-zhipu-key"
  }
}
Supported Models:
  • glm-4
  • glm-3-turbo

MiniMax

{
  "ai": {
    "provider": "minimax",
    "api_key": "your-minimax-key"
  }
}
MiniMax exposes an Anthropic-compatible API endpoint.

MLX (Local Inference)

{
  "ai": {
    "provider": "mlx",
    "base_url": "http://localhost:8080/v1"
  }
}
MLX is for local inference on Apple Silicon Macs:
  1. Install MLX: pip install mlx-lm
  2. Download a model: mlx_lm.download --model mistralai/Mistral-7B-v0.1
  3. Start server: mlx_lm.server --model mistralai/Mistral-7B-v0.1 --port 8080
  4. Configure NeuraTrade to use mlx provider
MLX does not require an API key. It runs entirely on your local machine.

Advanced Configuration

Request Timeout

NEURATRADE_AI_HTTP_TIMEOUT_SECONDS
number
default:"300"
HTTP timeout for AI provider requests in seconds.
NEURATRADE_AI_HTTP_TIMEOUT_SECONDS=600

Retry Configuration

NEURATRADE_AI_MAX_RETRIES
number
default:"5"
Maximum number of retries for failed requests.
NEURATRADE_AI_MAX_RETRIES=3

Model Override

Override models for specific providers:
# Override Anthropic model
NEURATRADE_AI_PROVIDER_ANTHROPIC_MODEL=claude-3-opus-20240229

# Override OpenAI model
NEURATRADE_AI_PROVIDER_OPENAI_MODEL=gpt-4-1106-preview

Failover Example

Configuration

.env
# Primary provider
ANTHROPIC_API_KEY=sk-ant-...

# Failover chain
NEURATRADE_AI_PROVIDER_CHAIN=openai,zhipu,minimax

# Fallback API keys
OPENAI_API_KEY=sk-proj-...
ZHIPU_API_KEY=your-zhipu-key
MINIMAX_API_KEY=your-minimax-key

# Max 2 failover attempts
NEURATRADE_AI_FAILOVER_MAX_HOPS=2

Execution Flow

Request Flow:
1. Try Anthropic (primary) → Rate limited (429)
2. Try OpenAI (failover #1) → Success ✓

Failover Stats:
{
  "total_requests": 1,
  "failover_attempts": 1,
  "failover_successes": 1,
  "last_attempt": {
    "primary_provider": "anthropic",
    "attempted_providers": ["anthropic", "openai"],
    "failed_providers": ["anthropic"],
    "success_provider": "openai",
    "failover_attempted": true,
    "failover_succeeded": true
  }
}

Cost Tracking

NeuraTrade tracks AI costs per request:
{
  "usage": {
    "input_tokens": 1250,
    "output_tokens": 430,
    "total_tokens": 1680
  },
  "cost": {
    "input_cost": "0.015",
    "output_cost": "0.0645",
    "total_cost": "0.0795"
  }
}

Budget Limits

AI_DAILY_BUDGET
decimal
default:"10.00"
Maximum daily AI spending in USD.
AI_DAILY_BUDGET=50.00
AI_MONTHLY_BUDGET
decimal
default:"200.00"
Maximum monthly AI spending in USD.
AI_MONTHLY_BUDGET=1000.00

Error Handling

Retryable Errors

  • Rate limiting (HTTP 429)
  • Timeout errors
  • Server errors (HTTP 5xx)
  • Network connection errors

Non-Retryable Errors

  • Invalid API key (HTTP 401)
  • Context length exceeded
  • Content filtered
  • Invalid request format

Monitoring

Check AI Status

curl http://localhost:58080/api/v1/ai/status/:userId
Response
{
  "provider": "anthropic",
  "model": "claude-3-5-sonnet-20241022",
  "available": true,
  "failover_enabled": true,
  "failover_chain": ["openai", "zhipu"],
  "last_request": "2026-03-03T10:30:00Z",
  "total_requests": 145,
  "failed_requests": 3,
  "failover_successes": 2
}

Budget Status

curl http://localhost:58080/api/v1/budget/status \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
Response
{
  "daily": {
    "spent": "7.45",
    "limit": "10.00",
    "remaining": "2.55",
    "percentage": 74.5
  },
  "monthly": {
    "spent": "156.30",
    "limit": "200.00",
    "remaining": "43.70",
    "percentage": 78.15
  }
}

Security Best Practices

  1. Rotate Keys: Change API keys quarterly
  2. Limit Budgets: Set conservative daily/monthly limits
  3. Monitor Usage: Track spending on provider dashboards
  4. Separate Keys: Use different keys for dev/staging/prod
  5. Environment Isolation: Never use production keys in development

Troubleshooting

# Check provider configuration
echo $ANTHROPIC_API_KEY

# Test API key directly
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-3-5-sonnet-20241022","max_tokens":10,"messages":[{"role":"user","content":"test"}]}'

# Check failover stats
curl http://localhost:58080/api/v1/ai/status/your-user-id
# Check current budget
curl http://localhost:58080/api/v1/budget/status

# Increase limits (environment variables)
AI_DAILY_BUDGET=20.00
AI_MONTHLY_BUDGET=400.00

# Or wait for daily reset (midnight UTC)
# Verify failover chain
echo $NEURATRADE_AI_PROVIDER_CHAIN

# Check max hops
echo $NEURATRADE_AI_FAILOVER_MAX_HOPS

# Verify fallback API keys are set
env | grep API_KEY

Build docs developers (and LLMs) love