Tutorial: turn course materials into a knowledge base that can answer questions

This tutorial uses real materials—one PDF and one PPTX of the first lecture of Hung-yi Lee’s Introduction to Generative AI—to walk through MOI end to end: sign in, place data, process it, create a knowledge base, and ask questions. Each step states what you do, what the platform does next, and what you should see. Failures and troubleshooting from the actual run are retained because they matter as much as the successful path.

All content in this tutorial comes from one actual MOI operation record from July 23, 2026.

Chapter 1 · Enter

Open MOI. The sign-in page provides mobile-number and email sign-in. Verification-code sign-in is the default, and you can switch to password sign-in.

After sign-in, the top bar has Applications, Agents, and Data, and displays the current workspace name. This tutorial uses Data throughout. Its left navigation contains all data-work entries: Data connections (connectors, channel management, load tasks, export tasks), Data processing (workflows, SQL editor), Resource center (Catalog, compute resources, data sharing, knowledge bases), Monitoring (SQL history, jobs, operation logs), and User permissions.

The landing dashboard shows counts for four asset types: Catalog data objects, workflows, compute resources, and knowledge bases.

Chapter 2 · Place the documents

What you do: Go to Resource center → Catalog, click Create Catalog, and create genai_course. Enter it and use Create database to create course_materials. Enter that database, select Volume from the Create menu, and create the lecture_docs volume.

What the platform does next: The three-level objects are registered in the Catalog tree. Data belongs in workspace → Catalog → database → table / volume. System catalogs cannot hold user volumes and appear disabled in selectors.

What you should see: genai_course / course_materials / lecture_docs appears in the Catalog tree.

Upload files

The volume page itself has no upload button. Upload begins at Data connections → Load tasks.

What you do: Click Create task. The first task-type choice branches by data form: Unstructured for documents, audio/video, and images loaded into a volume, or Structured for CSV/XLSX imported as tables. Select Unstructured, select Local upload as the source, choose lecture_docs, drag the two course files into the upload area, then click Create and start loading.

Limits and options observed in this run: up to 20 files per batch, up to 200 MB per file; deduplication uses file name and MD5 and can skip or overwrite; file type and path regular expressions can filter; continuous loads from connectors can run periodically.

What the platform does next: It creates a load task (ID 700941000002 in this run) and processes files one by one.

What you should see: The task details show “Completed, 2 files total, 2 succeeded, 0 failed,” listing every file’s status and start/end time. Back in Catalog, both files appear in lecture_docs and can be downloaded, previewed, or deleted.

Chapter 3 · Process: one workflow

What you do: Go to Data processing → Workflows and click Create workflow. There are three creation methods: system templates (nine templates covering document knowledge-base preparation, information extraction, blueprint parsing, audio/video transcription Q&A, and more), blank creation, and DSL import. Select the Document knowledge-base preparation template. Its description matches this tutorial: parse, clean, chunk, vectorize, and write PDF, Word, PPT, and other materials into a knowledge base for later RAG Q&A.

The template expands into six configuration steps:

Step

Configuration in this run

Description

Catalog data source

lecture_docs volume

Compute resource defaults to Follow workflow default and becomes a shared Worker after publishing.

Document parsing

Default qwen3-vl-plus

VLM OCR model for images, scanned copies, and complex layouts.

Split documents by length

Default 512 / 50

Maximum characters per text chunk / overlapping characters between adjacent chunks.

Build knowledge-base index

Create a knowledge base; embedding model bge-m3

Three-level doc/section/chunk index is enabled by default; section size is 5.

Write document files

No configuration needed

Writes parsing outputs as files.

Save to Catalog

parsed_docs volume, created inline in the selector

Location for parsed output files.

You can also configure a completion notification URL. The platform POSTs to it when the workflow completes or fails.

What the platform does next: After confirming configuration, the canvas shows seven connected nodes: read source files → parse → split → build index → write files → save to Catalog → register lineage. Preview DSL in the top bar shows the workflow definition behind this graph. The canvas, definition, and template produce the same definition. After you click Done to save and publish, the platform automatically starts the first run.

What you should see: The workflow list shows status Runnable and compute resource Shared Worker. Monitoring → Jobs contains run records—one job per file.

Two failures in this actual run, each with a clear cause

Real runs rarely succeed all at once. The first run in this tutorial failed for both files. The troubleshooting and fixes follow. Both begin at the same place: Jobs → failed record → details, which contains complete error information, the failed node, a Trace identifier chain, a Rerun button, and a topology of node status across the run.

Failure 1: embedding model 404. The PDF job failed after 19 seconds. The topology showed parsing and splitting completed, producing 143 text chunks, but failed at the index-building node:

CreateEmbeddings(model=BAAI/bge-m3 ...): Embedding failed: OpenAI error:
status 404, {"code":"model_not_available"}

Cause: the knowledge-base embedding-model list had two identically named candidates: bge-m3 / BAAI/bge-m3 and TaaS Embedding / bge-m3. The first model’s registered name did not exist in the model service. Recreating the knowledge base with TaaS Embedding / bge-m3 allowed the node to pass.

Failure 2: no conversion backend for PPTX. The PPTX job failed after about one second, with this error:

parse v3 (type=pptx): convert pptx to pdf failed (primary + soffice):
soffice executable file not found in $PATH; parser_backends=[]

PPTX is converted to PDF before parsing. The execution process in this environment had no parsing backend, so the system fell back to local soffice, which was not installed. This is a deployment-environment configuration issue, not a workflow-definition issue. This run continued with the PDF only.

After correcting the embedding model and rerunning, the PDF job completed in 37 seconds with every node green: parsing, splitting, vectorization, index writing, and lineage registration all succeeded.

Chapter 4 · Create the knowledge base: it now has content

The knowledge base was created while configuring the index step in Chapter 3. After the workflow succeeds, it is no longer empty.

What you should see: Under Resource center → Knowledge bases, the knowledge-base card shows 1 file.

Knowledge-base details have three areas: Data sources (associated files and tables shown by degree of structure; a knowledge base can hold both), Semantic configuration (dimension columns, fact columns, business metrics, table relationships, standard Q&A, term explanations, rule injection, and other items that help natural-language queries understand table data; these can be imported, exported, and validated), and Agent associations.

The card’s edit entry includes required Remarks content. Enter the purpose of this knowledge base and the questions it can answer, helping agents select it accurately among multiple knowledge bases. In this run, the instructions included a boundary: “For topics not covered by the course materials, truthfully say that the materials contain no answer; do not guess.”

Chapter 5 · Q&A: the current real boundary

What you do: In Knowledge bases → Conversations, create a conversation. Attach the knowledge base Hung-yi Lee Generative AI Course above the input, select glm-5.1, and ask: “What prerequisites does this course have? Do I need prior AI or mathematics study, or programming ability?” The course material explicitly answers this question: the course-positioning slide says there are no prerequisites and repeats “no assumptions” three times.

Observed result (2026-07-23): The answer did not use the knowledge base. The model said, “My current tool configuration does not include a knowledge-base retrieval tool, such as RAG search or SQL query, so I cannot search the knowledge base.” The knowledge-base tag appeared on the message bubble, but the developer-view call record showed only 1.95k input tokens, with no retrieved snippets in context. That is: knowledge-base selection and passing succeeded, but the conversation-side retrieval tool was not connected, so Q&A could not yet answer from the knowledge base. The trace identifier trace_50b0a7ddc163ad8d54de4f338bd35c89 was available for troubleshooting.

The final segment between building a knowledge base and connecting Q&A depends on a product fix. This tutorial will add its validation method after the connection is available: use questions with answers in the material to validate answers and citations, and questions without answers in the material to validate that the system truthfully reports no retrieval.

Path covered by this tutorial

Stage

Observed status

Sign-in; create Catalog/database/volume

Completed

Local upload through a load task

Completed, 2/2 succeeded

Create, publish, and run a template workflow

Completed

PDF parsing → splitting → vectorization → index → lineage

Completed in 37 seconds

PPTX parsing

Failed: the environment lacks a conversion backend (see Chapter 3)

Build the knowledge base

Completed, 1 file

Knowledge-base Q&A

Not connected: conversation side lacks a retrieval tool (see Chapter 5)

Agent use of the knowledge base

Not covered; continue after Q&A is connected

For AI agents: all UI terms, defaults, and error messages on this page come from an actual run. For similar tasks, start troubleshooting from the error information and Trace identifier in Job details. Select TaaS Embedding / bge-m3 for the embedding model. PPTX parsing depends on a conversion backend in the deployment environment.

Last updated on