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

openai-edge-streaming

v1.1.0

Published

Client for OpenAI API

Downloads

6

Readme

[email protected]

This unofficial OpenAI library provides convenient access to the OpenAI API. This library can be used in browser (not recommended as you would expose your API key), edge, and server environments. It improves upon the official library by:

  1. Adding support for usage in Next.js Edge Runtime by passing useFetch: true
  2. Adds streaming support for the /chat/completions endpoint with openai.chat.createCompletionStream method. See example usage in a ChatGPT clone here
  3. Reorganizing OpenAI's endpoints into namespaces
  4. Simplifying usage with less imports

Authored by: https://www.konfigthis.com/

Installing

npm

npm install openai-edge-streaming --save

yarn

yarn add openai-edge-streaming

Usage in Next.js Edge Runtime

If you are using openai-edge-streaming in a Next.js Edge runtime make sure to set useFetch: true like so:

import { Openai } from "openai-edge-streaming"

export const config = {
    runtime: "edge",
};

export default async function handler(req: Request): Promise<Response> {
    const openai = new Openai({
        useFetch: true, // useFetch must be "true" for openai-edge-streaming to work in Next.js edge runtime
    })
    return new Response(JSON.stringify({ message: "This is from openai-edge-streaming" }), { status: 200 })
}

Getting Started

import { Openai } from "openai-edge-streaming"

const openai = new Openai({
    // Defining the base path is optional and defaults to https://api.openai.com/v1
    // basePath: "https://api.openai.com/v1",
    apiKey: process.env.OPENAI_API_KEY,
})

const createResponse = await openai.answers.create({
        "model": "model_example",
        "question": "What is the capital of Japan?",
        "examples": [["What is the capital of Canada?","Ottawa"],["Which province is Ottawa in?","Ontario"]],
        "examples_context": "Ottawa, Canada's capital, is located in the east of southern Ontario, near the city of Montréal and the U.S. border.",
        "documents": ["Japan is an island country in East Asia, located in the northwest Pacific Ocean.","Tokyo is the capital and most populous prefecture of Japan."],
        "search_model": "ada",
        "max_rerank": 200,
        "temperature": 0,
        "max_tokens": 16,
        "n": 1,
        "return_metadata": false,
        "return_prompt": false,
        "expand": [],
        "user": "user-1234",
    })

console.log(createResponse)

Documentation for API Endpoints

All URIs are relative to https://api.openai.com/v1

Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- AnswersApi | create | POST /answers | Answers the specified question using the provided documents and examples. The endpoint first searches over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for completion. AudioApi | createTranscription | POST /audio/transcriptions | Transcribes audio into the input language. AudioApi | createTranslation | POST /audio/translations | Translates audio into into English. ChatApi | createCompletion | POST /chat/completions | Creates a completion for the chat message ClassificationsApi | create | POST /classifications | Classifies the specified `query` using provided examples. The endpoint first searches over the labeled examples to select the ones most relevant for the particular query. Then, the relevant examples are combined with the query to construct a prompt to produce the final label via the completions endpoint. Labeled examples can be provided via an uploaded `file`, or explicitly listed in the request using the `examples` parameter for quick tests and small scale use cases. CompletionsApi | create | POST /completions | Creates a completion for the provided prompt and parameters EditsApi | create | POST /edits | Creates a new edit for the provided input, instruction, and parameters. EmbeddingsApi | create | POST /embeddings | Creates an embedding vector representing the input text. EnginesApi | createSearch | POST /engines/{engine_id}/search | The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them. To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When `file` is set, the search endpoint searches over all the documents in the given file and returns up to the `max_rerank` number of documents. These documents will be returned along with their search scores. The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query. EnginesApi | list | GET /engines | Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability. EnginesApi | retrieve | GET /engines/{engine_id} | Retrieves a model instance, providing basic information about it such as the owner and availability. FilesApi | create | POST /files | Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit. FilesApi | delete | DELETE /files/{file_id} | Delete a file. FilesApi | download | GET /files/{file_id}/content | Returns the contents of the specified file FilesApi | list | GET /files | Returns a list of files that belong to the user&#39;s organization. FilesApi | retrieve | GET /files/{file_id} | Returns information about a specific file. FinetunesApi | cancel | POST /fine-tunes/{fine_tune_id}/cancel | Immediately cancel a fine-tune job. FinetunesApi | create | POST /fine-tunes | Creates a job that fine-tunes a specified model from a given dataset. Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. Learn more about Fine-tuning FinetunesApi | list | GET /fine-tunes | List your organization&#39;s fine-tuning jobs FinetunesApi | listEvents | GET /fine-tunes/{fine_tune_id}/events | Get fine-grained status updates for a fine-tune job. FinetunesApi | retrieve | GET /fine-tunes/{fine_tune_id} | Gets info about the fine-tune job. Learn more about Fine-tuning ImagesApi | create | POST /images/generations | Creates an image given a prompt. ImagesApi | createEdit | POST /images/edits | Creates an edited or extended image given an original image and a prompt. ImagesApi | createVariation | POST /images/variations | Creates a variation of a given image. ModelsApi | delete | DELETE /models/{model} | Delete a fine-tuned model. You must have the Owner role in your organization. ModelsApi | list | GET /models | Lists the currently available models, and provides basic information about each one such as the owner and availability. ModelsApi | retrieve | GET /models/{model} | Retrieves a model instance, providing basic information about the model such as the owner and permissioning. ModerationsApi | create | POST /moderations | Classifies if text violates OpenAI&#39;s Content Policy