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

stream-ai-sdk

v2.0.0

Published

The prototype of the Open AI Streaming Service with a frontend SDK.

Downloads

3

Readme

stream-ai-sdk

The prototype of the Open AI Streaming Service with a frontend SDK.

What does it do?

A typical API call to Open AI only returns results in around 10 seconds. But when you use ChatGPT you see a response straight away, as it prints it out letter by letter (well, token by token actually).

This package provides a prototype of the end-to-end service/SDK that simplifies streaming.

More specifically

Just call getOpenAiStream(params, onStream) or getOpenAiJsonStream(params, onStream) and it'll automatically stream a response for you. Namely, it'll call the onStream callback when it has something to stream.

For example:

getOpenAiTextStream(
  {
    openAiApiKey: 'YOUR API KEY',
    prompt: "What's the meaning of life?",
  },
  (result) => {
    // do something with result
  },
);

Works with JSON responses as well

Streaming text data is not difficult, but what if your prompt asks for JSON data? Then streaming responses will have a partial malformed JSON and your JSON.parse() will fail. This package handles it for you:

const example = [
  {
    firstName: "John",
    lastName: "Doe",
    age: 25,
    favouriteFood: ["Pizza", "Pasta"],
  },
  {
    firstName: "Mary",
    lastName: "Ann",
    age: 27,
    favouriteFood: ["Sushi", "Ramen"],
  },
];

getOpenAiJsonStream<>(
  {
    openAiApiKey: '[YOUR API KEY]',
    prompt: `Generate a JSON array of 10 users following this example: ${JSON.stringify(example)}`,
  },
  (result) => {
    // do something with result
  }}
);

For JSON data you can also use TypeScript generics:

getOpenAiJsonStream<ExpectedType>(params, callback);

How does it work?

The SDK works together with our cloud service and together they handle all the streaming for you.

Can't you build streaming yourself?

Yes, you can. But you'll have to first build a backend for that and then deal with a streamed data on the frontend. This package removes all the complexity.

This is a prototype - do not use it i production

If you use it in production you will expose your Open API API Key.

Is your Open AI Key safe?

Yes, as long as you don't use this library in production. This library and the underlying cloud service never store your Open AI key.