Skip to content
Lancelot Owczarczak edited this page Sep 7, 2023 · 15 revisions

🏭 PolyFact

⚑ A lightweight and simple way to create tools using AI πŸͺΆ

PolyFact's goal is to make it possible to code every AI tool/Chatbot you could want in only a couple of lines of code without the need for complex abstractions and having to deploy anything.

✨ Features

  • Generate: Answer to simple requests as text
  • Chat: Easily create chatbots
  • Transcribe: Transcribe audio files to text
  • Memory: Easily create a long-term memory and simplify the use of large amounts of information
  • Type checked generation: Answer simple requests with a type you defined (🎲 probabilistic function)
  • Image generation: Generate images with Dall-E and Midjourney
  • Usable without a backend from React: The usePolyfact hooks lets you use Polyfact and handle authentification without having to deploy any backend

πŸ“š Documentation

You can consult PolyFact's documentation at https://github.com/polyfact/polyfact-node/wiki

We also made a couple of tutorials you can use to get started with Polyfact:

πŸš€ Getting started

To install polyfact into your repository:

npm install polyfact

Get your polyfact token by signing up with GitHub here: https://app.polyfact.com
Add your PolyFact Token in the POLYFACT_TOKEN environment variable:

export POLYFACT_TOKEN= # The token displayed on https://app.polyfact.com

πŸ’‘ Examples

There are more examples and tutorials in the Documentation but here's a simple chatbot to get you started:

import * as readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";
import { Chat } from "polyfact";

// We use the nodeJS readline API to extract the user inputs from the standard input of the terminal
// It can be change to whatever interface you want the user to interact with, readline is just for
// the example. 
const rl = readline.createInterface({ input, output });

async function chatREPL() {
    // We initialize a new polyfact chat
    const chat = new Chat();

    while (true) {
        // We retrieve the userInput from the nodeJS readline API
        const userInput = await rl.question("> ");

        // We get an answer from the polyfact API to the message the user sent
        const aiAnswer = await chat.sendMessage(userInput);

        // And we print it to the standard output
        console.log(aiAnswer);
    }
}

chatREPL()

πŸ“« Contact us

We strive for feedback and want to understand everyone's needs, and you can hang out with us on Discord!

πŸ§‘β€πŸ’» Contributing

PolyFact is open-source! You can contribute to this package or the API by opening an issue or a PR!

Clone this wiki locally