Skip to main content

An avahiai library which makes your Gen-AI tasks effortless

Project description

AvahiAI

Logicsdk is an open source AI framework to build with LLMs on AWS Bedrock. Turn your enterprise use cases into production application in few lines of python code

Quickstart

Installation

You can install logic just by running:

! pip install logicsdk

import logicsdk
summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("This is a test string to summarize.")
print("Summary:", summarization_output)
extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("This is a test string for the extraction.")
print("Extraction:", extraction_output)
masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("This is a test string to for the Data Masking.")
print("DataMasking:", masking_output)
nl2sql_result = logicsdk.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 generated answer:", nl2sql_result)

current Features

  • Summarize plain text.
  • Summarize text from local files (.txt, .pdf, .docx).
  • Summarize text from S3 files (.txt, .pdf, .docx).
  • Extract the entities from plain text.
  • Extract the entities from from local files (.txt, .pdf, .docx).
  • Extract the entities from from S3 files (.txt, .pdf, .docx).
  • Mask the entities from the plain text.
  • Mask the entities from text from local files (.txt, .pdf, .docx).
  • Mask the entities from the text from S3 files (.txt, .pdf, .docx).
  • Converts a natural language query into an SQL/PostgreSQL/SQLite query, executes it against the specified database, and returns the results in a user-friendly manner.
  • Support for custom prompts and different anthropic claude model versions.
  • Error handling with user-friendly messages.
  • And many more to come...

AWS CLI Installation (Optional but Recommended)

To configure your AWS credentials easily, you can use the AWS CLI. Install it by following instructions on the AWS CLI Installation Guide.

Configuration

AWS Credentials

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

  1. Default AWS Credentials: Ensure your AWS credentials are configured in the ~/.aws/credentials file or by using the AWS CLI.
  2. Explicit AWS Credentials: Pass the AWS Access Key and Secret Key when calling the summarize function.

Configuring AWS Credentials Using AWS CLI

After installing the AWS CLI, run the following command to configure your credentials:

aws configure

You will be prompted to enter your AWS Access Key ID, Secret Access Key, region, and output format. This will create or update the ~/.aws/credentials file with your credentials.

Sample ~/.aws/credentials File:

[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY

Usage

Importing logicsdk

import logicsdk

Summarizing Text Strings

summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("This is a test string to summarize.")
print("Summary:", summarization_output)
print("Input Cost:", input_token_cost)
print("Output Cost:", output_token_cost)
print("Cost:", total_cost)

Summarization

Summarizing Local Files

Text File (.txt)

summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("path/to/your/file.txt")
print("Summary:", summarization_output)

PDF File (.pdf)

summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("path/to/your/file.pdf")
print("Summary:", summarization_output)

DOCX File (.docx)

summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("path/to/your/file.docx")
print("Summary:", summarization_output)

Summarizing Files from S3

summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("s3://your-bucket-name/your-file.pdf", aws_access_key_id="your_access_key", aws_secret_access_key="your_secret_key")
print("Summary:", summarization_output)

Changing the Default Model

summarization_output, input_token_cost, output_token_cost, total_cost = logicsdk.summarize("path/to/your/file.docx", model_name="haiku-3.0")
print("Summary:", summarization_output)

Extraction

Extracting from Strings

extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("This is a test string to for the extraction.")
print("Extraction:", extraction_output)
print("Input Cost:", input_token_cost)
print("Output Cost:", output_token_cost)
print("Cost:", total_cost)

Extracting from Local Files

Text File (.txt)

extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("path/to/your/file.txt")
print("Extraction:", extraction_output)

PDF File (.pdf)

extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("path/to/your/file.pdf")
print("Extraction:", extraction_output)

DOCX File (.docx)

extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("path/to/your/file.docx")
print("Extraction:", extraction_output)

Extracting from Files in S3

extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("s3://your-bucket-name/your-file.pdf", aws_access_key_id="your_access_key", aws_secret_access_key="your_secret_key")
print("Extraction:", extraction_output)

Changing the Default Model

extraction_output, input_token_cost, output_token_cost, total_cost = logicsdk.structredExtraction("path/to/your/file.docx", model_name="haiku-3.0")
print("Extraction:", extraction_output)

Data Masking

Extracting from Strings

masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("This is a test string to for the Data Masking.")
print("DataMasking:", masking_output)
print("Input Cost:", input_token_cost)
print("Output Cost:", output_token_cost)
print("Cost:", total_cost)

DataMasking from Local Files

Text File (.txt)

masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("path/to/your/file.txt")
print("DataMasking:", masking_output)

PDF File (.pdf)

masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("path/to/your/file.pdf")
print("DataMasking:", masking_output)

DOCX File (.docx)

masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("path/to/your/file.docx")
print("DataMasking:", masking_output)

DataMasking from Files in S3

masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("s3://your-bucket-name/your-file.pdf", aws_access_key_id="your_access_key", aws_secret_access_key="your_secret_key")
print("DataMasking:", masking_output)

Changing the Default Model

masking_output, input_token_cost, output_token_cost, total_cost = logicsdk.DataMasking("path/to/your/file.docx", model_name="haiku-3.0")
print("DataMasking:", masking_output)

Nl2SQL

Generate user-friendly answer from the natural language query

nl2sql_result = logicsdk.nl2sql("What are the names and ages of employees who joined after January 1, 2020?",
                                db_type = "mysql", username = "dbuser", password = "dbpassword",
                                host = "localhost", port = 3306, dbname = "employees"
                                )
print("nl2sql_result:", nl2sql_result)

Other more Gen-ai task to come

Error Handling

AvahiAI provides user-friendly error messages for common issues. Here are some common errors you might encounter:

  1. Invalid AWS Credentials
AWS credentials are not set or invalid. Please configure your AWS credentials.
  1. File Not Found
The file at path/to/your/file.pdf does not exist. Please check the file path.
  1. Unexpected Errors
An unexpected error occurred: <error message>.

Contributing

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

License

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.0.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

avahiplatform-0.0.0-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: avahiplatform-0.0.0.tar.gz
  • Upload date:
  • Size: 23.3 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.0.tar.gz
Algorithm Hash digest
SHA256 d97fcd83aeff81d3863a5940c8771f32f8a7eeefe6f6b0711a40b164993dd863
MD5 103ce00a239b5afb5eaff12037134ce1
BLAKE2b-256 d3ed7f4bacd9bbcb64c639fe36a241484c1444c7845a37ab7886fb43a7c182f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for avahiplatform-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7c59d905ce2ffbebea626518e08cb83e46aa5666b688a6b547ea6131d8a0269
MD5 b12d7c77eb7636dafaed4bcc778d4ef8
BLAKE2b-256 971835647dbb377d2cc07959dad86601c71d92c7d27c5aa60ceea37e2ddd64e5

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