Skip to main content

Backend API service for the PyLama ecosystem

Project description

APILama

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

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

apilama-0.1.8.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

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

apilama-0.1.8-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file apilama-0.1.8.tar.gz.

File metadata

  • Download URL: apilama-0.1.8.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for apilama-0.1.8.tar.gz
Algorithm Hash digest
SHA256 5755f9d1a3073e51774b20b72c9771f864d3fd0b6e1187ccfa98b6736d7ad0e0
MD5 51f5d9410a08a74681c6bc7dbc329015
BLAKE2b-256 8c376504e50e06d7d02d30155ee29dfa6bf4d95c19da2ba0dd231016c6c1f008

See more details on using hashes here.

File details

Details for the file apilama-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: apilama-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for apilama-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8a3bcffcbf03029d3f409bfd25a1e1cabb173ca2acf08c5dd25cb8f17970c460
MD5 1a86e87243d4becf79213f2378ff870f
BLAKE2b-256 b0d602f30678de7ba1da2ace138b259f14292fac15274454b34c11577258e03d

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