mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
# Description of Changes Adds the ability for the Edit agent to request the content of the document before it decides which parameters it needs. This makes it able to process requests like `Split the document after the page containing the "My Section" section`, allowing for document context-based requests for all[^1] tools. I had to make a few changes elsewhere to make this work, including: - Moving the requesting of content out of the Question Agent and into a common location - Added specific API docs for the Split param because the generic ones were not specific enough for the AI to be able to reliably perform the correct operation - Fixed an issue in the tool models generator which caused the Redact params to only be half-generated (causing Pydantic to crash when the AI tried to run Redact) - Added missing logging to a bunch of tools and hooked it up properly so it'll print to stderr - Made the limits for the max pages/chars to extract from PDFs configurable via env var [^1]: Many of the tools can't actually do anything useful with the context at this stage, but will just need the tool API to be extended with new features like page-specific operations to be automatically able to do smart operations without needing to change the Edit agent itself.
49 lines
2.0 KiB
Bash
49 lines
2.0 KiB
Bash
###############################################################################
|
|
# Environment variables used within the AI Engine.
|
|
# Values can be overridden in the uncommitted sibling `.env.local` file.
|
|
# Note: This file is committed to Git, so should not contain any private keys.
|
|
###############################################################################
|
|
|
|
# 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
|
|
|
|
# Default output token limits applied by the engine for each model tier.
|
|
STIRLING_SMART_MODEL_MAX_TOKENS=8192
|
|
STIRLING_FAST_MODEL_MAX_TOKENS=2048
|
|
|
|
# RAG Configuration — retrieval-augmented generation is always on.
|
|
# Embedding provider credentials are handled natively (e.g. VOYAGE_API_KEY for VoyageAI).
|
|
STIRLING_RAG_EMBEDDING_MODEL=voyageai:voyage-4
|
|
|
|
# Vector store backend: "sqlite" (embedded) or "pgvector" (external Postgres).
|
|
STIRLING_RAG_BACKEND=sqlite
|
|
|
|
# Path to the sqlite-vec database file (used when backend=sqlite).
|
|
STIRLING_RAG_STORE_PATH=data/rag.db
|
|
|
|
# Postgres DSN for pgvector (used when backend=pgvector). Leave empty when backend=sqlite.
|
|
# Example: postgresql://user:password@host:5432/dbname
|
|
STIRLING_RAG_PGVECTOR_DSN=
|
|
|
|
STIRLING_RAG_CHUNK_SIZE=512
|
|
STIRLING_RAG_CHUNK_OVERLAP=64
|
|
STIRLING_RAG_TOP_K=5
|
|
|
|
# Upper bounds on PDF page text the engine will request per extraction round.
|
|
STIRLING_MAX_PAGES=200
|
|
STIRLING_MAX_CHARACTERS=200000
|
|
|
|
# PostHog analytics. Set STIRLING_POSTHOG_ENABLED=true and provide an API key to enable.
|
|
STIRLING_POSTHOG_ENABLED=false
|
|
STIRLING_POSTHOG_API_KEY=phc_VOdeYnlevc2T63m3myFGjeBlRcIusRgmhfx6XL5a1iz
|
|
STIRLING_POSTHOG_HOST=https://eu.i.posthog.com
|
|
|
|
# Log level for the stirling logger hierarchy (DEBUG, INFO, WARNING, ERROR)
|
|
STIRLING_LOG_LEVEL=INFO
|
|
|
|
# Path to log file. Rolls daily, keeps 1 backup. Leave empty for console only.
|
|
STIRLING_LOG_FILE=
|