UNPKG

purai.js

Version:
182 lines (142 loc) 4.17 kB
# PurAI.js PurAI.js is a simple JavaScript/TypeScript library that allows you to interact with the PurAI API. ## Installation ```bash npm install purai.js ``` ## Usage ### Setup First, you need to get an API key from the [PurAI Discord server](https://discord.gg/purlabs-1117511140440821852). ```js const { PurAi, ApiStyle } = require('purai.js'); const purAi = new PurAi('your-api-key', { // apiStyle: ApiStyle.OpenAi // Allows you to interact with the PurAI API using the OpenAI style }); ``` ### See the available models ```js await purAi.models(); ``` #### Example Response ```json [ { "type": "chatcompletion", "id": "claude-3-opus", "totalProviders": 2, "avaiableProviders": 2 }, { "type": "chatcompletion", "id": "claude-3-haiku", "totalProviders": 2, "avaiableProviders": 2 }, // ... ] ``` ### Chat with a model ```js await purAi.chat('Hello, how are you?'); await purAi.chat({ role: 'user', content: 'Hello, how are you?' }); await purAi.chat([ { role: 'system', content: 'You are a helpful assistant.' }, 'Hello, how are you?' ]); ``` #### 1. PurAI Style Response ```json { "provider": "c17ce511557f23e904e5dbaa8635651bec158d5ad512cce106b33a45a2be2cd2", "responseTime": 7229, "message": { "role": "assistant", "content": "Hello! As an AI language model, I don't have feelings, but I'm here and ready to help you with any questions or tasks you have. How can I assist you today?" }, "history": [ { "role": "user", "content": "Hello, how are you?" }, { "role": "assistant", "content": "Hello! As an AI language model, I don't have feelings, but I'm here and ready to help you with any questions or tasks you have. How can I assist you today?" } ] } ``` #### 2. OpenAI Style Response ```json { "provider": "69f6d52b30f0ad4ef863d8fa1d4a8188baf1fcaa662209a27c7c05457c4a2374", "responseTime": 3665, "choices": [ { "finishReason": "stop", "index": 0, "message": { "content": "Hello! I'm just a computer program, so I don't have feelings, but I'm here and ready to help you. What can I do for you today?", "role": "assistant" } } ], "created": 1718905882921, "id": "chatcmpl-1718905882921-5wiun8dgp", "model": "gpt-4o", "object": "chat.completion", "usage": { "completionTokens": 1, "promptTokens": 1, "totalTokens": 2 } } ``` ### Chat with a model using the special Chat class ```js const { PurAi, Chat } = require('purai.js'); const purAi = new PurAi('your-api-key'); const chat = new Chat(purAi, 'gpt-4o'); await chat.send('Hello, how are you?'); chat.resetHistory(); await chat.send({ role: 'user', content: 'Hello, how are you?' }); chat.resetHistory(); await chat.send([ { role: 'system', content: 'You are a helpful assistant.' }, 'Hello, how are you?' ]); chat.resetHistory(); chat.addMessages({ role: 'system', content: 'You are a helpful assistant.' }); await chat.send('Hello, how are you?'); ``` The responses are the same as the examples provided [here](#chat-with-a-model). ### Generate an image > [!WARNING] > Generally the images are expired after 5 minutes, depending on the provider. ```js await purAi.generateImage('dalle-3', "Imagine a fluffy, ginger tabby cat lounging lazily in a patch of sunlight filtering through a window. Its fur glows with a warm, golden hue, accentuating the soft stripes that run along its back. The cat's eyes are a deep, amber color, reflecting the tranquility of its surroundings. It's curled up elegantly, with its tail neatly wrapped around its paws, exuding a sense of contentment and peace."); ``` #### 1. PurAI Style Response ```json { "provider": "c17ce511557f23e904e5dbaa8635651bec158d5ad512cce106b33a45a2be2cd2", "responseTime": 7229, "image": "https://..." } ``` #### 2. OpenAI Style Response Image generation for OpenAI style is not supported yet.