Build and Push / build (release) Failing after 1m3s
- Switch from pydantic-ai to pydantic-ai-slim[openai] - Removes unused provider SDKs (anthropic, boto3, cohere, google, groq, huggingface) - Production packages: 53 (down from ~158) - Production footprint: 178MB - Add DEPENDENCY_SLIM.md with rollback instructions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Dependency Slimming: pydantic-ai → pydantic-ai-slim
Date: 2025-12-13 Version: Post v1.2.0
Change
Switched from pydantic-ai to pydantic-ai-slim[openai] to reduce container image size.
Before
pydantic-ai>=1.27,<1.28
This installs SDKs for ALL LLM providers:
- anthropic
- boto3 + botocore (AWS Bedrock)
- cohere
- google-genai + google-auth
- groq
- huggingface-hub
Total packages: ~158
After
pydantic-ai-slim[openai]>=1.27,<1.28
Only installs the OpenAI-compatible SDK. Ollama works through this interface.
Expected packages: ~80-90 (significant reduction)
Why This Works
Tatlock uses Ollama exclusively, which implements the OpenAI-compatible API. The code uses:
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.ollama import OllamaProvider
model = OpenAIChatModel(
model_name=config.OLLAMA_DEFAULT_MODEL,
provider=OllamaProvider(base_url=f"{config.OLLAMA_HOST}/v1")
)
This pattern only requires the openai extra, not the full pydantic-ai package.
Rollback Instructions
If this change breaks things:
- Revert requirements.txt:
- pydantic-ai-slim[openai]>=1.27,<1.28
+ pydantic-ai>=1.27,<1.28
- Reinstall dependencies:
pip install -r requirements.txt
- Delete this file once confirmed stable.
Testing Checklist
- Unit tests pass
- Integration tests pass (with Ollama running)
- Wakeup script e2e test passes
- Container builds successfully
- Container runs correctly