Skip to content

Latest commit

 

History

History
164 lines (120 loc) · 4.84 KB

.verb.md

File metadata and controls

164 lines (120 loc) · 4.84 KB

Getting started

Requires Node.js, and an API key from WordsAPI.

WordsAPI Usage

Pass your apiKey as an option, or set it as an environment variable on WORDS_API_KEY (handy if you're using the CLI).

OpenAI Usage

Pass your openAIKey as an option, or set it as an environment variable on OPENAI_API_KEY (handy if you're using the CLI).

API

Usage

const { synonyms } = require('{%= name %}');

const words = await synonyms(['foo', 'bar']);
console.log(words);

synonyms

Get synonyms from the WordsAPI.

Signature

synonyms(word: string | string[], options: object): Promise<Array<string>>

Example

const { synonyms } = require('{%= name %}');

// pass a string or array of words
const results = await synonyms(['fork', 'knife']);
console.log(results.all); //=> list of all synonyms
console.log(results.fork); //=> ['divide', 'split', 'diverge', ...]
console.log(results.knife); //=> ['blade', 'cutlery', 'dagger', ...]

Options

Option Type Default Description
openAIKey string N/A Your OpenAI API key. If not provided, the function will attempt to read from a OPENAI_API_KEY environment variable.
apiKey string N/A Your WordsAPI key from RapidAPI. If not provided, the function will attempt to read from a WORDS_API_KEY environment variable.
split `string regex boolean`
join `string string[] boolean`

openai

Type: boolean | object - If true, the OpenAI API will be used. If an object, the object will be passed to the OpenAI API as options. Default: false

Example:

process.env.OPENAI_API_KEY = 'your API key here'; // or just pass it on the options

const { synonyms } = require('{%= name %}');

// pass openai=true on the options, to tell the library you want to use the OpenAI API
const results = await synonyms('fabulous', {
  openAIKey,
  // by default 'gpt-3.5-turbo-0613' is used
  openai: { model: 'gpt-4-0613' } // pass any other OpenAI options you want
});

// the returned object is a different shape than the WordsAPI results
console.log(results);

Results in:

{
  id: 'chatcmpl-7fruBWZKtSBI4q8sPawHNeANVtZ0D',
  object: 'chat.completion',
  created: 1690213015,
  model: 'gpt-3.5-turbo-0613',
  usage: { prompt_tokens: 84, completion_tokens: 20, total_tokens: 104 },
  input: 'fabulous',
  message: {
    role: 'assistant',
    content: 'fantastic, marvelous, amazing, incredible, superb, outstanding, excellent, terrific, splendid, sensational'
  },
  synonyms: [
    'fantastic', 'marvelous',
    'amazing',   'incredible',
    'superb',    'outstanding',
    'excellent', 'terrific',
    'splendid',  'sensational'
  ]
}

Example phrase

synonyms('5 words that mean "mildly fabulous"', { openai: true });

// Results in:
{
  id: 'chatcmpl-7frv8JUMOiI7ptvguI6pS3nZNzCS5',
  object: 'chat.completion',
  created: 1690213074,
  model: 'gpt-3.5-turbo-0613',
  usage: { prompt_tokens: 92, completion_tokens: 12, total_tokens: 104 },
  input: '5 words that mean "mildly fabulous"',
  message: {
    role: 'assistant',
    content: 'charming, delightful, lovely, enchanting, winsome'
  },
  synonyms: [ 'charming', 'delightful', 'lovely', 'enchanting', 'winsome' ]
}

splitWords

The splitWords function breaks down compound words into individual words using either the provided splitting pattern or a default pattern (/[\s-]+/g).

const { splitWords } = require('{%= name %}');
console.log(splitWords('foo-bar'));
//=> ['foo', 'bar', 'foo-bar', 'bar-foo']
console.log(splitWords(['foo-bar', 'baz-qux']));
//=> ['foo', 'bar', 'foo-bar', 'baz', 'qux', 'baz-qux']

Options

Option Type Default Description
split `string regex boolean`
join `string string[] boolean`

CLI

Install globally with npm:

npm install {%= name %} --global

Usage

synonyms <word> [options]

Options

Option Alias Description
--apiKey -k A string representing the user's RapidAPI key. If not provided, the function will attempt to read from a WORDS_API_KEY environment variable.
--split -s Determines if splitWords should be used.
--join -j Passed to splitWords when split is defined.