ai-fetcher

A NPM package that provides integration with popular language models. It is designed to facilitate easy and efficient ai-fetching tasks for your application.

MIT License

Downloads
1.9K
Stars
0

ai-fetcher

Overview

ai-fetcher is a Node.js package that provides integration with popular language models. It is designed to facilitate easy and efficient ai-fetching tasks for your application. Currently the package supports Claude and DeepL models, and the supported models/services is keep expanding.

Installation

$ npm install ai-fetcher@latest

Supported AI Services

  • DeepL - Supports both free and pro API keys;
  • Claude - Supports regular text generation for now;
  • OpenAI
    • Chat - Supports chat generation;
    • Text-to-Speech - Convery given texts to audio;

Examples:

DeepL:

import { DeepL } from "ai-fetcher";

// Initialize the DeepL agent with your API key
const deepLAgent = new DeepL(YOUR_DEEPL_API_KEY, true); // Change `true` to `false` if not using Pro API key

// Example tranlation parameters
const translationParams = {
  from: "EN", // Source language code (optional, DeepL can also auto-detect the input language)
  to: "DE", // Target language code
  text: ["Hello world!", "This is a test translation"], // Text(s) to translate
};

// Call the translate method
async function translateText() {
  try {
    const result = await deepLAgent.translate(translationParams);
    console.log(result.translations);
    return result.translations;
  } catch (error) {
    console.error("Translation Error:", error);
  }
}

// Execute the function to translate the text
translateText();

Claude:

import { Claude } from "ai-fetcher";

// Initialize the Claude agent with your API key and preferred model
const claudeAgent = new Claude(YOUR_CLAUDE_API_KEY, "claude-3-haiku-20240307"); // You can also specify the model

// example system prompt and message for generating a response
const systemPrompt = "Write a haiku about the sea.";
const conversationHistory = [
  { role: "user", content: [{ type: "text", text: "Randomly generate 10 words."] } }
];

// Call the generate method
async function generateResponse() {
  try {
    const result = await claudeAgent.generate(
      systemPrompt,
      conversationHistory,
    );
    console.log(result.content);
    return result.content;
  } catch (error) {
    console.error(error);
  }
}

// execute the function and get the generated result
generateResponse();

OpenAI:

Chat Model

import { OpenAI } from "ai-fetcher";

// Initialize the OpenAI chat agent with your API key and preferred model
const openaiChatAgent = OpenAI.chat(YOUR_OPENAI_API_KEY, "gpt-4o-mini");

// Call the generate method
async function generateResponse() {
  try {
    const result = await openaiChatAgent.generate([
      { role: "user", content: "Randomly generate 20 words" },
    ]);
    console.log(result.choices[0].message.content);
  } catch (error) {
    console.error(error);
  }
}

// execute the function and get the generated result
generateResponse();

Text-to-Speech(TTS) Model

import { OpenAI } from "ai-fetcher";

// Initialize the OpenAI tts agent with your API key
const openaiTTSAgent = OpenAI.textToSpeech(YOUR_OPENAI_API_KEY);

async function convertTextToSpeech() {
  try {
    const result = await openaiTTSAgent.convert(
      "Read this text.",
      "filename",
      "speech.mp3",
    );
    console.log(result); // The result is a filename
  } catch (error) {
    console.error(error);
  }
}

// execute the function and get the generated result
convertTextToSpeech();