-
Notifications
You must be signed in to change notification settings - Fork 9
Home
β‘ 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.
- 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
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:
- Tutorial: How to make a clone of ChatGPT
- Tutorial: Add payment to your polyfact app with stripe subscriptions
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
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()
We strive for feedback and want to understand everyone's needs, and you can hang out with us on Discord!
PolyFact is open-source! You can contribute to this package or the API by opening an issue or a PR!