Skip to main content

APILama

PyLama Ecosystem Navigation

Project Description Links
APILama API service for code generation GitHub · Docs
GetLLM LLM model management and code generation GitHub · PyPI · Docs
DevLama Python code generation with Ollama GitHub · Docs
LogLama Centralized logging and environment management GitHub · PyPI · Docs
BEXY Sandbox for executing generated code GitHub · Docs
JSLama JavaScript code generation GitHub · NPM · Docs
JSBox JavaScript sandbox for executing code GitHub · NPM · Docs
SheLLama Shell command generation GitHub · PyPI · Docs
WebLama Web application generation GitHub · Docs

Author

Tom Sapletta — DevOps Engineer & Systems Architect

  • 💻 15+ years in DevOps, Software Development, and Systems Architecture
  • 🏢 Founder & CEO at Telemonit (Portigen - edge computing power solutions)
  • 🌍 Based in Germany | Open to remote collaboration
  • 📚 Passionate about edge computing, hypermodularization, and automated SDLC

GitHub LinkedIn ORCID Portfolio

Support This Project

If you find this project useful, please consider supporting it:


APILama is the API gateway for the PyLama ecosystem. It serves as the central communication layer between the frontend WebLama interface and the various backend services (PyLama, BEXY, PyLLM, SheLLama). APILama integrates with LogLama as the primary service for centralized logging, environment management, and service orchestration.

Features

  • Unified API Gateway: Single entry point for all PyLama ecosystem services
  • Service Routing: Intelligent routing of requests to appropriate backend services (BEXY, PyLLM, SheLLama, PyLama)
  • RESTful API Design: Clean and consistent API endpoints for all operations
  • Cross-Origin Resource Sharing (CORS): Support for cross-origin requests from the WebLama frontend
  • Authentication and Authorization: Secure access to API endpoints
  • Response Standardization: Consistent response format across all services
  • Error Handling: Comprehensive error handling and reporting
  • LogLama Integration: Integrates with LogLama for centralized logging, environment management, and service orchestration
  • Structured Logging: All API requests and responses are logged with component context for better debugging and monitoring

Installation

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install the package in development mode
pip install -e .  # This is important! Always install in development mode before starting

IMPORTANT: Always run pip install -e . before starting the project to ensure all dependencies are properly installed and the package is available in development mode.

Usage

Running the API Gateway

# Start the API server with default settings
python -m apilama.app --port 8080 --host 127.0.0.1

# Or with environment variables
export PORT=8080
export HOST=127.0.0.1
python -m apilama.app

Using the Makefile

# Start the API server with default settings
make run

# Start with custom port
make run PORT=8090

Environment Variables

APILama uses the following environment variables for configuration:

  • PORT: The port to run the server on (default: 8080)
  • HOST: The host to bind to (default: 127.0.0.1)
  • DEBUG: Enable debug mode (default: False)
  • BEXY_API_URL: URL of the BEXY API (default: http://localhost:8000)
  • GETLLM_API_URL: URL of the PyLLM API (default: http://localhost:8001)
  • SHELLAMA_API_URL: URL of the SheLLama API (default: http://localhost:8002)
  • DEVLAMA_API_URL: URL of the PyLama API (default: http://localhost:8003)

You can set these variables in a .env file or pass them directly when starting the server.

API Documentation

Health Check

GET /api/health

Returns the health status of the APILama service.

SheLLama Endpoints

File Operations

GET /api/shellama/files?directory=/path/to/dir   # List files in a directory
GET /api/shellama/file?filename=/path/to/file     # Get file content
POST /api/shellama/file                           # Create/update a file
DELETE /api/shellama/file?filename=/path/to/file  # Delete a file

Directory Operations

GET /api/shellama/directory?directory=/path/to/dir  # Get directory information
POST /api/shellama/directory                        # Create a directory
DELETE /api/shellama/directory?directory=/path      # Delete a directory

Shell Operations

POST /api/shellama/shell  # Execute a shell command

BEXY Endpoints

GET /api/bexy/health     # Check BEXY health
POST /api/bexy/execute   # Execute Python code

PyLLM Endpoints

GET /api/getllm/health     # Check PyLLM health
POST /api/getllm/generate  # Generate code or text

PyLama Endpoints

GET /api/devlama/health    # Check PyLama health
GET /api/devlama/models    # List available models
POST /api/devlama/execute  # Execute a model

Development

# Install development dependencies
pip install -e ".[dev]"

# Run tests
python -m pytest

# Format code
black apilama tests

# Lint code
flake8 apilama tests

License

MIT

Metadata

Release files for apilama 0.1.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for apilama 0.1.16
File Size Uploaded
apilama-0.1.16.tar.gz 18.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for apilama 0.1.16
File Interpreter ABI Platform
apilama-0.1.16-py3-none-any.whl Python 3 none any Details

Total release size: 41.9 kB

Release files / apilama-0.1.16.tar.gz

Download URL apilama-0.1.16.tar.gz
Size 18.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5b4d995354c5526876cd4d4534694c748583d67fea39a19d9daeca4b2596175b
BLAKE2b-256 checksum
How to use checksums
ca0f917fdc6fc9a63ce248be851856b8e72e19b7a5e202be5ff9c19a668ed23e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.4

Release files / apilama-0.1.16-py3-none-any.whl

Download URL apilama-0.1.16-py3-none-any.whl
Size 23.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2677cf3a095d159718dfc44cd64a75ee724f640f8bd7c8c51f17c4c5c8319e9d
BLAKE2b-256 checksum
How to use checksums
bc05cf4b036e685a0774f636b5b5a831455e71ac0cca3c27012131ca920aab81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.1.16 This release

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page