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
chatAppproperty, available only for AWS services:- Set
chatApp: Yto enable chat-based functionality. - Requires the
dynamoDbTableNameproperty to specify the DynamoDB table used for storing chat histories. - Removes the need for the
promptproperty whenchatAppisY.
- Set
- DynamoDB Integration:
- Table must have a primary key of
SessionId(string). - Stores and retrieves chat histories linked to session IDs.
- Table must have a primary key of
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
promptproperty. - Supported AWS and Azure providers for model integration.
- Automated FastAPI-based project generation.
- Introduced the
apiVersionproperty 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.yamlfile 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: Yto enable chat-based services. - Provide
dynamoDbTableNameto store message histories. - If
chatAppisY, thepromptproperty is no longer required.
- Use
- For Azure Services:
- Continue using
promptas required for prompt-based services. - Ensure the
apiVersionproperty is provided for Azure models.
- Continue using
- General Rule:
- If
chatAppis omitted or not set toY, thepromptproperty must be included.
- If
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| genai_rest_builder-0.2.3.tar.gz | 49.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.