跳到正文
cccskills
免费在 GitHub 公开

python-skills

Shared Python best practices for LlamaFarm. Covers patterns, async, typing, testing, error handling, and security.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(7)

  • SKILL.md4.8 KB
  • async.md9.6 KB
  • error-handling.md13.7 KB
  • patterns.md8.5 KB
  • security.md13.3 KB
  • testing.md12.1 KB
  • typing.md10.2 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Python Skills for LlamaFarm

Shared Python best practices and code review checklists for all Python components in the LlamaFarm monorepo.

Applicable Components

ComponentPathPythonKey Dependencies
Serverserver/3.12+FastAPI, Celery, Pydantic, structlog
RAGrag/3.11+LlamaIndex, ChromaDB, Celery
Universal Runtimeruntimes/universal/3.11+PyTorch, transformers, FastAPI
Configconfig/3.11+Pydantic, JSONSchema
Commoncommon/3.10+HuggingFace Hub

Quick Reference

TopicFileKey Points
Patternspatterns.mdDataclasses, Pydantic, comprehensions, imports
Asyncasync.mdasync/await, asyncio, concurrent execution
Typingtyping.mdType hints, generics, protocols, Pydantic
Testingtesting.mdPytest fixtures, mocking, async tests
Errorserror-handling.mdCustom exceptions, logging, context managers
Securitysecurity.mdPath traversal, injection, secrets, deserialization

Code Style

LlamaFarm uses ruff with shared configuration in ruff.toml:

line-length = 88
target-version = "py311"
select = ["E", "F", "I", "B", "UP", "SIM"]

Key rules:

  • E, F: Core pyflakes and pycodestyle
  • I: Import sorting (isort)
  • B: Bugbear (common pitfalls)
  • UP: Upgrade syntax to modern Python
  • SIM: Simplify code patterns

Architecture Patterns

Settings with pydantic-settings

from pydantic_settings import BaseSettings

class Settings(BaseSettings, env_file=".env"):
    LOG_LEVEL: str = "INFO"
    HOST: str = "0.0.0.0"
    PORT: int = 14345

settings = Settings()  # Singleton at module level

Structured Logging with structlog

from core.logging import FastAPIStructLogger  # Server
from core.logging import RAGStructLogger      # RAG
from core.logging import UniversalRuntimeLogger  # Runtime

logger = FastAPIStructLogger(__name__)
logger.info("Operation completed", extra={"count": 10, "duration_ms": 150})

Abstract Base Classes for Extensibility

from abc import ABC, abstractmethod

class Component(ABC):
    def __init__(self, name: str, config: dict[str, Any] | None = None):
        self.name = name or self.__class__.__name__
        self.config = config or {}

    @abstractmethod
    def process(self, documents: list[Document]) -> ProcessingResult:
        pass

Dataclasses for Internal Data

from dataclasses import dataclass, field

@dataclass
class Document:
    content: str
    metadata: dict[str, Any] = field(default_factory=dict)
    id: str = field(default_factory=lambda: str(uuid.uuid4()))

Pydantic Models for API Boundaries

from pydantic import BaseModel, Field, ConfigDict

class EmbeddingRequest(BaseModel):
    model: str
    input: str | list[str]
    encoding_format: Literal["float", "base64"] | None = "float"

    model_config = ConfigDict(str_strip_whitespace=True)

Directory Structure

Each Python component follows this structure:

component/
├── pyproject.toml     # UV-managed dependencies
├── core/              # Core functionality
│   ├── __init__.py
│   ├── settings.py    # Pydantic Settings
│   └── logging.py     # structlog setup
├── services/          # Business logic (server)
├── models/            # ML models (runtime)
├── tasks/             # Celery tasks (rag)
├── utils/             # Utility functions
└── tests/
    ├── conftest.py    # Shared fixtures
    └── test_*.py

Review Checklist Summary

When reviewing Python code in LlamaFarm:

  1. Patterns (Medium priority)

    • Modern Python syntax (3.10+ type hints)
    • Dataclass vs Pydantic used appropriately
    • No mutable default arguments
  2. Async (High priority)

    • No blocking calls in async functions
    • Proper asyncio.Lock usage
    • Cancellation handled correctly
  3. Typing (Medium priority)

    • Complete return type hints
    • Generic types parameterized
    • Pydantic v2 patterns
  4. Testing (Medium priority)

    • Fixtures properly scoped
    • Async tests use pytest-asyncio
    • Mocks cleaned up
  5. Errors (High priority)

    • Custom exceptions with context
    • Structured logging with extra dict
    • Proper exception chaining
  6. Security (Critical priority)

    • Path traversal prevention
    • Input sanitization
    • Safe deserialization

See individual topic files for detailed checklists with grep patterns.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.

中文简介正在准备中。当前显示原文说明。

llama-farm/llamafarm8372026年6月10日 更新

Comprehensive code review for diffs. Analyzes changed code for security vulnerabilities, anti-patterns, and quality issues. Auto-detects domain (frontend/backend) from file paths.

中文简介正在准备中。当前显示原文说明。

llama-farm/llamafarm8372026年6月10日 更新

Commit changes, push to GitHub, and open a PR. Includes quality checks (security, patterns, simplification). Use --quick to skip checks.

中文简介正在准备中。当前显示原文说明。

llama-farm/llamafarm8372026年6月10日 更新

Best practices for the Common utilities package in LlamaFarm. Covers HuggingFace Hub integration, GGUF model management, and shared utilities.

中文简介正在准备中。当前显示原文说明。

llama-farm/llamafarm8372026年6月10日 更新

Configuration module patterns for LlamaFarm. Covers Pydantic v2 models, JSONSchema generation, YAML processing, and validation.

中文简介正在准备中。当前显示原文说明。

llama-farm/llamafarm8372026年6月10日 更新

Designer subsystem patterns for LlamaFarm. Covers React 18, TanStack Query, TailwindCSS, and Radix UI.

中文简介正在准备中。当前显示原文说明。

llama-farm/llamafarm8372026年6月10日 更新

查看 llama-farm 的全部技能

报告此技能的问题