Farspeak is an API that simplifies creating RAG apps. By leveraging vector databases and LLMs, Farspeak lets developers build powerful, AI-driven apps quickly, processing structured/unstructured data via CRUD operations.
When we first started creating RAG-powered apps, we quickly noticed a common pattern across all of them. These apps don't need to be complex and should enable developers with zero ML experience. Additionally, they shouldn't be limited to Python. Developers using different languages should be supported as well.
That's why we created Farspeak as an API first, then built packages around it to support diverse developer communities. We started with NPM to support fellow JS developers.
Our goal is to provide a near-instant developer experience, enabling modern app functionalities such as processing structured (JSON) and unstructured (e.g., PDF) data, and facilitating "talk to your data" features.
Farspeak's API is RESTful and utilizes CRUD operations to store and process entities. Entities are regular JSON objects, like "todos". For instance, to store a JSON object, you can either use the POST method on "/apps/my-app/dev/todos" or, with NPM, use the "write" method: farspeak.entity("todos").write({...}).
Once you wrote any data you can ask questions using natural language with ".inquire" method, like so:
farspeak
.entity("todos")
.inquire("What is my most important todo?");
Processing documents is similar to handling structured JSON data, except you use ".fromDocument" instead of ".write". This is where prompt engineering comes in—describing what you need to store and "RAG". To describe your data, along with the file path, you send "instructions" and a "template".
Instructions help Farspeak understand the document better instead of guessing, such as "This is an ID document". Templates are useful for defining the properties of the entity. For example, for an ID document with "full_name" and "address" properties, you would define the template as:
{
"full_name": "This is the full name of the person",
"address": "This is the address of the person including country code"
}
A full example:
farspeak.entity("id_docs").fromDocument({ filePath, instructions, template });
farspeak.entity("id_docs").inquire("Where does Jane Doe live?");
We would love to hear your first impressions of the product and suggestions on what we could build next.
Important links:
Farspeak dashboard: https://dashboard.farspeak.ai
Our NPM repo: https://github.com/farspeak/fars...
Next.js example: https://github.com/farspeak/next...
About Farspeak on Product Hunt
“Build smart apps in minutes (beta)”
Farspeak launched on Product Hunt on June 1st, 2024 and earned 101 upvotes and 8 comments, placing #23 on the daily leaderboard. Farspeak is an API that simplifies creating RAG apps. By leveraging vector databases and LLMs, Farspeak lets developers build powerful, AI-driven apps quickly, processing structured/unstructured data via CRUD operations.
On the analytics side, Farspeak competes within API, Developer Tools, Artificial Intelligence and GitHub — topics that collectively have 1.1M followers on Product Hunt. The dashboard above tracks how Farspeak performed against the three products that launched closest to it on the same day.
Who hunted Farspeak?
Farspeak was hunted by Marko. A “hunter” on Product Hunt is the community member who submits a product to the platform — uploading the images, the link, and tagging the makers behind it. Hunters typically write the first comment explaining why a product is worth attention, and their followers are notified the moment they post. Around 79% of featured launches on Product Hunt are self-hunted by their makers, but a well-known hunter still acts as a signal of quality to the rest of the community. See the full all-time top hunters leaderboard to discover who is shaping the Product Hunt ecosystem.