1.0.64 • Published 5 months ago

190proof v1.0.64

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

190proof

A unified interface for interacting with multiple AI providers including OpenAI, Anthropic, Google, and Groq. This package provides a consistent API for making requests to different LLM providers while handling retries, streaming, and multimodal inputs.

Features

Fully-local unified interface across multiple AI providers that includes:

  • 🖼️ Image format & size normalization
  • 🛠️ Consistent function calling
  • 💬 Consistent message alternation & system instructions
  • 🔄 Automatic retries with configurable attempts
  • 📡 Streaming by default

Installation

npm install 190proof

Usage

Basic Example

import { callWithRetries } from "190proof";
import { GPTModel, GenericPayload } from "190proof/interfaces";

const payload: GenericPayload = {
  model: GPTModel.O1_MINI,
  messages: [
    {
      role: "user",
      content: "Tell me a joke.",
    },
  ],
};

const response = await callWithRetries("my-request-id", payload);
console.log(response.content);

With Function Calling

const payload: GenericPayload = {
  model: GPTModel.O1_MINI,
  messages: [
    {
      role: "user",
      content: "What is the capital of France?",
    },
  ],
  functions: [
    {
      name: "get_country_capital",
      description: "Get the capital of a given country",
      parameters: {
        type: "object",
        properties: {
          country_name: {
            type: "string",
            description: "The name of the country",
          },
        },
        required: ["country_name"],
      },
    },
  ],
};

const response = await callWithRetries("function-call-example", payload);

With Images

const payload: GenericPayload = {
  model: GPTModel.O1_MINI,
  messages: [
    {
      role: "user",
      content: "What's in this image?",
      files: [
        {
          mimeType: "image/jpeg",
          url: "https://example.com/image.jpg",
        },
      ],
    },
  ],
};

const response = await callWithRetries("image-example", payload);

With System Messages

const payload: GenericPayload = {
  model: GPTModel.O1_MINI,
  messages: [
    {
      role: "system",
      content: "You are a helpful assistant that speaks in a friendly tone.",
    },
    {
      role: "user",
      content: "Tell me about yourself.",
    },
  ],
};

const response = await callWithRetries("system-message-example", payload);

Supported Models

OpenAI Models

  • gpt-3.5-turbo-0613
  • gpt-3.5-turbo-16k-0613
  • gpt-3.5-turbo-0125
  • gpt-4-1106-preview
  • gpt-4-0125-preview
  • gpt-4-turbo-2024-04-09
  • gpt-4o
  • gpt-4o-mini
  • o1-preview
  • o1-mini

Anthropic Models

  • claude-3-haiku-20240307
  • claude-3-sonnet-20240229
  • claude-3-opus-20240229
  • claude-3-5-sonnet-20241022

Google Models

  • gemini-1.5-pro-latest

Groq Models

  • llama3-70b-8192

API Reference

callWithRetries(identifier: string, payload: GenericPayload, config?: Config, retries?: number, chunkTimeoutMs?: number)

Main function to make requests to any supported AI provider.

Parameters

  • identifier: Unique identifier for the request
  • payload: Request payload containing model, messages, and optional functions
  • config: Optional configuration for the specific provider
  • retries: Number of retry attempts (default: 5)
  • chunkTimeoutMs: Timeout for streaming chunks (default: 15000)

License

ISC

1.0.62

6 months ago

1.0.61

6 months ago

1.0.60

6 months ago

1.0.64

5 months ago

1.0.63

6 months ago

1.0.55

7 months ago

1.0.54

9 months ago

1.0.53

10 months ago

1.0.52

12 months ago

1.0.59

6 months ago

1.0.58

6 months ago

1.0.57

6 months ago

1.0.56

6 months ago

1.0.51

1 year ago

1.0.48

1 year ago

1.0.47

1 year ago

1.0.49

1 year ago

1.0.50

1 year ago

1.0.40

1 year ago

1.0.44

1 year ago

1.0.43

1 year ago

1.0.42

1 year ago

1.0.41

1 year ago

1.0.46

1 year ago

1.0.45

1 year ago

1.0.39

1 year ago

1.0.38

1 year ago

1.0.37

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.33

1 year ago

1.0.32

1 year ago

1.0.31

1 year ago

1.0.30

1 year ago

1.0.36

1 year ago

1.0.35

1 year ago

1.0.34

1 year ago

1.0.26

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.19

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.23

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.11

1 year ago

1.0.12

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.2

1 year ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago