Dependency Analysis

Shared dependencies across AI Platform packages

Shared Dependencies Across Core Packages

Database Layer

sqlalchemy>=2.0.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
└── (aiosqlite for async in ai-korrespondenz)

AI Clients

# DEPRECATED - Do not use in new code
google-generativeai>=0.8.0
├── ai-korrespondenz (needs migration)
├── ai-voicememo (needs migration)
├── ai-core (needs migration)
└── ai-scholar (already on google-genai)

# NEW - Use this
google-genai>=1.0.0
├── ai-scholar ✓
└── ai-platform-shared ✓

Web Framework

fastapi>=0.115.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
└── ai-viewer ✓

uvicorn[standard]>=0.32.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
└── ai-viewer ✓

MCP (Model Context Protocol)

mcp>=1.0.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
└── ai-platform-shared ✓

Data Validation

pydantic>=2.10.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
├── ai-agenda ✓
├── ai-scholar ✓
└── ai-platform-shared ✓

pydantic-settings>=2.6.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
├── ai-agenda ✓
└── ai-platform-shared ✓

Templates

jinja2>=3.1.0
├── ai-korrespondenz ✓
├── ai-voicememo ✓
├── ai-agenda ✓
├── ai-core ✓
└── ai-platform-shared ✓

XML Processing

lxml>=5.0.0
├── ai-voicememo ✓
├── ai-scholar ✓
├── ai-core ✓
└── ai-platform-shared ✓

PDF Processing

pymupdf>=1.23.0
├── ai-scholar ✓
├── ai-core ✓
└── ai-foto (as PyMuPDF)

HTTP Client

httpx>=0.28.0
├── ai-korrespondenz ✓
├── ai-scholar ✓
├── ai-core ✓
└── ai-voicememo (dev)

Version Conflicts

Python Version

Package Current Target
ai-korrespondenz >=3.11 >=3.12
ai-voicememo >=3.10 >=3.12
ai-scholar >=3.10 >=3.12
ai-agenda >=3.11 >=3.12
ai-core >=3.10 >=3.12

google-generativeai vs google-genai

The google-generativeai package is deprecated. Migration required:

Old (deprecated):

import google.generativeai as genai
genai.configure(api_key=key)
model = genai.GenerativeModel('gemini-3.8-flash')
response = model.generate_content(prompt)

New (google-genai):

from google import genai
client = genai.Client(api_key=key)
response = client.models.generate_content(
    model='gemini-3.8-flash',
    contents=prompt
)

Dependency Graph

ai-platform-shared (foundation)
         │
         ├── ai-korrespondenz
         │       └── ai-agenda (optional)
         │
         ├── ai-voicememo
         │
         ├── ai-scholar
         │       └── ai-core
         │
         └── ai-viewer
                 └── ai-core/pdai

Version Pinning Strategy

  • Major versions: Pin to major (e.g., >=2.0.0)
  • Critical packages: Pin to minor (e.g., >=2.10.0)
  • Security-sensitive: Use ranges (e.g., >=2.10.0,<3.0.0)

Dependency Update Procedure

  1. Update in .ai-platform/pyproject.toml first
  2. Test with core packages
  3. Propagate to individual packages
  4. Run integration tests