Skip to content
Notifications
Clear all

How do I get started with source uploads in NotebookLM?

3 Posts
3 Users
0 Reactions
6 Views
(@cloud_infra_vet)
Reputable Member
Joined: 2 months ago
Posts: 134
Topic starter   [#3939]

Having recently migrated a complex set of architectural decision records and compliance frameworks into NotebookLM for analysis, I've navigated the initial source upload process thoroughly. While seemingly straightforward, a methodical approach—akin to preparing infrastructure as code—yields significantly better results for subsequent querying and synthesis. The core principle is that garbage in equals garbage out; your source preparation directly dictates the quality of the LM's outputs.

The primary upload methods are via the web interface, but your preparation work happens locally first. NotebookLM currently accepts PDFs, Google Docs (via link), plain text files, and copied text. My strong recommendation is to pre-process your sources for clarity and structure. For instance, when uploading a Terraform module repository README alongside AWS whitepapers, I first ensured consistent heading hierarchies (H1, H2, H3) in the documents. The LM uses this structure to create a more coherent notebook outline.

Here is a practical checklist I follow before any upload:

* **Consolidate Fragmented Content:** Merge related short documents (e.g., individual meeting notes from a project) into a single, well-structured master document. This provides broader context for the LM.
* **Opt for Editable Formats When Possible:** While PDFs are convenient, text-based formats like Google Docs often allow the LM to better parse document structure. If you must use PDFs, ensure they are text-based, not scanned images.
* **Define Clear Document Boundaries:** If you are uploading multiple distinct sources (e.g., a security policy, a network diagram description, and an incident post-mortem), treat them as separate source uploads. This allows you to query each individually or in combination later.
* **Implement Source Tagging:** NotebookLM allows you to rename sources. Use a clear, consistent naming convention. Instead of `doc1.pdf`, use `AWS-Well-Architected-Pillar-Security.pdf`. This is crucial when you have 15+ sources in a single notebook.

A technical nuance I discovered involves code blocks within documents. When I uploaded a markdown file containing Terraform HCL code blocks, the LM successfully interpreted the code's purpose when asked questions about architecture. However, for deep code analysis, it's more effective to paste the code directly as a text snippet into a new source, providing explanatory context in a heading above the block. For example:

```markdown
## Context: AWS EKS Cluster Terraform Module - Main VPC Configuration
This module creates the foundational VPC with required subnet tagging for EKS.
The critical section is the `aws_subnet` resources with tags for Kubernetes cluster autodiscovery.

module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 5.0"

name = "eks-cluster-vpc"
cidr = "10.10.0.0/16"

azs = ["us-east-1a", "us-east-1b"]
private_subnets = ["10.10.1.0/24", "10.10.2.0/24"]
public_subnets = ["10.10.101.0/24", "10.10.102.0/24"]

enable_nat_gateway = true
single_nat_gateway = true

tags = {
Terraform = "true"
}

public_subnet_tags = {
"kubernetes.io/role/elb" = "1"
}

private_subnet_tags = {
"kubernetes.io/role/internal-elb" = "1"
"k8s.io/cluster-autoscaler/enabled" = "true"
}
}
```

After upload, immediately verify the ingestion. Use the "Notebook guide" auto-generated questions as a basic test, but then ask specific, grounded questions about your source's content to assess the LM's comprehension depth. For example, "Based on the uploaded VPC module code, what is the purpose of the `kubernetes.io/role/elb` tag?" A correct answer confirms proper parsing.

The final step is iterative. You will likely realize you need additional, clarifying sources after your initial queries. The process is not a one-time bulk upload but a curated, incremental build of a context corpus, much like constructing a modular cloud architecture. Start with a core foundational document, test the LM's understanding, and then add supplementary sources to fill knowledge gaps or address ambiguities the LM exposes.



   
Quote
(@brian)
Estimable Member
Joined: 1 week ago
Posts: 71
 

That's a lot of prep work for a basic upload feature. I've seen tools fall over with perfect source formatting anyway.

I tried this with a simple Google Doc and got inconsistent answers. The whole "garbage in" premise assumes the tool's ingestion is reliable, but I'm not convinced it is. How do we even know it's using those H1 tags the way you think?


Trust but verify.


   
ReplyQuote
(@markomancer_eli)
Trusted Member
Joined: 1 week ago
Posts: 30
 

I hear you on the frustration. It's true that even with pristine formatting, sometimes the tool just interprets things in a weird way. I've had similar moments where a perfectly structured Google Doc got queried and the answers felt like they pulled from somewhere else entirely.

But I think the "garbage in" idea still holds as a baseline. If you feed it a chaotic, unformatted doc, the results are almost guaranteed to be a mess. The prep work user415 mentions is about minimizing that variable. It's like cleaning data before a CRM import, you can still get sync errors, but you've at least ruled out the obvious junk.

That said, you've hit on the real question, how do we know it's using those tags? I wish there was a transparency layer, like a little "source highlight" showing which parts of your doc it's keying in on. Without that, it's a bit of a black box and we're just optimizing based on vibes.


Automate all the things.


   
ReplyQuote