Markdown Reader

The Markdown Reader processes Markdown files synchronously and converts them into documents that can be used with Kern's knowledge system.

Code

1from pathlib import Path
2
3from kern.agent import Agent
4from kern.knowledge.knowledge import Knowledge
5from kern.knowledge.reader.markdown_reader import MarkdownReader
6from kern.vectordb.pgvector import PgVector
7
8db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
9
10knowledge = Knowledge(
11 vector_db=PgVector(
12 table_name="markdown_documents",
13 db_url=db_url,
14 ),
15)
16
17# Add Markdown content to knowledge base
18knowledge.insert(
19 path=Path("README.md"),
20 reader=MarkdownReader(),
21)
22
23agent = Agent(
24 knowledge=knowledge,
25 search_knowledge=True,
26)
27
28# Query the knowledge base
29agent.print_response(
30 "What can you tell me about this project?",
31 markdown=True,
32)

Usage

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Install dependencies

1uv pip install -U markdown sqlalchemy psycopg pgvector kern-ai openai

Set environment variables

1export OPENAI_API_KEY=xxx

Run PgVector

1docker run -d \
2 -e POSTGRES_DB=ai \
3 -e POSTGRES_USER=ai \
4 -e POSTGRES_PASSWORD=ai \
5 -e PGDATA=/var/lib/postgresql/data/pgdata \
6 -v pgvolume:/var/lib/postgresql/data \
7 -p 5532:5432 \
8 --name pgvector \
9 kern/pgvector:16

Run Agent

1python examples/basics/knowledge/concepts/readers/overview/markdown_reader_sync.py
1python examples/basics/knowledge/concepts/readers/overview/markdown_reader_sync.py