1.0.0-preview6 • Published 5 months ago
@ramlan442/openai v1.0.0-preview6
OPENAI API NODEJS
library to use api from openai in nodejs
Installation
npm i github:ramlan442/openai # latest from github
# or
npm i @ramlan442/openai # via npm
Usage/Examples
for a complete example can check in test/example.ts
import OpenAi from "@ramlan442/openai";
(async () => {
const openai = new OpenAi({ key: process.env.OPENAI_KEY });
// new chat
const chat = await openai.chatCompletions("halo");
console.log(chat);
// end
// continue conversation
let chat = await openai.chatCompletions("my name is ramlan");
console.log(chat.text);
chat = await openai.chatCompletions("what is my name", {
// without passing this will make new conversation
parentMessageId: chat.id,
});
console.log(chat.text);
// end
// function call
// load all func file, for template you can see in section func template
// locate should in same folder
const funcsDir = path.join(__dirname, "func");
const funcs = fs.readdirSync(funcsDir);
const tool_funcs: FunctionOpenAI[] = [];
if (funcs.length > 0) {
funcs.forEach((v) => {
const funcFile = path.join(funcsDir, v);
const { default: func } = require(funcFile);
tool_funcs.push(func);
});
let chat = await openai.chatCompletions("nama aku adalah ramlan", {
tools: tool_funcs,
});
console.log(chat.text);
chat = await openai.chatCompletions("tanggal lahirku 04 april 2000", {
tools: tool_funcs,
// without passing this will make new conversation
parentMessageId: chat.id,
});
console.log(chat.text);
chat = await openai.chatCompletions(
"siapa namaku dan kapan tanggal lahirku?",
{
tools: tool_funcs,
// without passing this will make new conversation
parentMessageId: chat.id,
},
);
console.log(chat.text);
//end
// convert audio to text
const transcribe = await openai.transcribe(
// audio buffer
fs.readFileSync(path.join(__dirname, "test.mp3")),
);
console.log(transcribe);
//end
})();
Function Template
for a complete example can check in test/func
import type { FunctionOpenAI } from "@ramlan442/openai/types";
// this main function
export const getUserBirth = ({ day }: any) => `tanggal ${day}`;
// this for information function
export default {
function: {
name: "getUserBirth",
description: "get user birth",
parameters: {
type: "object",
properties: {
day: { type: "string", description: "day of birth user" },
},
required: ["day"],
},
path: __filename,
},
type: "function",
} as FunctionOpenAI;
TODO
- Chat Completions
- Stream
- Function Call
- Vision
- Split Text on Stream
- Support Custom Domain, Body, etc..
- Previous Chat (continue conversation)
- Transcribe (convert audio to text)
- text to speech
Credits
- inspiration from chatgpt-api
1.0.0-preview6
5 months ago
1.0.0-preview5
5 months ago
1.0.0-preview4
5 months ago
1.0.0-preview3
5 months ago
1.0.0-preview2
5 months ago
1.0.0-preview1
5 months ago
1.0.0-preview
5 months ago
1.0.0
5 months ago