wilannie
v0.0.2
Published
Simple package to abstract away pre-processing images for LLM models
Downloads
3
Readme
Why Use Wilannie?
Wilannie simplifies the process of integrating image analysis capabilities into your projects using advanced AI models. It handles the complexities of image preprocessing and API interactions, allowing you to focus on leveraging AI-powered image analysis in your applications with minimal setup.
Installation
You can install Wilannie using npm:
npm install wilannie
Or using yarn:
yarn add wilannie
Usage
Here's a basic example of how to use Wilannie:
import { aiImageAnalyzer } from 'wilannie';
async function runImageAnalysis() {
const images = [
{
path: 'sample-image1.png',
mediaType: 'image/png' as const
},
{
path: 'sample-image2.png',
mediaType: 'image/png' as const
},
];
const prompts = {
system: "You are an AI assistant specialized in analyzing images",
user: "Please analyze the following images and describe what you see in detail"
};
const analyzer = aiImageAnalyzer(
'anthropic',
'claude-3-5-sonnet-20240620',
images,
prompts,
2000 // Optionally specify max_tokens
);
// Process the response in real-time
for await (const chunk of analyzer) {
if (chunk.type === 'partial_message') {
process.stdout.write(chunk.content);
}
}
// Or get the full response at once
for await (const chunk of analyzer) {
if (chunk.type === 'full_message') {
console.log(chunk.content);
}
}
}
runImageAnalysis().catch(console.error);
Advanced Usage
The aiImageAnalyzer
function accepts the following parameters:
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| provider | 'anthropic' | Yes | - | The AI provider (currently only Anthropic is supported) |
| model | 'claude-3-5-sonnet-20240620' | Yes | - | The specific model to use |
| images | Array of { path: string, mediaType: "image/jpeg" \| "image/png" \| "image/gif" \| "image/webp" }
| Yes | - | An array of image objects to analyze |
| prompts | { system?: string, user: string }
| Yes | - | Prompts for the AI, including an optional system prompt and a required user prompt |
| max_tokens | number | No | 1024 | Maximum number of tokens for the response |
| apiKey | string | No | undefined | API key for the provider (if not set in environment variables) |
Output
The aiImageAnalyzer
function returns an AsyncGenerator that yields objects of type Packet
:
interface Packet {
type: 'partial_message' | 'full_message';
content: string;
}
You can choose to process the output in two ways:
Real-time processing: Iterate over the generator and handle
'partial_message'
packets to get chunks of the response as they are generated.Full response: Iterate over the generator and handle the
'full_message'
packet to get the complete response at once.
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Authors
- @alokrajiv - engineering
- @minuchoi29 - documentation