npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aiapi

v1.0.1

Published

A versatile library designed to interact with various AI services, including text generation, image processing, and audio conversion.

Downloads

25

Readme

aiapi

npm pipeline license downloads

Gitlab Github Twitter Discord

A versatile library designed to interact with various AI services, including text generation, image processing, and audio conversion. It offers a flexible architecture that allows users to easily integrate multiple AI providers and switch between them based on their needs.

Features

  • Multiple AI Providers: Built-in support for popular AI providers like OpenAI, Hugging Face, and Stable Diffusion.
  • Dynamic Method Assignment: Dynamically assign methods like generateText, generateImage to different providers.
  • Easy Provider Switching: Quickly switch AI providers for different methods without altering your main application code.
  • Extensibility: Add custom AI providers or override existing ones with ease.
  • Direct Provider Access: Directly interact with a specific provider if needed.

Installation

Install the package with:

npm install aiapi

Usage

Import the aiapi library.

import aiapi from 'aiapi'

or

const aiapi = require('aiapi')

aiapi is designed to be flexible and easy to use, allowing you to interact with multiple AI services seamlessly. Below are some examples of how you can utilize the library in your projects.

Basic Initialization

First, import and initialize the Api class with your desired AI providers:

const Api = require('aiapi')

// Initialize with your API keys and options
const api = new Api({
  oai: [OpenAIProvider, 'your-openai-api-key', {/* options */}],
  hf: [HuggingFaceProvider, 'your-huggingface-api-key', {/* options */}],
  // Add more providers as needed
})

Generating Content

Use the API to generate text, images, or audio. By default, the method will use the provider assigned to it:

// Generate text using the default provider for text generation
api.generateText("Hello, world!").then(console.log)

// Generate an image
api.generateImage("A sunny beach").then(console.log)

Direct Provider Access

You can also interact directly with a specific provider, bypassing the default method assignments:

// Directly call the Hugging Face provider
api.providers.hf.generateText("Direct call to Hugging Face").then(console.log)
// Or just leverage the Proxy constructor
api.hf.generateText("Direct call to Hugging Face").then(console.log)

Assigning Methods to Providers

The assignMethod function allows you to dynamically assign a specific method to a provider. This is useful if you want to change the provider for a particular functionality at runtime:

// Assign the 'generateText' method to use the 'hf' (Hugging Face) provider
api.assignMethod('generateText', 'hf')

// Now, calling generateText will use the Hugging Face provider
api.generateText("Switched to Hugging Face").then(console.log)

Adding or Overriding Providers

You can easily add a new provider or override an existing one:

class CustomProvider extends AIProvider {
  // Implement your custom provider
}

// Register a new provider
api.registerProvider('custom', new CustomProvider('your-api-key', { /* options */ }))

// Optionally, assign methods to your new provider
api.assignMethod('generateText', 'custom')

Documentation

Built-in Providers

  • OpenAIProvider: Interacts with OpenAI's APIs, offering functionalities like GPT-3 text generation.
  • HuggingFaceProvider: Utilizes Hugging Face's APIs for text generation and more.
  • StableDiffusionProvider: (Work in progress) Aims to offer image generation capabilities.

Adding Custom Providers

You can extend the AIProvider class to create custom providers. This allows integrating any AI service into the aiapi ecosystem.

Tests

In order to run the test suite, simply clone the repository and install its dependencies:

git clone https://gitlab.com/frenware/ai/aiapi.git
cd aiapi
npm install

To run the tests:

npm test

Contributing

Thank you! Please see our contributing guidelines for details.

Donations

If you find this project useful and want to help support further development, please send us some coin. We greatly appreciate any and all contributions. Thank you!

Bitcoin (BTC):

1JUb1yNFH6wjGekRUW6Dfgyg4J4h6wKKdF

Monero (XMR):

46uV2fMZT3EWkBrGUgszJCcbqFqEvqrB4bZBJwsbx7yA8e2WBakXzJSUK8aqT4GoqERzbg4oKT2SiPeCgjzVH6VpSQ5y7KQ

License

aiapi is MIT licensed.