Skip to main content

A tool to generate python code with GenAI RestAPIs.

Project description

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.

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

genai_rest_builder-0.2.2.tar.gz (49.4 kB view details)

Uploaded Source

Built Distribution

genai_rest_builder-0.2.2-py3-none-any.whl (55.3 kB view details)

Uploaded Python 3

File details

Details for the file genai_rest_builder-0.2.2.tar.gz.

File metadata

  • Download URL: genai_rest_builder-0.2.2.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for genai_rest_builder-0.2.2.tar.gz
Algorithm Hash digest
SHA256 2a842fd4d2879ffb6866e1c533e9daef8c4cd4161212d4932f2660fddb97c0f7
MD5 7b5eb96f44417b200854dcc6988031f7
BLAKE2b-256 b84b994686383d6f5bb3247d924d35c02ef793a2c54f9bfa38db2d0d4ae72063

See more details on using hashes here.

File details

Details for the file genai_rest_builder-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for genai_rest_builder-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ccf228a73622c89ac9fa8bc68f6a19ef26e1234d7160ff3855007f8e79aebcd
MD5 78469f5a7d64aaa732a87d85e6cb7a65
BLAKE2b-256 9fdc73fd4e189436f2449ce2a7fb078846a1be668a2a5a0188a82ad371b42ecb

See more details on using hashes here.

Supported by

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