Introduction to Smartbooks

Smartbooks are the next generation Jupyter notebooks. They’re designed to address the core issues with traditional notebooks while being accessible to everyone from professional data scientists to product managers:

  • State management: With a carefully designed dependency tracking engine and intelligent caching system, you don’t run the risk of running into reproducibility issues caused by variable states
  • Performance: Smartbooks are incredibly performant and scalable. Designed using new technologies like DuckDB, polars and Apache Arrow, Smartbooks are built for the enterprise
  • Collaborative: With Smartbooks, collaboration can happen both between data practitioners working on Smartbooks, but also between the data practitioner and their stakeholder with Smart Reports and workflow publishing
  • AI-powered: Most importantly, in the age of AI, Smartbooks are designed with AI natively built in. Your AI analyst which lives in every Smartbook can read, edit and run the Smartbook just like you would. It’s your perfect companion to help accelerate your workflow and let you focus on the things that matter

Core concepts

Smartbooks are inherently intuitive and easy to get started with. Here are just a few core concepts to know as you get started:

Cells

Cells are simply blocks of code or purpose-built blocks. The two core cells are:

  1. SQL cells: A SQL cell is where you can query data from any of your connected data sources. Each SQL cell will produce a single table in the form of a DataFrame
  2. Python cells: A Python cell is where you can write Python scripts

DataFrames and chaining cells

You can chain multiple cells together by leveraging DataFrames. For example, if you have a SQL cell that produces dataframe1, you can leverage that DataFrame is SQL or Python cell further down in the Smartbook.

SQL cell chaining

select * from dataframe1

Notice how dataframe1 is not a table from your data source.

Pro tip: Any cell that does not query your data warehouse will used cached data. This means that once you’ve pulled your data into Fabi.ai we won’t requery your data source until you explicitly rerun a SQL query. This helps both decrease latency and reduce warehouse compute costs.

Using a SQL cell output in a Python cell

df_copy = dataframe1.copy()
display(df_copy)

This very simplistic Python snippet shows you how you can use dataframe1 produced by another cell.

This is powerful, because you (or the Analyst Agent) can interweave between different languages and cells to use the best tool for the job!

Running your Smartbook

Each cell has a Run button which by default will run the upstream cells that are stale and downstream cells. Ensures that you don’t run more code than needed, helping improve latency, while avoiding any variable state issues that exist in traditional Jupyter notebooks.

You can select the dropdown on the Run button to see different options.

If you would like to run the entire Smartbook regardless of staleness, you have that option in the overflow menu in the Smartbook header menu.

Here are some keyboard shortcuts you may find helpful:

  • Cmd + Enter Run current cell and stale upstream cells and all downstream dependent cells
  • Shift + Enter: Only run the current cell

Connecting your data

To maximize the use of your Smartbook, you’ll want to connect to all your data sources. You can even query different data sources and merge DataFrames in a Smartbook!

Note that in SQL cells you can specify which source you want to query. The AI will generally try and guess the source based on the table names and other information, but sometimes you’ll need to override it.

Leveraging our AI data analyst

The power of Smartbooks not only comes from the feature richness and underlying design, but also from the integrate AI data analyst assistant.

The AI data analysis agent has the full context of your analysis and can help cut down the time to build reports and workflows by up to 90% thanks to some of the following features:

  • Code generation The AI analyst agent can generate SQL or Python from scratch or edit existing code
  • Debugging With the Autocorrect feature which appears when the code outputs an error, the AI can troubleshoot issues, including auto installing packages
  • Schema exploration If you’re not sure which tables or fields to query you can simply ask the AI
  • Insight generation The AI can also invoke an LLM to inspect results and outputs from your code to provide an interpretation of the results

Check out our AI Tips guide for more information.

Publishing, scheduling and sharing reports and workflows

When you’re ready to share your analysis or workflow with your team (or the world!), you can do that in just a few clicks.

In the report builder you can re-arrange and remove widgets and schedule your report or workflow to refresh.

Pro tip: You can create filters and inputs that can be leveraged both in Smartbooks and in the reports or workflows that you publish. Check out our Filters and inputs page for more details.

Smartbooks FAQ