Redesign Python AI engine (#5991)

# Description of Changes
Redesign the Python AI engine to be properly agentic and make use of
`pydantic-ai` instead of `langchain` for correctness and ergonomics.
This should be a good foundation for us to build our AI engine on going
forwards.
This commit is contained in:
James Brunton
2026-03-26 10:35:47 +00:00
committed by GitHub
parent 9500acd69f
commit e10c5f6283
211 changed files with 3891 additions and 27744 deletions

View File

@@ -1,51 +1,9 @@
# Claude API (Anthropic)
STIRLING_ANTHROPIC_API_KEY=
# Configure the model strings passed to pydantic-ai. Provider credentials are handled by
# pydantic-ai and should be set using the provider's native environment variables, for example
# ANTHROPIC_API_KEY or OPENAI_API_KEY.
STIRLING_SMART_MODEL=anthropic:claude-haiku-4-5
STIRLING_FAST_MODEL=anthropic:claude-haiku-4-5
# OpenAI API (Optional - for GPT models)
STIRLING_OPENAI_API_KEY=
STIRLING_OPENAI_BASE_URL=
# Model Configuration
STIRLING_SMART_MODEL=claude-sonnet-4-5-20250929
STIRLING_FAST_MODEL=claude-haiku-4-5-20251001
# GPT-5 Reasoning Settings (only used if SMART_MODEL is gpt-5)
# Options: minimal, low, medium, high, xhigh
STIRLING_SMART_MODEL_REASONING_EFFORT=medium
STIRLING_FAST_MODEL_REASONING_EFFORT=minimal
# GPT-5 Text Verbosity (only used if SMART_MODEL is gpt-5)
# Options: minimal, low, medium, high
STIRLING_SMART_MODEL_TEXT_VERBOSITY=medium
STIRLING_FAST_MODEL_TEXT_VERBOSITY=low
# Output token limits. STIRLING_AI_MAX_TOKENS is a global override (leave empty to use per-model defaults)
STIRLING_AI_MAX_TOKENS=
# Default output token limits applied by the engine for each model tier.
STIRLING_SMART_MODEL_MAX_TOKENS=8192
STIRLING_FAST_MODEL_MAX_TOKENS=2048
STIRLING_CLAUDE_MAX_TOKENS=4096
STIRLING_DEFAULT_MODEL_MAX_TOKENS=4096
# PostHog Analytics
STIRLING_POSTHOG_API_KEY=
STIRLING_POSTHOG_HOST=https://eu.i.posthog.com
# Backend Configuration
STIRLING_JAVA_BACKEND_URL=http://localhost:8080
STIRLING_JAVA_BACKEND_API_KEY=123456789
STIRLING_JAVA_REQUEST_TIMEOUT_SECONDS=30
# Logging and Debugging
STIRLING_AI_RAW_DEBUG=0
STIRLING_FLASK_DEBUG=0
# Override the log file directory (defaults to ./logs in server mode, OS log dir in desktop mode)
STIRLING_LOG_PATH=
# Enable verbose table detection debug logging in the PDF text editor
STIRLING_PDF_EDITOR_TABLE_DEBUG=0
# Set to true when running as a Tauri desktop app (switches to OS-native log directory)
STIRLING_PDF_TAURI_MODE=false
# AI Settings
STIRLING_AI_STREAMING=true
STIRLING_AI_PREVIEW_MAX_INFLIGHT=3
STIRLING_AI_REQUEST_TIMEOUT=70