First Project

Getting Started: Create Your First Project

In this guide, we’ll walk you through building your first project with Unbody, step by step.

ℹ️

All the following steps for creating and configuring a project can be done using either the Dashboard or the SDK. If this is your first time, we recommend using the Dashboard for a more visual and user-friendly experience.


Prerequisites

  1. An Unbody account: Sign up at Unbody dashboard.
  2. A Data source: For this guide, we’ll use a Google Drive folder with a few files (e.g., Markdown, PDFs, images, or a short video under 1 minute). Unbody also supports many other prebuilt integrations (like Discord or GitHub and custom data ingestion.
  3. Freemium plan: Unbody’s free plan is great for testing but has limits on file count and size, so keep your test folder small. Learn more about pricing.

Once ready, let’s get started.

Overview

A project in Unbody is your workspace. It includes:

  • A dedicated database to store and manage AI-ready data.
  • Configurable AI tools like vectorizers, enhancers, and generative modules.
  • One or more data sources, defining where your data comes from.

When you set up a project, you’re defining the tools and processes that transform raw data into actionable knowledge. Once the data is ingested, Unbody processes, vectorizes, and enriches it. Afterward, you can query and interact with the AI-ready data through the Content API.

Step 1: Create a Project and configure it

Create your project and configure the AI tools it will use. Configurations include:

For this guide, we use a vectorizer for processing text and two built in enhancers: AutoVision for enhancing images and AutoSummary for text documents.

First Log in to Unbody and then click on New Project.

Create project

You’ll find these options in the Project Configuration -> ADVANCED section during project setup.

  • Let’s choose text-embedding-3-small from OpenAI. Setting up text vectorizer

  • Set up Generative Search -> Command R+ from Generative Cohere. Setting up generative search

  • Enable AutoVision -> OpenAi GPT-4o for enhancing Image. Enable Autovision for enhancing Image

  • Select AutoSummary -> OpenAI GPT-4o for automatic text summarization. Setting up AutoSummary for Text

Step 2: Add a Data Source

Data sources define where your project gets its data. Unbody supports both prebuilt integrations (e.g., Google Drive, Discord) and custom data providers.

Open your project and navigate to Data Sources.

Click Add Data Source and select Google Drive.

Create source

Select provider

Authenticate and select your folder to sync.

Connect

Connect a source

Entrypoint

Select an entrypoint

Initialize

Initialize

At this point, Unbody will ingest, process, vectorize, and enrich the data automatically. This process will take a while, and you can monitor the progress in the logs section: Processing status in logs

At this point you have nothing to do on dashboard and can move to next step which is about start building. The following will be provided in SDK (typeScript) and Graphql. Each project has a graphql playground where you can play around with the given queries. GraphQL playground interface

Step 3: Interact with Your Data

Once your data is ready, use the Content API to perform tasks like semantic search or content generation.

Fetch google docs

 const { data: {payload} } = await unbody.get
                                         .googleDoc
                                         .select("title", "autoSummary", "text", "toc")
                                         .exec();

Semantic search

Now lets get all text documents that are markdown

const { data: {payload} } = await unbody.get
                                        .textDocument
                                        .where({ mimeType: "text/markdown" })
                                        .select("title", "autoSummary", "text")
                                        .exec();

Fetch all images

const { data: {payload} } = await unbody.get
                                        .imageBlock
                                        .select("url", "originalName")
                                        .exec();

Semantic search on images

const { data: {payload} } = await unbody.get
                                        .imageBlock
                                        .search
                                        .about("Flight tickets")
                                        .select("url", "originalName")
                                        .exec();

Simple rag on text files (generative)

const { data: {payload} } = await unbody.get
                                        .textDocument
                                        .generate
                                        .fromMany("Create a summary:", ["text", "title"])
                                        .select("title", "text", "autoSummary")
                                        .exec();

Simple rag on images (generative)

const { data: {payload} } = await unbody.get
                                        .imageBlock
                                        .search
                                        .about("Documents")
                                        .generate
                                        .fromMany("Create a summary and analysis of the images found:", [
                                            "originalName",
                                            "autoCaption",
                                            "autoOCR"
                                        ])
                                        .exec();

Next Steps

Congratulations! Your first project is now set up. You can:

©2024 Unbody