Files
kotaemon/usage/index.html

4500 lines
92 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="prev" href="..">
<link rel="next" href="../development/">
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.40">
<title>Basic Usage - kotaemon Docs</title>
<link rel="stylesheet" href="../assets/stylesheets/main.8c3ca2c6.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<script src="../assets/pymdownx-extras/material-extra-theme-TVq-kNRT.js" type="text/javascript"></script>
<script src="../assets/pymdownx-extras/material-extra-3rdparty-E-i8w1WA.js" type="text/javascript"></script>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../css/timeago.css">
<link rel="stylesheet" href="../assets/_mkdocstrings.css">
<link rel="stylesheet" href="../extra/css/code_select.css">
<link rel="stylesheet" href="../assets/pymdownx-extras/extra-fb5a2a1c86.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="dracula" data-md-color-primary="deep-purple" data-md-color-accent="deep-purple">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#1-add-your-ai-models" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav
class="md-header__inner md-grid"
aria-label="header.title"
>
<a
href=".."
title="kotaemon Docs"
class="md-header__button md-logo"
aria-label="kotaemon Docs"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
kotaemon Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Basic Usage
</span>
</div>
</div>
</div>
<div class="md-header__options">
<div class="md-header-nav__scheme md-header-nav__button md-source__icon md-icon">
<a
href="javascript:toggleScheme();"
title="Light mode"
class="light-mode"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
</a>
<a
href="javascript:toggleScheme();"
title="Dark mode"
class="dark-mode"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
</a>
<a
href="javascript:toggleScheme();"
title="System preference"
class="system-mode"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07zm-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13zm-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87zM19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35zm4.33-2.7 1.15-2.77 2.2 2.54zm1.15-4.96-1.14-2.78 3.34.24zM9.63 18.93l2.77 1.15-2.53 2.19z"/></svg>
</a>
<!-- <a
href="javascript:toggleScheme();"
title="Unknown scheme"
class="unknown-mode"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>
</a> -->
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/Cinnamon/kotaemon" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
Cinnamon/kotaemon
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item md-tabs__item--active">
<a href=".." class="md-tabs__link">
Getting Started
</a>
</li>
<li class="md-tabs__item">
<a href="../development/" class="md-tabs__link">
Development
</a>
</li>
<li class="md-tabs__item">
<a href="../reference/agents/" class="md-tabs__link">
API Reference
</a>
</li>
<li class="md-tabs__item">
<a href="https://github.com/Cinnamon/kotaemon/releases" class="md-tabs__link">
Changelogs
</a>
</li>
<li class="md-tabs__item">
<a href="https://github.com/Cinnamon/kotaemon/issues" class="md-tabs__link">
Issue Tracker
</a>
</li>
<li class="md-tabs__item">
<a href="https://huggingface.co/spaces/cin-model/kotaemon-demo" class="md-tabs__link">
Live Demo
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="kotaemon Docs" class="md-nav__button md-logo" aria-label="kotaemon Docs" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
kotaemon Docs
</label>
<div class="md-nav__source">
<a href="https://github.com/Cinnamon/kotaemon" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
Cinnamon/kotaemon
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" checked>
<div class="md-nav__link md-nav__container">
<a href=".." class="md-nav__link ">
<span class="md-ellipsis">
Getting Started
</span>
</a>
<label class="md-nav__link " for="__nav_1" id="__nav_1_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
Getting Started
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Basic Usage
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Basic Usage
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Page contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Page contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1-add-your-ai-models" class="md-nav__link">
<span class="md-ellipsis">
1. Add your AI models
</span>
</a>
<nav class="md-nav" aria-label="1. Add your AI models">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#openai" class="md-nav__link">
<span class="md-ellipsis">
OpenAI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#azure-openai" class="md-nav__link">
<span class="md-ellipsis">
Azure OpenAI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#local-models" class="md-nav__link">
<span class="md-ellipsis">
Local models
</span>
</a>
<nav class="md-nav" aria-label="Local models">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#find-and-download-a-llm" class="md-nav__link">
<span class="md-ellipsis">
Find and download a LLM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#enable-local-models" class="md-nav__link">
<span class="md-ellipsis">
Enable local models
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#2-upload-your-documents" class="md-nav__link">
<span class="md-ellipsis">
2. Upload your documents
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#3-chat-with-your-documents" class="md-nav__link">
<span class="md-ellipsis">
3. Chat with your documents
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__container">
<a href="../development/" class="md-nav__link ">
<span class="md-ellipsis">
Development
</span>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Development
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../pages/app/customize-flows/" class="md-nav__link">
<span class="md-ellipsis">
Customize flow logic
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../development/create-a-component/" class="md-nav__link">
<span class="md-ellipsis">
Creating a Component
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
<label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
<span class="md-ellipsis">
Components
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
Components
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_1" >
<label class="md-nav__link" for="__nav_2_3_1" id="__nav_2_3_1_label" tabindex="0">
<span class="md-ellipsis">
Index
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3_1">
<span class="md-nav__icon md-icon"></span>
Index
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../pages/app/index/file/" class="md-nav__link">
<span class="md-ellipsis">
File index
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_2" >
<div class="md-nav__link md-nav__container">
<a href="../pages/app/settings/overview/" class="md-nav__link ">
<span class="md-ellipsis">
Settings
</span>
</a>
<label class="md-nav__link " for="__nav_2_3_2" id="__nav_2_3_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3_2">
<span class="md-nav__icon md-icon"></span>
Settings
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../pages/app/settings/user-settings/" class="md-nav__link">
<span class="md-ellipsis">
User settings
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3" >
<label class="md-nav__link" for="__nav_2_3_3" id="__nav_2_3_3_label" tabindex="0">
<span class="md-ellipsis">
Extension
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3_3">
<span class="md-nav__icon md-icon"></span>
Extension
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../pages/app/ext/user-management/" class="md-nav__link">
<span class="md-ellipsis">
User management
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../development/contributing/" class="md-nav__link">
<span class="md-ellipsis">
Contributing
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__container">
<a href="../reference/agents/" class="md-nav__link ">
<span class="md-ellipsis">
API Reference
</span>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" >
<div class="md-nav__link md-nav__container">
<a href="../reference/base/" class="md-nav__link ">
<span class="md-ellipsis">
Base
</span>
</a>
<label class="md-nav__link " for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
Base
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/base/component/" class="md-nav__link">
<span class="md-ellipsis">
Component
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/base/schema/" class="md-nav__link">
<span class="md-ellipsis">
Schema
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
<div class="md-nav__link md-nav__container">
<a href="../reference/chatbot/" class="md-nav__link ">
<span class="md-ellipsis">
Chatbot
</span>
</a>
<label class="md-nav__link " for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
Chatbot
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/chatbot/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/chatbot/simple_respondent/" class="md-nav__link">
<span class="md-ellipsis">
Simple Respondent
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../reference/cli/" class="md-nav__link">
<span class="md-ellipsis">
CLI
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
<div class="md-nav__link md-nav__container">
<a href="../reference/embeddings/" class="md-nav__link ">
<span class="md-ellipsis">
Embeddings
</span>
</a>
<label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Embeddings
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/embeddings/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/embeddings/endpoint_based/" class="md-nav__link">
<span class="md-ellipsis">
Endpoint Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/embeddings/fastembed/" class="md-nav__link">
<span class="md-ellipsis">
Fastembed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/embeddings/langchain_based/" class="md-nav__link">
<span class="md-ellipsis">
Langchain Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/embeddings/openai/" class="md-nav__link">
<span class="md-ellipsis">
Openai
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/embeddings/tei_endpoint_embed/" class="md-nav__link">
<span class="md-ellipsis">
Tei Endpoint Embed
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
<div class="md-nav__link md-nav__container">
<a href="../reference/indices/" class="md-nav__link ">
<span class="md-ellipsis">
Indices
</span>
</a>
<label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
Indices
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/indices/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_2" >
<div class="md-nav__link md-nav__container">
<a href="../reference/indices/extractors/" class="md-nav__link ">
<span class="md-ellipsis">
Extractors
</span>
</a>
<label class="md-nav__link " for="__nav_3_6_2" id="__nav_3_6_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_2">
<span class="md-nav__icon md-icon"></span>
Extractors
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/indices/extractors/doc_parsers/" class="md-nav__link">
<span class="md-ellipsis">
Doc Parsers
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_3" >
<div class="md-nav__link md-nav__container">
<a href="../reference/indices/ingests/" class="md-nav__link ">
<span class="md-ellipsis">
Ingests
</span>
</a>
<label class="md-nav__link " for="__nav_3_6_3" id="__nav_3_6_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_3">
<span class="md-nav__icon md-icon"></span>
Ingests
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/indices/ingests/files/" class="md-nav__link">
<span class="md-ellipsis">
Files
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_4" >
<div class="md-nav__link md-nav__container">
<a href="../reference/indices/qa/" class="md-nav__link ">
<span class="md-ellipsis">
Qa
</span>
</a>
<label class="md-nav__link " for="__nav_3_6_4" id="__nav_3_6_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_4">
<span class="md-nav__icon md-icon"></span>
Qa
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/indices/qa/citation/" class="md-nav__link">
<span class="md-ellipsis">
Citation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/qa/citation_qa/" class="md-nav__link">
<span class="md-ellipsis">
Citation Qa
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/qa/citation_qa_inline/" class="md-nav__link">
<span class="md-ellipsis">
Citation Qa Inline
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/qa/format_context/" class="md-nav__link">
<span class="md-ellipsis">
Format Context
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/qa/utils/" class="md-nav__link">
<span class="md-ellipsis">
Utils
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_5" >
<div class="md-nav__link md-nav__container">
<a href="../reference/indices/rankings/" class="md-nav__link ">
<span class="md-ellipsis">
Rankings
</span>
</a>
<label class="md-nav__link " for="__nav_3_6_5" id="__nav_3_6_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_5">
<span class="md-nav__icon md-icon"></span>
Rankings
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/indices/rankings/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/rankings/cohere/" class="md-nav__link">
<span class="md-ellipsis">
Cohere
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/rankings/llm/" class="md-nav__link">
<span class="md-ellipsis">
Llm
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/rankings/llm_scoring/" class="md-nav__link">
<span class="md-ellipsis">
Llm Scoring
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/rankings/llm_trulens/" class="md-nav__link">
<span class="md-ellipsis">
Llm Trulens
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_6" >
<div class="md-nav__link md-nav__container">
<a href="../reference/indices/retrievers/" class="md-nav__link ">
<span class="md-ellipsis">
Retrievers
</span>
</a>
<label class="md-nav__link " for="__nav_3_6_6" id="__nav_3_6_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_6">
<span class="md-nav__icon md-icon"></span>
Retrievers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/indices/retrievers/jina_web_search/" class="md-nav__link">
<span class="md-ellipsis">
Jina Web Search
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/retrievers/tavily_web_search/" class="md-nav__link">
<span class="md-ellipsis">
Tavily Web Search
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../reference/indices/splitters/" class="md-nav__link">
<span class="md-ellipsis">
Splitters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/indices/vectorindex/" class="md-nav__link">
<span class="md-ellipsis">
Vectorindex
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7" >
<div class="md-nav__link md-nav__container">
<a href="../reference/llms/" class="md-nav__link ">
<span class="md-ellipsis">
LLMs
</span>
</a>
<label class="md-nav__link " for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7">
<span class="md-nav__icon md-icon"></span>
LLMs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/llms/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_3" >
<div class="md-nav__link md-nav__container">
<a href="../reference/llms/chats/" class="md-nav__link ">
<span class="md-ellipsis">
Chats
</span>
</a>
<label class="md-nav__link " for="__nav_3_7_3" id="__nav_3_7_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_3">
<span class="md-nav__icon md-icon"></span>
Chats
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/llms/chats/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/chats/endpoint_based/" class="md-nav__link">
<span class="md-ellipsis">
Endpoint Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/chats/langchain_based/" class="md-nav__link">
<span class="md-ellipsis">
Langchain Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/chats/llamacpp/" class="md-nav__link">
<span class="md-ellipsis">
Llamacpp
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/chats/openai/" class="md-nav__link">
<span class="md-ellipsis">
Openai
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_4" >
<div class="md-nav__link md-nav__container">
<a href="../reference/llms/completions/" class="md-nav__link ">
<span class="md-ellipsis">
Completions
</span>
</a>
<label class="md-nav__link " for="__nav_3_7_4" id="__nav_3_7_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_4">
<span class="md-nav__icon md-icon"></span>
Completions
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/llms/completions/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/completions/langchain_based/" class="md-nav__link">
<span class="md-ellipsis">
Langchain Based
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../reference/llms/cot/" class="md-nav__link">
<span class="md-ellipsis">
Cot
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/linear/" class="md-nav__link">
<span class="md-ellipsis">
Linear
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_7" >
<div class="md-nav__link md-nav__container">
<a href="../reference/llms/prompts/" class="md-nav__link ">
<span class="md-ellipsis">
Prompts
</span>
</a>
<label class="md-nav__link " for="__nav_3_7_7" id="__nav_3_7_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_7">
<span class="md-nav__icon md-icon"></span>
Prompts
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/llms/prompts/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/llms/prompts/template/" class="md-nav__link">
<span class="md-ellipsis">
Template
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8" >
<div class="md-nav__link md-nav__container">
<a href="../reference/loaders/" class="md-nav__link ">
<span class="md-ellipsis">
Loaders
</span>
</a>
<label class="md-nav__link " for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8">
<span class="md-nav__icon md-icon"></span>
Loaders
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/loaders/adobe_loader/" class="md-nav__link">
<span class="md-ellipsis">
Adobe Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/azureai_document_intelligence_loader/" class="md-nav__link">
<span class="md-ellipsis">
Azureai Document Intelligence Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/composite_loader/" class="md-nav__link">
<span class="md-ellipsis">
Composite Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/docling_loader/" class="md-nav__link">
<span class="md-ellipsis">
Docling Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/docx_loader/" class="md-nav__link">
<span class="md-ellipsis">
Docx Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/excel_loader/" class="md-nav__link">
<span class="md-ellipsis">
Excel Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/html_loader/" class="md-nav__link">
<span class="md-ellipsis">
Html Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/mathpix_loader/" class="md-nav__link">
<span class="md-ellipsis">
Mathpix Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/ocr_loader/" class="md-nav__link">
<span class="md-ellipsis">
Ocr Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/pdf_loader/" class="md-nav__link">
<span class="md-ellipsis">
Pdf Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/txt_loader/" class="md-nav__link">
<span class="md-ellipsis">
Txt Loader
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/unstructured_loader/" class="md-nav__link">
<span class="md-ellipsis">
Unstructured Loader
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_14" >
<div class="md-nav__link md-nav__container">
<a href="../reference/loaders/utils/" class="md-nav__link ">
<span class="md-ellipsis">
Utils
</span>
</a>
<label class="md-nav__link " for="__nav_3_8_14" id="__nav_3_8_14_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_14">
<span class="md-nav__icon md-icon"></span>
Utils
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/loaders/utils/adobe/" class="md-nav__link">
<span class="md-ellipsis">
Adobe
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/utils/box/" class="md-nav__link">
<span class="md-ellipsis">
Box
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/utils/gpt4v/" class="md-nav__link">
<span class="md-ellipsis">
Gpt4V
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/utils/pdf_ocr/" class="md-nav__link">
<span class="md-ellipsis">
Pdf Ocr
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/utils/table/" class="md-nav__link">
<span class="md-ellipsis">
Table
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../reference/loaders/web_loader/" class="md-nav__link">
<span class="md-ellipsis">
Web Loader
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9" >
<div class="md-nav__link md-nav__container">
<a href="../reference/parsers/" class="md-nav__link ">
<span class="md-ellipsis">
Parsers
</span>
</a>
<label class="md-nav__link " for="__nav_3_9" id="__nav_3_9_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9">
<span class="md-nav__icon md-icon"></span>
Parsers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/parsers/regex_extractor/" class="md-nav__link">
<span class="md-ellipsis">
Regex Extractor
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_10" >
<div class="md-nav__link md-nav__container">
<a href="../reference/rerankings/" class="md-nav__link ">
<span class="md-ellipsis">
Rerankings
</span>
</a>
<label class="md-nav__link " for="__nav_3_10" id="__nav_3_10_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_10">
<span class="md-nav__icon md-icon"></span>
Rerankings
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/rerankings/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/rerankings/cohere/" class="md-nav__link">
<span class="md-ellipsis">
Cohere
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/rerankings/tei_fast_rerank/" class="md-nav__link">
<span class="md-ellipsis">
Tei Fast Rerank
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_11" >
<div class="md-nav__link md-nav__container">
<a href="../reference/storages/" class="md-nav__link ">
<span class="md-ellipsis">
Storages
</span>
</a>
<label class="md-nav__link " for="__nav_3_11" id="__nav_3_11_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_11">
<span class="md-nav__icon md-icon"></span>
Storages
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_11_1" >
<div class="md-nav__link md-nav__container">
<a href="../reference/storages/docstores/" class="md-nav__link ">
<span class="md-ellipsis">
Docstores
</span>
</a>
<label class="md-nav__link " for="__nav_3_11_1" id="__nav_3_11_1_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_11_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_11_1">
<span class="md-nav__icon md-icon"></span>
Docstores
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/storages/docstores/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/docstores/elasticsearch/" class="md-nav__link">
<span class="md-ellipsis">
Elasticsearch
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/docstores/in_memory/" class="md-nav__link">
<span class="md-ellipsis">
In Memory
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/docstores/lancedb/" class="md-nav__link">
<span class="md-ellipsis">
Lancedb
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/docstores/simple_file/" class="md-nav__link">
<span class="md-ellipsis">
Simple File
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_11_2" >
<div class="md-nav__link md-nav__container">
<a href="../reference/storages/vectorstores/" class="md-nav__link ">
<span class="md-ellipsis">
Vectorstores
</span>
</a>
<label class="md-nav__link " for="__nav_3_11_2" id="__nav_3_11_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_11_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_11_2">
<span class="md-nav__icon md-icon"></span>
Vectorstores
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/base/" class="md-nav__link">
<span class="md-ellipsis">
Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/chroma/" class="md-nav__link">
<span class="md-ellipsis">
Chroma
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/in_memory/" class="md-nav__link">
<span class="md-ellipsis">
In Memory
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/lancedb/" class="md-nav__link">
<span class="md-ellipsis">
Lancedb
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/milvus/" class="md-nav__link">
<span class="md-ellipsis">
Milvus
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/qdrant/" class="md-nav__link">
<span class="md-ellipsis">
Qdrant
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../reference/storages/vectorstores/simple_file/" class="md-nav__link">
<span class="md-ellipsis">
Simple File
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="https://github.com/Cinnamon/kotaemon/releases" class="md-nav__link">
<span class="md-ellipsis">
Changelogs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://github.com/Cinnamon/kotaemon/issues" class="md-nav__link">
<span class="md-ellipsis">
Issue Tracker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://huggingface.co/spaces/cin-model/kotaemon-demo" class="md-nav__link">
<span class="md-ellipsis">
Live Demo
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Page contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Page contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1-add-your-ai-models" class="md-nav__link">
<span class="md-ellipsis">
1. Add your AI models
</span>
</a>
<nav class="md-nav" aria-label="1. Add your AI models">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#openai" class="md-nav__link">
<span class="md-ellipsis">
OpenAI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#azure-openai" class="md-nav__link">
<span class="md-ellipsis">
Azure OpenAI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#local-models" class="md-nav__link">
<span class="md-ellipsis">
Local models
</span>
</a>
<nav class="md-nav" aria-label="Local models">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#find-and-download-a-llm" class="md-nav__link">
<span class="md-ellipsis">
Find and download a LLM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#enable-local-models" class="md-nav__link">
<span class="md-ellipsis">
Enable local models
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#2-upload-your-documents" class="md-nav__link">
<span class="md-ellipsis">
2. Upload your documents
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#3-chat-with-your-documents" class="md-nav__link">
<span class="md-ellipsis">
3. Chat with your documents
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/Cinnamon/kotaemon/edit/main/docs/usage.md" title="Edit this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75z"/></svg>
</a>
<h1>Basic Usage</h1>
<div><h2 id="1-add-your-ai-models">1. Add your AI models<a class="headerlink" href="#1-add-your-ai-models" title="Permanent link"></a></h2>
<p><img alt="resources tab" src="https://raw.githubusercontent.com/Cinnamon/kotaemon/main/docs/images/resources-tab.png"></p>
<ul>
<li>The tool uses Large Language Model (LLMs) to perform various tasks in a QA pipeline.
So, you need to provide the application with access to the LLMs you want
to use.</li>
<li>You only need to provide at least one. However, it is recommended that you include all the LLMs
that you have access to, you will be able to switch between them while using the
application.</li>
</ul>
<p>To add a model:</p>
<ol>
<li>Navigate to the <code>Resources</code> tab.</li>
<li>Select the <code>LLMs</code> sub-tab.</li>
<li>Select the <code>Add</code> sub-tab.</li>
<li>Config the model to add:<ul>
<li>Give it a name.</li>
<li>Pick a vendor/provider (e.g. <code>ChatOpenAI</code>).</li>
<li>Provide the specifications.</li>
<li>(Optional) Set the model as default.</li>
</ul>
</li>
<li>Click <code>Add</code> to add the model.</li>
<li>Select <code>Embedding Models</code> sub-tab and repeat the step 3 to 5 to add an embedding model.</li>
</ol>
<details>
<summary>(Optional) Configure model via the .env file</summary>
<p>Alternatively, you can configure the models via the <code>.env</code> file with the information needed to connect to the LLMs. This file is located in
the folder of the application. If you don't see it, you can create one.</p>
<p>Currently, the following providers are supported:</p>
<h3 id="openai">OpenAI<a class="headerlink" href="#openai" title="Permanent link"></a></h3>
<p>In the <code>.env</code> file, set the <code>OPENAI_API_KEY</code> variable with your OpenAI API key in order
to enable access to OpenAI's models. There are other variables that can be modified,
please feel free to edit them to fit your case. Otherwise, the default parameter should
work for most people.</p>
<div class="language-shell highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span>
<span class="normal"><a href="#__codelineno-0-2">2</a></span>
<span class="normal"><a href="#__codelineno-0-3">3</a></span>
<span class="normal"><a href="#__codelineno-0-4">4</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nv">OPENAI_API_BASE</span><span class="o">=</span>https://api.openai.com/v1
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="nv">OPENAI_API_KEY</span><span class="o">=</span>&lt;your<span class="w"> </span>OpenAI<span class="w"> </span>API<span class="w"> </span>key<span class="w"> </span>here&gt;
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="nv">OPENAI_CHAT_MODEL</span><span class="o">=</span>gpt-3.5-turbo
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="nv">OPENAI_EMBEDDINGS_MODEL</span><span class="o">=</span>text-embedding-ada-002
</span></code></pre></div></td></tr></table></div>
<h3 id="azure-openai">Azure OpenAI<a class="headerlink" href="#azure-openai" title="Permanent link"></a></h3>
<p>For OpenAI models via Azure platform, you need to provide your Azure endpoint and API
key. Your might also need to provide your developments' name for the chat model and the
embedding model depending on how you set up Azure development.</p>
<div class="language-shell highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-1">1</a></span>
<span class="normal"><a href="#__codelineno-1-2">2</a></span>
<span class="normal"><a href="#__codelineno-1-3">3</a></span>
<span class="normal"><a href="#__codelineno-1-4">4</a></span>
<span class="normal"><a href="#__codelineno-1-5">5</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="nv">AZURE_OPENAI_ENDPOINT</span><span class="o">=</span>
</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2"></a><span class="nv">AZURE_OPENAI_API_KEY</span><span class="o">=</span>
</span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3"></a><span class="nv">OPENAI_API_VERSION</span><span class="o">=</span><span class="m">2024</span>-02-15-preview<span class="w"> </span><span class="c1"># could be different for you</span>
</span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4"></a><span class="nv">AZURE_OPENAI_CHAT_DEPLOYMENT</span><span class="o">=</span>gpt-35-turbo<span class="w"> </span><span class="c1"># change to your deployment name</span>
</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5"></a><span class="nv">AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT</span><span class="o">=</span>text-embedding-ada-002<span class="w"> </span><span class="c1"># change to your deployment name</span>
</span></code></pre></div></td></tr></table></div>
<h3 id="local-models">Local models<a class="headerlink" href="#local-models" title="Permanent link"></a></h3>
<p>Pros:</p>
<ul>
<li>Privacy. Your documents will be stored and process locally.</li>
<li>Choices. There are a wide range of LLMs in terms of size, domain, language to choose
from.</li>
<li>Cost. It's free.</li>
</ul>
<p>Cons:</p>
<ul>
<li>Quality. Local models are much smaller and thus have lower generative quality than
paid APIs.</li>
<li>Speed. Local models are deployed using your machine so the processing speed is
limited by your hardware.</li>
</ul>
<h4 id="find-and-download-a-llm">Find and download a LLM<a class="headerlink" href="#find-and-download-a-llm" title="Permanent link"></a></h4>
<p>You can search and download a LLM to be ran locally from the <a href="https://huggingface.co/models">Hugging Face
Hub</a>. Currently, these model formats are supported:</p>
<ul>
<li>GGUF</li>
</ul>
<p>You should choose a model whose size is less than your device's memory and should leave
about 2 GB. For example, if you have 16 GB of RAM in total, of which 12 GB is available,
then you should choose a model that take up at most 10 GB of RAM. Bigger models tend to
give better generation but also take more processing time.</p>
<p>Here are some recommendations and their size in memory:</p>
<ul>
<li><a href="https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat-GGUF/resolve/main/qwen1_5-1_8b-chat-q8_0.gguf?download=true">Qwen1.5-1.8B-Chat-GGUF</a>:
around 2 GB</li>
</ul>
<h4 id="enable-local-models">Enable local models<a class="headerlink" href="#enable-local-models" title="Permanent link"></a></h4>
<p>To add a local model to the model pool, set the <code>LOCAL_MODEL</code> variable in the <code>.env</code>
file to the path of the model file.</p>
<div class="language-shell highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="nv">LOCAL_MODEL</span><span class="o">=</span>&lt;full<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>model<span class="w"> </span>file&gt;
</span></code></pre></div></td></tr></table></div>
<p>Here is how to get the full path of your model file:</p>
<ul>
<li>On Windows 11: right click the file and select <code>Copy as Path</code>.</li>
</ul>
</details>
<h2 id="2-upload-your-documents">2. Upload your documents<a class="headerlink" href="#2-upload-your-documents" title="Permanent link"></a></h2>
<p><img alt="file index tab" src="https://raw.githubusercontent.com/Cinnamon/kotaemon/main/docs/images/file-index-tab.png"></p>
<p>In order to do QA on your documents, you need to upload them to the application first.
Navigate to the <code>File Index</code> tab and you will see 2 sections:</p>
<ol>
<li>File upload:<ul>
<li>Drag and drop your file to the UI or select it from your file system.
Then click <code>Upload and Index</code>.</li>
<li>The application will take some time to process the file and show a message once it is done.</li>
</ul>
</li>
<li>File list:<ul>
<li>This section shows the list of files that have been uploaded to the application and allows users to delete them.</li>
</ul>
</li>
</ol>
<h2 id="3-chat-with-your-documents">3. Chat with your documents<a class="headerlink" href="#3-chat-with-your-documents" title="Permanent link"></a></h2>
<p><img alt="chat tab" src="https://raw.githubusercontent.com/Cinnamon/kotaemon/main/docs/images/chat-tab.png"></p>
<p>Now navigate back to the <code>Chat</code> tab. The chat tab is divided into 3 regions:</p>
<ol>
<li>Conversation Settings Panel<ul>
<li>Here you can select, create, rename, and delete conversations.<ul>
<li>By default, a new conversation is created automatically if no conversation is selected.</li>
</ul>
</li>
<li>Below that you have the file index, where you can choose whether to disable, select all files, or select which files to retrieve references from.<ul>
<li>If you choose "Disabled", no files will be considered as context during chat.</li>
<li>If you choose "Search All", all files will be considered during chat.</li>
<li>If you choose "Select", a dropdown will appear for you to select the
files to be considered during chat. If no files are selected, then no
files will be considered during chat.</li>
</ul>
</li>
</ul>
</li>
<li>Chat Panel<ul>
<li>This is where you can chat with the chatbot.</li>
</ul>
</li>
<li>Information Panel</li>
</ol>
<p><img alt="information panel" src="https://raw.githubusercontent.com/Cinnamon/kotaemon/develop/docs/images/info-panel-scores.png"></p>
<ul>
<li>Supporting information such as the retrieved evidence and reference will be
displayed here.</li>
<li>Direct citation for the answer produced by the LLM is highlighted.</li>
<li>The confidence score of the answer and relevant scores of evidences are displayed to quickly assess the quality of the answer and retrieved content.</li>
</ul>
<ul>
<li>Meaning of the score displayed:<ul>
<li><strong>Answer confidence</strong>: answer confidence level from the LLM model.</li>
<li><strong>Relevance score</strong>: overall relevant score between evidence and user question.</li>
<li><strong>Vectorstore score</strong>: relevant score from vector embedding similarity calculation (show <code>full-text search</code> if retrieved from full-text search DB).</li>
<li><strong>LLM relevant score</strong>: relevant score from LLM model (which judge relevancy between question and evidence using specific prompt).</li>
<li><strong>Reranking score</strong>: relevant score from Cohere <a href="https://cohere.com/rerank">reranking model</a>.</li>
</ul>
</li>
</ul>
<p>Generally, the score quality is <code>LLM relevant score</code> &gt; <code>Reranking score</code> &gt; <code>Vectorscore</code>.
By default, overall relevance score is taken directly from LLM relevant score. Evidences are sorted based on their overall relevance score and whether they have citation or not.</p></div>
<aside class="md-source-file">
<span class="md-source-file__fact">
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago"><span class="timeago" datetime="2025-01-13T00:42:47+00:00" locale="en"></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date">2025-01-13</span>
</span>
<span class="md-source-file__fact">
<span class="md-icon" title="Created">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago"><span class="timeago" datetime="2024-03-29T12:47:03+00:00" locale="en"></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date">2024-03-29</span>
</span>
</aside>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<nav
class="md-footer__inner md-grid"
aria-label="footer.title"
>
<a
href=".."
class="md-footer__link md-footer__link--prev"
rel="prev"
>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Quick Start
</div>
</div>
</a>
<a
href="../development/"
class="md-footer__link md-footer__link--next"
rel="next"
>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
Development
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
</div>
</a>
</nav>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.action.edit", "content.tabs.link", "content.code.annotate", "content.code.annotations", "content.code.copy", "navigation.tabs", "navigation.top", "navigation.instant", "navigation.indexes", "toc.follow", "search.share", "search.highlight", "search.suggest"], "search": "../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.525ec568.min.js"></script>
<script src="../js/timeago.min.js"></script>
<script src="../js/timeago_mkdocs_material.js"></script>
<script src="../assets/pymdownx-extras/extra-loader-MCFnu0Wd.js"></script>
</body>
</html>