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
- Flexible Response Formats:
- Supports text, code, JSON, and image outputs.
- Image Input and Output:
- Accepts image inputs and enables image generation through Stable Diffusion (SD) or OpenAI's image generation API.
- Caching:
- Integrated caching system to store and retrieve previous query responses for faster execution.
- 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
- Generating Text Responses
llm = LLM(name="text_bot", response_format="text")
response = llm.run("What is the capital of France?")
print(response)
- 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)
- 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)
- 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")
- 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)
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b85e414f833ebbeb4a2e4c58ba3e5b3d1492c6998513f33cc32fc0c4f17eeb83
|
|
| MD5 |
9e26bab1d9e8cc6bacb6517124161246
|
|
| BLAKE2b-256 |
4448a55b5ca6fde8f707512c5e01c4c3887cfad9b30b03120e81a4b511c6bcbf
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a56ab380e1839b614401b066386d66255151e00d7be7bbd87a88926c42f4698
|
|
| MD5 |
ee5ecda7aa9362500cd2b7fba45c3437
|
|
| BLAKE2b-256 |
65ab507aaae2861de5c09cdbaa89ccf27acb3272415c80b4084b791885cdcaf1
|