Skip to main content

An LLM wrapper built for scene prog projects

Project description

SceneProgLLM

SceneProgLLM is a powerful and versatile Python package that wraps around LangChain's LLM interface to provide enhanced functionality, including support for text, code, and JSON response formats, image input/output, caching, and multiple endpoints. This project is built to support SceneProg projects.


Features

  1. Flexible Response Formats:
    • Supports text, code, JSON, and image outputs.
  2. Image Input and Output:
    • Accepts image inputs and enables image generation through Stable Diffusion (SD) or OpenAI's image generation API.
  3. Caching:
    • Integrated caching system to store and retrieve previous query responses for faster execution.
  4. Strict JSON Validation:
    • Ensures correct JSON structure, particularly when specific keys are required.

Installation

To install the package and its dependencies, use the following command:

pip install sceneprogllm

For proper usage, export the respective variables

export OPENAI_API_KEY= YOUR_OPENAI_API_KEY
export AWS_ACCESS_KEY= YOUR_AWS_ACCESS_KEY
export AWS_SECRET_KEY= YOUR_AWS_SECRET_KEY
export AWS_REGION = AWS_REGION
export AWS_S3_BUCKET= AWS_S3_BUCKET

Getting Started

Importing the Package

from sceneprogllm import LLM

Usage Examples

  1. Generating Text Responses
llm = LLM(name="text_bot", response_format="text")
response = llm.run("What is the capital of France?")
print(response)
  1. Generating JSON Responses
llm = LLM(
    name="json_bot",
    response_format="json",
    json_keys=["capital", "currency"]
)
query = "What is capital and currency of India?"
response = llm.run(query)
print(response)
  1. Generating Python Code
llm = LLM(name="code_bot", response_format="code")
query = "Write a Python function to calculate factorial of a number."
response = llm.run(query)
print(response)
  1. Generating images from text
llm = LLM(name="image_bot", response_format="image")
response = llm.run("Generate an image of a futuristic cityscape.")
response.save("futuristic_city.jpg")
  1. Query using Images
llm = LLM(name="image_bot", response_format="text", num_images=1, image_generator="SD")
image_paths = ["path/to/input_image.jpg"]
response = llm.run("What is the color of the object in the image?", image_paths=image_paths)
  1. Clear LLM cache
from sceneprogllm import clear_llm_cache
clear_llm_cache()

Using Ollama

To use Ollama with the LLM class, you need to set the use_ollama parameter to True when initializing the LLM object.

Furthermore, you can specify the Ollama Model via ollama_model_name, the default is "llama3.2-vision". See Ollama model site for the available options. Note that different model will support different modes (text, image, etc.).

Here is an example:

from sceneprogllm import LLM

# Example for generating text responses using Ollama
llm = LLM(name="text_bot", response_format="text", use_ollama=True)

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

sceneprogllm-0.1.3.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sceneprogllm-0.1.3-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file sceneprogllm-0.1.3.tar.gz.

File metadata

  • Download URL: sceneprogllm-0.1.3.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for sceneprogllm-0.1.3.tar.gz
Algorithm Hash digest
SHA256 b85e414f833ebbeb4a2e4c58ba3e5b3d1492c6998513f33cc32fc0c4f17eeb83
MD5 9e26bab1d9e8cc6bacb6517124161246
BLAKE2b-256 4448a55b5ca6fde8f707512c5e01c4c3887cfad9b30b03120e81a4b511c6bcbf

See more details on using hashes here.

File details

Details for the file sceneprogllm-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: sceneprogllm-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for sceneprogllm-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4a56ab380e1839b614401b066386d66255151e00d7be7bbd87a88926c42f4698
MD5 ee5ecda7aa9362500cd2b7fba45c3437
BLAKE2b-256 65ab507aaae2861de5c09cdbaa89ccf27acb3272415c80b4084b791885cdcaf1

See more details on using hashes here.

Supported by

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