Skip to main content

A modern async Python framework for building scalable applications with FastAPI and SQLModel

Project description

Fivccliche

A production-ready, multi-user backend framework designed specifically for AI agents. Built with FastAPI and SQLModel for high-performance, type-safe async operations that handle concurrent AI agent requests at scale.

✨ Features

  • AI Agent Backend - Purpose-built for multi-user AI agent interactions and orchestration
  • FastAPI - Modern, fast web framework for building high-performance APIs with Python 3.10+
  • SQLModel - SQL ORM combining SQLAlchemy and Pydantic for type-safe database operations
  • Async/Await - Full async support for handling concurrent AI agent requests at scale
  • Type Safety - Built-in type hints with Pydantic 2.0 validation for reliable data handling
  • Multi-User Support - Designed for managing multiple AI agents with proper isolation and access control
  • Testing - Pytest with async support for comprehensive test coverage
  • Code Quality - Black, Ruff, and MyPy configured for professional code standards
  • Package Management - uv for fast, reliable dependency management

🚀 Quick Start

Prerequisites

  • Python 3.10 or higher
  • uv package manager (install)

Installation

# Clone the repository
git clone https://github.com/MindFiv/FivcCliche.git
cd FivcCliche

# Install production dependencies
uv pip install -e .

# Or install with development tools
uv pip install -e ".[dev]"

Using the CLI

The easiest way to run FivcCliche is using the built-in CLI:

# Start the server
python -m fivccliche.cli run

# Show project information
python -m fivccliche.cli info

# Clean temporary files and cache
python -m fivccliche.cli clean

# Initialize configuration
python -m fivccliche.cli setup

Visit http://localhost:8000/docs for interactive API documentation.

Configuration APIs

Authenticated users can manage user-scoped AI agent resources under /configs/. Superusers create global configs (user_uuid = null) that regular users can read but not update or delete.

  • /configs/embeddings/ - embedding provider/model configs
  • /configs/models/ - LLM provider/model configs with id, description, provider, model, api_key, base_url, temperature, max_tokens, optional nullable enable_thinking, user_uuid, updated_at, and updated_user_uuid fields. enable_thinking = null leaves provider behavior unchanged, true enables provider-supported thinking output, and false disables it.
  • /configs/agents/ - agent configs that compose models, tools, and skills
  • /configs/tools/ - tool configs, including MCP/function transports
  • /configs/skills/ - reusable skill configs and resources
  • /configs/questions/ - reusable user question configs with id, question, optional answer, is_active, user_uuid, updated_at, and updated_user_uuid fields; list with ?is_active=true or ?is_active=false to filter by active state

python -m fivccliche.cli migrate creates missing tables but does not alter existing tables. Existing databases created before user_llm.enable_thinking was added need a manual nullable boolean column on user_llm or a table rebuild.

CLI Options

# Custom host and port
python -m fivccliche.cli run --host 127.0.0.1 --port 9000

# Production mode (no auto-reload)
python -m fivccliche.cli run --no-reload

# Test configuration without running
python -m fivccliche.cli run --dry-run

# Verbose output
python -m fivccliche.cli run --verbose

📚 Documentation

For detailed information, see the documentation in the docs/ folder:

🛠️ Development

CLI Commands

make format  # Format code with Black
make lint    # Lint with Ruff
make check   # Run all checks (format, lint, type check)

Run Tests

pytest
pytest -v --cov=src  # With coverage

Code Quality

black src/ tests/      # Format code
ruff check src/ tests/ # Lint code
mypy src/              # Type check

Project Structure

fivccliche/
├── pyproject.toml              # Project configuration
├── src/
│   └── fivccliche/
│       ├── __init__.py
│       ├── cli.py              # CLI implementation
│       ├── services/
│       ├── utils/
│       ├── settings/
│       └── modules/
├── tests/                      # Add your tests here
└── docs/                       # Documentation

📦 Dependencies

Production Core: FastAPI, SQLModel, Uvicorn, Pydantic, SQLAlchemy

CLI & Output: Typer, Rich, python-dotenv

Component System: fivcglue, fivcplayground

Development: Pytest, Black, Ruff, MyPy, Coverage

See pyproject.toml for complete dependency list and versions.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👤 Author

Charlie Zhang (sunnypig2002@gmail.com)

🔗 Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fivccliche-0.1.67.tar.gz (99.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fivccliche-0.1.67-py3-none-any.whl (53.1 kB view details)

Uploaded Python 3

File details

Details for the file fivccliche-0.1.67.tar.gz.

File metadata

  • Download URL: fivccliche-0.1.67.tar.gz
  • Upload date:
  • Size: 99.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.10

File hashes

Hashes for fivccliche-0.1.67.tar.gz
Algorithm Hash digest
SHA256 623c774816cf083ec9dc4aeff0c349dd9f3e08adba2fa1d63b2f122ac8953251
MD5 888d7fa8dec289c5abf6b01ae0dfe0e8
BLAKE2b-256 930467067715993cd191438b919722d3bfd7c9cba139396359f15b3400bd51cb

See more details on using hashes here.

File details

Details for the file fivccliche-0.1.67-py3-none-any.whl.

File metadata

File hashes

Hashes for fivccliche-0.1.67-py3-none-any.whl
Algorithm Hash digest
SHA256 59eba25a495c18c7aed02abc60108499ca7117b028c1b83dd2979ac7ce81ca75
MD5 ba8434e9a39c49b2f3d26e52a752ade0
BLAKE2b-256 b166929b91bcf8481db761a9155468460070c42c48f06fbab8cdef8d74e7478e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page