Skip to main content

GenAI REST Builder

The GenAI REST Builder is a tool for creating RESTful services around AI models with minimal effort. It allows you to define service configurations in a YAML file and generates a FastAPI-based project structure to deploy AI-powered endpoints.


Version History

v0.2.2 - AWS Chat-Based Service with Memory Management

Key Features

  • Introduced chat-based services for AWS with memory management using DynamoDB.
  • Added chatApp property, available only for AWS services:
    • Set chatApp: Y to enable chat-based functionality.
    • Requires the dynamoDbTableName property to specify the DynamoDB table used for storing chat histories.
    • Removes the need for the prompt property when chatApp is Y.
  • DynamoDB Integration:
    • Table must have a primary key of SessionId (string).
    • Stores and retrieves chat histories linked to session IDs.

YAML Format

PromptServices:
  - <service_name>:
      chatApp: Y  # Available only for AWS services
      dynamoDbTableName: <DynamoDB_Table_Name>  # Required when chatApp is Y
      model:
        provider: aws
        modelId: <model_id>
        temperature: <value>
        maxTokens: <value>

If chatApp is omitted or its value is not Y, the prompt property becomes mandatory.


v0.2.1 - Core Features

Key Features

  • Introduced foundational functionality to define RESTful services using YAML configuration.
  • Added support for custom prompts via the prompt property.
  • Supported AWS and Azure providers for model integration.
  • Automated FastAPI-based project generation.
  • Introduced the apiVersion property for Azure-specific models.

YAML Format

PromptServices:
  - <service_name>:
      chatApp: N  # Optional; default behavior for prompt-based services
      prompt: <prompt_template>  # Required if chatApp is omitted or not Y
      model:
        provider: [aws/azure]
        modelId: <model_id>
        temperature: <value>
        maxTokens: <value>
        apiVersion: <api_version>  # Azure only

Installation Instructions

1. Install the Builder

pip install pyyaml genai-rest-builder

2. Generate Project Structure

genai-rest-proj-build
  • Reads from the prompt_service.yaml file to generate project files.

3. Install Dependencies

pip install -r requirements.txt

4. Run the Server

python serve_app.py
  • Default host: localhost:8080.

Generated Project Structure

The project structure remains consistent across versions:

.  
├── service_chains/  
│   ├── base_chains/                     # Base and provider-specific chain definitions  
│   │   ├── base_chain.py                # Abstract base class for chains  
│   │   ├── aws_chain.py                 # AWS-specific chain implementation  
│   │   ├── azure_chain.py               # Azure-specific chain implementation  
│   │   ├── __init__.py                  # Exports for base_chains module  
│   ├── <servicename>_chain.py           # Service-specific chain implementation  
│   ├── utils.py                         # Utility functions for service configurations  
│   ├── __init__.py                      # Package initialization file for service_chains  
├── serve_app.py                         # Main FastAPI application  
├── .env                                 # Environment configuration file with host/port settings  
├── requirements.txt                     # Project dependencies file  
├── prompt_service.yaml                  # YAML configuration file (user-defined)  

Accessing API Documentation

Once the server is running, OpenAPI documentation can be accessed at:

http://<GENAI_SERVER_HOST>:<GENAI_SERVER_PORT>/docs

Invoking Services

Each service is available via a unique REST API path based on its name in prompt_service.yaml:

http://<GENAI_SERVER_HOST>:<GENAI_SERVER_PORT>/<service_name>

Upgrade Notes

From v0.2.1 to v0.2.2

  • For AWS Services:
    • Use chatApp: Y to enable chat-based services.
    • Provide dynamoDbTableName to store message histories.
    • If chatApp is Y, the prompt property is no longer required.
  • For Azure Services:
    • Continue using prompt as required for prompt-based services.
    • Ensure the apiVersion property is provided for Azure models.
  • General Rule:
    • If chatApp is omitted or not set to Y, the prompt property must be included.

Metadata

Release files for genai-rest-builder 0.2.3

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

Source distribution (sdist)

Source distribution for genai-rest-builder 0.2.3
File Size Uploaded Provenance
genai_rest_builder-0.2.3.tar.gz 49.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for genai-rest-builder 0.2.3
File Interpreter ABI Platform
genai_rest_builder-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 104.7 kB

Release files / genai_rest_builder-0.2.3.tar.gz

Download URL genai_rest_builder-0.2.3.tar.gz
Size 49.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1ab44cbc9b64d9731917157d75093661acc967942528d088ae057703f88452b7
BLAKE2b-256 checksum
How to use checksums
d35a87500e59c1d02c76c495ca246275cbd3948be901573f3c8b10f32e37ca1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.5

Release files / genai_rest_builder-0.2.3-py3-none-any.whl

Download URL genai_rest_builder-0.2.3-py3-none-any.whl
Size 55.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57503b76ea1cb163f5e0b7629b1443d2fda28ff08f50b76215cbc88363575453
BLAKE2b-256 checksum
How to use checksums
6d8c7b2eaa008965a43cda6aa56798e6f7362b66f5b0a124fcaa40f40ab5992c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.5

Security for genai-rest-builder 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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