# 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: ```python 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: 1. Revert requirements.txt: ```diff - pydantic-ai-slim[openai]>=1.27,<1.28 + pydantic-ai>=1.27,<1.28 ``` 2. Reinstall dependencies: ```bash pip install -r requirements.txt ``` 3. 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