server-skills
π―Skillfrom llama-farm/llamafarm
Provides server-side best practices and code review guidelines for FastAPI, Celery, and Pydantic frameworks in Python.
Installation
npx skills add https://github.com/llama-farm/llamafarm --skill server-skillsSkill Details
Server-specific best practices for FastAPI, Celery, and Pydantic. Extends python-skills with framework-specific patterns.
Overview
# Server Skills for LlamaFarm
Framework-specific patterns and code review checklists for the LlamaFarm Server component.
Overview
| Property | Value |
|----------|-------|
| Path | server/ |
| Python | 3.12+ |
| Framework | FastAPI 0.116+ |
| Task Queue | Celery 5.5+ |
| Validation | Pydantic 2.x, pydantic-settings |
| Logging | structlog with FastAPIStructLogger |
Links to Shared Skills
This skill extends the shared Python skills. See:
- [Python Patterns](../python-skills/patterns.md) - Dataclasses, comprehensions, imports
- [Async Patterns](../python-skills/async.md) - async/await, asyncio, concurrency
- [Typing Patterns](../python-skills/typing.md) - Type hints, generics, Pydantic
- [Testing Patterns](../python-skills/testing.md) - Pytest, fixtures, mocking
- [Error Handling](../python-skills/error-handling.md) - Exceptions, logging, context managers
- [Security Patterns](../python-skills/security.md) - Path traversal, injection, secrets
Server-Specific Checklists
| Topic | File | Key Points |
|-------|------|------------|
| FastAPI | [fastapi.md](fastapi.md) | Routes, dependencies, middleware, exception handlers |
| Celery | [celery.md](celery.md) | Task patterns, error handling, retries, signatures |
| Pydantic | [pydantic.md](pydantic.md) | Pydantic v2 models, validation, serialization |
| Performance | [performance.md](performance.md) | Async patterns, caching, connection pooling |
Architecture Overview
```
server/
βββ main.py # Uvicorn entry point, MCP mount
βββ api/
β βββ main.py # FastAPI app factory, middleware setup
β βββ errors.py # Custom exceptions + exception handlers
β βββ middleware/ # ASGI middleware (structlog, errors)
β βββ routers/ # API route modules
β βββ projects/ # Project CRUD endpoints
β βββ datasets/ # Dataset management
β βββ rag/ # RAG query endpoints
β βββ ...
βββ core/
β βββ settings.py # pydantic-settings configuration
β βββ logging.py # structlog setup, FastAPIStructLogger
β βββ celery/ # Celery app configuration
β βββ celery.py # Celery app instance
β βββ rag_client.py # RAG task signatures and helpers
βββ services/ # Business logic layer
β βββ project_service.py # Project CRUD operations
β βββ dataset_service.py # Dataset management
β βββ ...
βββ agents/ # AI agent implementations
βββ tests/ # Pytest test suite
```
Quick Reference
Settings Pattern (pydantic-settings)
```python
from pydantic_settings import BaseSettings
class Settings(BaseSettings, env_file=".env"):
HOST: str = "0.0.0.0"
PORT: int = 8000
LOG_LEVEL: str = "INFO"
settings = Settings() # Module-level singleton
```
Structured Logging
```python
from core.logging import FastAPIStructLogger
logger = FastAPIStructLogger(__name__)
logger.info("Operation completed", extra={"count": 10, "duration_ms": 150})
logger.bind(namespace=namespace, project=project_id) # Add context
```
Custom Exceptions
```python
# Define exception hierarchy
class NotFoundError(Exception): ...
class ProjectNotFoundError(NotFoundError):
def __init__(self, namespace: str, project_id: str):
self.namespace = namespace
self.project_id = project_id
super().__init__(f"Project {namespace}/{project_id} not found")
# Register handler in api/errors.py
async def _handle_project_not_found(request: Request, exc: Exception) -> Response:
payload = ErrorResponse(error="ProjectNotFound", message=str(exc))
return JSONResponse(status_code=404, content=payload.model_dump())
def register_exception_handlers(app: FastAPI) -> None:
app.add_exception_handler(ProjectNotFoundError, _handle_project_not_found)
```
Service Layer Pattern
```python
class ProjectService:
@classmethod
def get_project(cls, namespace: str, project_id: str) -> Project:
project_dir = cls.get_project_dir(namespace, project_id)
if not os.path.isdir(project_dir):
raise ProjectNotFoundError(namespace, project_id)
# ... load and validate
```
Review Checklist Summary
- FastAPI Routes (High priority)
- Proper async/sync function choice
- Response model defined with response_model=
- OpenAPI metadata (operation_id, tags, summary)
- HTTPException with proper status codes
- Celery Tasks (High priority)
- Use signatures for cross-service calls
- Implement proper timeout and polling
- Handle task failures gracefully
- Store group metadata for parallel tasks
- Pydantic Models (Medium priority)
- Use Pydantic v2 patterns (model_config, Field)
- Proper validation with field constraints
- Serialization with model_dump()
- Performance (Medium priority)
- Avoid blocking calls in async functions
- Use proper connection pooling for external services
- Implement caching where appropriate
See individual topic files for detailed checklists with grep patterns.
More from this repository10
Generates specialized Claude Code skills for each subsystem, creating shared language and subsystem-specific checklists to optimize AI code generation across the monorepo.
Implements robust RAG document processing and retrieval using LlamaIndex, ChromaDB, and Celery for efficient, scalable AI document workflows.
Manages shared Python utilities for LlamaFarm, focusing on HuggingFace model handling, GGUF file management, and cross-service consistency.
Configures secure Electron desktop application architecture with isolated processes, type-safe IPC, and cross-platform packaging for LlamaFarm.
Enforces Go best practices and idiomatic patterns for secure, maintainable LlamaFarm CLI development.
Automates git workflow by committing changes, pushing to GitHub, and opening a PR with intelligent checks and handling of edge cases.
Provides comprehensive Go CLI development guidelines using Cobra, Bubbletea, and Lipgloss for creating robust, interactive command-line interfaces in LlamaFarm projects.
Enforces strict TypeScript best practices for React and Electron frontend applications, ensuring type safety, immutability, and clean code patterns.
Optimizes ML inference runtime with best practices for PyTorch, Transformers, and FastAPI, focusing on device management, model loading, and performance tuning.
Provides comprehensive Python best practices and code review guidelines for ensuring high-quality, secure, and maintainable code across LlamaFarm's Python components.