openai-edge-streaming
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

openai-edge-streaming@1.1.0

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

Package Sidebar

Install

npm i openai-edge-streaming

Weekly Downloads

1

Version

1.1.0

License

Unlicense

Unpacked Size

845 kB

Total Files

316

Last publish

Collaborators

  • konfig-publisher