Skip to main content

An avahiai library which makes your Gen-AI tasks effortless

Project description

avahiplatform

avahiplatform is a library that makes your Gen-AI tasks effortless. It provides an easy-to-use interface for working with Large Language Models (LLMs) on AWS Bedrock, allowing you to turn enterprise use cases into production applications with just a few lines of Python code.

Quickstart

Installation

You can install avahiplatform by running:

pip install avahiplatform

Basic Usage

import avahiplatform

# Summarization
summary, input_tokens, output_tokens, cost = avahiplatform.summarize("This is a test string to summarize.")
print("Summary:", summary)

# Structured Extraction
extraction, input_tokens, output_tokens, cost = avahiplatform.structredExtraction("This is a test string for extraction.")
print("Extraction:", extraction)

# Data Masking
masked_data, input_tokens, output_tokens, cost = avahiplatform.DataMasking("This is a test string for Data Masking.")
print("Masked Data:", masked_data)

# Natural Language to SQL
nl2sql_result = avahiplatform.nl2sql("What are the names and ages of employees who joined after January 1, 2020?",
                                      db_type="postgresql", username="dbuser", password="dbpassword",
                                      host="localhost", port=5432, dbname="employees")
print("NL2SQL Result:", nl2sql_result)

Features

  • Text summarization (plain text, local files, S3 files)
  • Structured information extraction
  • Data masking
  • Natural Language to SQL conversion
  • PDF summarization
  • Grammar correction
  • Product description generation
  • Image generation
  • Medical scribing
  • ICD-10 code generation
  • CSV querying
  • Support for custom prompts and different Anthropic Claude model versions
  • Error handling with user-friendly messages

Configuration

AWS Credentials

avahiplatform requires AWS credentials to access AWS Bedrock and S3 services. You can provide your AWS credentials in two ways:

  1. Default AWS Credentials: Configure your AWS credentials in the ~/.aws/credentials file or by using the AWS CLI.
  2. Explicit AWS Credentials: Pass the AWS Access Key ID and Secret Access Key when calling functions.

For detailed instructions on setting up AWS credentials, please refer to the AWS CLI Configuration Guide.

Usage Examples

Summarization

# Summarize text
summary, _, _, _ = avahiplatform.summarize("Text to summarize")

# Summarize a local file
summary, _, _, _ = avahiplatform.summarize("path/to/local/file.txt")

# Summarize a file from S3
summary, _, _, _ = avahiplatform.summarize("s3://bucket-name/file.txt", 
                                            aws_access_key_id="your_access_key", 
                                            aws_secret_access_key="your_secret_key")

Structured Extraction

extraction, _, _, _ = avahiplatform.structredExtraction("Text for extraction")

Data Masking

masked_data, _, _, _ = avahiplatform.DataMasking("Text containing sensitive information")

Natural Language to SQL

result = avahiplatform.nl2sql("Your natural language query", 
                               db_type="postgresql", username="user", password="pass",
                               host="localhost", port=5432, dbname="mydb")

PDF Summarization

summary, _, _, _ = avahiplatform.pdfsummarizer("path/to/file.pdf")

Grammar Correction

corrected_text, _, _, _ = avahiplatform.grammarAssistant("Text with grammatical errors")

Product Description Generation

description, _, _, _ = avahiplatform.productDescriptionAssistant("SKU123", "Summer Sale", "Young Adults")

Image Generation

image, seed, cost = avahiplatform.imageGeneration("A beautiful sunset over mountains")

Medical Scribing

summary, transcript = avahiplatform.medicalscribing("path/to/audio.mp3", "input-bucket", "iam-arn")

# Note in medical scribe in iam_arn: It should have iam pass role inline policy which should look like this:
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iam:GetRole",
				"iam:PassRole"
			],
			"Resource": [
				"arn:aws:iam::<account-id>:role/<role-name>"
			]
		}
	]
}

Along with this, the role/user should have full access to both Transcribe and Comprehend.

ICD-10 Code Generation

icd_code = avahiplatform.icdcoding("local_file.txt")

CSV Querying

result = avahiplatform.query_csv("What is the average age?", "path/to/data.csv")

Error Handling

avahiplatform provides user-friendly error messages for common issues. Examples include:

  • Invalid AWS credentials
  • File not found
  • Database connection errors
  • Unexpected errors

Requirements

  • Python 3.9 or higher
  • boto3 (>= 1.34.160)
  • loguru (>= 0.7.2)
  • python-docx (>= 1.1.2)
  • PyMuPDF (>= 1.24.9)
  • langchain (>= 0.1.12)
  • langchain_community (>= 0.0.29)
  • langchain-experimental (>= 0.0.54)
  • psycopg2 (>= 2.9.9)
  • PyMySQL (>= 1.1.1)
  • tabulate (>= 0.9.0)
  • langchain-aws (>= 0.1.17)

Contributing

We welcome contributions! Feel free to open issues or submit pull requests if you find bugs or have features to add.

License

This project is licensed under the MIT License.

Contact

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

avahiplatform-0.0.5.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

avahiplatform-0.0.5-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file avahiplatform-0.0.5.tar.gz.

File metadata

  • Download URL: avahiplatform-0.0.5.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.7

File hashes

Hashes for avahiplatform-0.0.5.tar.gz
Algorithm Hash digest
SHA256 94f8b2592b50131bf3df8fe650eb1ef556ff60cc6027fbb67f816567d30960fa
MD5 62421029fa48861f765994b543a714e0
BLAKE2b-256 47a3706fba9dfaf231df1c688013c43bc196b67fabb5ba80735fc85081956606

See more details on using hashes here.

File details

Details for the file avahiplatform-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for avahiplatform-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 13c1ce18aa3f3344700856e808b7347d468a8edf8eba04c75d130d5fbb2e6502
MD5 0a153da986d16f5f9350db2cc3a9bfcd
BLAKE2b-256 033c9249977ca2af22120abe604e2e0fab25d9d465e857b0c6e1c282cfb2ddc1

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