CINXE.COM
pinecone.control.pinecone_asyncio API documentation
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="generator" content="pdoc 14.5.1"/> <title>pinecone.control.pinecone_asyncio API documentation</title> <link rel="icon" href="./favicon-32x32.png"/> <style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style> <style>/*! syntax-highlighting.css */pre{line-height:125%;}span.linenos{color:inherit; background-color:transparent; padding-left:5px; padding-right:20px;}.pdoc-code .hll{background-color:#ffffcc}.pdoc-code{background:#f8f8f8;}.pdoc-code .c{color:#3D7B7B; font-style:italic}.pdoc-code .err{border:1px solid #FF0000}.pdoc-code .k{color:#008000; font-weight:bold}.pdoc-code .o{color:#666666}.pdoc-code .ch{color:#3D7B7B; font-style:italic}.pdoc-code .cm{color:#3D7B7B; font-style:italic}.pdoc-code .cp{color:#9C6500}.pdoc-code .cpf{color:#3D7B7B; font-style:italic}.pdoc-code .c1{color:#3D7B7B; font-style:italic}.pdoc-code .cs{color:#3D7B7B; font-style:italic}.pdoc-code .gd{color:#A00000}.pdoc-code .ge{font-style:italic}.pdoc-code .gr{color:#E40000}.pdoc-code .gh{color:#000080; font-weight:bold}.pdoc-code .gi{color:#008400}.pdoc-code .go{color:#717171}.pdoc-code .gp{color:#000080; font-weight:bold}.pdoc-code .gs{font-weight:bold}.pdoc-code .gu{color:#800080; font-weight:bold}.pdoc-code .gt{color:#0044DD}.pdoc-code .kc{color:#008000; font-weight:bold}.pdoc-code .kd{color:#008000; font-weight:bold}.pdoc-code .kn{color:#008000; font-weight:bold}.pdoc-code .kp{color:#008000}.pdoc-code .kr{color:#008000; font-weight:bold}.pdoc-code .kt{color:#B00040}.pdoc-code .m{color:#666666}.pdoc-code .s{color:#BA2121}.pdoc-code .na{color:#687822}.pdoc-code .nb{color:#008000}.pdoc-code .nc{color:#0000FF; font-weight:bold}.pdoc-code .no{color:#880000}.pdoc-code .nd{color:#AA22FF}.pdoc-code .ni{color:#717171; font-weight:bold}.pdoc-code .ne{color:#CB3F38; font-weight:bold}.pdoc-code .nf{color:#0000FF}.pdoc-code .nl{color:#767600}.pdoc-code .nn{color:#0000FF; font-weight:bold}.pdoc-code .nt{color:#008000; font-weight:bold}.pdoc-code .nv{color:#19177C}.pdoc-code .ow{color:#AA22FF; font-weight:bold}.pdoc-code .w{color:#bbbbbb}.pdoc-code .mb{color:#666666}.pdoc-code .mf{color:#666666}.pdoc-code .mh{color:#666666}.pdoc-code .mi{color:#666666}.pdoc-code .mo{color:#666666}.pdoc-code .sa{color:#BA2121}.pdoc-code .sb{color:#BA2121}.pdoc-code .sc{color:#BA2121}.pdoc-code .dl{color:#BA2121}.pdoc-code .sd{color:#BA2121; font-style:italic}.pdoc-code .s2{color:#BA2121}.pdoc-code .se{color:#AA5D1F; font-weight:bold}.pdoc-code .sh{color:#BA2121}.pdoc-code .si{color:#A45A77; font-weight:bold}.pdoc-code .sx{color:#008000}.pdoc-code .sr{color:#A45A77}.pdoc-code .s1{color:#BA2121}.pdoc-code .ss{color:#19177C}.pdoc-code .bp{color:#008000}.pdoc-code .fm{color:#0000FF}.pdoc-code .vc{color:#19177C}.pdoc-code .vg{color:#19177C}.pdoc-code .vi{color:#19177C}.pdoc-code .vm{color:#19177C}.pdoc-code .il{color:#666666}</style> <style>/*! theme.css */:root{--pdoc-background:#fff;}.pdoc{--text:#212529;--muted:#6c757d;--link:#3660a5;--link-hover:#1659c5;--code:#f8f8f8;--active:#fff598;--accent:#eee;--accent2:#c1c1c1;--nav-hover:rgba(255, 255, 255, 0.5);--name:#0066BB;--def:#008800;--annotation:#007020;}</style> <style>/*! layout.css */html, body{width:100%;height:100%;}html, main{scroll-behavior:smooth;}body{background-color:var(--pdoc-background);}@media (max-width:769px){#navtoggle{cursor:pointer;position:absolute;width:50px;height:40px;top:1rem;right:1rem;border-color:var(--text);color:var(--text);display:flex;opacity:0.8;z-index:999;}#navtoggle:hover{opacity:1;}#togglestate + div{display:none;}#togglestate:checked + div{display:inherit;}main, header{padding:2rem 3vw;}header + main{margin-top:-3rem;}.git-button{display:none !important;}nav input[type="search"]{max-width:77%;}nav input[type="search"]:first-child{margin-top:-6px;}nav input[type="search"]:valid ~ *{display:none !important;}}@media (min-width:770px){:root{--sidebar-width:clamp(12.5rem, 28vw, 22rem);}nav{position:fixed;overflow:auto;height:100vh;width:var(--sidebar-width);}main, header{padding:3rem 2rem 3rem calc(var(--sidebar-width) + 3rem);width:calc(54rem + var(--sidebar-width));max-width:100%;}header + main{margin-top:-4rem;}#navtoggle{display:none;}}#togglestate{position:absolute;height:0;opacity:0;}nav.pdoc{--pad:clamp(0.5rem, 2vw, 1.75rem);--indent:1.5rem;background-color:var(--accent);border-right:1px solid var(--accent2);box-shadow:0 0 20px rgba(50, 50, 50, .2) inset;padding:0 0 0 var(--pad);overflow-wrap:anywhere;scrollbar-width:thin; scrollbar-color:var(--accent2) transparent; z-index:1}nav.pdoc::-webkit-scrollbar{width:.4rem; }nav.pdoc::-webkit-scrollbar-thumb{background-color:var(--accent2); }nav.pdoc > div{padding:var(--pad) 0;}nav.pdoc .module-list-button{display:inline-flex;align-items:center;color:var(--text);border-color:var(--muted);margin-bottom:1rem;}nav.pdoc .module-list-button:hover{border-color:var(--text);}nav.pdoc input[type=search]{display:block;outline-offset:0;width:calc(100% - var(--pad));}nav.pdoc .logo{max-width:calc(100% - var(--pad));max-height:35vh;display:block;margin:0 auto 1rem;transform:translate(calc(-.5 * var(--pad)), 0);}nav.pdoc ul{list-style:none;padding-left:0;}nav.pdoc > div > ul{margin-left:calc(0px - var(--pad));}nav.pdoc li a{padding:.2rem 0 .2rem calc(var(--pad) + var(--indent));}nav.pdoc > div > ul > li > a{padding-left:var(--pad);}nav.pdoc li{transition:all 100ms;}nav.pdoc li:hover{background-color:var(--nav-hover);}nav.pdoc a, nav.pdoc a:hover{color:var(--text);}nav.pdoc a{display:block;}nav.pdoc > h2:first-of-type{margin-top:1.5rem;}nav.pdoc .class:before{content:"class ";color:var(--muted);}nav.pdoc .function:after{content:"()";color:var(--muted);}nav.pdoc footer:before{content:"";display:block;width:calc(100% - var(--pad));border-top:solid var(--accent2) 1px;margin-top:1.5rem;padding-top:.5rem;}nav.pdoc footer{font-size:small;}</style> <style>/*! content.css */.pdoc{color:var(--text);box-sizing:border-box;line-height:1.5;background:none;}.pdoc .pdoc-button{cursor:pointer;display:inline-block;border:solid black 1px;border-radius:2px;font-size:.75rem;padding:calc(0.5em - 1px) 1em;transition:100ms all;}.pdoc .pdoc-alert{padding:1rem 1rem 1rem calc(1.5rem + 24px);border:1px solid transparent;border-radius:.25rem;background-repeat:no-repeat;background-position:1rem center;margin-bottom:1rem;}.pdoc .pdoc-alert > *:last-child{margin-bottom:0;}.pdoc .pdoc-alert-note {color:#084298;background-color:#cfe2ff;border-color:#b6d4fe;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23084298%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8%2016A8%208%200%201%200%208%200a8%208%200%200%200%200%2016zm.93-9.412-1%204.705c-.07.34.029.533.304.533.194%200%20.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703%200-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381%202.29-.287zM8%205.5a1%201%200%201%201%200-2%201%201%200%200%201%200%202z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23664d03%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8.982%201.566a1.13%201.13%200%200%200-1.96%200L.165%2013.233c-.457.778.091%201.767.98%201.767h13.713c.889%200%201.438-.99.98-1.767L8.982%201.566zM8%205c.535%200%20.954.462.9.995l-.35%203.507a.552.552%200%200%201-1.1%200L7.1%205.995A.905.905%200%200%201%208%205zm.002%206a1%201%200%201%201%200%202%201%201%200%200%201%200-2z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23842029%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M5.52.359A.5.5%200%200%201%206%200h4a.5.5%200%200%201%20.474.658L8.694%206H12.5a.5.5%200%200%201%20.395.807l-7%209a.5.5%200%200%201-.873-.454L6.823%209.5H3.5a.5.5%200%200%201-.48-.641l2.5-8.5z%22/%3E%3C/svg%3E");}.pdoc .visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important;}.pdoc h1, .pdoc h2, .pdoc h3{font-weight:300;margin:.3em 0;padding:.2em 0;}.pdoc > section:not(.module-info) h1{font-size:1.5rem;font-weight:500;}.pdoc > section:not(.module-info) h2{font-size:1.4rem;font-weight:500;}.pdoc > section:not(.module-info) h3{font-size:1.3rem;font-weight:500;}.pdoc > section:not(.module-info) h4{font-size:1.2rem;}.pdoc > section:not(.module-info) h5{font-size:1.1rem;}.pdoc a{text-decoration:none;color:var(--link);}.pdoc a:hover{color:var(--link-hover);}.pdoc blockquote{margin-left:2rem;}.pdoc pre{border-top:1px solid var(--accent2);border-bottom:1px solid var(--accent2);margin-top:0;margin-bottom:1em;padding:.5rem 0 .5rem .5rem;overflow-x:auto;background-color:var(--code);}.pdoc code{color:var(--text);padding:.2em .4em;margin:0;font-size:85%;background-color:var(--accent);border-radius:6px;}.pdoc a > code{color:inherit;}.pdoc pre > code{display:inline-block;font-size:inherit;background:none;border:none;padding:0;}.pdoc > section:not(.module-info){margin-bottom:1.5rem;}.pdoc .modulename{margin-top:0;font-weight:bold;}.pdoc .modulename a{color:var(--link);transition:100ms all;}.pdoc .git-button{float:right;border:solid var(--link) 1px;}.pdoc .git-button:hover{background-color:var(--link);color:var(--pdoc-background);}.view-source-toggle-state,.view-source-toggle-state ~ .pdoc-code{display:none;}.view-source-toggle-state:checked ~ .pdoc-code{display:block;}.view-source-button{display:inline-block;float:right;font-size:.75rem;line-height:1.5rem;color:var(--muted);padding:0 .4rem 0 1.3rem;cursor:pointer;text-indent:-2px;}.view-source-button > span{visibility:hidden;}.module-info .view-source-button{float:none;display:flex;justify-content:flex-end;margin:-1.2rem .4rem -.2rem 0;}.view-source-button::before{position:absolute;content:"View Source";display:list-item;list-style-type:disclosure-closed;}.view-source-toggle-state:checked ~ .attr .view-source-button::before,.view-source-toggle-state:checked ~ .view-source-button::before{list-style-type:disclosure-open;}.pdoc .docstring{margin-bottom:1.5rem;}.pdoc section:not(.module-info) .docstring{margin-left:clamp(0rem, 5vw - 2rem, 1rem);}.pdoc .docstring .pdoc-code{margin-left:1em;margin-right:1em;}.pdoc h1:target,.pdoc h2:target,.pdoc h3:target,.pdoc h4:target,.pdoc h5:target,.pdoc h6:target,.pdoc .pdoc-code > pre > span:target{background-color:var(--active);box-shadow:-1rem 0 0 0 var(--active);}.pdoc .pdoc-code > pre > span:target{display:block;}.pdoc div:target > .attr,.pdoc section:target > .attr,.pdoc dd:target > a{background-color:var(--active);}.pdoc *{scroll-margin:2rem;}.pdoc .pdoc-code .linenos{user-select:none;}.pdoc .attr:hover{filter:contrast(0.95);}.pdoc section, .pdoc .classattr{position:relative;}.pdoc .headerlink{--width:clamp(1rem, 3vw, 2rem);position:absolute;top:0;left:calc(0rem - var(--width));transition:all 100ms ease-in-out;opacity:0;}.pdoc .headerlink::before{content:"#";display:block;text-align:center;width:var(--width);height:2.3rem;line-height:2.3rem;font-size:1.5rem;}.pdoc .attr:hover ~ .headerlink,.pdoc *:target > .headerlink,.pdoc .headerlink:hover{opacity:1;}.pdoc .attr{display:block;margin:.5rem 0 .5rem;padding:.4rem .4rem .4rem 1rem;background-color:var(--accent);overflow-x:auto;}.pdoc .classattr{margin-left:2rem;}.pdoc .name{color:var(--name);font-weight:bold;}.pdoc .def{color:var(--def);font-weight:bold;}.pdoc .signature{background-color:transparent;}.pdoc .param, .pdoc .return-annotation{white-space:pre;}.pdoc .signature.multiline .param{display:block;}.pdoc .signature.condensed .param{display:inline-block;}.pdoc .annotation{color:var(--annotation);}.pdoc .view-value-toggle-state,.pdoc .view-value-toggle-state ~ .default_value{display:none;}.pdoc .view-value-toggle-state:checked ~ .default_value{display:inherit;}.pdoc .view-value-button{font-size:.5rem;vertical-align:middle;border-style:dashed;margin-top:-0.1rem;}.pdoc .view-value-button:hover{background:white;}.pdoc .view-value-button::before{content:"show";text-align:center;width:2.2em;display:inline-block;}.pdoc .view-value-toggle-state:checked ~ .view-value-button::before{content:"hide";}.pdoc .inherited{margin-left:2rem;}.pdoc .inherited dt{font-weight:700;}.pdoc .inherited dt, .pdoc .inherited dd{display:inline;margin-left:0;margin-bottom:.5rem;}.pdoc .inherited dd:not(:last-child):after{content:", ";}.pdoc .inherited .class:before{content:"class ";}.pdoc .inherited .function a:after{content:"()";}.pdoc .search-result .docstring{overflow:auto;max-height:25vh;}.pdoc .search-result.focused > .attr{background-color:var(--active);}.pdoc .attribution{margin-top:2rem;display:block;opacity:0.5;transition:all 200ms;filter:grayscale(100%);}.pdoc .attribution:hover{opacity:1;filter:grayscale(0%);}.pdoc .attribution img{margin-left:5px;height:35px;vertical-align:middle;width:70px;transition:all 200ms;}.pdoc table{display:block;width:max-content;max-width:100%;overflow:auto;margin-bottom:1rem;}.pdoc table th{font-weight:600;}.pdoc table th, .pdoc table td{padding:6px 13px;border:1px solid var(--accent2);}</style> <style>/*! custom.css */</style></head> <body> <nav class="pdoc"> <label id="navtoggle" for="togglestate" class="pdoc-button"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke-linecap='round' stroke="currentColor" stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg></label> <input id="togglestate" type="checkbox" aria-hidden="true" tabindex="-1"> <div> <a class="pdoc-button module-list-button" href="../control.html"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-in-left" viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M10 3.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 1 1 0v2A1.5 1.5 0 0 1 9.5 14h-8A1.5 1.5 0 0 1 0 12.5v-9A1.5 1.5 0 0 1 1.5 2h8A1.5 1.5 0 0 1 11 3.5v2a.5.5 0 0 1-1 0v-2z"/> <path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/> </svg> pinecone.control</a> <input type="search" placeholder="Search..." role="searchbox" aria-label="search" pattern=".+" required> <h2>API Documentation</h2> <ul class="memberlist"> <li> <a class="class" href="#PineconeAsyncio">PineconeAsyncio</a> <ul class="memberlist"> <li> <a class="function" href="#PineconeAsyncio.__init__">PineconeAsyncio</a> </li> <li> <a class="function" href="#PineconeAsyncio.close">close</a> </li> <li> <a class="variable" href="#PineconeAsyncio.inference">inference</a> </li> <li> <a class="function" href="#PineconeAsyncio.create_index">create_index</a> </li> <li> <a class="function" href="#PineconeAsyncio.create_index_for_model">create_index_for_model</a> </li> <li> <a class="function" href="#PineconeAsyncio.delete_index">delete_index</a> </li> <li> <a class="function" href="#PineconeAsyncio.list_indexes">list_indexes</a> </li> <li> <a class="function" href="#PineconeAsyncio.describe_index">describe_index</a> </li> <li> <a class="function" href="#PineconeAsyncio.has_index">has_index</a> </li> <li> <a class="function" href="#PineconeAsyncio.configure_index">configure_index</a> </li> <li> <a class="function" href="#PineconeAsyncio.create_collection">create_collection</a> </li> <li> <a class="function" href="#PineconeAsyncio.list_collections">list_collections</a> </li> <li> <a class="function" href="#PineconeAsyncio.delete_collection">delete_collection</a> </li> <li> <a class="function" href="#PineconeAsyncio.describe_collection">describe_collection</a> </li> <li> <a class="function" href="#PineconeAsyncio.IndexAsyncio">IndexAsyncio</a> </li> </ul> </li> </ul> <a class="attribution" title="pdoc: Python API documentation generator" href="https://pdoc.dev" target="_blank"> built with <span class="visually-hidden">pdoc</span><img alt="pdoc logo" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/> </a> </div> </nav> <main class="pdoc"> <section class="module-info"> <h1 class="modulename"> <a href="./../../pinecone.html">pinecone</a><wbr>.<a href="./../control.html">control</a><wbr>.pinecone_asyncio </h1> <input id="mod-pinecone_asyncio-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <label class="view-source-button" for="mod-pinecone_asyncio-view-source"><span>View Source</span></label> <div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">logging</span> </span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span> <span class="nn">asyncio</span> </span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">Union</span> </span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a> </span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">pinecone.config</span> <span class="kn">import</span> <span class="n">PineconeConfig</span><span class="p">,</span> <span class="n">ConfigBuilder</span> </span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> </span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">pinecone.core.openapi.db_control.api.manage_indexes_api</span> <span class="kn">import</span> <span class="n">AsyncioManageIndexesApi</span> </span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">pinecone.openapi_support</span> <span class="kn">import</span> <span class="n">AsyncioApiClient</span> </span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> </span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">pinecone.utils</span> <span class="kn">import</span> <span class="n">normalize_host</span><span class="p">,</span> <span class="n">setup_async_openapi_client</span> </span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">pinecone.core.openapi.db_control</span> <span class="kn">import</span> <span class="n">API_VERSION</span> </span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">pinecone.models</span> <span class="kn">import</span> <span class="p">(</span> </span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">ServerlessSpec</span><span class="p">,</span> </span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">PodSpec</span><span class="p">,</span> </span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">IndexModel</span><span class="p">,</span> </span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">IndexList</span><span class="p">,</span> </span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> <span class="n">CollectionList</span><span class="p">,</span> </span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">IndexEmbed</span><span class="p">,</span> </span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="p">)</span> </span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="kn">from</span> <span class="nn">pinecone.utils</span> <span class="kn">import</span> <span class="n">docslinks</span> </span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> </span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="kn">from</span> <span class="nn">pinecone.data</span> <span class="kn">import</span> <span class="n">_IndexAsyncio</span><span class="p">,</span> <span class="n">_AsyncioInference</span> </span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="kn">from</span> <span class="nn">pinecone.enums</span> <span class="kn">import</span> <span class="p">(</span> </span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="n">Metric</span><span class="p">,</span> </span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="n">VectorType</span><span class="p">,</span> </span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">DeletionProtection</span><span class="p">,</span> </span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">PodType</span><span class="p">,</span> </span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">CloudProvider</span><span class="p">,</span> </span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">AwsRegion</span><span class="p">,</span> </span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">GcpRegion</span><span class="p">,</span> </span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">AzureRegion</span><span class="p">,</span> </span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="p">)</span> </span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="kn">from</span> <span class="nn">.types</span> <span class="kn">import</span> <span class="n">CreateIndexForModelEmbedTypedDict</span> </span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="kn">from</span> <span class="nn">.request_factory</span> <span class="kn">import</span> <span class="n">PineconeDBControlRequestFactory</span> </span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="kn">from</span> <span class="nn">.pinecone_interface_asyncio</span> <span class="kn">import</span> <span class="n">PineconeAsyncioDBControlInterface</span> </span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="kn">from</span> <span class="nn">.pinecone</span> <span class="kn">import</span> <span class="n">check_realistic_host</span> </span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> </span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> </span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd">""" @private """</span> </span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> </span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> </span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="k">class</span> <span class="nc">PineconeAsyncio</span><span class="p">(</span><span class="n">PineconeAsyncioDBControlInterface</span><span class="p">):</span> </span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="w"> </span><span class="sd">"""</span> </span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> `PineconeAsyncio` is an asyncio client for interacting with Pinecone's control plane API.</span> </span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> </span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> This class implements methods for managing and interacting with Pinecone resources</span> </span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> such as collections and indexes.</span> </span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> </span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="sd"> To perform data operations such as inserting and querying vectors, use the `IndexAsyncio` class.</span> </span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> </span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="sd"> ```python</span> </span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> import asyncio</span> </span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> from pinecone import Pinecone</span> </span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> </span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> async def main():</span> </span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> pc = Pinecone()</span> </span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> async with pc.IndexAsyncio(host="my-index.pinecone.io") as idx:</span> </span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> await idx.upsert(vectors=[(1, [1, 2, 3]), (2, [4, 5, 6])])</span> </span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> </span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> ```</span> </span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> """</span> </span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> </span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> </span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">api_key</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">host</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">proxy_url</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="c1"># proxy_headers: Optional[Dict[str, str]] = None,</span> </span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">ssl_ca_certs</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">ssl_verify</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">additional_headers</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{},</span> </span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="p">):</span> </span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">for</span> <span class="n">deprecated_kwarg</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"config"</span><span class="p">,</span> <span class="s2">"openapi_config"</span><span class="p">}:</span> </span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">if</span> <span class="n">deprecated_kwarg</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> </span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> </span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="sa">f</span><span class="s2">"Passing </span><span class="si">{</span><span class="n">deprecated_kwarg</span><span class="si">}</span><span class="s2"> is no longer supported. Please pass individual settings such as proxy_url, ssl_ca_certs, and ssl_verify directly to the Pinecone constructor as keyword arguments. See the README at </span><span class="si">{</span><span class="n">docslinks</span><span class="p">[</span><span class="s1">'README'</span><span class="p">]</span><span class="si">}</span><span class="s2"> for examples."</span> </span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="p">)</span> </span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> </span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="k">for</span> <span class="n">unimplemented_kwarg</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"proxy_headers"</span><span class="p">}:</span> </span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">if</span> <span class="n">unimplemented_kwarg</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> </span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> </span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="sa">f</span><span class="s2">"You have passed </span><span class="si">{</span><span class="n">unimplemented_kwarg</span><span class="si">}</span><span class="s2"> but this configuration has not been implemented for PineconeAsyncio."</span> </span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="p">)</span> </span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> </span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">PineconeConfig</span><span class="o">.</span><span class="n">build</span><span class="p">(</span> </span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">,</span> </span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">host</span><span class="o">=</span><span class="n">host</span><span class="p">,</span> </span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">additional_headers</span><span class="o">=</span><span class="n">additional_headers</span><span class="p">,</span> </span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">proxy_url</span><span class="o">=</span><span class="n">proxy_url</span><span class="p">,</span> </span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">proxy_headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> </span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">ssl_ca_certs</span><span class="o">=</span><span class="n">ssl_ca_certs</span><span class="p">,</span> </span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">ssl_verify</span><span class="o">=</span><span class="n">ssl_verify</span><span class="p">,</span> </span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="p">)</span> </span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> </span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span> <span class="o">=</span> <span class="n">ConfigBuilder</span><span class="o">.</span><span class="n">build_openapi_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> </span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> </span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Lazy initialization</span> </span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> </span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span> <span class="o">=</span> <span class="n">setup_async_openapi_client</span><span class="p">(</span> </span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">api_client_klass</span><span class="o">=</span><span class="n">AsyncioApiClient</span><span class="p">,</span> </span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">api_klass</span><span class="o">=</span><span class="n">AsyncioManageIndexesApi</span><span class="p">,</span> </span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> </span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="n">openapi_config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span><span class="p">,</span> </span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">api_version</span><span class="o">=</span><span class="n">API_VERSION</span><span class="p">,</span> </span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="p">)</span> </span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> </span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">async</span> <span class="k">def</span> <span class="fm">__aenter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">return</span> <span class="bp">self</span> </span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> </span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">async</span> <span class="k">def</span> <span class="fm">__aexit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">traceback</span><span class="p">):</span> </span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> </span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> </span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a><span class="w"> </span><span class="sd">"""Cleanup resources used by the Pinecone client.</span> </span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> </span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a><span class="sd"> This method should be called when the client is no longer needed so that</span> </span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a><span class="sd"> it can cleanup the aioahttp session and other resources.</span> </span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> </span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a><span class="sd"> After close has been called, the client instance should not be used.</span> </span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> </span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="sd"> ```python</span> </span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="sd"> import asyncio</span> </span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="sd"> from pinecone import PineconeAsyncio</span> </span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> </span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="sd"> async def main():</span> </span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="sd"> pc = PineconeAsyncio()</span> </span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="sd"> desc = await pc.describe_index(name="my-index")</span> </span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="sd"> await pc.close()</span> </span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> </span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="sd"> ```</span> </span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> </span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="sd"> If you are using the client as a context manager, the close method is called automatically</span> </span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="sd"> when exiting.</span> </span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> </span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="sd"> ```python</span> </span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="sd"> import asyncio</span> </span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a><span class="sd"> from pinecone import PineconeAsyncio</span> </span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> </span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a><span class="sd"> async def main():</span> </span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a><span class="sd"> async with PineconeAsyncio() as pc:</span> </span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a><span class="sd"> desc = await pc.describe_index(name="my-index")</span> </span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> </span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a><span class="sd"> # No need to call close in this case because the "async with" syntax</span> </span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a><span class="sd"> # automatically calls close when exiting the block.</span> </span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a><span class="sd"> ```</span> </span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> </span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="sd"> """</span> </span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">api_client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> </span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> </span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="nd">@property</span> </span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">def</span> <span class="nf">inference</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a><span class="w"> </span><span class="sd">"""Dynamically create and cache the Inference instance."""</span> </span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="o">=</span> <span class="n">_AsyncioInference</span><span class="p">(</span><span class="n">api_client</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">api_client</span><span class="p">)</span> </span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> </span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> </span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span> </span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">spec</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">,</span> <span class="n">ServerlessSpec</span><span class="p">,</span> <span class="n">PodSpec</span><span class="p">],</span> </span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">dimension</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">metric</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Metric</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">,</span> </span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> </span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">vector_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">VectorType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">VectorType</span><span class="o">.</span><span class="n">DENSE</span><span class="p">,</span> </span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_index_request</span><span class="p">(</span> </span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> </span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> </span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="n">dimension</span><span class="o">=</span><span class="n">dimension</span><span class="p">,</span> </span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">metric</span><span class="o">=</span><span class="n">metric</span><span class="p">,</span> </span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">vector_type</span><span class="o">=</span><span class="n">vector_type</span><span class="p">,</span> </span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="p">)</span> </span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="n">resp</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span><span class="n">create_index_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> </span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">resp</span><span class="p">)</span> </span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">__poll_describe_index_until_ready</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> </span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> </span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_index_for_model</span><span class="p">(</span> </span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="n">cloud</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">CloudProvider</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> </span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="n">region</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">AwsRegion</span><span class="p">,</span> <span class="n">GcpRegion</span><span class="p">,</span> <span class="n">AzureRegion</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> </span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="n">embed</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">IndexEmbed</span><span class="p">,</span> <span class="n">CreateIndexForModelEmbedTypedDict</span><span class="p">],</span> </span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> </span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_index_for_model_request</span><span class="p">(</span> </span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> </span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="n">cloud</span><span class="o">=</span><span class="n">cloud</span><span class="p">,</span> </span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="n">region</span><span class="o">=</span><span class="n">region</span><span class="p">,</span> </span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="n">embed</span><span class="o">=</span><span class="n">embed</span><span class="p">,</span> </span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="p">)</span> </span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="n">resp</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_index_for_model</span><span class="p">(</span><span class="n">req</span><span class="p">)</span> </span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> </span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">resp</span><span class="p">)</span> </span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">__poll_describe_index_until_ready</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> </span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> </span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">__poll_describe_index_until_ready</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> </span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">description</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> </span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">is_ready</span><span class="p">()</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> </span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="k">nonlocal</span> <span class="n">description</span> </span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> </span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="k">return</span> <span class="n">description</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">ready</span> </span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> </span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="n">total_wait_time</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="c1"># Wait indefinitely</span> </span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">is_ready</span><span class="p">():</span> </span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span> </span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="sa">f</span><span class="s2">"Waiting for index </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> to be ready. Total wait time </span><span class="si">{</span><span class="n">total_wait_time</span><span class="si">}</span><span class="s2"> seconds."</span> </span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="p">)</span> </span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="n">total_wait_time</span> <span class="o">+=</span> <span class="mi">5</span> </span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> </span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="c1"># Wait for a maximum of timeout seconds</span> </span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">is_ready</span><span class="p">():</span> </span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> </span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Index </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> is not ready. Timeout reached."</span><span class="p">)</span> </span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="n">link</span> <span class="o">=</span> <span class="n">docslinks</span><span class="p">[</span><span class="s2">"API_DESCRIBE_INDEX"</span><span class="p">]</span> </span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="n">timeout_msg</span> <span class="o">=</span> <span class="p">(</span> </span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="sa">f</span><span class="s2">"Please call describe_index() to confirm index status. See docs at </span><span class="si">{</span><span class="n">link</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="p">)</span> </span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="k">raise</span> <span class="ne">TimeoutError</span><span class="p">(</span><span class="n">timeout_msg</span><span class="p">)</span> </span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> </span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span> </span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="sa">f</span><span class="s2">"Waiting for index </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> to be ready. Total wait time: </span><span class="si">{</span><span class="n">total_wait_time</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="p">)</span> </span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="n">total_wait_time</span> <span class="o">+=</span> <span class="mi">5</span> </span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">timeout</span> <span class="o">-=</span> <span class="mi">5</span> </span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> </span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="k">return</span> <span class="n">description</span> </span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> </span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">delete_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> </span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">delete_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> </span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="k">return</span> </span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> </span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="k">while</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">name</span><span class="p">):</span> </span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="k">while</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">and</span> <span class="n">timeout</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span> </span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="n">timeout</span> <span class="o">-=</span> <span class="mi">5</span> </span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">and</span> <span class="n">timeout</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> </span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="k">raise</span> <span class="p">(</span> </span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="ne">TimeoutError</span><span class="p">(</span> </span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="s2">"Please call the list_indexes API (</span><span class="si">{}</span><span class="s2">) to confirm if index is deleted"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> </span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="s2">"https://www.pinecone.io/docs/api/operation/list_indexes/"</span> </span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="p">)</span> </span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="p">)</span> </span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="p">)</span> </span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> </span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">list_indexes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">IndexList</span><span class="p">:</span> </span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> </span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="k">return</span> <span class="n">IndexList</span><span class="p">(</span><span class="n">response</span><span class="p">)</span> </span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> </span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">describe_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> </span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> </span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">has_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> </span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">available_indexes</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> </span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">available_indexes</span><span class="o">.</span><span class="n">names</span><span class="p">():</span> </span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="kc">True</span> </span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">return</span> <span class="kc">False</span> </span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> </span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">configure_index</span><span class="p">(</span> </span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">replicas</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">pod_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">PodType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="p">):</span> </span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> </span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> </span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">configure_index_request</span><span class="p">(</span> </span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">,</span> </span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">replicas</span><span class="o">=</span><span class="n">replicas</span><span class="p">,</span> </span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">pod_type</span><span class="o">=</span><span class="n">pod_type</span><span class="p">,</span> </span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="p">)</span> </span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">configure_index_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> </span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">source</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_collection_request</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">)</span> </span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_collection</span><span class="p">(</span><span class="n">create_collection_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> </span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">list_collections</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">CollectionList</span><span class="p">:</span> </span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">list_collections</span><span class="p">()</span> </span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">return</span> <span class="n">CollectionList</span><span class="p">(</span><span class="n">response</span><span class="p">)</span> </span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> </span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">delete_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">delete_collection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> </span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">describe_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">describe_collection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">to_dict</span><span class="p">()</span> </span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> </span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">def</span> <span class="nf">IndexAsyncio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">_IndexAsyncio</span><span class="p">:</span> </span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">api_key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">api_key</span> </span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">openapi_config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span> </span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> </span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="k">if</span> <span class="n">host</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">host</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span> </span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"A host must be specified"</span><span class="p">)</span> </span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> </span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">check_realistic_host</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> </span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="n">index_host</span> <span class="o">=</span> <span class="n">normalize_host</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> </span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> </span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="k">return</span> <span class="n">_IndexAsyncio</span><span class="p">(</span> </span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">host</span><span class="o">=</span><span class="n">index_host</span><span class="p">,</span> </span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">,</span> </span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">openapi_config</span><span class="o">=</span><span class="n">openapi_config</span><span class="p">,</span> </span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="n">source_tag</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">source_tag</span><span class="p">,</span> </span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="p">)</span> </span></pre></div> </section> <section id="PineconeAsyncio"> <input id="PineconeAsyncio-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr class"> <span class="def">class</span> <span class="name">PineconeAsyncio</span><wbr>(<span class="base"><a href="pinecone_interface_asyncio.html#PineconeAsyncioDBControlInterface">pinecone.control.pinecone_interface_asyncio.PineconeAsyncioDBControlInterface</a></span>): <label class="view-source-button" for="PineconeAsyncio-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio-43"><a href="#PineconeAsyncio-43"><span class="linenos"> 43</span></a><span class="k">class</span> <span class="nc">PineconeAsyncio</span><span class="p">(</span><span class="n">PineconeAsyncioDBControlInterface</span><span class="p">):</span> </span><span id="PineconeAsyncio-44"><a href="#PineconeAsyncio-44"><span class="linenos"> 44</span></a><span class="w"> </span><span class="sd">"""</span> </span><span id="PineconeAsyncio-45"><a href="#PineconeAsyncio-45"><span class="linenos"> 45</span></a><span class="sd"> `PineconeAsyncio` is an asyncio client for interacting with Pinecone's control plane API.</span> </span><span id="PineconeAsyncio-46"><a href="#PineconeAsyncio-46"><span class="linenos"> 46</span></a> </span><span id="PineconeAsyncio-47"><a href="#PineconeAsyncio-47"><span class="linenos"> 47</span></a><span class="sd"> This class implements methods for managing and interacting with Pinecone resources</span> </span><span id="PineconeAsyncio-48"><a href="#PineconeAsyncio-48"><span class="linenos"> 48</span></a><span class="sd"> such as collections and indexes.</span> </span><span id="PineconeAsyncio-49"><a href="#PineconeAsyncio-49"><span class="linenos"> 49</span></a> </span><span id="PineconeAsyncio-50"><a href="#PineconeAsyncio-50"><span class="linenos"> 50</span></a><span class="sd"> To perform data operations such as inserting and querying vectors, use the `IndexAsyncio` class.</span> </span><span id="PineconeAsyncio-51"><a href="#PineconeAsyncio-51"><span class="linenos"> 51</span></a> </span><span id="PineconeAsyncio-52"><a href="#PineconeAsyncio-52"><span class="linenos"> 52</span></a><span class="sd"> ```python</span> </span><span id="PineconeAsyncio-53"><a href="#PineconeAsyncio-53"><span class="linenos"> 53</span></a><span class="sd"> import asyncio</span> </span><span id="PineconeAsyncio-54"><a href="#PineconeAsyncio-54"><span class="linenos"> 54</span></a><span class="sd"> from pinecone import Pinecone</span> </span><span id="PineconeAsyncio-55"><a href="#PineconeAsyncio-55"><span class="linenos"> 55</span></a> </span><span id="PineconeAsyncio-56"><a href="#PineconeAsyncio-56"><span class="linenos"> 56</span></a><span class="sd"> async def main():</span> </span><span id="PineconeAsyncio-57"><a href="#PineconeAsyncio-57"><span class="linenos"> 57</span></a><span class="sd"> pc = Pinecone()</span> </span><span id="PineconeAsyncio-58"><a href="#PineconeAsyncio-58"><span class="linenos"> 58</span></a><span class="sd"> async with pc.IndexAsyncio(host="my-index.pinecone.io") as idx:</span> </span><span id="PineconeAsyncio-59"><a href="#PineconeAsyncio-59"><span class="linenos"> 59</span></a><span class="sd"> await idx.upsert(vectors=[(1, [1, 2, 3]), (2, [4, 5, 6])])</span> </span><span id="PineconeAsyncio-60"><a href="#PineconeAsyncio-60"><span class="linenos"> 60</span></a> </span><span id="PineconeAsyncio-61"><a href="#PineconeAsyncio-61"><span class="linenos"> 61</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="PineconeAsyncio-62"><a href="#PineconeAsyncio-62"><span class="linenos"> 62</span></a><span class="sd"> ```</span> </span><span id="PineconeAsyncio-63"><a href="#PineconeAsyncio-63"><span class="linenos"> 63</span></a><span class="sd"> """</span> </span><span id="PineconeAsyncio-64"><a href="#PineconeAsyncio-64"><span class="linenos"> 64</span></a> </span><span id="PineconeAsyncio-65"><a href="#PineconeAsyncio-65"><span class="linenos"> 65</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> </span><span id="PineconeAsyncio-66"><a href="#PineconeAsyncio-66"><span class="linenos"> 66</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio-67"><a href="#PineconeAsyncio-67"><span class="linenos"> 67</span></a> <span class="n">api_key</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-68"><a href="#PineconeAsyncio-68"><span class="linenos"> 68</span></a> <span class="n">host</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-69"><a href="#PineconeAsyncio-69"><span class="linenos"> 69</span></a> <span class="n">proxy_url</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-70"><a href="#PineconeAsyncio-70"><span class="linenos"> 70</span></a> <span class="c1"># proxy_headers: Optional[Dict[str, str]] = None,</span> </span><span id="PineconeAsyncio-71"><a href="#PineconeAsyncio-71"><span class="linenos"> 71</span></a> <span class="n">ssl_ca_certs</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-72"><a href="#PineconeAsyncio-72"><span class="linenos"> 72</span></a> <span class="n">ssl_verify</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-73"><a href="#PineconeAsyncio-73"><span class="linenos"> 73</span></a> <span class="n">additional_headers</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{},</span> </span><span id="PineconeAsyncio-74"><a href="#PineconeAsyncio-74"><span class="linenos"> 74</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="PineconeAsyncio-75"><a href="#PineconeAsyncio-75"><span class="linenos"> 75</span></a> <span class="p">):</span> </span><span id="PineconeAsyncio-76"><a href="#PineconeAsyncio-76"><span class="linenos"> 76</span></a> <span class="k">for</span> <span class="n">deprecated_kwarg</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"config"</span><span class="p">,</span> <span class="s2">"openapi_config"</span><span class="p">}:</span> </span><span id="PineconeAsyncio-77"><a href="#PineconeAsyncio-77"><span class="linenos"> 77</span></a> <span class="k">if</span> <span class="n">deprecated_kwarg</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> </span><span id="PineconeAsyncio-78"><a href="#PineconeAsyncio-78"><span class="linenos"> 78</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> </span><span id="PineconeAsyncio-79"><a href="#PineconeAsyncio-79"><span class="linenos"> 79</span></a> <span class="sa">f</span><span class="s2">"Passing </span><span class="si">{</span><span class="n">deprecated_kwarg</span><span class="si">}</span><span class="s2"> is no longer supported. Please pass individual settings such as proxy_url, ssl_ca_certs, and ssl_verify directly to the Pinecone constructor as keyword arguments. See the README at </span><span class="si">{</span><span class="n">docslinks</span><span class="p">[</span><span class="s1">'README'</span><span class="p">]</span><span class="si">}</span><span class="s2"> for examples."</span> </span><span id="PineconeAsyncio-80"><a href="#PineconeAsyncio-80"><span class="linenos"> 80</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-81"><a href="#PineconeAsyncio-81"><span class="linenos"> 81</span></a> </span><span id="PineconeAsyncio-82"><a href="#PineconeAsyncio-82"><span class="linenos"> 82</span></a> <span class="k">for</span> <span class="n">unimplemented_kwarg</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"proxy_headers"</span><span class="p">}:</span> </span><span id="PineconeAsyncio-83"><a href="#PineconeAsyncio-83"><span class="linenos"> 83</span></a> <span class="k">if</span> <span class="n">unimplemented_kwarg</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> </span><span id="PineconeAsyncio-84"><a href="#PineconeAsyncio-84"><span class="linenos"> 84</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> </span><span id="PineconeAsyncio-85"><a href="#PineconeAsyncio-85"><span class="linenos"> 85</span></a> <span class="sa">f</span><span class="s2">"You have passed </span><span class="si">{</span><span class="n">unimplemented_kwarg</span><span class="si">}</span><span class="s2"> but this configuration has not been implemented for PineconeAsyncio."</span> </span><span id="PineconeAsyncio-86"><a href="#PineconeAsyncio-86"><span class="linenos"> 86</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-87"><a href="#PineconeAsyncio-87"><span class="linenos"> 87</span></a> </span><span id="PineconeAsyncio-88"><a href="#PineconeAsyncio-88"><span class="linenos"> 88</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">PineconeConfig</span><span class="o">.</span><span class="n">build</span><span class="p">(</span> </span><span id="PineconeAsyncio-89"><a href="#PineconeAsyncio-89"><span class="linenos"> 89</span></a> <span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">,</span> </span><span id="PineconeAsyncio-90"><a href="#PineconeAsyncio-90"><span class="linenos"> 90</span></a> <span class="n">host</span><span class="o">=</span><span class="n">host</span><span class="p">,</span> </span><span id="PineconeAsyncio-91"><a href="#PineconeAsyncio-91"><span class="linenos"> 91</span></a> <span class="n">additional_headers</span><span class="o">=</span><span class="n">additional_headers</span><span class="p">,</span> </span><span id="PineconeAsyncio-92"><a href="#PineconeAsyncio-92"><span class="linenos"> 92</span></a> <span class="n">proxy_url</span><span class="o">=</span><span class="n">proxy_url</span><span class="p">,</span> </span><span id="PineconeAsyncio-93"><a href="#PineconeAsyncio-93"><span class="linenos"> 93</span></a> <span class="n">proxy_headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-94"><a href="#PineconeAsyncio-94"><span class="linenos"> 94</span></a> <span class="n">ssl_ca_certs</span><span class="o">=</span><span class="n">ssl_ca_certs</span><span class="p">,</span> </span><span id="PineconeAsyncio-95"><a href="#PineconeAsyncio-95"><span class="linenos"> 95</span></a> <span class="n">ssl_verify</span><span class="o">=</span><span class="n">ssl_verify</span><span class="p">,</span> </span><span id="PineconeAsyncio-96"><a href="#PineconeAsyncio-96"><span class="linenos"> 96</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="PineconeAsyncio-97"><a href="#PineconeAsyncio-97"><span class="linenos"> 97</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-98"><a href="#PineconeAsyncio-98"><span class="linenos"> 98</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio-99"><a href="#PineconeAsyncio-99"><span class="linenos"> 99</span></a> </span><span id="PineconeAsyncio-100"><a href="#PineconeAsyncio-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span> <span class="o">=</span> <span class="n">ConfigBuilder</span><span class="o">.</span><span class="n">build_openapi_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> </span><span id="PineconeAsyncio-101"><a href="#PineconeAsyncio-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio-102"><a href="#PineconeAsyncio-102"><span class="linenos">102</span></a> </span><span id="PineconeAsyncio-103"><a href="#PineconeAsyncio-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Lazy initialization</span> </span><span id="PineconeAsyncio-104"><a href="#PineconeAsyncio-104"><span class="linenos">104</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio-105"><a href="#PineconeAsyncio-105"><span class="linenos">105</span></a> </span><span id="PineconeAsyncio-106"><a href="#PineconeAsyncio-106"><span class="linenos">106</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span> <span class="o">=</span> <span class="n">setup_async_openapi_client</span><span class="p">(</span> </span><span id="PineconeAsyncio-107"><a href="#PineconeAsyncio-107"><span class="linenos">107</span></a> <span class="n">api_client_klass</span><span class="o">=</span><span class="n">AsyncioApiClient</span><span class="p">,</span> </span><span id="PineconeAsyncio-108"><a href="#PineconeAsyncio-108"><span class="linenos">108</span></a> <span class="n">api_klass</span><span class="o">=</span><span class="n">AsyncioManageIndexesApi</span><span class="p">,</span> </span><span id="PineconeAsyncio-109"><a href="#PineconeAsyncio-109"><span class="linenos">109</span></a> <span class="n">config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> </span><span id="PineconeAsyncio-110"><a href="#PineconeAsyncio-110"><span class="linenos">110</span></a> <span class="n">openapi_config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span><span class="p">,</span> </span><span id="PineconeAsyncio-111"><a href="#PineconeAsyncio-111"><span class="linenos">111</span></a> <span class="n">api_version</span><span class="o">=</span><span class="n">API_VERSION</span><span class="p">,</span> </span><span id="PineconeAsyncio-112"><a href="#PineconeAsyncio-112"><span class="linenos">112</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-113"><a href="#PineconeAsyncio-113"><span class="linenos">113</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio-114"><a href="#PineconeAsyncio-114"><span class="linenos">114</span></a> </span><span id="PineconeAsyncio-115"><a href="#PineconeAsyncio-115"><span class="linenos">115</span></a> <span class="k">async</span> <span class="k">def</span> <span class="fm">__aenter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="PineconeAsyncio-116"><a href="#PineconeAsyncio-116"><span class="linenos">116</span></a> <span class="k">return</span> <span class="bp">self</span> </span><span id="PineconeAsyncio-117"><a href="#PineconeAsyncio-117"><span class="linenos">117</span></a> </span><span id="PineconeAsyncio-118"><a href="#PineconeAsyncio-118"><span class="linenos">118</span></a> <span class="k">async</span> <span class="k">def</span> <span class="fm">__aexit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">traceback</span><span class="p">):</span> </span><span id="PineconeAsyncio-119"><a href="#PineconeAsyncio-119"><span class="linenos">119</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> </span><span id="PineconeAsyncio-120"><a href="#PineconeAsyncio-120"><span class="linenos">120</span></a> </span><span id="PineconeAsyncio-121"><a href="#PineconeAsyncio-121"><span class="linenos">121</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="PineconeAsyncio-122"><a href="#PineconeAsyncio-122"><span class="linenos">122</span></a><span class="w"> </span><span class="sd">"""Cleanup resources used by the Pinecone client.</span> </span><span id="PineconeAsyncio-123"><a href="#PineconeAsyncio-123"><span class="linenos">123</span></a> </span><span id="PineconeAsyncio-124"><a href="#PineconeAsyncio-124"><span class="linenos">124</span></a><span class="sd"> This method should be called when the client is no longer needed so that</span> </span><span id="PineconeAsyncio-125"><a href="#PineconeAsyncio-125"><span class="linenos">125</span></a><span class="sd"> it can cleanup the aioahttp session and other resources.</span> </span><span id="PineconeAsyncio-126"><a href="#PineconeAsyncio-126"><span class="linenos">126</span></a> </span><span id="PineconeAsyncio-127"><a href="#PineconeAsyncio-127"><span class="linenos">127</span></a><span class="sd"> After close has been called, the client instance should not be used.</span> </span><span id="PineconeAsyncio-128"><a href="#PineconeAsyncio-128"><span class="linenos">128</span></a> </span><span id="PineconeAsyncio-129"><a href="#PineconeAsyncio-129"><span class="linenos">129</span></a><span class="sd"> ```python</span> </span><span id="PineconeAsyncio-130"><a href="#PineconeAsyncio-130"><span class="linenos">130</span></a><span class="sd"> import asyncio</span> </span><span id="PineconeAsyncio-131"><a href="#PineconeAsyncio-131"><span class="linenos">131</span></a><span class="sd"> from pinecone import PineconeAsyncio</span> </span><span id="PineconeAsyncio-132"><a href="#PineconeAsyncio-132"><span class="linenos">132</span></a> </span><span id="PineconeAsyncio-133"><a href="#PineconeAsyncio-133"><span class="linenos">133</span></a><span class="sd"> async def main():</span> </span><span id="PineconeAsyncio-134"><a href="#PineconeAsyncio-134"><span class="linenos">134</span></a><span class="sd"> pc = PineconeAsyncio()</span> </span><span id="PineconeAsyncio-135"><a href="#PineconeAsyncio-135"><span class="linenos">135</span></a><span class="sd"> desc = await pc.describe_index(name="my-index")</span> </span><span id="PineconeAsyncio-136"><a href="#PineconeAsyncio-136"><span class="linenos">136</span></a><span class="sd"> await pc.close()</span> </span><span id="PineconeAsyncio-137"><a href="#PineconeAsyncio-137"><span class="linenos">137</span></a> </span><span id="PineconeAsyncio-138"><a href="#PineconeAsyncio-138"><span class="linenos">138</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="PineconeAsyncio-139"><a href="#PineconeAsyncio-139"><span class="linenos">139</span></a><span class="sd"> ```</span> </span><span id="PineconeAsyncio-140"><a href="#PineconeAsyncio-140"><span class="linenos">140</span></a> </span><span id="PineconeAsyncio-141"><a href="#PineconeAsyncio-141"><span class="linenos">141</span></a><span class="sd"> If you are using the client as a context manager, the close method is called automatically</span> </span><span id="PineconeAsyncio-142"><a href="#PineconeAsyncio-142"><span class="linenos">142</span></a><span class="sd"> when exiting.</span> </span><span id="PineconeAsyncio-143"><a href="#PineconeAsyncio-143"><span class="linenos">143</span></a> </span><span id="PineconeAsyncio-144"><a href="#PineconeAsyncio-144"><span class="linenos">144</span></a><span class="sd"> ```python</span> </span><span id="PineconeAsyncio-145"><a href="#PineconeAsyncio-145"><span class="linenos">145</span></a><span class="sd"> import asyncio</span> </span><span id="PineconeAsyncio-146"><a href="#PineconeAsyncio-146"><span class="linenos">146</span></a><span class="sd"> from pinecone import PineconeAsyncio</span> </span><span id="PineconeAsyncio-147"><a href="#PineconeAsyncio-147"><span class="linenos">147</span></a> </span><span id="PineconeAsyncio-148"><a href="#PineconeAsyncio-148"><span class="linenos">148</span></a><span class="sd"> async def main():</span> </span><span id="PineconeAsyncio-149"><a href="#PineconeAsyncio-149"><span class="linenos">149</span></a><span class="sd"> async with PineconeAsyncio() as pc:</span> </span><span id="PineconeAsyncio-150"><a href="#PineconeAsyncio-150"><span class="linenos">150</span></a><span class="sd"> desc = await pc.describe_index(name="my-index")</span> </span><span id="PineconeAsyncio-151"><a href="#PineconeAsyncio-151"><span class="linenos">151</span></a> </span><span id="PineconeAsyncio-152"><a href="#PineconeAsyncio-152"><span class="linenos">152</span></a><span class="sd"> # No need to call close in this case because the "async with" syntax</span> </span><span id="PineconeAsyncio-153"><a href="#PineconeAsyncio-153"><span class="linenos">153</span></a><span class="sd"> # automatically calls close when exiting the block.</span> </span><span id="PineconeAsyncio-154"><a href="#PineconeAsyncio-154"><span class="linenos">154</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="PineconeAsyncio-155"><a href="#PineconeAsyncio-155"><span class="linenos">155</span></a><span class="sd"> ```</span> </span><span id="PineconeAsyncio-156"><a href="#PineconeAsyncio-156"><span class="linenos">156</span></a> </span><span id="PineconeAsyncio-157"><a href="#PineconeAsyncio-157"><span class="linenos">157</span></a><span class="sd"> """</span> </span><span id="PineconeAsyncio-158"><a href="#PineconeAsyncio-158"><span class="linenos">158</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">api_client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> </span><span id="PineconeAsyncio-159"><a href="#PineconeAsyncio-159"><span class="linenos">159</span></a> </span><span id="PineconeAsyncio-160"><a href="#PineconeAsyncio-160"><span class="linenos">160</span></a> <span class="nd">@property</span> </span><span id="PineconeAsyncio-161"><a href="#PineconeAsyncio-161"><span class="linenos">161</span></a> <span class="k">def</span> <span class="nf">inference</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="PineconeAsyncio-162"><a href="#PineconeAsyncio-162"><span class="linenos">162</span></a><span class="w"> </span><span class="sd">"""Dynamically create and cache the Inference instance."""</span> </span><span id="PineconeAsyncio-163"><a href="#PineconeAsyncio-163"><span class="linenos">163</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="PineconeAsyncio-164"><a href="#PineconeAsyncio-164"><span class="linenos">164</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="o">=</span> <span class="n">_AsyncioInference</span><span class="p">(</span><span class="n">api_client</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">api_client</span><span class="p">)</span> </span><span id="PineconeAsyncio-165"><a href="#PineconeAsyncio-165"><span class="linenos">165</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> </span><span id="PineconeAsyncio-166"><a href="#PineconeAsyncio-166"><span class="linenos">166</span></a> </span><span id="PineconeAsyncio-167"><a href="#PineconeAsyncio-167"><span class="linenos">167</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span> </span><span id="PineconeAsyncio-168"><a href="#PineconeAsyncio-168"><span class="linenos">168</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio-169"><a href="#PineconeAsyncio-169"><span class="linenos">169</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="PineconeAsyncio-170"><a href="#PineconeAsyncio-170"><span class="linenos">170</span></a> <span class="n">spec</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">,</span> <span class="n">ServerlessSpec</span><span class="p">,</span> <span class="n">PodSpec</span><span class="p">],</span> </span><span id="PineconeAsyncio-171"><a href="#PineconeAsyncio-171"><span class="linenos">171</span></a> <span class="n">dimension</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-172"><a href="#PineconeAsyncio-172"><span class="linenos">172</span></a> <span class="n">metric</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Metric</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">,</span> </span><span id="PineconeAsyncio-173"><a href="#PineconeAsyncio-173"><span class="linenos">173</span></a> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-174"><a href="#PineconeAsyncio-174"><span class="linenos">174</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> </span><span id="PineconeAsyncio-175"><a href="#PineconeAsyncio-175"><span class="linenos">175</span></a> <span class="n">vector_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">VectorType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">VectorType</span><span class="o">.</span><span class="n">DENSE</span><span class="p">,</span> </span><span id="PineconeAsyncio-176"><a href="#PineconeAsyncio-176"><span class="linenos">176</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-177"><a href="#PineconeAsyncio-177"><span class="linenos">177</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="PineconeAsyncio-178"><a href="#PineconeAsyncio-178"><span class="linenos">178</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_index_request</span><span class="p">(</span> </span><span id="PineconeAsyncio-179"><a href="#PineconeAsyncio-179"><span class="linenos">179</span></a> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> </span><span id="PineconeAsyncio-180"><a href="#PineconeAsyncio-180"><span class="linenos">180</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> </span><span id="PineconeAsyncio-181"><a href="#PineconeAsyncio-181"><span class="linenos">181</span></a> <span class="n">dimension</span><span class="o">=</span><span class="n">dimension</span><span class="p">,</span> </span><span id="PineconeAsyncio-182"><a href="#PineconeAsyncio-182"><span class="linenos">182</span></a> <span class="n">metric</span><span class="o">=</span><span class="n">metric</span><span class="p">,</span> </span><span id="PineconeAsyncio-183"><a href="#PineconeAsyncio-183"><span class="linenos">183</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="PineconeAsyncio-184"><a href="#PineconeAsyncio-184"><span class="linenos">184</span></a> <span class="n">vector_type</span><span class="o">=</span><span class="n">vector_type</span><span class="p">,</span> </span><span id="PineconeAsyncio-185"><a href="#PineconeAsyncio-185"><span class="linenos">185</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="PineconeAsyncio-186"><a href="#PineconeAsyncio-186"><span class="linenos">186</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-187"><a href="#PineconeAsyncio-187"><span class="linenos">187</span></a> <span class="n">resp</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span><span class="n">create_index_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="PineconeAsyncio-188"><a href="#PineconeAsyncio-188"><span class="linenos">188</span></a> </span><span id="PineconeAsyncio-189"><a href="#PineconeAsyncio-189"><span class="linenos">189</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="PineconeAsyncio-190"><a href="#PineconeAsyncio-190"><span class="linenos">190</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">resp</span><span class="p">)</span> </span><span id="PineconeAsyncio-191"><a href="#PineconeAsyncio-191"><span class="linenos">191</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">__poll_describe_index_until_ready</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> </span><span id="PineconeAsyncio-192"><a href="#PineconeAsyncio-192"><span class="linenos">192</span></a> </span><span id="PineconeAsyncio-193"><a href="#PineconeAsyncio-193"><span class="linenos">193</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_index_for_model</span><span class="p">(</span> </span><span id="PineconeAsyncio-194"><a href="#PineconeAsyncio-194"><span class="linenos">194</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio-195"><a href="#PineconeAsyncio-195"><span class="linenos">195</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="PineconeAsyncio-196"><a href="#PineconeAsyncio-196"><span class="linenos">196</span></a> <span class="n">cloud</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">CloudProvider</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> </span><span id="PineconeAsyncio-197"><a href="#PineconeAsyncio-197"><span class="linenos">197</span></a> <span class="n">region</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">AwsRegion</span><span class="p">,</span> <span class="n">GcpRegion</span><span class="p">,</span> <span class="n">AzureRegion</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> </span><span id="PineconeAsyncio-198"><a href="#PineconeAsyncio-198"><span class="linenos">198</span></a> <span class="n">embed</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">IndexEmbed</span><span class="p">,</span> <span class="n">CreateIndexForModelEmbedTypedDict</span><span class="p">],</span> </span><span id="PineconeAsyncio-199"><a href="#PineconeAsyncio-199"><span class="linenos">199</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-200"><a href="#PineconeAsyncio-200"><span class="linenos">200</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> </span><span id="PineconeAsyncio-201"><a href="#PineconeAsyncio-201"><span class="linenos">201</span></a> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-202"><a href="#PineconeAsyncio-202"><span class="linenos">202</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="PineconeAsyncio-203"><a href="#PineconeAsyncio-203"><span class="linenos">203</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_index_for_model_request</span><span class="p">(</span> </span><span id="PineconeAsyncio-204"><a href="#PineconeAsyncio-204"><span class="linenos">204</span></a> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> </span><span id="PineconeAsyncio-205"><a href="#PineconeAsyncio-205"><span class="linenos">205</span></a> <span class="n">cloud</span><span class="o">=</span><span class="n">cloud</span><span class="p">,</span> </span><span id="PineconeAsyncio-206"><a href="#PineconeAsyncio-206"><span class="linenos">206</span></a> <span class="n">region</span><span class="o">=</span><span class="n">region</span><span class="p">,</span> </span><span id="PineconeAsyncio-207"><a href="#PineconeAsyncio-207"><span class="linenos">207</span></a> <span class="n">embed</span><span class="o">=</span><span class="n">embed</span><span class="p">,</span> </span><span id="PineconeAsyncio-208"><a href="#PineconeAsyncio-208"><span class="linenos">208</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="PineconeAsyncio-209"><a href="#PineconeAsyncio-209"><span class="linenos">209</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="PineconeAsyncio-210"><a href="#PineconeAsyncio-210"><span class="linenos">210</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-211"><a href="#PineconeAsyncio-211"><span class="linenos">211</span></a> <span class="n">resp</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_index_for_model</span><span class="p">(</span><span class="n">req</span><span class="p">)</span> </span><span id="PineconeAsyncio-212"><a href="#PineconeAsyncio-212"><span class="linenos">212</span></a> </span><span id="PineconeAsyncio-213"><a href="#PineconeAsyncio-213"><span class="linenos">213</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="PineconeAsyncio-214"><a href="#PineconeAsyncio-214"><span class="linenos">214</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">resp</span><span class="p">)</span> </span><span id="PineconeAsyncio-215"><a href="#PineconeAsyncio-215"><span class="linenos">215</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">__poll_describe_index_until_ready</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> </span><span id="PineconeAsyncio-216"><a href="#PineconeAsyncio-216"><span class="linenos">216</span></a> </span><span id="PineconeAsyncio-217"><a href="#PineconeAsyncio-217"><span class="linenos">217</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">__poll_describe_index_until_ready</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> </span><span id="PineconeAsyncio-218"><a href="#PineconeAsyncio-218"><span class="linenos">218</span></a> <span class="n">description</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="PineconeAsyncio-219"><a href="#PineconeAsyncio-219"><span class="linenos">219</span></a> </span><span id="PineconeAsyncio-220"><a href="#PineconeAsyncio-220"><span class="linenos">220</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">is_ready</span><span class="p">()</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> </span><span id="PineconeAsyncio-221"><a href="#PineconeAsyncio-221"><span class="linenos">221</span></a> <span class="k">nonlocal</span> <span class="n">description</span> </span><span id="PineconeAsyncio-222"><a href="#PineconeAsyncio-222"><span class="linenos">222</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio-223"><a href="#PineconeAsyncio-223"><span class="linenos">223</span></a> <span class="k">return</span> <span class="n">description</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">ready</span> </span><span id="PineconeAsyncio-224"><a href="#PineconeAsyncio-224"><span class="linenos">224</span></a> </span><span id="PineconeAsyncio-225"><a href="#PineconeAsyncio-225"><span class="linenos">225</span></a> <span class="n">total_wait_time</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="PineconeAsyncio-226"><a href="#PineconeAsyncio-226"><span class="linenos">226</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="PineconeAsyncio-227"><a href="#PineconeAsyncio-227"><span class="linenos">227</span></a> <span class="c1"># Wait indefinitely</span> </span><span id="PineconeAsyncio-228"><a href="#PineconeAsyncio-228"><span class="linenos">228</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">is_ready</span><span class="p">():</span> </span><span id="PineconeAsyncio-229"><a href="#PineconeAsyncio-229"><span class="linenos">229</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span> </span><span id="PineconeAsyncio-230"><a href="#PineconeAsyncio-230"><span class="linenos">230</span></a> <span class="sa">f</span><span class="s2">"Waiting for index </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> to be ready. Total wait time </span><span class="si">{</span><span class="n">total_wait_time</span><span class="si">}</span><span class="s2"> seconds."</span> </span><span id="PineconeAsyncio-231"><a href="#PineconeAsyncio-231"><span class="linenos">231</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-232"><a href="#PineconeAsyncio-232"><span class="linenos">232</span></a> <span class="n">total_wait_time</span> <span class="o">+=</span> <span class="mi">5</span> </span><span id="PineconeAsyncio-233"><a href="#PineconeAsyncio-233"><span class="linenos">233</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="PineconeAsyncio-234"><a href="#PineconeAsyncio-234"><span class="linenos">234</span></a> </span><span id="PineconeAsyncio-235"><a href="#PineconeAsyncio-235"><span class="linenos">235</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="PineconeAsyncio-236"><a href="#PineconeAsyncio-236"><span class="linenos">236</span></a> <span class="c1"># Wait for a maximum of timeout seconds</span> </span><span id="PineconeAsyncio-237"><a href="#PineconeAsyncio-237"><span class="linenos">237</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">is_ready</span><span class="p">():</span> </span><span id="PineconeAsyncio-238"><a href="#PineconeAsyncio-238"><span class="linenos">238</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> </span><span id="PineconeAsyncio-239"><a href="#PineconeAsyncio-239"><span class="linenos">239</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Index </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> is not ready. Timeout reached."</span><span class="p">)</span> </span><span id="PineconeAsyncio-240"><a href="#PineconeAsyncio-240"><span class="linenos">240</span></a> <span class="n">link</span> <span class="o">=</span> <span class="n">docslinks</span><span class="p">[</span><span class="s2">"API_DESCRIBE_INDEX"</span><span class="p">]</span> </span><span id="PineconeAsyncio-241"><a href="#PineconeAsyncio-241"><span class="linenos">241</span></a> <span class="n">timeout_msg</span> <span class="o">=</span> <span class="p">(</span> </span><span id="PineconeAsyncio-242"><a href="#PineconeAsyncio-242"><span class="linenos">242</span></a> <span class="sa">f</span><span class="s2">"Please call describe_index() to confirm index status. See docs at </span><span class="si">{</span><span class="n">link</span><span class="si">}</span><span class="s2">"</span> </span><span id="PineconeAsyncio-243"><a href="#PineconeAsyncio-243"><span class="linenos">243</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-244"><a href="#PineconeAsyncio-244"><span class="linenos">244</span></a> <span class="k">raise</span> <span class="ne">TimeoutError</span><span class="p">(</span><span class="n">timeout_msg</span><span class="p">)</span> </span><span id="PineconeAsyncio-245"><a href="#PineconeAsyncio-245"><span class="linenos">245</span></a> </span><span id="PineconeAsyncio-246"><a href="#PineconeAsyncio-246"><span class="linenos">246</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span> </span><span id="PineconeAsyncio-247"><a href="#PineconeAsyncio-247"><span class="linenos">247</span></a> <span class="sa">f</span><span class="s2">"Waiting for index </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> to be ready. Total wait time: </span><span class="si">{</span><span class="n">total_wait_time</span><span class="si">}</span><span class="s2">"</span> </span><span id="PineconeAsyncio-248"><a href="#PineconeAsyncio-248"><span class="linenos">248</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-249"><a href="#PineconeAsyncio-249"><span class="linenos">249</span></a> <span class="n">total_wait_time</span> <span class="o">+=</span> <span class="mi">5</span> </span><span id="PineconeAsyncio-250"><a href="#PineconeAsyncio-250"><span class="linenos">250</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="PineconeAsyncio-251"><a href="#PineconeAsyncio-251"><span class="linenos">251</span></a> <span class="n">timeout</span> <span class="o">-=</span> <span class="mi">5</span> </span><span id="PineconeAsyncio-252"><a href="#PineconeAsyncio-252"><span class="linenos">252</span></a> </span><span id="PineconeAsyncio-253"><a href="#PineconeAsyncio-253"><span class="linenos">253</span></a> <span class="k">return</span> <span class="n">description</span> </span><span id="PineconeAsyncio-254"><a href="#PineconeAsyncio-254"><span class="linenos">254</span></a> </span><span id="PineconeAsyncio-255"><a href="#PineconeAsyncio-255"><span class="linenos">255</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">delete_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> </span><span id="PineconeAsyncio-256"><a href="#PineconeAsyncio-256"><span class="linenos">256</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">delete_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio-257"><a href="#PineconeAsyncio-257"><span class="linenos">257</span></a> </span><span id="PineconeAsyncio-258"><a href="#PineconeAsyncio-258"><span class="linenos">258</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="PineconeAsyncio-259"><a href="#PineconeAsyncio-259"><span class="linenos">259</span></a> <span class="k">return</span> </span><span id="PineconeAsyncio-260"><a href="#PineconeAsyncio-260"><span class="linenos">260</span></a> </span><span id="PineconeAsyncio-261"><a href="#PineconeAsyncio-261"><span class="linenos">261</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="PineconeAsyncio-262"><a href="#PineconeAsyncio-262"><span class="linenos">262</span></a> <span class="k">while</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">name</span><span class="p">):</span> </span><span id="PineconeAsyncio-263"><a href="#PineconeAsyncio-263"><span class="linenos">263</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="PineconeAsyncio-264"><a href="#PineconeAsyncio-264"><span class="linenos">264</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="PineconeAsyncio-265"><a href="#PineconeAsyncio-265"><span class="linenos">265</span></a> <span class="k">while</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">and</span> <span class="n">timeout</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span> </span><span id="PineconeAsyncio-266"><a href="#PineconeAsyncio-266"><span class="linenos">266</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="PineconeAsyncio-267"><a href="#PineconeAsyncio-267"><span class="linenos">267</span></a> <span class="n">timeout</span> <span class="o">-=</span> <span class="mi">5</span> </span><span id="PineconeAsyncio-268"><a href="#PineconeAsyncio-268"><span class="linenos">268</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">and</span> <span class="n">timeout</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> </span><span id="PineconeAsyncio-269"><a href="#PineconeAsyncio-269"><span class="linenos">269</span></a> <span class="k">raise</span> <span class="p">(</span> </span><span id="PineconeAsyncio-270"><a href="#PineconeAsyncio-270"><span class="linenos">270</span></a> <span class="ne">TimeoutError</span><span class="p">(</span> </span><span id="PineconeAsyncio-271"><a href="#PineconeAsyncio-271"><span class="linenos">271</span></a> <span class="s2">"Please call the list_indexes API (</span><span class="si">{}</span><span class="s2">) to confirm if index is deleted"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> </span><span id="PineconeAsyncio-272"><a href="#PineconeAsyncio-272"><span class="linenos">272</span></a> <span class="s2">"https://www.pinecone.io/docs/api/operation/list_indexes/"</span> </span><span id="PineconeAsyncio-273"><a href="#PineconeAsyncio-273"><span class="linenos">273</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-274"><a href="#PineconeAsyncio-274"><span class="linenos">274</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-275"><a href="#PineconeAsyncio-275"><span class="linenos">275</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-276"><a href="#PineconeAsyncio-276"><span class="linenos">276</span></a> </span><span id="PineconeAsyncio-277"><a href="#PineconeAsyncio-277"><span class="linenos">277</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">list_indexes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">IndexList</span><span class="p">:</span> </span><span id="PineconeAsyncio-278"><a href="#PineconeAsyncio-278"><span class="linenos">278</span></a> <span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> </span><span id="PineconeAsyncio-279"><a href="#PineconeAsyncio-279"><span class="linenos">279</span></a> <span class="k">return</span> <span class="n">IndexList</span><span class="p">(</span><span class="n">response</span><span class="p">)</span> </span><span id="PineconeAsyncio-280"><a href="#PineconeAsyncio-280"><span class="linenos">280</span></a> </span><span id="PineconeAsyncio-281"><a href="#PineconeAsyncio-281"><span class="linenos">281</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">describe_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="PineconeAsyncio-282"><a href="#PineconeAsyncio-282"><span class="linenos">282</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio-283"><a href="#PineconeAsyncio-283"><span class="linenos">283</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> </span><span id="PineconeAsyncio-284"><a href="#PineconeAsyncio-284"><span class="linenos">284</span></a> </span><span id="PineconeAsyncio-285"><a href="#PineconeAsyncio-285"><span class="linenos">285</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">has_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> </span><span id="PineconeAsyncio-286"><a href="#PineconeAsyncio-286"><span class="linenos">286</span></a> <span class="n">available_indexes</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> </span><span id="PineconeAsyncio-287"><a href="#PineconeAsyncio-287"><span class="linenos">287</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">available_indexes</span><span class="o">.</span><span class="n">names</span><span class="p">():</span> </span><span id="PineconeAsyncio-288"><a href="#PineconeAsyncio-288"><span class="linenos">288</span></a> <span class="k">return</span> <span class="kc">True</span> </span><span id="PineconeAsyncio-289"><a href="#PineconeAsyncio-289"><span class="linenos">289</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="PineconeAsyncio-290"><a href="#PineconeAsyncio-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="kc">False</span> </span><span id="PineconeAsyncio-291"><a href="#PineconeAsyncio-291"><span class="linenos">291</span></a> </span><span id="PineconeAsyncio-292"><a href="#PineconeAsyncio-292"><span class="linenos">292</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">configure_index</span><span class="p">(</span> </span><span id="PineconeAsyncio-293"><a href="#PineconeAsyncio-293"><span class="linenos">293</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio-294"><a href="#PineconeAsyncio-294"><span class="linenos">294</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="PineconeAsyncio-295"><a href="#PineconeAsyncio-295"><span class="linenos">295</span></a> <span class="n">replicas</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-296"><a href="#PineconeAsyncio-296"><span class="linenos">296</span></a> <span class="n">pod_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">PodType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-297"><a href="#PineconeAsyncio-297"><span class="linenos">297</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-298"><a href="#PineconeAsyncio-298"><span class="linenos">298</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio-299"><a href="#PineconeAsyncio-299"><span class="linenos">299</span></a> <span class="p">):</span> </span><span id="PineconeAsyncio-300"><a href="#PineconeAsyncio-300"><span class="linenos">300</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio-301"><a href="#PineconeAsyncio-301"><span class="linenos">301</span></a> </span><span id="PineconeAsyncio-302"><a href="#PineconeAsyncio-302"><span class="linenos">302</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">configure_index_request</span><span class="p">(</span> </span><span id="PineconeAsyncio-303"><a href="#PineconeAsyncio-303"><span class="linenos">303</span></a> <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">,</span> </span><span id="PineconeAsyncio-304"><a href="#PineconeAsyncio-304"><span class="linenos">304</span></a> <span class="n">replicas</span><span class="o">=</span><span class="n">replicas</span><span class="p">,</span> </span><span id="PineconeAsyncio-305"><a href="#PineconeAsyncio-305"><span class="linenos">305</span></a> <span class="n">pod_type</span><span class="o">=</span><span class="n">pod_type</span><span class="p">,</span> </span><span id="PineconeAsyncio-306"><a href="#PineconeAsyncio-306"><span class="linenos">306</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="PineconeAsyncio-307"><a href="#PineconeAsyncio-307"><span class="linenos">307</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="PineconeAsyncio-308"><a href="#PineconeAsyncio-308"><span class="linenos">308</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio-309"><a href="#PineconeAsyncio-309"><span class="linenos">309</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">configure_index_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="PineconeAsyncio-310"><a href="#PineconeAsyncio-310"><span class="linenos">310</span></a> </span><span id="PineconeAsyncio-311"><a href="#PineconeAsyncio-311"><span class="linenos">311</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">source</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="PineconeAsyncio-312"><a href="#PineconeAsyncio-312"><span class="linenos">312</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_collection_request</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">)</span> </span><span id="PineconeAsyncio-313"><a href="#PineconeAsyncio-313"><span class="linenos">313</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_collection</span><span class="p">(</span><span class="n">create_collection_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="PineconeAsyncio-314"><a href="#PineconeAsyncio-314"><span class="linenos">314</span></a> </span><span id="PineconeAsyncio-315"><a href="#PineconeAsyncio-315"><span class="linenos">315</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">list_collections</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">CollectionList</span><span class="p">:</span> </span><span id="PineconeAsyncio-316"><a href="#PineconeAsyncio-316"><span class="linenos">316</span></a> <span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">list_collections</span><span class="p">()</span> </span><span id="PineconeAsyncio-317"><a href="#PineconeAsyncio-317"><span class="linenos">317</span></a> <span class="k">return</span> <span class="n">CollectionList</span><span class="p">(</span><span class="n">response</span><span class="p">)</span> </span><span id="PineconeAsyncio-318"><a href="#PineconeAsyncio-318"><span class="linenos">318</span></a> </span><span id="PineconeAsyncio-319"><a href="#PineconeAsyncio-319"><span class="linenos">319</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">delete_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="PineconeAsyncio-320"><a href="#PineconeAsyncio-320"><span class="linenos">320</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">delete_collection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio-321"><a href="#PineconeAsyncio-321"><span class="linenos">321</span></a> </span><span id="PineconeAsyncio-322"><a href="#PineconeAsyncio-322"><span class="linenos">322</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">describe_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="PineconeAsyncio-323"><a href="#PineconeAsyncio-323"><span class="linenos">323</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">describe_collection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">to_dict</span><span class="p">()</span> </span><span id="PineconeAsyncio-324"><a href="#PineconeAsyncio-324"><span class="linenos">324</span></a> </span><span id="PineconeAsyncio-325"><a href="#PineconeAsyncio-325"><span class="linenos">325</span></a> <span class="k">def</span> <span class="nf">IndexAsyncio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">_IndexAsyncio</span><span class="p">:</span> </span><span id="PineconeAsyncio-326"><a href="#PineconeAsyncio-326"><span class="linenos">326</span></a> <span class="n">api_key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">api_key</span> </span><span id="PineconeAsyncio-327"><a href="#PineconeAsyncio-327"><span class="linenos">327</span></a> <span class="n">openapi_config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span> </span><span id="PineconeAsyncio-328"><a href="#PineconeAsyncio-328"><span class="linenos">328</span></a> </span><span id="PineconeAsyncio-329"><a href="#PineconeAsyncio-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="n">host</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">host</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span> </span><span id="PineconeAsyncio-330"><a href="#PineconeAsyncio-330"><span class="linenos">330</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"A host must be specified"</span><span class="p">)</span> </span><span id="PineconeAsyncio-331"><a href="#PineconeAsyncio-331"><span class="linenos">331</span></a> </span><span id="PineconeAsyncio-332"><a href="#PineconeAsyncio-332"><span class="linenos">332</span></a> <span class="n">check_realistic_host</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> </span><span id="PineconeAsyncio-333"><a href="#PineconeAsyncio-333"><span class="linenos">333</span></a> <span class="n">index_host</span> <span class="o">=</span> <span class="n">normalize_host</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> </span><span id="PineconeAsyncio-334"><a href="#PineconeAsyncio-334"><span class="linenos">334</span></a> </span><span id="PineconeAsyncio-335"><a href="#PineconeAsyncio-335"><span class="linenos">335</span></a> <span class="k">return</span> <span class="n">_IndexAsyncio</span><span class="p">(</span> </span><span id="PineconeAsyncio-336"><a href="#PineconeAsyncio-336"><span class="linenos">336</span></a> <span class="n">host</span><span class="o">=</span><span class="n">index_host</span><span class="p">,</span> </span><span id="PineconeAsyncio-337"><a href="#PineconeAsyncio-337"><span class="linenos">337</span></a> <span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">,</span> </span><span id="PineconeAsyncio-338"><a href="#PineconeAsyncio-338"><span class="linenos">338</span></a> <span class="n">openapi_config</span><span class="o">=</span><span class="n">openapi_config</span><span class="p">,</span> </span><span id="PineconeAsyncio-339"><a href="#PineconeAsyncio-339"><span class="linenos">339</span></a> <span class="n">source_tag</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">source_tag</span><span class="p">,</span> </span><span id="PineconeAsyncio-340"><a href="#PineconeAsyncio-340"><span class="linenos">340</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="PineconeAsyncio-341"><a href="#PineconeAsyncio-341"><span class="linenos">341</span></a> <span class="p">)</span> </span></pre></div> <div class="docstring"><p><code><a href="#PineconeAsyncio">PineconeAsyncio</a></code> is an asyncio client for interacting with Pinecone's control plane API.</p> <p>This class implements methods for managing and interacting with Pinecone resources such as collections and indexes.</p> <p>To perform data operations such as inserting and querying vectors, use the <code><a href="#PineconeAsyncio.IndexAsyncio">IndexAsyncio</a></code> class.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">Pinecone</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">Pinecone</span><span class="p">()</span> <span class="k">async</span> <span class="k">with</span> <span class="n">pc</span><span class="o">.</span><span class="n">IndexAsyncio</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">"my-index.pinecone.io"</span><span class="p">)</span> <span class="k">as</span> <span class="n">idx</span><span class="p">:</span> <span class="k">await</span> <span class="n">idx</span><span class="o">.</span><span class="n">upsert</span><span class="p">(</span><span class="n">vectors</span><span class="o">=</span><span class="p">[(</span><span class="mi">1</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">])])</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> <div id="PineconeAsyncio.__init__" class="classattr"> <input id="PineconeAsyncio.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="name">PineconeAsyncio</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">api_key</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">host</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">proxy_url</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">ssl_ca_certs</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">ssl_verify</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">additional_headers</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{}</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span>)</span> <label class="view-source-button" for="PineconeAsyncio.__init__-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.__init__"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.__init__-65"><a href="#PineconeAsyncio.__init__-65"><span class="linenos"> 65</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> </span><span id="PineconeAsyncio.__init__-66"><a href="#PineconeAsyncio.__init__-66"><span class="linenos"> 66</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-67"><a href="#PineconeAsyncio.__init__-67"><span class="linenos"> 67</span></a> <span class="n">api_key</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-68"><a href="#PineconeAsyncio.__init__-68"><span class="linenos"> 68</span></a> <span class="n">host</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-69"><a href="#PineconeAsyncio.__init__-69"><span class="linenos"> 69</span></a> <span class="n">proxy_url</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-70"><a href="#PineconeAsyncio.__init__-70"><span class="linenos"> 70</span></a> <span class="c1"># proxy_headers: Optional[Dict[str, str]] = None,</span> </span><span id="PineconeAsyncio.__init__-71"><a href="#PineconeAsyncio.__init__-71"><span class="linenos"> 71</span></a> <span class="n">ssl_ca_certs</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-72"><a href="#PineconeAsyncio.__init__-72"><span class="linenos"> 72</span></a> <span class="n">ssl_verify</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-73"><a href="#PineconeAsyncio.__init__-73"><span class="linenos"> 73</span></a> <span class="n">additional_headers</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{},</span> </span><span id="PineconeAsyncio.__init__-74"><a href="#PineconeAsyncio.__init__-74"><span class="linenos"> 74</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-75"><a href="#PineconeAsyncio.__init__-75"><span class="linenos"> 75</span></a> <span class="p">):</span> </span><span id="PineconeAsyncio.__init__-76"><a href="#PineconeAsyncio.__init__-76"><span class="linenos"> 76</span></a> <span class="k">for</span> <span class="n">deprecated_kwarg</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"config"</span><span class="p">,</span> <span class="s2">"openapi_config"</span><span class="p">}:</span> </span><span id="PineconeAsyncio.__init__-77"><a href="#PineconeAsyncio.__init__-77"><span class="linenos"> 77</span></a> <span class="k">if</span> <span class="n">deprecated_kwarg</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> </span><span id="PineconeAsyncio.__init__-78"><a href="#PineconeAsyncio.__init__-78"><span class="linenos"> 78</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> </span><span id="PineconeAsyncio.__init__-79"><a href="#PineconeAsyncio.__init__-79"><span class="linenos"> 79</span></a> <span class="sa">f</span><span class="s2">"Passing </span><span class="si">{</span><span class="n">deprecated_kwarg</span><span class="si">}</span><span class="s2"> is no longer supported. Please pass individual settings such as proxy_url, ssl_ca_certs, and ssl_verify directly to the Pinecone constructor as keyword arguments. See the README at </span><span class="si">{</span><span class="n">docslinks</span><span class="p">[</span><span class="s1">'README'</span><span class="p">]</span><span class="si">}</span><span class="s2"> for examples."</span> </span><span id="PineconeAsyncio.__init__-80"><a href="#PineconeAsyncio.__init__-80"><span class="linenos"> 80</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.__init__-81"><a href="#PineconeAsyncio.__init__-81"><span class="linenos"> 81</span></a> </span><span id="PineconeAsyncio.__init__-82"><a href="#PineconeAsyncio.__init__-82"><span class="linenos"> 82</span></a> <span class="k">for</span> <span class="n">unimplemented_kwarg</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"proxy_headers"</span><span class="p">}:</span> </span><span id="PineconeAsyncio.__init__-83"><a href="#PineconeAsyncio.__init__-83"><span class="linenos"> 83</span></a> <span class="k">if</span> <span class="n">unimplemented_kwarg</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> </span><span id="PineconeAsyncio.__init__-84"><a href="#PineconeAsyncio.__init__-84"><span class="linenos"> 84</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> </span><span id="PineconeAsyncio.__init__-85"><a href="#PineconeAsyncio.__init__-85"><span class="linenos"> 85</span></a> <span class="sa">f</span><span class="s2">"You have passed </span><span class="si">{</span><span class="n">unimplemented_kwarg</span><span class="si">}</span><span class="s2"> but this configuration has not been implemented for PineconeAsyncio."</span> </span><span id="PineconeAsyncio.__init__-86"><a href="#PineconeAsyncio.__init__-86"><span class="linenos"> 86</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.__init__-87"><a href="#PineconeAsyncio.__init__-87"><span class="linenos"> 87</span></a> </span><span id="PineconeAsyncio.__init__-88"><a href="#PineconeAsyncio.__init__-88"><span class="linenos"> 88</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">PineconeConfig</span><span class="o">.</span><span class="n">build</span><span class="p">(</span> </span><span id="PineconeAsyncio.__init__-89"><a href="#PineconeAsyncio.__init__-89"><span class="linenos"> 89</span></a> <span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-90"><a href="#PineconeAsyncio.__init__-90"><span class="linenos"> 90</span></a> <span class="n">host</span><span class="o">=</span><span class="n">host</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-91"><a href="#PineconeAsyncio.__init__-91"><span class="linenos"> 91</span></a> <span class="n">additional_headers</span><span class="o">=</span><span class="n">additional_headers</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-92"><a href="#PineconeAsyncio.__init__-92"><span class="linenos"> 92</span></a> <span class="n">proxy_url</span><span class="o">=</span><span class="n">proxy_url</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-93"><a href="#PineconeAsyncio.__init__-93"><span class="linenos"> 93</span></a> <span class="n">proxy_headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-94"><a href="#PineconeAsyncio.__init__-94"><span class="linenos"> 94</span></a> <span class="n">ssl_ca_certs</span><span class="o">=</span><span class="n">ssl_ca_certs</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-95"><a href="#PineconeAsyncio.__init__-95"><span class="linenos"> 95</span></a> <span class="n">ssl_verify</span><span class="o">=</span><span class="n">ssl_verify</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-96"><a href="#PineconeAsyncio.__init__-96"><span class="linenos"> 96</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-97"><a href="#PineconeAsyncio.__init__-97"><span class="linenos"> 97</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.__init__-98"><a href="#PineconeAsyncio.__init__-98"><span class="linenos"> 98</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio.__init__-99"><a href="#PineconeAsyncio.__init__-99"><span class="linenos"> 99</span></a> </span><span id="PineconeAsyncio.__init__-100"><a href="#PineconeAsyncio.__init__-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span> <span class="o">=</span> <span class="n">ConfigBuilder</span><span class="o">.</span><span class="n">build_openapi_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> </span><span id="PineconeAsyncio.__init__-101"><a href="#PineconeAsyncio.__init__-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio.__init__-102"><a href="#PineconeAsyncio.__init__-102"><span class="linenos">102</span></a> </span><span id="PineconeAsyncio.__init__-103"><a href="#PineconeAsyncio.__init__-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Lazy initialization</span> </span><span id="PineconeAsyncio.__init__-104"><a href="#PineconeAsyncio.__init__-104"><span class="linenos">104</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span><span id="PineconeAsyncio.__init__-105"><a href="#PineconeAsyncio.__init__-105"><span class="linenos">105</span></a> </span><span id="PineconeAsyncio.__init__-106"><a href="#PineconeAsyncio.__init__-106"><span class="linenos">106</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span> <span class="o">=</span> <span class="n">setup_async_openapi_client</span><span class="p">(</span> </span><span id="PineconeAsyncio.__init__-107"><a href="#PineconeAsyncio.__init__-107"><span class="linenos">107</span></a> <span class="n">api_client_klass</span><span class="o">=</span><span class="n">AsyncioApiClient</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-108"><a href="#PineconeAsyncio.__init__-108"><span class="linenos">108</span></a> <span class="n">api_klass</span><span class="o">=</span><span class="n">AsyncioManageIndexesApi</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-109"><a href="#PineconeAsyncio.__init__-109"><span class="linenos">109</span></a> <span class="n">config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-110"><a href="#PineconeAsyncio.__init__-110"><span class="linenos">110</span></a> <span class="n">openapi_config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-111"><a href="#PineconeAsyncio.__init__-111"><span class="linenos">111</span></a> <span class="n">api_version</span><span class="o">=</span><span class="n">API_VERSION</span><span class="p">,</span> </span><span id="PineconeAsyncio.__init__-112"><a href="#PineconeAsyncio.__init__-112"><span class="linenos">112</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.__init__-113"><a href="#PineconeAsyncio.__init__-113"><span class="linenos">113</span></a><span class="w"> </span><span class="sd">""" @private """</span> </span></pre></div> <div class="docstring"><p>The <code><a href="#PineconeAsyncio">PineconeAsyncio</a></code> class is the main entry point for interacting with Pinecone using asyncio. It is used to create, delete, and manage your indexes and collections. Except for needing to use <code>async with</code> when instantiating the client and <code>await</code> when calling its methods, the functionality provided by this class is extremely similar to the functionality of the <code>Pinecone</code> class.</p> <h6 id="parameters">Parameters</h6> <ul> <li><strong>api_key</strong>: The API key to use for authentication. If not passed via kwarg, the API key will be read from the environment variable <code>PINECONE_API_KEY</code>.</li> <li><strong>host</strong>: The control plane host to connect to.</li> <li><strong>proxy_url: The URL of the proxy to use for the connection. Default</strong>: <code>None</code></li> <li><strong>proxy_headers: Additional headers to pass to the proxy. Use this if your proxy setup requires authentication. Default</strong>: <code>{}</code></li> <li><strong>ssl_ca_certs: The path to the SSL CA certificate bundle to use for the connection. This path should point to a file in PEM format. Default</strong>: <code>None</code></li> <li><strong>ssl_verify: SSL verification is performed by default, but can be disabled using the boolean flag. Default</strong>: <code>True</code></li> <li><strong>config</strong>: A <code>pinecone.config.Config</code> object. If passed, the <code>api_key</code> and <code>host</code> parameters will be ignored.</li> <li><strong>additional_headers: Additional headers to pass to the API. Default</strong>: <code>{}</code></li> </ul> <h3 id="managing-the-async-context">Managing the async context</h3> <p>The <code><a href="#PineconeAsyncio">PineconeAsyncio</a></code> class relies on an underlying <code>aiohttp</code> <code>ClientSession</code> to make asynchronous HTTP requests. To ensure that the session is properly closed, you should use the <code>async with</code> syntax when creating a <code><a href="#PineconeAsyncio">PineconeAsyncio</a></code> object. This will ensure that the session is properly closed when the context is exited.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="s1">'YOUR_API_KEY'</span><span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <p>As an alternative, if you prefer to avoid code with a nested appearance and are willing to manage cleanup yourself, you can await the <code><a href="#PineconeAsyncio.close">close()</a></code> method to close the session when you are done.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">PineconeAsyncio</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="s1">'YOUR_API_KEY'</span><span class="p">)</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="c1"># You're responsible for calling this yourself</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <p>Failing to do this may result in error messages appearing from the underlyling aiohttp library.</p> <h3 id="configuration-with-environment-variables">Configuration with environment variables</h3> <p>If you instantiate the Pinecone client with no arguments, it will attempt to read the API key from the environment variable <code>PINECONE_API_KEY</code>.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="configuration-with-keyword-arguments">Configuration with keyword arguments</h3> <p>If you prefer being more explicit in your code, you can also pass the API as</p> <h3 id="configuration-with-environment-variables-2">Configuration with environment variables</h3> <p>If you instantiate the Pinecone client with no arguments, it will attempt to read the API key from the environment variable <code>PINECONE_API_KEY</code>.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="configuration-with-keyword-arguments-2">Configuration with keyword arguments</h3> <p>If you prefer being more explicit in your code, you can also pass the API as</p> <h3 id="configuration-with-environment-variables-3">Configuration with environment variables</h3> <p>If you instantiate the Pinecone client with no arguments, it will attempt to read the API key from the environment variable <code>PINECONE_API_KEY</code>.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="configuration-with-keyword-arguments-3">Configuration with keyword arguments</h3> <p>If you prefer being more explicit in your code, you can also pass the API as a keyword argument.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">Pinecone</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_API_KEY"</span><span class="p">))</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="environment-variables">Environment variables</h3> <p>The Pinecone client supports the following environment variables:</p> <ul> <li><code>PINECONE_API_KEY</code>: The API key to use for authentication. If not passed via kwarg, the API key will be read from the environment variable <code>PINECONE_API_KEY</code>.</li> </ul> <h3 id="proxy-configuration">Proxy configuration</h3> <p>If your network setup requires you to interact with Pinecone via a proxy, you will need to pass additional configuration using optional keyword parameters. These optional parameters are used to configure an SSL context and passed to <code>aiohttp</code>, which is the underlying library currently used by the PineconeAsyncio client to make HTTP requests.</p> <p>Here is a basic example:</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span> <span class="n">api_key</span><span class="o">=</span><span class="s1">'YOUR_API_KEY'</span><span class="p">,</span> <span class="n">proxy_url</span><span class="o">=</span><span class="s1">'https://your-proxy.com'</span> <span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="n">index_list</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="using-proxies-with-self-signed-certificates">Using proxies with self-signed certificates</h3> <p>By default the Pinecone Python client will perform SSL certificate verification using the CA bundle maintained by Mozilla in the <a href="https://pypi.org/project/certifi/">certifi</a> package. If your proxy server is using a self-signed certificate, you will need to pass the path to the certificate in PEM format using the <code>ssl_ca_certs</code> parameter.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span> <span class="n">api_key</span><span class="o">=</span><span class="s1">'YOUR_API_KEY'</span><span class="p">,</span> <span class="n">proxy_url</span><span class="o">=</span><span class="s1">'https://your-proxy.com'</span><span class="p">,</span> <span class="n">ssl_ca_certs</span><span class="o">=</span><span class="s1">'path/to/cert-bundle.pem'</span> <span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="disabling-ssl-verification">Disabling SSL verification</h3> <p>If you would like to disable SSL verification, you can pass the <code>ssl_verify</code> parameter with a value of <code>False</code>. We do not recommend going to production with SSL verification disabled but there are situations where this is useful such as testing with Pinecone Local running in a docker container.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span> <span class="n">api_key</span><span class="o">=</span><span class="s1">'YOUR_API_KEY'</span><span class="p">,</span> <span class="n">ssl_verify</span><span class="o">=</span><span class="kc">False</span> <span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="s1">'my_index'</span><span class="p">):</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s1">'my_index'</span><span class="p">,</span> <span class="n">dimension</span><span class="o">=</span><span class="mi">1536</span><span class="p">,</span> <span class="n">metric</span><span class="o">=</span><span class="s1">'cosine'</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="n">ServerlessSpec</span><span class="p">(</span><span class="n">cloud</span><span class="o">=</span><span class="s1">'aws'</span><span class="p">,</span> <span class="n">region</span><span class="o">=</span><span class="s1">'us-west-2'</span><span class="p">)</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="passing-additional-headers">Passing additional headers</h3> <p>If you need to pass additional headers with each request to the Pinecone API, you can do so using the <code>additional_headers</code> parameter. This is primarily for internal testing and end-users shouldn't need to do this unless specifically instructed to do so.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span> <span class="n">api_key</span><span class="o">=</span><span class="s1">'YOUR_API_KEY'</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="s1">'https://api-staging.pinecone.io'</span><span class="p">,</span> <span class="n">additional_headers</span><span class="o">=</span><span class="p">{</span><span class="s1">'X-My-Header'</span><span class="p">:</span> <span class="s1">'my-value'</span><span class="p">}</span> <span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Do async things</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.close" class="classattr"> <input id="PineconeAsyncio.close-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">close</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="PineconeAsyncio.close-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.close"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.close-121"><a href="#PineconeAsyncio.close-121"><span class="linenos">121</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="PineconeAsyncio.close-122"><a href="#PineconeAsyncio.close-122"><span class="linenos">122</span></a><span class="w"> </span><span class="sd">"""Cleanup resources used by the Pinecone client.</span> </span><span id="PineconeAsyncio.close-123"><a href="#PineconeAsyncio.close-123"><span class="linenos">123</span></a> </span><span id="PineconeAsyncio.close-124"><a href="#PineconeAsyncio.close-124"><span class="linenos">124</span></a><span class="sd"> This method should be called when the client is no longer needed so that</span> </span><span id="PineconeAsyncio.close-125"><a href="#PineconeAsyncio.close-125"><span class="linenos">125</span></a><span class="sd"> it can cleanup the aioahttp session and other resources.</span> </span><span id="PineconeAsyncio.close-126"><a href="#PineconeAsyncio.close-126"><span class="linenos">126</span></a> </span><span id="PineconeAsyncio.close-127"><a href="#PineconeAsyncio.close-127"><span class="linenos">127</span></a><span class="sd"> After close has been called, the client instance should not be used.</span> </span><span id="PineconeAsyncio.close-128"><a href="#PineconeAsyncio.close-128"><span class="linenos">128</span></a> </span><span id="PineconeAsyncio.close-129"><a href="#PineconeAsyncio.close-129"><span class="linenos">129</span></a><span class="sd"> ```python</span> </span><span id="PineconeAsyncio.close-130"><a href="#PineconeAsyncio.close-130"><span class="linenos">130</span></a><span class="sd"> import asyncio</span> </span><span id="PineconeAsyncio.close-131"><a href="#PineconeAsyncio.close-131"><span class="linenos">131</span></a><span class="sd"> from pinecone import PineconeAsyncio</span> </span><span id="PineconeAsyncio.close-132"><a href="#PineconeAsyncio.close-132"><span class="linenos">132</span></a> </span><span id="PineconeAsyncio.close-133"><a href="#PineconeAsyncio.close-133"><span class="linenos">133</span></a><span class="sd"> async def main():</span> </span><span id="PineconeAsyncio.close-134"><a href="#PineconeAsyncio.close-134"><span class="linenos">134</span></a><span class="sd"> pc = PineconeAsyncio()</span> </span><span id="PineconeAsyncio.close-135"><a href="#PineconeAsyncio.close-135"><span class="linenos">135</span></a><span class="sd"> desc = await pc.describe_index(name="my-index")</span> </span><span id="PineconeAsyncio.close-136"><a href="#PineconeAsyncio.close-136"><span class="linenos">136</span></a><span class="sd"> await pc.close()</span> </span><span id="PineconeAsyncio.close-137"><a href="#PineconeAsyncio.close-137"><span class="linenos">137</span></a> </span><span id="PineconeAsyncio.close-138"><a href="#PineconeAsyncio.close-138"><span class="linenos">138</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="PineconeAsyncio.close-139"><a href="#PineconeAsyncio.close-139"><span class="linenos">139</span></a><span class="sd"> ```</span> </span><span id="PineconeAsyncio.close-140"><a href="#PineconeAsyncio.close-140"><span class="linenos">140</span></a> </span><span id="PineconeAsyncio.close-141"><a href="#PineconeAsyncio.close-141"><span class="linenos">141</span></a><span class="sd"> If you are using the client as a context manager, the close method is called automatically</span> </span><span id="PineconeAsyncio.close-142"><a href="#PineconeAsyncio.close-142"><span class="linenos">142</span></a><span class="sd"> when exiting.</span> </span><span id="PineconeAsyncio.close-143"><a href="#PineconeAsyncio.close-143"><span class="linenos">143</span></a> </span><span id="PineconeAsyncio.close-144"><a href="#PineconeAsyncio.close-144"><span class="linenos">144</span></a><span class="sd"> ```python</span> </span><span id="PineconeAsyncio.close-145"><a href="#PineconeAsyncio.close-145"><span class="linenos">145</span></a><span class="sd"> import asyncio</span> </span><span id="PineconeAsyncio.close-146"><a href="#PineconeAsyncio.close-146"><span class="linenos">146</span></a><span class="sd"> from pinecone import PineconeAsyncio</span> </span><span id="PineconeAsyncio.close-147"><a href="#PineconeAsyncio.close-147"><span class="linenos">147</span></a> </span><span id="PineconeAsyncio.close-148"><a href="#PineconeAsyncio.close-148"><span class="linenos">148</span></a><span class="sd"> async def main():</span> </span><span id="PineconeAsyncio.close-149"><a href="#PineconeAsyncio.close-149"><span class="linenos">149</span></a><span class="sd"> async with PineconeAsyncio() as pc:</span> </span><span id="PineconeAsyncio.close-150"><a href="#PineconeAsyncio.close-150"><span class="linenos">150</span></a><span class="sd"> desc = await pc.describe_index(name="my-index")</span> </span><span id="PineconeAsyncio.close-151"><a href="#PineconeAsyncio.close-151"><span class="linenos">151</span></a> </span><span id="PineconeAsyncio.close-152"><a href="#PineconeAsyncio.close-152"><span class="linenos">152</span></a><span class="sd"> # No need to call close in this case because the "async with" syntax</span> </span><span id="PineconeAsyncio.close-153"><a href="#PineconeAsyncio.close-153"><span class="linenos">153</span></a><span class="sd"> # automatically calls close when exiting the block.</span> </span><span id="PineconeAsyncio.close-154"><a href="#PineconeAsyncio.close-154"><span class="linenos">154</span></a><span class="sd"> asyncio.run(main())</span> </span><span id="PineconeAsyncio.close-155"><a href="#PineconeAsyncio.close-155"><span class="linenos">155</span></a><span class="sd"> ```</span> </span><span id="PineconeAsyncio.close-156"><a href="#PineconeAsyncio.close-156"><span class="linenos">156</span></a> </span><span id="PineconeAsyncio.close-157"><a href="#PineconeAsyncio.close-157"><span class="linenos">157</span></a><span class="sd"> """</span> </span><span id="PineconeAsyncio.close-158"><a href="#PineconeAsyncio.close-158"><span class="linenos">158</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">api_client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> </span></pre></div> <div class="docstring"><p>Cleanup resources used by the Pinecone client.</p> <p>This method should be called when the client is no longer needed so that it can cleanup the aioahttp session and other resources.</p> <p>After close has been called, the client instance should not be used.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="n">desc</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">"my-index"</span><span class="p">)</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <p>If you are using the client as a context manager, the close method is called automatically when exiting.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="n">desc</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">"my-index"</span><span class="p">)</span> <span class="c1"># No need to call close in this case because the "async with" syntax</span> <span class="c1"># automatically calls close when exiting the block.</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.inference" class="classattr"> <input id="PineconeAsyncio.inference-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr variable"> <span class="name">inference</span> <label class="view-source-button" for="PineconeAsyncio.inference-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.inference"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.inference-160"><a href="#PineconeAsyncio.inference-160"><span class="linenos">160</span></a> <span class="nd">@property</span> </span><span id="PineconeAsyncio.inference-161"><a href="#PineconeAsyncio.inference-161"><span class="linenos">161</span></a> <span class="k">def</span> <span class="nf">inference</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="PineconeAsyncio.inference-162"><a href="#PineconeAsyncio.inference-162"><span class="linenos">162</span></a><span class="w"> </span><span class="sd">"""Dynamically create and cache the Inference instance."""</span> </span><span id="PineconeAsyncio.inference-163"><a href="#PineconeAsyncio.inference-163"><span class="linenos">163</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="PineconeAsyncio.inference-164"><a href="#PineconeAsyncio.inference-164"><span class="linenos">164</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> <span class="o">=</span> <span class="n">_AsyncioInference</span><span class="p">(</span><span class="n">api_client</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">api_client</span><span class="p">)</span> </span><span id="PineconeAsyncio.inference-165"><a href="#PineconeAsyncio.inference-165"><span class="linenos">165</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_inference</span> </span></pre></div> <div class="docstring"><p>Dynamically create and cache the Inference instance.</p> </div> </div> <div id="PineconeAsyncio.create_index" class="classattr"> <input id="PineconeAsyncio.create_index-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">create_index</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">spec</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">,</span> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">serverless_spec</span><span class="o">.</span><span class="n">ServerlessSpec</span><span class="p">,</span> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">pod_spec</span><span class="o">.</span><span class="n">PodSpec</span><span class="p">]</span>,</span><span class="param"> <span class="n">dimension</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">metric</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">metric</span><span class="o">.</span><span class="n">Metric</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="o"><</span><span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">:</span> <span class="s1">'cosine'</span><span class="o">></span>,</span><span class="param"> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">deletion_protection</span><span class="o">.</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="o"><</span><span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">:</span> <span class="s1">'disabled'</span><span class="o">></span>,</span><span class="param"> <span class="n">vector_type</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">vector_type</span><span class="o">.</span><span class="n">VectorType</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="o"><</span><span class="n">VectorType</span><span class="o">.</span><span class="n">DENSE</span><span class="p">:</span> <span class="s1">'dense'</span><span class="o">></span>,</span><span class="param"> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">index_model</span><span class="o">.</span><span class="n">IndexModel</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.create_index-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.create_index"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.create_index-167"><a href="#PineconeAsyncio.create_index-167"><span class="linenos">167</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span> </span><span id="PineconeAsyncio.create_index-168"><a href="#PineconeAsyncio.create_index-168"><span class="linenos">168</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-169"><a href="#PineconeAsyncio.create_index-169"><span class="linenos">169</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-170"><a href="#PineconeAsyncio.create_index-170"><span class="linenos">170</span></a> <span class="n">spec</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">,</span> <span class="n">ServerlessSpec</span><span class="p">,</span> <span class="n">PodSpec</span><span class="p">],</span> </span><span id="PineconeAsyncio.create_index-171"><a href="#PineconeAsyncio.create_index-171"><span class="linenos">171</span></a> <span class="n">dimension</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-172"><a href="#PineconeAsyncio.create_index-172"><span class="linenos">172</span></a> <span class="n">metric</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Metric</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-173"><a href="#PineconeAsyncio.create_index-173"><span class="linenos">173</span></a> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-174"><a href="#PineconeAsyncio.create_index-174"><span class="linenos">174</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-175"><a href="#PineconeAsyncio.create_index-175"><span class="linenos">175</span></a> <span class="n">vector_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">VectorType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">VectorType</span><span class="o">.</span><span class="n">DENSE</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-176"><a href="#PineconeAsyncio.create_index-176"><span class="linenos">176</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-177"><a href="#PineconeAsyncio.create_index-177"><span class="linenos">177</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="PineconeAsyncio.create_index-178"><a href="#PineconeAsyncio.create_index-178"><span class="linenos">178</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_index_request</span><span class="p">(</span> </span><span id="PineconeAsyncio.create_index-179"><a href="#PineconeAsyncio.create_index-179"><span class="linenos">179</span></a> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-180"><a href="#PineconeAsyncio.create_index-180"><span class="linenos">180</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-181"><a href="#PineconeAsyncio.create_index-181"><span class="linenos">181</span></a> <span class="n">dimension</span><span class="o">=</span><span class="n">dimension</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-182"><a href="#PineconeAsyncio.create_index-182"><span class="linenos">182</span></a> <span class="n">metric</span><span class="o">=</span><span class="n">metric</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-183"><a href="#PineconeAsyncio.create_index-183"><span class="linenos">183</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-184"><a href="#PineconeAsyncio.create_index-184"><span class="linenos">184</span></a> <span class="n">vector_type</span><span class="o">=</span><span class="n">vector_type</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-185"><a href="#PineconeAsyncio.create_index-185"><span class="linenos">185</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index-186"><a href="#PineconeAsyncio.create_index-186"><span class="linenos">186</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.create_index-187"><a href="#PineconeAsyncio.create_index-187"><span class="linenos">187</span></a> <span class="n">resp</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span><span class="n">create_index_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span><span id="PineconeAsyncio.create_index-188"><a href="#PineconeAsyncio.create_index-188"><span class="linenos">188</span></a> </span><span id="PineconeAsyncio.create_index-189"><a href="#PineconeAsyncio.create_index-189"><span class="linenos">189</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="PineconeAsyncio.create_index-190"><a href="#PineconeAsyncio.create_index-190"><span class="linenos">190</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">resp</span><span class="p">)</span> </span><span id="PineconeAsyncio.create_index-191"><a href="#PineconeAsyncio.create_index-191"><span class="linenos">191</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">__poll_describe_index_until_ready</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> </span></pre></div> <div class="docstring"><p>Creates a Pinecone index.</p> <h6 id="parameters">Parameters</h6> <ul> <li><strong>name</strong>: The name of the index to create. Must be unique within your project and cannot be changed once created. Allowed characters are lowercase letters, numbers, and hyphens and the name may not begin or end with hyphens. Maximum length is 45 characters.</li> <li><strong>metric</strong>: Type of similarity metric used in the vector index when querying, one of <code>{"cosine", "dotproduct", "euclidean"}</code>.</li> <li><strong>spec</strong>: A dictionary containing configurations describing how the index should be deployed. For serverless indexes, specify region and cloud. For pod indexes, specify replicas, shards, pods, pod_type, metadata_config, and source_collection. Alternatively, use the <code>ServerlessSpec</code> or <code>PodSpec</code> objects to specify these configurations.</li> <li><strong>dimension</strong>: If you are creating an index with <code>vector_type="dense"</code> (which is the default), you need to specify <code>dimension</code> to indicate the size of your vectors. This should match the dimension of the embeddings you will be inserting. For example, if you are using OpenAI's CLIP model, you should use <code>dimension=1536</code>. Dimension is a required field when creating an index with <code>vector_type="dense"</code> and should not be passed when <code>vector_type="sparse"</code>.</li> <li><strong>timeout</strong>: Specify the number of seconds to wait until index gets ready. If None, wait indefinitely; if >=0, time out after this many seconds; if -1, return immediately and do not wait.</li> <li><strong>deletion_protection</strong>: If enabled, the index cannot be deleted. If disabled, the index can be deleted.</li> <li><strong>vector_type</strong>: The type of vectors to be stored in the index. One of <code>{"dense", "sparse"}</code>.</li> <li><strong>tags</strong>: Tags are key-value pairs you can attach to indexes to better understand, organize, and identify your resources. Some example use cases include tagging indexes with the name of the model that generated the embeddings, the date the index was created, or the purpose of the index.</li> </ul> <h6 id="returns">Returns</h6> <blockquote> <p>A <code>IndexModel</code> instance containing a description of the index that was created.</p> </blockquote> <h3 id="creating-a-serverless-index">Creating a serverless index</h3> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="p">(</span> <span class="n">PineconeAsyncio</span><span class="p">,</span> <span class="n">ServerlessSpec</span><span class="p">,</span> <span class="n">CloudProvider</span><span class="p">,</span> <span class="n">AwsRegion</span><span class="p">,</span> <span class="n">Metric</span><span class="p">,</span> <span class="n">DeletionProtection</span><span class="p">,</span> <span class="n">VectorType</span> <span class="p">)</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_API_KEY"</span><span class="p">))</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">dimension</span><span class="o">=</span><span class="mi">1536</span><span class="p">,</span> <span class="n">metric</span><span class="o">=</span><span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="n">ServerlessSpec</span><span class="p">(</span> <span class="n">cloud</span><span class="o">=</span><span class="n">CloudProvider</span><span class="o">.</span><span class="n">AWS</span><span class="p">,</span> <span class="n">region</span><span class="o">=</span><span class="n">AwsRegion</span><span class="o">.</span><span class="n">US_WEST_2</span> <span class="p">),</span> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> <span class="n">vector_type</span><span class="o">=</span><span class="n">VectorType</span><span class="o">.</span><span class="n">DENSE</span><span class="p">,</span> <span class="n">tags</span><span class="o">=</span><span class="p">{</span> <span class="s2">"model"</span><span class="p">:</span> <span class="s2">"clip"</span><span class="p">,</span> <span class="s2">"app"</span><span class="p">:</span> <span class="s2">"image-search"</span><span class="p">,</span> <span class="s2">"env"</span><span class="p">:</span> <span class="s2">"testing"</span> <span class="p">}</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h3 id="creating-a-pod-index">Creating a pod index</h3> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="p">(</span> <span class="n">Pinecone</span><span class="p">,</span> <span class="n">PodSpec</span><span class="p">,</span> <span class="n">PodIndexEnvironment</span><span class="p">,</span> <span class="n">PodType</span><span class="p">,</span> <span class="n">Metric</span><span class="p">,</span> <span class="n">DeletionProtection</span><span class="p">,</span> <span class="n">VectorType</span> <span class="p">)</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">Pinecone</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_API_KEY"</span><span class="p">))</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">dimension</span><span class="o">=</span><span class="mi">1536</span><span class="p">,</span> <span class="n">metric</span><span class="o">=</span><span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="n">PodSpec</span><span class="p">(</span> <span class="n">environment</span><span class="o">=</span><span class="n">PodIndexEnvironment</span><span class="o">.</span><span class="n">US_EAST4_GCP</span><span class="p">,</span> <span class="n">pod_type</span><span class="o">=</span><span class="n">PodType</span><span class="o">.</span><span class="n">P1_X1</span> <span class="p">),</span> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> <span class="n">tags</span><span class="o">=</span><span class="p">{</span> <span class="s2">"model"</span><span class="p">:</span> <span class="s2">"clip"</span><span class="p">,</span> <span class="s2">"app"</span><span class="p">:</span> <span class="s2">"image-search"</span><span class="p">,</span> <span class="s2">"env"</span><span class="p">:</span> <span class="s2">"testing"</span> <span class="p">}</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.create_index_for_model" class="classattr"> <input id="PineconeAsyncio.create_index_for_model-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">create_index_for_model</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">cloud</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">clouds</span><span class="o">.</span><span class="n">CloudProvider</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span>,</span><span class="param"> <span class="n">region</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">clouds</span><span class="o">.</span><span class="n">AwsRegion</span><span class="p">,</span> <span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">clouds</span><span class="o">.</span><span class="n">GcpRegion</span><span class="p">,</span> <span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">clouds</span><span class="o">.</span><span class="n">AzureRegion</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span>,</span><span class="param"> <span class="n">embed</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">index_embed</span><span class="o">.</span><span class="n">IndexEmbed</span><span class="p">,</span> <span class="n"><a href="types/create_index_for_model_embed.html#CreateIndexForModelEmbedTypedDict">pinecone.control.types.create_index_for_model_embed.CreateIndexForModelEmbedTypedDict</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">deletion_protection</span><span class="o">.</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="o"><</span><span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">:</span> <span class="s1">'disabled'</span><span class="o">></span>,</span><span class="param"> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">index_model</span><span class="o">.</span><span class="n">IndexModel</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.create_index_for_model-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.create_index_for_model"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.create_index_for_model-193"><a href="#PineconeAsyncio.create_index_for_model-193"><span class="linenos">193</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_index_for_model</span><span class="p">(</span> </span><span id="PineconeAsyncio.create_index_for_model-194"><a href="#PineconeAsyncio.create_index_for_model-194"><span class="linenos">194</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-195"><a href="#PineconeAsyncio.create_index_for_model-195"><span class="linenos">195</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-196"><a href="#PineconeAsyncio.create_index_for_model-196"><span class="linenos">196</span></a> <span class="n">cloud</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">CloudProvider</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> </span><span id="PineconeAsyncio.create_index_for_model-197"><a href="#PineconeAsyncio.create_index_for_model-197"><span class="linenos">197</span></a> <span class="n">region</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">AwsRegion</span><span class="p">,</span> <span class="n">GcpRegion</span><span class="p">,</span> <span class="n">AzureRegion</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> </span><span id="PineconeAsyncio.create_index_for_model-198"><a href="#PineconeAsyncio.create_index_for_model-198"><span class="linenos">198</span></a> <span class="n">embed</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">IndexEmbed</span><span class="p">,</span> <span class="n">CreateIndexForModelEmbedTypedDict</span><span class="p">],</span> </span><span id="PineconeAsyncio.create_index_for_model-199"><a href="#PineconeAsyncio.create_index_for_model-199"><span class="linenos">199</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-200"><a href="#PineconeAsyncio.create_index_for_model-200"><span class="linenos">200</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-201"><a href="#PineconeAsyncio.create_index_for_model-201"><span class="linenos">201</span></a> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-202"><a href="#PineconeAsyncio.create_index_for_model-202"><span class="linenos">202</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="PineconeAsyncio.create_index_for_model-203"><a href="#PineconeAsyncio.create_index_for_model-203"><span class="linenos">203</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_index_for_model_request</span><span class="p">(</span> </span><span id="PineconeAsyncio.create_index_for_model-204"><a href="#PineconeAsyncio.create_index_for_model-204"><span class="linenos">204</span></a> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-205"><a href="#PineconeAsyncio.create_index_for_model-205"><span class="linenos">205</span></a> <span class="n">cloud</span><span class="o">=</span><span class="n">cloud</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-206"><a href="#PineconeAsyncio.create_index_for_model-206"><span class="linenos">206</span></a> <span class="n">region</span><span class="o">=</span><span class="n">region</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-207"><a href="#PineconeAsyncio.create_index_for_model-207"><span class="linenos">207</span></a> <span class="n">embed</span><span class="o">=</span><span class="n">embed</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-208"><a href="#PineconeAsyncio.create_index_for_model-208"><span class="linenos">208</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-209"><a href="#PineconeAsyncio.create_index_for_model-209"><span class="linenos">209</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="PineconeAsyncio.create_index_for_model-210"><a href="#PineconeAsyncio.create_index_for_model-210"><span class="linenos">210</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.create_index_for_model-211"><a href="#PineconeAsyncio.create_index_for_model-211"><span class="linenos">211</span></a> <span class="n">resp</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_index_for_model</span><span class="p">(</span><span class="n">req</span><span class="p">)</span> </span><span id="PineconeAsyncio.create_index_for_model-212"><a href="#PineconeAsyncio.create_index_for_model-212"><span class="linenos">212</span></a> </span><span id="PineconeAsyncio.create_index_for_model-213"><a href="#PineconeAsyncio.create_index_for_model-213"><span class="linenos">213</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="PineconeAsyncio.create_index_for_model-214"><a href="#PineconeAsyncio.create_index_for_model-214"><span class="linenos">214</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">resp</span><span class="p">)</span> </span><span id="PineconeAsyncio.create_index_for_model-215"><a href="#PineconeAsyncio.create_index_for_model-215"><span class="linenos">215</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">__poll_describe_index_until_ready</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> </span></pre></div> <div class="docstring"><h6 id="parameters">Parameters</h6> <ul> <li><strong>name</strong>: The name of the index to create. Must be unique within your project and cannot be changed once created. Allowed characters are lowercase letters, numbers, and hyphens and the name may not begin or end with hyphens. Maximum length is 45 characters.</li> <li><strong>cloud</strong>: The cloud provider to use for the index. One of <code>{"aws", "gcp", "azure"}</code>.</li> <li><strong>region</strong>: The region to use for the index. Enum objects <code>AwsRegion</code>, <code>GcpRegion</code>, and <code>AzureRegion</code> are also available to help you quickly set these parameters, but may not be up to date as new regions become available.</li> <li><strong>embed</strong>: The embedding configuration for the index. This param accepts a dictionary or an instance of the <code>IndexEmbed</code> object.</li> <li><strong>tags</strong>: Tags are key-value pairs you can attach to indexes to better understand, organize, and identify your resources. Some example use cases include tagging indexes with the name of the model that generated the embeddings, the date the index was created, or the purpose of the index.</li> <li><strong>deletion_protection</strong>: If enabled, the index cannot be deleted. If disabled, the index can be deleted. This setting can be changed with <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code>.</li> <li><strong>timeout</strong>: Specify the number of seconds to wait until index is ready to receive data. If None, wait indefinitely; if >=0, time out after this many seconds; if -1, return immediately and do not wait.</li> </ul> <h6 id="returns">Returns</h6> <blockquote> <p>A description of the index that was created.</p> </blockquote> <p>This method is used to create a Serverless index that is configured for use with Pinecone's integrated inference models.</p> <p>The resulting index can be described, listed, configured, and deleted like any other Pinecone index with the <code><a href="#PineconeAsyncio.describe_index">describe_index</a></code>, <code><a href="#PineconeAsyncio.list_indexes">list_indexes</a></code>, <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code>, and <code><a href="#PineconeAsyncio.delete_index">delete_index</a></code> methods.</p> <p>After the model is created, you can upsert records into the index with the <code>upsert_records</code> method, and search your records with the <code>search</code> method.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="p">(</span> <span class="n">PineconeAsyncio</span><span class="p">,</span> <span class="n">IndexEmbed</span><span class="p">,</span> <span class="n">CloudProvider</span><span class="p">,</span> <span class="n">AwsRegion</span><span class="p">,</span> <span class="n">EmbedModel</span><span class="p">,</span> <span class="n">Metric</span><span class="p">,</span> <span class="p">)</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="s2">"book-search"</span><span class="p">):</span> <span class="n">desc</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">create_index_for_model</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s2">"book-search"</span><span class="p">,</span> <span class="n">cloud</span><span class="o">=</span><span class="n">CloudProvider</span><span class="o">.</span><span class="n">AWS</span><span class="p">,</span> <span class="n">region</span><span class="o">=</span><span class="n">AwsRegion</span><span class="o">.</span><span class="n">US_EAST_1</span><span class="p">,</span> <span class="n">embed</span><span class="o">=</span><span class="n">IndexEmbed</span><span class="p">(</span> <span class="n">model</span><span class="o">=</span><span class="n">EmbedModel</span><span class="o">.</span><span class="n">Multilingual_E5_Large</span><span class="p">,</span> <span class="n">metric</span><span class="o">=</span><span class="n">Metric</span><span class="o">.</span><span class="n">COSINE</span><span class="p">,</span> <span class="n">field_map</span><span class="o">=</span><span class="p">{</span> <span class="s2">"text"</span><span class="p">:</span> <span class="s2">"description"</span><span class="p">,</span> <span class="p">},</span> <span class="p">)</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <p>To see the available cloud regions, see this <a href="https://docs<a href="pinecone.html">pinecone.control.pinecone</a>.io/troubleshooting/available-cloud-regions">Pinecone documentation</a> page.</p> <p>See the <a href="https://docs<a href="pinecone.html">pinecone.control.pinecone</a>.io/models/overview">Model Gallery</a> to learn about available models.</p> </div> </div> <div id="PineconeAsyncio.delete_index" class="classattr"> <input id="PineconeAsyncio.delete_index-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">delete_index</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="PineconeAsyncio.delete_index-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.delete_index"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.delete_index-255"><a href="#PineconeAsyncio.delete_index-255"><span class="linenos">255</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">delete_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> </span><span id="PineconeAsyncio.delete_index-256"><a href="#PineconeAsyncio.delete_index-256"><span class="linenos">256</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">delete_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio.delete_index-257"><a href="#PineconeAsyncio.delete_index-257"><span class="linenos">257</span></a> </span><span id="PineconeAsyncio.delete_index-258"><a href="#PineconeAsyncio.delete_index-258"><span class="linenos">258</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> </span><span id="PineconeAsyncio.delete_index-259"><a href="#PineconeAsyncio.delete_index-259"><span class="linenos">259</span></a> <span class="k">return</span> </span><span id="PineconeAsyncio.delete_index-260"><a href="#PineconeAsyncio.delete_index-260"><span class="linenos">260</span></a> </span><span id="PineconeAsyncio.delete_index-261"><a href="#PineconeAsyncio.delete_index-261"><span class="linenos">261</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> </span><span id="PineconeAsyncio.delete_index-262"><a href="#PineconeAsyncio.delete_index-262"><span class="linenos">262</span></a> <span class="k">while</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">name</span><span class="p">):</span> </span><span id="PineconeAsyncio.delete_index-263"><a href="#PineconeAsyncio.delete_index-263"><span class="linenos">263</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="PineconeAsyncio.delete_index-264"><a href="#PineconeAsyncio.delete_index-264"><span class="linenos">264</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="PineconeAsyncio.delete_index-265"><a href="#PineconeAsyncio.delete_index-265"><span class="linenos">265</span></a> <span class="k">while</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">and</span> <span class="n">timeout</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span> </span><span id="PineconeAsyncio.delete_index-266"><a href="#PineconeAsyncio.delete_index-266"><span class="linenos">266</span></a> <span class="k">await</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> </span><span id="PineconeAsyncio.delete_index-267"><a href="#PineconeAsyncio.delete_index-267"><span class="linenos">267</span></a> <span class="n">timeout</span> <span class="o">-=</span> <span class="mi">5</span> </span><span id="PineconeAsyncio.delete_index-268"><a href="#PineconeAsyncio.delete_index-268"><span class="linenos">268</span></a> <span class="k">if</span> <span class="n">timeout</span> <span class="ow">and</span> <span class="n">timeout</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span> </span><span id="PineconeAsyncio.delete_index-269"><a href="#PineconeAsyncio.delete_index-269"><span class="linenos">269</span></a> <span class="k">raise</span> <span class="p">(</span> </span><span id="PineconeAsyncio.delete_index-270"><a href="#PineconeAsyncio.delete_index-270"><span class="linenos">270</span></a> <span class="ne">TimeoutError</span><span class="p">(</span> </span><span id="PineconeAsyncio.delete_index-271"><a href="#PineconeAsyncio.delete_index-271"><span class="linenos">271</span></a> <span class="s2">"Please call the list_indexes API (</span><span class="si">{}</span><span class="s2">) to confirm if index is deleted"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> </span><span id="PineconeAsyncio.delete_index-272"><a href="#PineconeAsyncio.delete_index-272"><span class="linenos">272</span></a> <span class="s2">"https://www.pinecone.io/docs/api/operation/list_indexes/"</span> </span><span id="PineconeAsyncio.delete_index-273"><a href="#PineconeAsyncio.delete_index-273"><span class="linenos">273</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.delete_index-274"><a href="#PineconeAsyncio.delete_index-274"><span class="linenos">274</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.delete_index-275"><a href="#PineconeAsyncio.delete_index-275"><span class="linenos">275</span></a> <span class="p">)</span> </span></pre></div> <div class="docstring"><h6 id="parameters">Parameters</h6> <ul> <li><strong>name</strong>: the name of the index.</li> <li><strong>timeout</strong>: Number of seconds to poll status checking whether the index has been deleted. If None, wait indefinitely; if >=0, time out after this many seconds; if -1, return immediately and do not wait.</li> </ul> <p>Deletes a Pinecone index.</p> <p>Deleting an index is an irreversible operation. All data in the index will be lost. When you use this command, a request is sent to the Pinecone control plane to delete the index, but the termination is not synchronous because resources take a few moments to be released.</p> <p>By default the <code><a href="#PineconeAsyncio.delete_index">delete_index</a></code> method will block until polling of the <code><a href="#PineconeAsyncio.describe_index">describe_index</a></code> method shows that the delete operation has completed. If you prefer to return immediately and not wait for the index to be deleted, you can pass <code>timeout=-1</code> to the method.</p> <p>After the delete request is submitted, polling <code><a href="#PineconeAsyncio.describe_index">describe_index</a></code> will show that the index transitions into a <code>Terminating</code> state before eventually resulting in a 404 after it has been removed.</p> <p>This operation can fail if the index is configured with <code>deletion_protection="enabled"</code>. In this case, you will need to call <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code> to disable deletion protection before you can delete the index.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="n">index_name</span> <span class="o">=</span> <span class="s2">"my_index"</span> <span class="n">desc</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">index_name</span><span class="p">)</span> <span class="k">if</span> <span class="n">desc</span><span class="o">.</span><span class="n">deletion_protection</span> <span class="o">==</span> <span class="s2">"enabled"</span><span class="p">:</span> <span class="c1"># If for some reason deletion protection is enabled, you will need to disable it first</span> <span class="c1"># before you can delete the index. But use caution as this operation is not reversible</span> <span class="c1"># and if somebody enabled deletion protection, they probably had a good reason.</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">index_name</span><span class="p">,</span> <span class="n">deletion_protection</span><span class="o">=</span><span class="s2">"disabled"</span><span class="p">)</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">delete_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">index_name</span><span class="p">)</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.list_indexes" class="classattr"> <input id="PineconeAsyncio.list_indexes-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">list_indexes</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">index_list</span><span class="o">.</span><span class="n">IndexList</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.list_indexes-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.list_indexes"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.list_indexes-277"><a href="#PineconeAsyncio.list_indexes-277"><span class="linenos">277</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">list_indexes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">IndexList</span><span class="p">:</span> </span><span id="PineconeAsyncio.list_indexes-278"><a href="#PineconeAsyncio.list_indexes-278"><span class="linenos">278</span></a> <span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> </span><span id="PineconeAsyncio.list_indexes-279"><a href="#PineconeAsyncio.list_indexes-279"><span class="linenos">279</span></a> <span class="k">return</span> <span class="n">IndexList</span><span class="p">(</span><span class="n">response</span><span class="p">)</span> </span></pre></div> <div class="docstring"><h6 id="returns">Returns</h6> <blockquote> <p>Returns an <code>IndexList</code> object, which is iterable and contains a list of <code>IndexModel</code> objects. The <code>IndexList</code> also has a convenience method <code>names()</code> which returns a list of index names for situations where you just want to iterate over all index names.</p> </blockquote> <p>Lists all indexes in your project.</p> <p>The results include a description of all indexes in your project, including the index name, dimension, metric, status, and spec.</p> <p>If you simply want to check whether an index exists, see the <code><a href="#PineconeAsyncio.has_index">has_index()</a></code> convenience method.</p> <p>You can use the <code><a href="#PineconeAsyncio.list_indexes">list_indexes()</a></code> method to iterate over descriptions of every index in your project.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="n">available_indexes</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">available_indexes</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">index</span><span class="o">.</span><span class="n">dimension</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">index</span><span class="o">.</span><span class="n">metric</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">index</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">index</span><span class="o">.</span><span class="n">host</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">index</span><span class="o">.</span><span class="n">spec</span><span class="p">)</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.describe_index" class="classattr"> <input id="PineconeAsyncio.describe_index-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">describe_index</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">name</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">index_model</span><span class="o">.</span><span class="n">IndexModel</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.describe_index-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.describe_index"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.describe_index-281"><a href="#PineconeAsyncio.describe_index-281"><span class="linenos">281</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">describe_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">IndexModel</span><span class="p">:</span> </span><span id="PineconeAsyncio.describe_index-282"><a href="#PineconeAsyncio.describe_index-282"><span class="linenos">282</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio.describe_index-283"><a href="#PineconeAsyncio.describe_index-283"><span class="linenos">283</span></a> <span class="k">return</span> <span class="n">IndexModel</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> </span></pre></div> <div class="docstring"><h6 id="parameters">Parameters</h6> <ul> <li><strong>name</strong>: the name of the index to describe.</li> </ul> <h6 id="returns">Returns</h6> <blockquote> <p>Returns an <code>IndexModel</code> object which gives access to properties such as the index name, dimension, metric, host url, status, and spec.</p> </blockquote> <p>Describes a Pinecone index.</p> <h3 id="getting-your-index-host-url">Getting your index host url</h3> <p>In a real production situation, you probably want to store the host url in an environment variable so you don't have to call describe_index and re-fetch it every time you want to use the index. But this example shows how to get the value from the API using describe_index.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">Pinecone</span><span class="p">,</span> <span class="n">PineconeAsyncio</span><span class="p">,</span> <span class="n">Index</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="n">index_name</span><span class="o">=</span><span class="s2">"my_index"</span> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">index_name</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> <span class="c1"># {</span> <span class="c1"># "name": "my_index",</span> <span class="c1"># "metric": "cosine",</span> <span class="c1"># "host": "my_index-dojoi3u.svc.aped-4627-b74a.pinecone.io",</span> <span class="c1"># "spec": {</span> <span class="c1"># "serverless": {</span> <span class="c1"># "cloud": "aws",</span> <span class="c1"># "region": "us-east-1"</span> <span class="c1"># }</span> <span class="c1"># },</span> <span class="c1"># "status": {</span> <span class="c1"># "ready": true,</span> <span class="c1"># "state": "Ready"</span> <span class="c1"># },</span> <span class="c1"># "vector_type": "dense",</span> <span class="c1"># "dimension": 1024,</span> <span class="c1"># "deletion_protection": "enabled",</span> <span class="c1"># "tags": {</span> <span class="c1"># "environment": "production"</span> <span class="c1"># }</span> <span class="c1"># }</span> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Your index is hosted at </span><span class="si">{</span><span class="n">description</span><span class="o">.</span><span class="n">host</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="k">async</span> <span class="k">with</span> <span class="n">Pinecone</span><span class="p">()</span><span class="o">.</span><span class="n">IndexAsyncio</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">description</span><span class="o">.</span><span class="n">host</span><span class="p">)</span> <span class="k">as</span> <span class="n">idx</span><span class="p">:</span> <span class="k">await</span> <span class="n">idx</span><span class="o">.</span><span class="n">upsert</span><span class="p">(</span><span class="n">vectors</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">])</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.has_index" class="classattr"> <input id="PineconeAsyncio.has_index-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">has_index</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">name</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">bool</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.has_index-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.has_index"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.has_index-285"><a href="#PineconeAsyncio.has_index-285"><span class="linenos">285</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">has_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> </span><span id="PineconeAsyncio.has_index-286"><a href="#PineconeAsyncio.has_index-286"><span class="linenos">286</span></a> <span class="n">available_indexes</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_indexes</span><span class="p">()</span> </span><span id="PineconeAsyncio.has_index-287"><a href="#PineconeAsyncio.has_index-287"><span class="linenos">287</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">available_indexes</span><span class="o">.</span><span class="n">names</span><span class="p">():</span> </span><span id="PineconeAsyncio.has_index-288"><a href="#PineconeAsyncio.has_index-288"><span class="linenos">288</span></a> <span class="k">return</span> <span class="kc">True</span> </span><span id="PineconeAsyncio.has_index-289"><a href="#PineconeAsyncio.has_index-289"><span class="linenos">289</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="PineconeAsyncio.has_index-290"><a href="#PineconeAsyncio.has_index-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="kc">False</span> </span></pre></div> <div class="docstring"><h6 id="parameters">Parameters</h6> <ul> <li><strong>name</strong>: The name of the index to check for existence.</li> </ul> <h6 id="returns">Returns</h6> <blockquote> <p>Returns <code>True</code> if the index exists, <code>False</code> otherwise.</p> </blockquote> <p>Checks if a Pinecone index exists.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span><span class="p">,</span> <span class="n">ServerlessSpec</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="n">index_name</span> <span class="o">=</span> <span class="s2">"my_index"</span> <span class="k">if</span> <span class="ow">not</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">has_index</span><span class="p">(</span><span class="n">index_name</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="s2">"Index does not exist, creating..."</span><span class="p">)</span> <span class="n">pc</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="n">index_name</span><span class="p">,</span> <span class="n">dimension</span><span class="o">=</span><span class="mi">768</span><span class="p">,</span> <span class="n">metric</span><span class="o">=</span><span class="s2">"cosine"</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="n">ServerlessSpec</span><span class="p">(</span><span class="n">cloud</span><span class="o">=</span><span class="s2">"aws"</span><span class="p">,</span> <span class="n">region</span><span class="o">=</span><span class="s2">"us-west-2"</span><span class="p">)</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.configure_index" class="classattr"> <input id="PineconeAsyncio.configure_index-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">configure_index</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">replicas</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">pod_type</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">pod_type</span><span class="o">.</span><span class="n">PodType</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">pinecone</span><span class="o">.</span><span class="n">enums</span><span class="o">.</span><span class="n">deletion_protection</span><span class="o">.</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="PineconeAsyncio.configure_index-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.configure_index"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.configure_index-292"><a href="#PineconeAsyncio.configure_index-292"><span class="linenos">292</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">configure_index</span><span class="p">(</span> </span><span id="PineconeAsyncio.configure_index-293"><a href="#PineconeAsyncio.configure_index-293"><span class="linenos">293</span></a> <span class="bp">self</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-294"><a href="#PineconeAsyncio.configure_index-294"><span class="linenos">294</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-295"><a href="#PineconeAsyncio.configure_index-295"><span class="linenos">295</span></a> <span class="n">replicas</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-296"><a href="#PineconeAsyncio.configure_index-296"><span class="linenos">296</span></a> <span class="n">pod_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">PodType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-297"><a href="#PineconeAsyncio.configure_index-297"><span class="linenos">297</span></a> <span class="n">deletion_protection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">DeletionProtection</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-298"><a href="#PineconeAsyncio.configure_index-298"><span class="linenos">298</span></a> <span class="n">tags</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-299"><a href="#PineconeAsyncio.configure_index-299"><span class="linenos">299</span></a> <span class="p">):</span> </span><span id="PineconeAsyncio.configure_index-300"><a href="#PineconeAsyncio.configure_index-300"><span class="linenos">300</span></a> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> </span><span id="PineconeAsyncio.configure_index-301"><a href="#PineconeAsyncio.configure_index-301"><span class="linenos">301</span></a> </span><span id="PineconeAsyncio.configure_index-302"><a href="#PineconeAsyncio.configure_index-302"><span class="linenos">302</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">configure_index_request</span><span class="p">(</span> </span><span id="PineconeAsyncio.configure_index-303"><a href="#PineconeAsyncio.configure_index-303"><span class="linenos">303</span></a> <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-304"><a href="#PineconeAsyncio.configure_index-304"><span class="linenos">304</span></a> <span class="n">replicas</span><span class="o">=</span><span class="n">replicas</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-305"><a href="#PineconeAsyncio.configure_index-305"><span class="linenos">305</span></a> <span class="n">pod_type</span><span class="o">=</span><span class="n">pod_type</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-306"><a href="#PineconeAsyncio.configure_index-306"><span class="linenos">306</span></a> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">deletion_protection</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-307"><a href="#PineconeAsyncio.configure_index-307"><span class="linenos">307</span></a> <span class="n">tags</span><span class="o">=</span><span class="n">tags</span><span class="p">,</span> </span><span id="PineconeAsyncio.configure_index-308"><a href="#PineconeAsyncio.configure_index-308"><span class="linenos">308</span></a> <span class="p">)</span> </span><span id="PineconeAsyncio.configure_index-309"><a href="#PineconeAsyncio.configure_index-309"><span class="linenos">309</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">configure_index_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span></pre></div> <div class="docstring"><h6 id="parameters">Parameters</h6> <ul> <li>name: the name of the Index</li> <li>replicas: the desired number of replicas, lowest value is 0.</li> <li>pod_type: the new pod_type for the index. To learn more about the available pod types, please see <a href="https://docs<a href="pinecone.html">pinecone.control.pinecone</a>.io/docs/indexes">Understanding Indexes</a></li> <li>deletion_protection: If set to 'enabled', the index cannot be deleted. If 'disabled', the index can be deleted.</li> <li>tags: A dictionary of tags to apply to the index. Tags are key-value pairs that can be used to organize and manage indexes. To remove a tag, set the value to "". Tags passed to configure_index will be merged with existing tags and any with the value empty string will be removed.</li> </ul> <p>This method is used to modify an index's configuration. It can be used to:</p> <ul> <li>Scale a pod-based index horizontally using <code>replicas</code></li> <li>Scale a pod-based index vertically using <code>pod_type</code></li> <li>Enable or disable deletion protection using <code>deletion_protection</code></li> <li>Add, change, or remove tags using <code>tags</code></li> </ul> <h2 id="scaling-pod-based-indexes">Scaling pod-based indexes</h2> <p>To scale your pod-based index, you pass a <code>replicas</code> and/or <code>pod_type</code> param to the <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code> method. <code>pod_type</code> may be a string or a value from the <code>PodType</code> enum.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span><span class="p">,</span> <span class="n">PodType</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">replicas</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">pod_type</span><span class="o">=</span><span class="n">PodType</span><span class="o">.</span><span class="n">P1_X2</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <p>After providing these new configurations, you must call <code><a href="#PineconeAsyncio.describe_index">describe_index</a></code> to see the status of the index as the changes are applied.</p> <h2 id="enabling-or-disabling-deletion-protection">Enabling or disabling deletion protection</h2> <p>To enable or disable deletion protection, pass the <code>deletion_protection</code> parameter to the <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code> method. When deletion protection is enabled, the index cannot be deleted with the <code><a href="#PineconeAsyncio.delete_index">delete_index</a></code> method.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span><span class="p">,</span> <span class="n">DeletionProtection</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Enable deletion protection</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">DeletionProtection</span><span class="o">.</span><span class="n">ENABLED</span> <span class="p">)</span> <span class="c1"># Call describe_index to see the change was applied.</span> <span class="n">desc</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="s2">"my_index"</span><span class="p">)</span> <span class="k">assert</span> <span class="n">desc</span><span class="o">.</span><span class="n">deletion_protection</span> <span class="o">==</span> <span class="s2">"enabled"</span> <span class="c1"># Disable deletion protection</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span> <span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">deletion_protection</span><span class="o">=</span><span class="n">DeletionProtection</span><span class="o">.</span><span class="n">DISABLED</span> <span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h2 id="adding-changing-or-removing-tags">Adding, changing, or removing tags</h2> <p>To add, change, or remove tags, pass the <code>tags</code> parameter to the <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code> method. When tags are passed using <code><a href="#PineconeAsyncio.configure_index">configure_index</a></code>, they are merged with any existing tags already on the index. To remove a tag, set the value of the key to an empty string.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="c1"># Add a tag</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">tags</span><span class="o">=</span><span class="p">{</span><span class="s2">"environment"</span><span class="p">:</span> <span class="s2">"staging"</span><span class="p">})</span> <span class="c1"># Change a tag</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">tags</span><span class="o">=</span><span class="p">{</span><span class="s2">"environment"</span><span class="p">:</span> <span class="s2">"production"</span><span class="p">})</span> <span class="c1"># Remove a tag</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">configure_index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">"my_index"</span><span class="p">,</span> <span class="n">tags</span><span class="o">=</span><span class="p">{</span><span class="s2">"environment"</span><span class="p">:</span> <span class="s2">""</span><span class="p">})</span> <span class="c1"># Call describe_index to view the tags are changed</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="s2">"my_index"</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">desc</span><span class="o">.</span><span class="n">tags</span><span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.create_collection" class="classattr"> <input id="PineconeAsyncio.create_collection-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">create_collection</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">source</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="PineconeAsyncio.create_collection-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.create_collection"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.create_collection-311"><a href="#PineconeAsyncio.create_collection-311"><span class="linenos">311</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">create_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">source</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="PineconeAsyncio.create_collection-312"><a href="#PineconeAsyncio.create_collection-312"><span class="linenos">312</span></a> <span class="n">req</span> <span class="o">=</span> <span class="n">PineconeDBControlRequestFactory</span><span class="o">.</span><span class="n">create_collection_request</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">)</span> </span><span id="PineconeAsyncio.create_collection-313"><a href="#PineconeAsyncio.create_collection-313"><span class="linenos">313</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">create_collection</span><span class="p">(</span><span class="n">create_collection_request</span><span class="o">=</span><span class="n">req</span><span class="p">)</span> </span></pre></div> <div class="docstring"><p>Create a collection from a pod-based index</p> <h6 id="parameters">Parameters</h6> <ul> <li><strong>name</strong>: Name of the collection</li> <li><strong>source</strong>: Name of the source index</li> </ul> </div> </div> <div id="PineconeAsyncio.list_collections" class="classattr"> <input id="PineconeAsyncio.list_collections-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">list_collections</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="n">pinecone</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">collection_list</span><span class="o">.</span><span class="n">CollectionList</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.list_collections-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.list_collections"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.list_collections-315"><a href="#PineconeAsyncio.list_collections-315"><span class="linenos">315</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">list_collections</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">CollectionList</span><span class="p">:</span> </span><span id="PineconeAsyncio.list_collections-316"><a href="#PineconeAsyncio.list_collections-316"><span class="linenos">316</span></a> <span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">list_collections</span><span class="p">()</span> </span><span id="PineconeAsyncio.list_collections-317"><a href="#PineconeAsyncio.list_collections-317"><span class="linenos">317</span></a> <span class="k">return</span> <span class="n">CollectionList</span><span class="p">(</span><span class="n">response</span><span class="p">)</span> </span></pre></div> <div class="docstring"><p>List all collections</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="n">collections</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_collections</span><span class="p">()</span> <span class="k">for</span> <span class="n">collection</span> <span class="ow">in</span> <span class="n">collections</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="n">collection</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">collection</span><span class="o">.</span><span class="n">source</span><span class="p">)</span> <span class="c1"># You can also iterate specifically over</span> <span class="c1"># a list of collection names by calling</span> <span class="c1"># the .names() helper.</span> <span class="n">collection_name</span> <span class="o">=</span> <span class="s2">"my_collection"</span> <span class="n">collections</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">list_collections</span><span class="p">()</span> <span class="k">if</span> <span class="n">collection_name</span> <span class="ow">in</span> <span class="n">collections</span><span class="o">.</span><span class="n">names</span><span class="p">():</span> <span class="nb">print</span><span class="p">(</span><span class="s1">'Collection exists'</span><span class="p">)</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.delete_collection" class="classattr"> <input id="PineconeAsyncio.delete_collection-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">delete_collection</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">name</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="PineconeAsyncio.delete_collection-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.delete_collection"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.delete_collection-319"><a href="#PineconeAsyncio.delete_collection-319"><span class="linenos">319</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">delete_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="PineconeAsyncio.delete_collection-320"><a href="#PineconeAsyncio.delete_collection-320"><span class="linenos">320</span></a> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">delete_collection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span></pre></div> <div class="docstring"><p>Describes a collection.</p> <h6 id="parameters">Parameters</h6> <ul> <li>The name of the collection</li> </ul> <h6 id="returns">Returns</h6> <blockquote> <p>Description of the collection</p> </blockquote> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_collection</span><span class="p">(</span><span class="s2">"my_collection"</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">source</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">size</span><span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.describe_collection" class="classattr"> <input id="PineconeAsyncio.describe_collection-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">async def</span> <span class="name">describe_collection</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">name</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="PineconeAsyncio.describe_collection-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.describe_collection"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.describe_collection-322"><a href="#PineconeAsyncio.describe_collection-322"><span class="linenos">322</span></a> <span class="k">async</span> <span class="k">def</span> <span class="nf">describe_collection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> </span><span id="PineconeAsyncio.describe_collection-323"><a href="#PineconeAsyncio.describe_collection-323"><span class="linenos">323</span></a> <span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_api</span><span class="o">.</span><span class="n">describe_collection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">to_dict</span><span class="p">()</span> </span></pre></div> <div class="docstring"><p>Describes a collection.</p> <h6 id="parameters">Parameters</h6> <ul> <li>The name of the collection</li> </ul> <h6 id="returns">Returns</h6> <blockquote> <p>Description of the collection</p> </blockquote> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">()</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="n">description</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_collection</span><span class="p">(</span><span class="s2">"my_collection"</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">source</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">description</span><span class="o">.</span><span class="n">size</span><span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> </div> </div> <div id="PineconeAsyncio.IndexAsyncio" class="classattr"> <input id="PineconeAsyncio.IndexAsyncio-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">def</span> <span class="name">IndexAsyncio</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">host</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n">pinecone</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">index_asyncio</span><span class="o">.</span><span class="n">_IndexAsyncio</span>:</span></span> <label class="view-source-button" for="PineconeAsyncio.IndexAsyncio-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#PineconeAsyncio.IndexAsyncio"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="PineconeAsyncio.IndexAsyncio-325"><a href="#PineconeAsyncio.IndexAsyncio-325"><span class="linenos">325</span></a> <span class="k">def</span> <span class="nf">IndexAsyncio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">_IndexAsyncio</span><span class="p">:</span> </span><span id="PineconeAsyncio.IndexAsyncio-326"><a href="#PineconeAsyncio.IndexAsyncio-326"><span class="linenos">326</span></a> <span class="n">api_key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">api_key</span> </span><span id="PineconeAsyncio.IndexAsyncio-327"><a href="#PineconeAsyncio.IndexAsyncio-327"><span class="linenos">327</span></a> <span class="n">openapi_config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">openapi_config</span> </span><span id="PineconeAsyncio.IndexAsyncio-328"><a href="#PineconeAsyncio.IndexAsyncio-328"><span class="linenos">328</span></a> </span><span id="PineconeAsyncio.IndexAsyncio-329"><a href="#PineconeAsyncio.IndexAsyncio-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="n">host</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">host</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span> </span><span id="PineconeAsyncio.IndexAsyncio-330"><a href="#PineconeAsyncio.IndexAsyncio-330"><span class="linenos">330</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"A host must be specified"</span><span class="p">)</span> </span><span id="PineconeAsyncio.IndexAsyncio-331"><a href="#PineconeAsyncio.IndexAsyncio-331"><span class="linenos">331</span></a> </span><span id="PineconeAsyncio.IndexAsyncio-332"><a href="#PineconeAsyncio.IndexAsyncio-332"><span class="linenos">332</span></a> <span class="n">check_realistic_host</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> </span><span id="PineconeAsyncio.IndexAsyncio-333"><a href="#PineconeAsyncio.IndexAsyncio-333"><span class="linenos">333</span></a> <span class="n">index_host</span> <span class="o">=</span> <span class="n">normalize_host</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> </span><span id="PineconeAsyncio.IndexAsyncio-334"><a href="#PineconeAsyncio.IndexAsyncio-334"><span class="linenos">334</span></a> </span><span id="PineconeAsyncio.IndexAsyncio-335"><a href="#PineconeAsyncio.IndexAsyncio-335"><span class="linenos">335</span></a> <span class="k">return</span> <span class="n">_IndexAsyncio</span><span class="p">(</span> </span><span id="PineconeAsyncio.IndexAsyncio-336"><a href="#PineconeAsyncio.IndexAsyncio-336"><span class="linenos">336</span></a> <span class="n">host</span><span class="o">=</span><span class="n">index_host</span><span class="p">,</span> </span><span id="PineconeAsyncio.IndexAsyncio-337"><a href="#PineconeAsyncio.IndexAsyncio-337"><span class="linenos">337</span></a> <span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">,</span> </span><span id="PineconeAsyncio.IndexAsyncio-338"><a href="#PineconeAsyncio.IndexAsyncio-338"><span class="linenos">338</span></a> <span class="n">openapi_config</span><span class="o">=</span><span class="n">openapi_config</span><span class="p">,</span> </span><span id="PineconeAsyncio.IndexAsyncio-339"><a href="#PineconeAsyncio.IndexAsyncio-339"><span class="linenos">339</span></a> <span class="n">source_tag</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">source_tag</span><span class="p">,</span> </span><span id="PineconeAsyncio.IndexAsyncio-340"><a href="#PineconeAsyncio.IndexAsyncio-340"><span class="linenos">340</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> </span><span id="PineconeAsyncio.IndexAsyncio-341"><a href="#PineconeAsyncio.IndexAsyncio-341"><span class="linenos">341</span></a> <span class="p">)</span> </span></pre></div> <div class="docstring"><p>Build an asyncio-compatible client for index data operations.</p> <h6 id="parameters">Parameters</h6> <ul> <li><strong>host</strong>: The host url of the index.</li> </ul> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="n">api_key</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_API_KEY"</span><span class="p">)</span> <span class="n">index_host</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_INDEX_HOST"</span><span class="p">)</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">Pinecone</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="k">async</span> <span class="k">with</span> <span class="n">pc</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">index_host</span><span class="p">)</span> <span class="k">as</span> <span class="n">idx</span><span class="p">:</span> <span class="c1"># Now you're ready to perform data operations</span> <span class="k">await</span> <span class="n">index</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="n">vector</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">],</span> <span class="n">top_k</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <p>To find your host url, you can use the <code><a href="#PineconeAsyncio.describe_index">describe_index</a></code>. Or, alternatively, the host is displayed in the Pinecone web console.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">PineconeAsyncio</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="k">async</span> <span class="k">with</span> <span class="n">PineconeAsyncio</span><span class="p">(</span> <span class="n">api_key</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_API_KEY"</span><span class="p">)</span> <span class="p">)</span> <span class="k">as</span> <span class="n">pc</span><span class="p">:</span> <span class="n">host</span> <span class="o">=</span> <span class="k">await</span> <span class="n">pc</span><span class="o">.</span><span class="n">describe_index</span><span class="p">(</span><span class="s1">'index-name'</span><span class="p">)</span><span class="o">.</span><span class="n">host</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">main</span><span class="p">())</span> </code></pre> </div> <h2 id="alternative-setup">Alternative setup</h2> <p>Like instances of the <code><a href="#PineconeAsyncio">PineconeAsyncio</a></code> class, instances of <code><a href="#PineconeAsyncio.IndexAsyncio">IndexAsyncio</a></code> have async context that needs to be cleaned up when you are done with it in order to avoid error messages about unclosed session from aiohttp. Nesting these in code is a bit cumbersome, so if you are only planning to do data operations you may prefer to setup the <code><a href="#PineconeAsyncio.IndexAsyncio">IndexAsyncio</a></code> object via the <code>Pinecone</code> class which will avoid creating an outer async context.</p> <div class="pdoc-code codehilite"> <pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">asyncio</span> <span class="kn">from</span> <span class="nn">pinecone</span> <span class="kn">import</span> <span class="n">Pinecone</span> <span class="n">api_key</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"PINECONE_API_KEY"</span><span class="p">)</span> <span class="k">async</span> <span class="k">def</span> <span class="nf">main</span><span class="p">():</span> <span class="n">pc</span> <span class="o">=</span> <span class="n">Pinecone</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="n">api_key</span><span class="p">)</span> <span class="c1"># sync client, so no async context to worry about</span> <span class="k">async</span> <span class="k">with</span> <span class="n">pc</span><span class="o">.</span><span class="n">AsyncioIndex</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s1">'your_index_host'</span><span class="p">)</span> <span class="k">as</span> <span class="n">idx</span><span class="p">:</span> <span class="c1"># Now you're ready to perform data operations</span> <span class="k">await</span> <span class="n">idx</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="n">vector</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">],</span> <span class="n">top_k</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span> </code></pre> </div> </div> </div> </section> </main> <script> function escapeHTML(html) { return document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML; } const originalContent = document.querySelector("main.pdoc"); let currentContent = originalContent; function setContent(innerHTML) { let elem; if (innerHTML) { elem = document.createElement("main"); elem.classList.add("pdoc"); elem.innerHTML = innerHTML; } else { elem = originalContent; } if (currentContent !== elem) { currentContent.replaceWith(elem); currentContent = elem; } } function getSearchTerm() { return (new URL(window.location)).searchParams.get("search"); } const searchBox = document.querySelector(".pdoc input[type=search]"); searchBox.addEventListener("input", function () { let url = new URL(window.location); if (searchBox.value.trim()) { url.hash = ""; url.searchParams.set("search", searchBox.value); } else { url.searchParams.delete("search"); } history.replaceState("", "", url.toString()); onInput(); }); window.addEventListener("popstate", onInput); let search, searchErr; async function initialize() { try { search = await new Promise((resolve, reject) => { const script = document.createElement("script"); script.type = "text/javascript"; script.async = true; script.onload = () => resolve(window.pdocSearch); script.onerror = (e) => reject(e); script.src = "../../search.js"; document.getElementsByTagName("head")[0].appendChild(script); }); } catch (e) { console.error("Cannot fetch pdoc search index"); searchErr = "Cannot fetch search index."; } onInput(); document.querySelector("nav.pdoc").addEventListener("click", e => { if (e.target.hash) { searchBox.value = ""; searchBox.dispatchEvent(new Event("input")); } }); } function onInput() { setContent((() => { const term = getSearchTerm(); if (!term) { return null } if (searchErr) { return `<h3>Error: ${searchErr}</h3>` } if (!search) { return "<h3>Searching...</h3>" } window.scrollTo({top: 0, left: 0, behavior: 'auto'}); const results = search(term); let html; if (results.length === 0) { html = `No search results for '${escapeHTML(term)}'.` } else { html = `<h4>${results.length} search result${results.length > 1 ? "s" : ""} for '${escapeHTML(term)}'.</h4>`; } for (let result of results.slice(0, 10)) { let doc = result.doc; let url = `../../${doc.modulename.replaceAll(".", "/")}.html`; if (doc.qualname) { url += `#${doc.qualname}`; } let heading; switch (result.doc.kind) { case "function": if (doc.fullname.endsWith(".__init__")) { heading = `<span class="name">${doc.fullname.replace(/\.__init__$/, "")}</span>${doc.signature}`; } else { heading = `<span class="def">${doc.funcdef}</span> <span class="name">${doc.fullname}</span>${doc.signature}`; } break; case "class": heading = `<span class="def">class</span> <span class="name">${doc.fullname}</span>`; if (doc.bases) heading += `<wbr>(<span class="base">${doc.bases}</span>)`; heading += `:`; break; case "variable": heading = `<span class="name">${doc.fullname}</span>`; if (doc.annotation) heading += `<span class="annotation">${doc.annotation}</span>`; if (doc.default_value) heading += `<span class="default_value"> = ${doc.default_value}</span>`; break; default: heading = `<span class="name">${doc.fullname}</span>`; break; } html += ` <section class="search-result"> <a href="${url}" class="attr ${doc.kind}">${heading}</a> <div class="docstring">${doc.doc}</div> </section> `; } return html; })()); } if (getSearchTerm()) { initialize(); searchBox.value = getSearchTerm(); onInput(); } else { searchBox.addEventListener("focus", initialize, {once: true}); } searchBox.addEventListener("keydown", e => { if (["ArrowDown", "ArrowUp", "Enter"].includes(e.key)) { let focused = currentContent.querySelector(".search-result.focused"); if (!focused) { currentContent.querySelector(".search-result").classList.add("focused"); } else if ( e.key === "ArrowDown" && focused.nextElementSibling && focused.nextElementSibling.classList.contains("search-result") ) { focused.classList.remove("focused"); focused.nextElementSibling.classList.add("focused"); focused.nextElementSibling.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" }); } else if ( e.key === "ArrowUp" && focused.previousElementSibling && focused.previousElementSibling.classList.contains("search-result") ) { focused.classList.remove("focused"); focused.previousElementSibling.classList.add("focused"); focused.previousElementSibling.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" }); } else if ( e.key === "Enter" ) { focused.querySelector("a").click(); } } }); </script></body> </html>