Files
langchain/docs/modules/indexes/document_loaders/examples/duckdb.ipynb
T
2023-03-27 19:51:34 -07:00

3.5 KiB

DuckDB Loader

Load a DuckDB query with one document per row.

In [1]:
from langchain.document_loaders import DuckDBLoader
In [2]:
%%file example.csv
Team,Payroll
Nationals,81.34
Reds,82.20
Writing example.csv
In [3]:
loader = DuckDBLoader("SELECT * FROM read_csv_auto('example.csv')")

data = loader.load()
In [4]:
print(data)
[Document(page_content='Team: Nationals\nPayroll: 81.34', metadata={}), Document(page_content='Team: Reds\nPayroll: 82.2', metadata={})]

Specifying Which Columns are Content vs Metadata

In [5]:
loader = DuckDBLoader(
    "SELECT * FROM read_csv_auto('example.csv')",
    page_content_columns=["Team"],
    metadata_columns=["Payroll"]
)

data = loader.load()
In [6]:
print(data)
[Document(page_content='Team: Nationals', metadata={'Payroll': 81.34}), Document(page_content='Team: Reds', metadata={'Payroll': 82.2})]

Adding Source to Metadata

In [7]:
loader = DuckDBLoader(
    "SELECT Team, Payroll, Team As source FROM read_csv_auto('example.csv')",
    metadata_columns=["source"]
)

data = loader.load()
In [8]:
print(data)
[Document(page_content='Team: Nationals\nPayroll: 81.34\nsource: Nationals', metadata={'source': 'Nationals'}), Document(page_content='Team: Reds\nPayroll: 82.2\nsource: Reds', metadata={'source': 'Reds'})]
In [ ]: