CINXE.COM
Haystack - Pinecone Docs
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/apple-touch-icon.png?v=3"/><link rel="icon" type="image/png" sizes="32x32" href="https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/favicon-32x32.png?v=3"/><link rel="icon" type="image/png" sizes="16x16" href="https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/favicon-16x16.png?v=3"/><link rel="shortcut icon" type="image/x-icon" href="https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/favicon.ico?v=3"/><meta name="msapplication-config" content="https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/browserconfig.xml?v=3"/><meta name="apple-mobile-web-app-title" content="Pinecone Docs"/><meta name="application-name" content="Pinecone Docs"/><meta name="msapplication-TileColor" content="#1C17FF"/><meta name="theme-color" content="#ffffff"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><meta name="charset" content="utf-8"/><meta name="og:type" content="website"/><meta name="og:site_name" content="Pinecone Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="og:title" content="Haystack - Pinecone Docs"/><meta name="twitter:title" content="The vector database to build knowledgeable AI | Pinecone"/><meta name="og:description" content="Using Haystack and Pinecone to keep your NLP-driven apps up-to-date"/><meta name="description" content="Using Haystack and Pinecone to keep your NLP-driven apps up-to-date"/><meta name="og:image" content="https://www.pinecone.io/images/docs_og_image.png"/><meta name="twitter:description" content="Search through billions of items for similar matches to any object, in milliseconds. It's the next generation of search, an API call away."/><meta name="twitter:image" content="https://www.pinecone.io/images/docs_og_image.png"/><meta name="twitter:site" content="@pinecone"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="twitter:image:width" content="1200"/><meta property="twitter:image:height" content="630"/><title>Haystack - Pinecone Docs</title><meta name="og:url" content="/integrations/haystack"/><link rel="canonical" href="/integrations/haystack"/><meta name="next-head-count" content="31"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous"/><link rel="preload" href="/_next/static/media/a34f9d1faa5f3315-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><script id="mode-toggle" data-nscript="beforeInteractive"> try { if (localStorage.isDarkMode === 'true') { document.documentElement.classList.add('dark'); } else if (localStorage.isDarkMode === 'false') { document.documentElement.classList.remove('dark'); } else if ((false && !('isDarkMode' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) || false) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } } catch (_) {}</script><link rel="preload" href="/_next/static/css/04f9210297dcc36a.css" as="style"/><link rel="stylesheet" href="/_next/static/css/04f9210297dcc36a.css" data-n-g=""/><link rel="preload" href="/_next/static/css/8c76fb7d3768dfe7.css" as="style"/><link rel="stylesheet" href="/_next/static/css/8c76fb7d3768dfe7.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-f6d93a82fd3374a6.js" defer=""></script><script src="/_next/static/chunks/framework-9ae01a5f4ade81f5.js" defer=""></script><script src="/_next/static/chunks/main-cf327937a0d9f14c.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6f2a8e86c89c8344.js" defer=""></script><script src="/_next/static/chunks/2edb282b-a83f7ffd007bccf0.js" defer=""></script><script src="/_next/static/chunks/e893f787-f6a1094a35763a0d.js" defer=""></script><script src="/_next/static/chunks/086d643d-6f7196a364073d16.js" defer=""></script><script src="/_next/static/chunks/9097-53b32b020063004a.js" defer=""></script><script src="/_next/static/chunks/1091-7ea14d999be32a0b.js" defer=""></script><script src="/_next/static/chunks/1301-173d3ce1037cd5c5.js" defer=""></script><script src="/_next/static/chunks/6953-7fb4ddcc422e7dd0.js" defer=""></script><script src="/_next/static/chunks/9678-41d2cdac1d432a1d.js" defer=""></script><script src="/_next/static/chunks/pages/_sites/%5Bsubdomain%5D/%5B%5B...slug%5D%5D-ee0e985a68d56f3e.js" defer=""></script><script src="/_next/static/hzTwpsMqEXMyTe6T_hPSJ/_buildManifest.js" defer=""></script><script src="/_next/static/hzTwpsMqEXMyTe6T_hPSJ/_ssgManifest.js" defer=""></script><style id="__jsx-4145347147">:root{--font-inter:'__Inter_e5ab12', '__Inter_Fallback_e5ab12';--font-jetbrains-mono:'__JetBrains_Mono_3c557b', '__JetBrains_Mono_Fallback_3c557b'}</style></head><div id="__next"><main class="jsx-4145347147"><style>:root { --primary: 28 23 255; --primary-light: 80 76 255; --primary-dark: 28 23 255; --background-light: 251 251 252; --background-dark: 10 10 16; --gray-50: 243 243 250; --gray-100: 238 238 245; --gray-200: 223 223 230; --gray-300: 206 206 213; --gray-400: 159 159 166; --gray-500: 112 112 119; --gray-600: 80 80 87; --gray-700: 63 63 70; --gray-800: 38 38 45; --gray-900: 23 23 30; --gray-950: 11 10 17; }</style><style>/* Global styles */ #topbar-cta-button { margin-left: 1rem; } #topbar-cta-button a { display: flex; align-items: center; padding: 0.375rem 1rem !important; gap: 0.5rem; background-color: #1C17FF; color: #fff !important; border-radius: 0.25rem; font-weight: 500; letter-spacing: 0.4px; } #topbar-cta-button a:hover { background-color: #030080 !important; } /* #topbar-cta-button span { border-radius: 4px; font-weight: 500; letter-spacing: 0.4px; } */ /* #topbar-cta-button div > svg { display: none; } */ /* inserting svg via :after isn't working for some reason, used js instead */ /* #topbar-cta-button div::after { content: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="Icon Right"><path id="Vector" d="M8.08906 5L6.91406 6.175L10.7307 10L6.91406 13.825L8.08906 15L13.0891 10L8.08906 5Z" fill="white"/></g></svg>'); content: "test"; display: block; width: 20px; height: 20px; margin-left: 8px; background-image: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="Icon Right"><path id="Vector" d="M8.08906 5L6.91406 6.175L10.7307 10L6.91406 13.825L8.08906 15L13.0891 10L8.08906 5Z" fill="white"/></g></svg>'); background-color: #000000; background-size: contain; background-repeat: no-repeat; background-position: center; } */ .documentation-link { color: #1c17ff; text-decoration: none; } .documentation-link:hover { color: #000000; /* Black color when hovering */ } .custom-button { display: inline-block; padding: 2px 8px; background-color: #f1f1f1; color: #333; /* Text color */ border: 1px solid #aaa; /* Border color */ border-radius: 25px; /* Rounded borders */ text-align: center; user-select: none; transition: background-color 0.3s ease; /* Smooth transition for background color */ } /* Change the button color on hover (make it unclickable) */ .custom-button:hover { background-color: #1c17ff; color: #f1f1f1; } /* Adjust the width for the second column */ /* td:nth-child(2) { width: 200px; /* Adjust the width as per your requirement } */ /* Add an announcement bar TODO: This can be version specific if you add a page-specific class/ID, but it doesn't seem to work for the OpenAI docs without rewriting the JSON */ /* #navbar:before { background-color: #ff4c04; content: "The legacy version of the API, which required regional URLs for control plane operations, is deprecated as of April 15, 2024 and will be removed in a future, to be announced, release."; color: rgb(255, 255, 255); display: block; text-align: center; padding: 6px; font-size: 90%; } */ /* Text color */ /* body { color: #121142 !important; } */ /* Header */ #navbar { background: white; position: fixed; /* position: sticky !important; */ /* top: 0 !important; */ } #navbar-transition { border-bottom: 1px solid #e2e5e7; } #navbar .max-w-8xl { max-width: 100%; } /* Logo + "Docs" text + version select */ #navbar>div:first-of-type>div:first-of-type>div:first-of-type>div:first-of-type { flex: initial; } #navbar>div:first-of-type>div:first-of-type>div:first-of-type>div:first-of-type>a:first-of-type { flex: initial; display: flex; } #navbar img[alt="logo"] { max-width: 150px; } /* Version select */ [aria-haspopup="menu"] { border-radius: 0.25rem; border: 1px solid rgba(115, 143, 171, 0.50); background-color: transparent !important; color: #121142; } [aria-labelledby="headlessui-menu-button-:r0:"] { width: 11rem; } /* Right side nav container */ #navbar>div:first-of-type>div:first-of-type>div:first-of-type>div:nth-of-type(3) { flex: initial; margin-left: 0; } /* Prevent nav items from shrinking */ #navbar>div:first-of-type>div:first-of-type>div:first-of-type>div:nth-of-type(3)>nav { flex-shrink: 0; } /* nav links */ #navbar nav a { color: #121142; padding: 0.6rem 1rem; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1); } #navbar nav a:hover { background-color: rgba(27, 23, 245, 0.04); border-radius: 0.25rem; } #navbar nav ul li:not(:last-of-type) { margin-left: 0; } /* Hide dark mode toggle */ #navbar>div:first-of-type>div:first-of-type>div:first-of-type>div:nth-of-type(3)>div { display: none; } /* Second nav container */ /* Links */ #navbar a { color: #121142; margin: 0; padding-left: 0.875rem; padding-right: 0.875rem; } /* Selected links */ #navbar a.font-semibold { color: #1B17F5; border-bottom-width: 0.1875rem; border-color: #1B17F5; } #navbar div.absolute.bottom-0 { display: none; } /* Sidebar */ #sidebar { left: 0rem; padding-left: 3rem; background: white; border-right: 1px solid #e2e5e7; /* position: sticky; */ /* flex-shrink: 0; */ /* top: 0; */ } #sidebar-content { padding-left: 2rem; } /* Sidebar headings and link color */ #sidebar-content h5, #sidebar a { color: #121142; } /* Sidebar Introduction link */ #sidebar>div>ul>div:first-of-type>li:only-of-type { margin-left: 0; } #sidebar>div>ul>div:first-of-type>li:only-of-type>a { font-weight: 600; } /* Nav items */ #navigation-items>div>ul>li { margin-left: 0.75rem; } /* Selected nav items */ #navigation-items>div>ul>li a.font-semibold { color: #1B17F5; font-weight: 400; background-color: #3C72FF0A; } /* Main content area */ /* main > div:first-of-type > div:last-of-type > div:first-of-type { display: flex; } */ @media screen and (min-width: 1024px) { #content-area>div:first-child:not(#header)>div.relative.w-full.flex.items-center.justify-center:first-child { margin-top: 7rem } } /* Content container */ /* #content-container { padding-left: 3.5rem !important; } */ #content-container>div { padding-top: 10rem; } @media (min-width: 1024px) { #content-container>div { gap: 3rem; } #content-container #table-of-contents { padding-left: 0; } } /* Title eyebrow */ #header .eyebrow { text-transform: uppercase; color: #121142; font-size: 0.625rem; letter-spacing: 1px; line-height: 160%; } /* Hide empty eyebrow */ #header .eyebrow:empty { display: none; } /* Title container */ #header>div:first-of-type>div:nth-of-type(2) { margin-top: 0; } /* Title */ #header h1 { color: #121142; } /* Article text */ .prose h2, .prose h3, .prose h4, .prose p { color: #121142; } .prose a { color: #1B17F5; font-weight: 400; } /* Overwrite tailwind max-width */ .max-w-8xl { max-width: 94.5rem; } .card { box-shadow: none; border: 1px solid #D8DDDF; border-radius: 0.25rem; transition: box-shadow 0.3s ease; } .card:hover { box-shadow: 0px 5px 5px -3px rgba(163, 169, 175, 0.20), 0px 8px 10px 1px rgba(163, 169, 175, 0.14), 0px 3px 14px 2px rgba(163, 169, 175, 0.12); border: 1px solid #D8DDDF !important; } .card>div { padding: 1.5rem; } .card h2, .example-card h2 { font-size: 1.25rem; } .card p, .example-card p { margin-top: 0.625rem; font-size: 0.875rem; color: #121142; } .card .eyebrow { font-size: 0.625rem; text-transform: uppercase; line-height: 160%; letter-spacing: 1px; } .card .integration-logo { width: 3.125rem; height: 3.125rem; display: flex; justify-content: center; align-items: center; } .card-grid { display: grid; gap: 1.5rem; } @media (min-width: 640px) { .card-grid { grid-template-columns: 1fr 1fr; } } @media (min-width: 1024px) { .card-grid { grid-template-columns: 1fr 1fr 1fr; } } .example-card { box-shadow: none; border: 1px solid #D8DDDF; border-radius: 0.25rem; transition: box-shadow 0.3s ease; padding: 1.5rem; display: flex; flex-direction: column; flex-grow: 1; background-color: #fff; } .example-card .arrow { margin-left: auto; margin-top: auto; opacity: 0; transition: opacity 0.3s ease; } .example-card:hover .arrow { opacity: 1; } .example-card:hover { box-shadow: 0px 5px 5px -3px rgba(163, 169, 175, 0.20), 0px 8px 10px 1px rgba(163, 169, 175, 0.14), 0px 3px 14px 2px rgba(163, 169, 175, 0.12); border: 1px solid #D8DDDF !important; } .example-card .tags { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; } .example-card .card-tag { border-radius: 1rem; background-color: rgba(115, 143, 171, 0.08); color: #121142; font-size: 0.8125rem; line-height: 138%; letter-spacing: 0.16px; padding: 0.1875rem 0.375rem; display: flex; gap: 0.375rem; align-items: center; } .example-card .vectors { color: #72788D; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: 0.875rem; line-height: 150%; letter-spacing: 0.15px; padding-top: 2.875rem; margin-top: auto; } .examples-h2 { font-size: 1.25rem; margin-bottom: 1.5rem; } /* Integrations */ #integrations-banner { position: relative; margin-top: 7rem; height: 12.75rem; display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; /* background: url('https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/images/background.png') no-repeat center center; */ background-size: 90%; background-color: rgb(251, 251, 252); text-align: center; border-bottom: 1px solid #e2e5e7; } #integrations-banner h1 { color: #000000; font-size: 3rem; } #integrations-banner p { color: #000000; font-size: 1.25rem; opacity: 0.7; margin-top: 0.5rem; } /* Integrations related articles */ #related-articles { display: flex; flex-direction: column; width: 100%; } #related-articles h2 { color: #121142; font-size: 1.25rem; font-weight: 600; letter-spacing: 0.15px; line-height: 150%; margin-bottom: 1rem; } #related-articles a { padding: 1.0625rem 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; color: #121142; font-size: 0.875rem; line-height: 150%; letter-spacing: 0.15px; } #related-articles a:not(:last-of-type) { border-bottom: 1px solid #D8DDDF; } #related-articles a:hover { opacity: 0.7; } #related-articles a>svg { flex-shrink: 0; } /* Integrations back button */ #back-button { display: flex; gap: 0.5rem; align-items: center; color: #121142 !important; font-size: 0.875rem; line-height: 150%; letter-spacing: 0.15px; margin-bottom: 1.5rem; } #back-button:hover { opacity: 0.7; } #back-button>svg { flex-shrink: 0; } /* Sample apps */ .sample-app { color: #121142; } .sample-app h2 { font-size: 2.125rem; font-weight: 600; line-height: 123.5%; letter-spacing: 0.25px; } .sample-app h2:not(:first-of-type) { margin: 4rem 0 0 0; } .sample-app h2:first-of-type { margin: 0; } .sample-app h3 { font-size: 1.25rem; font-weight: 600; line-height: 150%; letter-spacing: 0.15px; margin: 3rem 0 0 0; } .sample-app h4 { font-size: 0.875rem; font-weight: 700; line-height: 150%; letter-spacing: 0.15px; margin: 3rem 0 0 0; } .sample-app p, .sample-app ul { margin: 1.5rem 0 0 0; font-size: 0.875rem; list-style-type: disc; } .sample-app li::before { display: none; } .sample-app li { padding-left: 0 !important; margin-left: 1.25rem; } .sample-app li::marker { color: #121142; } .sample-app-heading { display: flex; flex-direction: column; align-items: center; text-align: center; } .sample-app-heading .eyebrow { color: #121142; font-size: 0.625rem; line-height: 160%; letter-spacing: 1px; text-transform: uppercase; } .sample-app-heading h1 { color: #121142; margin: 0.5rem 0 0 0; font-size: 2.125rem; font-weight: 600; line-height: 123.5%; letter-spacing: 0.25px; } .sample-app-heading p { color: #121142; margin: 0.5rem 0 1.5rem 0; font-size: 1.25rem; font-weight: 600; line-height: 150%; letter-spacing: 0.15px; } /* Sample apps content area with sidebar */ .sample-app-split { display: flex; flex-direction: column; gap: 3rem; } .sample-app-split .sidebar a:not(.connect-with-pinecone) { font-size: 0.875rem; color: #121142; border-bottom: none; } .sample-app-split .toc-list { display: flex; flex-direction: column; gap: 1rem; } .sample-app-split .toc-list a.bold { font-weight: 700; margin-top: 0.5rem; } .sample-app-split>.content.no-margin>p:first-of-type { margin-top: 0 !important; } .connect-with-pinecone { border: 1px solid rgba(115, 143, 171, 0.50); border-radius: 0.25rem; padding: 0.5rem 1rem; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 500; line-height: 1.5rem; letter-spacing: 0.4px; color: #121142 !important; text-decoration: none; align-self: flex-start; } @media (min-width: 1280px) { .sample-app-split { flex-direction: row; } .sample-app-split .content { overflow-x: auto; } .sample-app-split .sidebar { width: 20.625rem; flex-shrink: 0; } } /* Hacky codeblock targeting */ div[class*="bg-codeblock"].relative { background: #121142; border-radius: 0.25rem; } p>code { font-size: 0.75rem; line-height: 150%; letter-spacing: 0.5px; border-radius: 0.25rem; padding: 0.125rem 0.5rem; background-color: rgba(115, 143, 171, 0.08); color: #030080; border: none; } code .api-key.set { color: orange; } .pinecone-connect-connected { width: 100%; max-width: 31.25rem; background-color: rgb(255, 255, 255); transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; border-radius: 0.25rem; padding: 1.5rem; margin: 1.5rem 0; border: 1px solid rgb(224, 224, 224); } .pinecone-connect-connected img { height: 1.875rem; margin: 0; } .pinecone-connect-connected p { color: rgba(0, 0, 0, 0.87) !important; } .pinecone-connect-connected p:last-of-type { margin-top: 0.75rem; } .remove-api-key { display: flex; width: 100%; max-width: 31.25rem; margin-top: -1.25rem; } .remove-api-key>button { font-size: 0.8125rem; font-weight: 500; color: #1d4ed8; margin-left: auto; } /* Model Gallery */ .featured-card-container { padding: 0 1rem; position: relative; width: 100%; margin: 1rem 0; overflow: visible; -webkit-overflow-scrolling: touch; } .featured-model-cards { display: grid; grid-auto-flow: column; grid-auto-columns: calc(25% - 0.75rem); gap: 1rem; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 1rem 0; margin: -1rem 0; scrollbar-width: none; -ms-overflow-style: none; cursor: grab; } .featured-model-cards>* { scroll-snap-align: start; } .carousel-button { position: absolute; top: 50%; transform: translateY(-50%); width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: white; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); display: flex; align-items: center; justify-content: center; z-index: 10; cursor: pointer; border: 1px solid #D8DDDF; padding: 0; } .carousel-button:hover { background-color: #f9fafb; transform: translateY(-50%) scale(1.05); box-shadow: 0 6px 8px -2px rgb(0 0 0 / 0.15); } .carousel-button.prev { left: -1.25rem; } .carousel-button.next { right: -1.25rem; } /* Make sure parent containers don't clip the buttons */ #content-container, #content-area, main { overflow: visible !important; } @media (max-width: 1280px) { .featured-model-cards { grid-auto-columns: calc(33.333% - 0.67rem); } } @media (max-width: 1024px) { .featured-model-cards { grid-auto-columns: calc(50% - 0.5rem); } } @media (max-width: 768px) { .featured-model-cards { grid-auto-columns: 100%; padding-bottom: 1rem; } .carousel-button { display: none !important; } } .outlined-button { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 150px; height: 36px; padding: 4px; border-radius: 4px; border: 1px solid var(--Light-Secondary-Shades-50p, rgba(115, 143, 171, 0.5)); color: #FFFFFF; text-decoration: none; font-size: 14px; letter-spacing: 0.4; text-align: center; color: #121142; font-weight: 500; transition: background-color 0.3s ease, border 0.3s ease, color 0.3s ease; } .outlined-button:hover { background-color: #3C72FF0A; border: 1px solid #1B17F5; color: #FFFFFF; } .control { position: absolute; top: 50%; transform: translateY(-50%); background-color: rgba(255, 255, 255, 0.7); border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0.5; transition: opacity 0.3s ease; } .control:hover { opacity: 1; } .prev-slide { left: 10px; } .next-slide { right: 10px; } .inference-text p { margin-top: 0rem; } /* Model page */ .model-page-card { padding: 1.5rem; border-radius: 0.25rem; border: 1px solid #D8DDDF; background: #FFF; margin-bottom: 2.5rem; } .model-page-card-title { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; } .model-page-card-title>h1 { font-size: 1.5rem; color: #121142; } .model-page-card-logo { width: 2.125rem; height: 2.125rem; flex-shrink: 0; } .model-page-card-logo>img { width: 100%; height: 100%; object-fit: contain; } .model-page-card-inference { border-radius: 1rem; border: 1px solid #D8DDDF; padding: 0.25rem 0.375rem 0.25rem 0.25rem; display: flex; align-items: center; gap: 0.375rem; font-size: 0.8125rem; } .model-page-card-stats { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 1rem; } .model-page-card-stats>div>span { font-size: 0.625rem; color: #72788D; letter-spacing: 0.2px; font-weight: 500; } .model-page-card-stats>div>p { font-size: 0.75rem; color: #121142; letter-spacing: 0.17px; } .model-page-card-stats>div.price { margin-left: auto; } .model-page-card-stats>div.price>p { margin-left: auto; font-weight: 600; } .model-page-tabs { display: flex; width: 100%; border-bottom: 1px solid #D8DDDF; margin-bottom: 2rem; } .model-page-tabs>button { padding: 0.5625rem 1rem; border-bottom: 1px solid transparent; color: #72788D; display: flex; align-items: center; gap: 0.375rem; font-weight: 500; letter-spacing: 0.4px; } .model-page-tabs>button>svg>path { fill: #72788D; } .model-page-tabs>button.active { border-bottom: 2px solid #1B17F5; color: #1B17F5; } .model-page-tabs>button.active>svg>path { fill: #1B17F5; } .model-page-playground { display: none; } .model-page-guides { display: flex; flex-direction: column; gap: 3rem; } .model-page-content { flex-shrink: 1; width: auto; max-width: 1050px; @media (max-width: 1500px) { max-width: 700px; } } .model-page-content> :first-child { margin-top: 0; } .model-page-content pre { white-space: pre-wrap; } .model-page-sidebar { width: 100%; flex-shrink: 1; } .model-page-sidebar .iframe-placeholder { height: 800px; } /* removing inline padding for now */ @media (min-width: 1280px) { .model-search-container { padding-inline: 0px; } } .model-page-sidebar-readmore { font-size: 0.875rem; font-style: normal; font-weight: 500; line-height: 150%; letter-spacing: 0.15px } .model-page-sidebar-readmore svg { margin-bottom: 2px; } .model-search-container { height: 1045px; @media (max-width: 768px) { height: 1200px; } } @media (min-width: 1080px) { .model-page-guides { flex-direction: row; } .model-page-sidebar { max-width: 20.6875rem; flex-shrink: 0; } } .connect-widget-skeleton { margin-block: 45px; width: 498px; height: 180px; /* Adjust height to match your widget */ background: #f6f7f9; border-radius: 4px; overflow: hidden; position: relative; border: 1px solid #D8DDDF; } .skeleton-content { width: 450px; height: 180px; background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 100%); animation: shimmer 1.5s infinite; position: absolute; top: 0; left: 0; } @keyframes shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } /* For dark mode */ .dark .connect-widget-skeleton { background: #2a2a2a; } /* Hide scrollbar for Chrome/Safari */ .featured-model-cards::-webkit-scrollbar { display: none; } /* Show grabbing cursor while actively scrolling */ .featured-model-cards:active { cursor: grabbing; } /* Add minimum width for model card buttons */ .featured-model-cards .example-card button, .featured-model-cards .model-card button { min-width: 200px; /* Ensures button doesn't shrink below this width */ width: 100%; /* Allows button to grow with container */ max-width: 400px; /* Prevents button from getting too wide */ margin: 0 auto; /* Centers the button if container is wider */ }</style><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5RCSPVG" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><span class="fixed inset-0 bg-background-light dark:bg-background-dark -z-10"></span><span class="block absolute dark:hidden inset-0 overflow-hidden"></span><span class="hidden absolute dark:block inset-0 overflow-hidden"></span><div class="relative antialiased text-gray-500 dark:text-gray-400"><div id="navbar" class="z-30 fixed lg:sticky top-0 w-full"><div id="navbar-transition" class="absolute w-full h-full backdrop-blur flex-none transition-colors duration-500 border-b border-gray-500/5 dark:border-gray-300/[0.06] supports-backdrop-blur:bg-background-light/60 dark:bg-transparent"></div><div class="max-w-8xl mx-auto relative"><div class=""><div class="relative"><div class="flex items-center lg:px-12 h-16 min-w-0 mx-4 lg:mx-0"><div class="h-full relative flex-1 flex items-center gap-x-4 min-w-0 border-b border-gray-500/5 dark:border-gray-300/[0.06]"><div class="flex-1 flex items-center gap-x-4"><a href="/"><span class="sr-only">Pinecone Docs<!-- --> home page</span><img class="w-auto h-7 relative object-contain" src="https://mintlify.s3.us-west-1.amazonaws.com/pinecone-2/logo/light.svg" alt="logo"/></a><div class="flex items-center gap-x-2"></div></div><button type="button" class="hidden lg:flex relative flex-1 pointer-events-auto rounded-xl w-full items-center text-sm leading-6 py-1.5 pl-3.5 pr-3 text-gray-400 dark:text-white/50 bg-background-light dark:bg-background-dark dark:brightness-[1.1] dark:ring-1 dark:hover:brightness-[1.25] ring-1 ring-gray-400/20 hover:ring-gray-600/25 dark:ring-gray-600/30 dark:hover:ring-gray-500/30 focus:outline-primary justify-between truncate gap-2 min-w-[43px] mx-px" id="search-bar-entry"><div class="flex items-center gap-3 min-w-[42px]"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search min-w-4 flex-none text-gray-700 hover:text-gray-800 dark:text-gray-300 hover:dark:text-gray-200"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><div class="truncate min-w-0">Search or ask...</div></div></button><div class="flex-1 relative hidden lg:flex items-center ml-auto justify-end space-x-4"><nav class="text-sm"><ul class="flex space-x-6 items-center"><li><a href="https://status.pinecone.io" class="whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank">Status</a></li><li><a href="https://app.pinecone.io/organizations/-/settings/support" class="whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank">Support</a></li><li><a href="https://app.pinecone.io/?sessionType=login" class="whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank">Log In</a></li><li class="block lg:hidden"><a class="whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" href="https://app.pinecone.io/?sessionType=signup">Sign up free</a></li><li class="whitespace-nowrap hidden lg:flex" id="topbar-cta-button"><a target="_blank" class="group px-4 py-1.5 relative inline-flex items-center text-sm font-medium" href="https://app.pinecone.io/?sessionType=signup"><span class="absolute inset-0 bg-primary-dark rounded-full group-hover:opacity-[0.9]"></span><div class="mr-0.5 space-x-2.5 flex items-center"><span class="z-10 text-white">Sign up free</span><svg width="3" height="24" viewBox="0 -9 3 24" class="h-5 rotate-0 overflow-visible text-white/90"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></a></li></ul></nav><div class="flex items-center"></div></div><div class="flex lg:hidden items-center gap-2"><button type="button" class="text-gray-500 w-8 h-8 flex items-center justify-center hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300" id="search-bar-entry-mobile"><span class="sr-only">Search...</span><svg class="h-4 w-4 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/magnifying-glass.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/magnifying-glass.svg);mask-repeat:no-repeat;mask-position:center"></svg></button><button aria-label="More actions" class="h-7 w-5 flex items-center justify-end"><svg class="h-4 w-4 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/ellipsis-vertical.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/solid/ellipsis-vertical.svg);mask-repeat:no-repeat;mask-position:center"></svg></button></div></div></div><div class="flex items-center h-14 py-4 px-5 lg:hidden"><button type="button" class="text-gray-500 hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300"><span class="sr-only">Navigation</span><svg class="h-4" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"></path></svg></button><div class="ml-4 flex text-sm leading-6 whitespace-nowrap min-w-0 space-x-3"><div class="flex items-center space-x-3"><span>Frameworks</span><svg width="3" height="24" viewBox="0 -9 3 24" class="h-5 rotate-0 overflow-visible fill-gray-400"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div><div class="font-semibold text-gray-900 truncate dark:text-gray-200">Haystack</div></div></div></div><div class="hidden lg:flex px-12 h-12"><div class="h-full flex text-sm space-x-6"><a class="group relative h-full flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/guides/get-started/overview">Guides<div class="absolute bottom-0 h-[1.5px] w-full group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="group relative h-full flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/reference/api/introduction">Reference<div class="absolute bottom-0 h-[1.5px] w-full group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="group relative h-full flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/examples/notebooks">Examples<div class="absolute bottom-0 h-[1.5px] w-full group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="group relative h-full flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/models/overview">Models<div class="absolute bottom-0 h-[1.5px] w-full group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="group relative h-full flex items-center text-gray-800 dark:text-gray-200 font-semibold" href="/integrations/overview">Integrations<div class="absolute bottom-0 h-[1.5px] w-full bg-primary dark:bg-primary-light"></div></a><a class="group relative h-full flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/troubleshooting/contact-support">Troubleshooting<div class="absolute bottom-0 h-[1.5px] w-full group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="group relative h-full flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/release-notes/2025">Releases<div class="absolute bottom-0 h-[1.5px] w-full group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a></div></div></div></div></div><div class="max-w-8xl px-4 mx-auto lg:px-8"><div class="z-20 hidden lg:block fixed bottom-0 right-auto w-[18rem]" id="sidebar" style="top:7rem"><div class="absolute inset-0 z-10 stable-scrollbar-gutter overflow-auto pr-8 pb-10" id="sidebar-content"><div class="relative lg:text-sm lg:leading-6"><div class="sticky top-0 h-8 bg-gradient-to-b from-background-light dark:from-background-dark"></div><div id="navigation-items"><div class=""><h5 class="pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200">Connect an integration</h5><ul><li id="/integrations/overview" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/integrations/overview"><div class="flex-1 flex items-center space-x-2.5"><div>View all</div></div></a></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Data sources</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Frameworks</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5 duration-75 rotate-90"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div><ul><li id="/integrations/amazon-bedrock" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/amazon-bedrock"><div class="flex-1 flex items-center space-x-2.5"><div>Amazon Bedrock</div></div></a></li><li id="/integrations/amazon-sagemaker" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/amazon-sagemaker"><div class="flex-1 flex items-center space-x-2.5"><div>Amazon SageMaker</div></div></a></li><li id="/integrations/cloudera" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/cloudera"><div class="flex-1 flex items-center space-x-2.5"><div>Cloudera AI</div></div></a></li><li id="/integrations/context-data" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/context-data"><div class="flex-1 flex items-center space-x-2.5"><div>Context Data</div></div></a></li><li id="/integrations/haystack" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl bg-primary/10 text-primary font-semibold dark:text-primary-light dark:bg-primary-light/10" style="padding-left:1.75rem" href="/integrations/haystack"><div class="flex-1 flex items-center space-x-2.5"><div>Haystack</div></div></a></li><li id="/integrations/instill" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/instill"><div class="flex-1 flex items-center space-x-2.5"><div>Instill AI</div></div></a></li><li id="/integrations/langchain" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/langchain"><div class="flex-1 flex items-center space-x-2.5"><div>LangChain</div></div></a></li><li id="/integrations/llamaindex" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/llamaindex"><div class="flex-1 flex items-center space-x-2.5"><div>LlamaIndex</div></div></a></li><li id="/integrations/nuclia" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/nuclia"><div class="flex-1 flex items-center space-x-2.5"><div>Nuclia</div></div></a></li><li id="/integrations/octoai" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1.75rem" href="/integrations/octoai"><div class="flex-1 flex items-center space-x-2.5"><div>OctoAI</div></div></a></li></ul></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Infrastructure</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Models</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></li><li><div class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem"><div class="">Observability</div><svg width="8" height="24" viewBox="0 -9 3 24" class="transition-transform text-gray-400 overflow-visible group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 -mr-0.5"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></div></li></ul></div><div class="mt-12 lg:mt-8"><h5 class="pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200">Build an integration</h5><ul><li id="/integrations/build-integration/become-a-partner" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/integrations/build-integration/become-a-partner"><div class="flex-1 flex items-center space-x-2.5"><div>Become a Pinecone partner</div></div></a></li><li id="/integrations/build-integration/attribute-usage-to-your-integration" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/integrations/build-integration/attribute-usage-to-your-integration"><div class="flex-1 flex items-center space-x-2.5"><div>Attribute usage to your integration</div></div></a></li><li id="/integrations/build-integration/connect-your-users-to-pinecone" class="relative scroll-m-4 first:scroll-m-20"><a class="group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 cursor-pointer focus:outline-primary dark:focus:outline-primary-light gap-x-3 rounded-xl hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/integrations/build-integration/connect-your-users-to-pinecone"><div class="flex-1 flex items-center space-x-2.5"><div>Connect your users to Pinecone</div></div></a></li></ul></div></div></div></div></div><div class="" id="content-container"><div class="flex flex-row gap-12 box-border w-full pt-40 lg:pt-10"><div class="relative grow box-border flex-col w-full mx-auto px-1 lg:pl-[23.7rem] lg:-ml-12 xl:w-[calc(100%-28rem)]" id="content-area"><header id="header" class="relative"><div class="mt-0.5 space-y-2.5"><div class="eyebrow h-5 text-primary dark:text-primary-light text-sm font-semibold">Frameworks</div><div class="flex items-center"><h1 class="inline-block text-2xl sm:text-3xl font-bold text-gray-900 tracking-tight dark:text-gray-200">Haystack</h1></div></div><div class="mt-2 text-lg prose prose-gray dark:prose-invert"><p>Using Haystack and Pinecone to keep your NLP-driven apps up-to-date</p></div></header><div class="flex flex-col gap-8"></div><div class="relative mt-8 prose prose-gray dark:prose-invert"><p>Haystack is the open source Python framework by Deepset for building custom apps with large language models (LLMs). It lets you quickly try out the latest models in natural language processing (NLP) while being flexible and easy to use. Their community of users and builders has helped shape Haystack into what it is today: a complete framework for building production-ready NLP apps.</p> <p>Haystack and Pinecone integration can be used to keep your NLP-driven apps up-to-date with Haystack’s indexing pipelines that help you prepare and maintain your data.</p> <div style="display:flex;align-items:center;gap:16px"><div style="width:fit-content;height:42px;border-radius:4px;overflow:hidden;flex-direction:column;justify-content:center;align-items:center;display:inline-flex;text-decoration:none"><a style="padding-left:11px;padding-right:11px;padding-top:8px;padding-bottom:8px;justify-content:center;align-items:center;gap:8px;display:inline-flex;text-decoration:none;border-bottom:none" href="/_sites/docs.pinecone.io/integrations/haystack#setup-guide"><div style="text-align:justify;color:#1B17F5;font-size:15px;font-weight:600;letter-spacing:0.46px;word-wrap:break-word">View setup guide</div></a></div></div> <h2 class="flex whitespace-pre-wrap group font-semibold" id="setup-guide"><div class="absolute"><a href="#setup-guide" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Setup guide</span></h2> <p>In this guide we will see how to integrate Pinecone and the popular <a href="https://github.com/deepset-ai/haystack" target="_blank" rel="noreferrer">Haystack library</a> for <em>Question-Answering</em>.</p> <h3 class="flex whitespace-pre-wrap group font-semibold" id="install-haystack"><div class="absolute"><a href="#install-haystack" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Install Haystack</span></h3> <p>We start by installing the latest version of Haystack with all dependencies required for the <code>PineconeDocumentStore</code>.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class="">pip install <span class="token operator">-</span>U farm<span class="token operator">-</span>haystack<span class="token operator">>=</span><span class="token number">1.3</span><span class="token number">.0</span> pinecone<span class="token punctuation">[</span>grpc<span class="token punctuation">]</span> datasets</span> </code></pre></div></div></div> <h3 class="flex whitespace-pre-wrap group font-semibold" id="initialize-the-pineconedocumentstore"><div class="absolute"><a href="#initialize-the-pineconedocumentstore" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Initialize the PineconeDocumentStore</span></h3> <p>We initialize a <code>PineconeDocumentStore</code> by providing an API key and environment name. <a href="https://app.pinecone.io" target="_blank" rel="noreferrer">Create an account</a> to get your free API key.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> haystack<span class="token punctuation">.</span>document_stores <span class="token keyword">import</span> PineconeDocumentStore</span> <!-- --> <span class="">document_store <span class="token operator">=</span> PineconeDocumentStore<span class="token punctuation">(</span></span> <span class=""> api_key<span class="token operator">=</span><span class="token string">'<YOUR_API_KEY>'</span><span class="token punctuation">,</span></span> <span class=""> index<span class="token operator">=</span><span class="token string">'haystack-extractive-qa'</span><span class="token punctuation">,</span></span> <span class=""> similarity<span class="token operator">=</span><span class="token string">"cosine"</span><span class="token punctuation">,</span></span> <span class=""> embedding_dim<span class="token operator">=</span><span class="token number">384</span></span> <span class=""><span class="token punctuation">)</span></span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-plaintext"><code><span class="">INFO - haystack.document_stores.pinecone - Index statistics: name: haystack-extractive-qa, embedding dimensions: 384, record count: 0</span> </code></pre></div></div></div> <h3 class="flex whitespace-pre-wrap group font-semibold" id="prepare-data"><div class="absolute"><a href="#prepare-data" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Prepare data</span></h3> <p>Before adding data to the document store, we must download and convert data into the Document format that Haystack uses.</p> <p>We will use the SQuAD dataset available from Hugging Face Datasets.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> datasets <span class="token keyword">import</span> load_dataset</span> <!-- --> <span class=""><span class="token comment"># load the squad dataset</span></span> <span class="">data <span class="token operator">=</span> load_dataset<span class="token punctuation">(</span><span class="token string">"squad"</span><span class="token punctuation">,</span> split<span class="token operator">=</span><span class="token string">"train"</span><span class="token punctuation">)</span></span> </code></pre></div></div></div> <p>Next, we remove duplicates and unecessary columns.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token comment"># convert to a pandas dataframe</span></span> <span class="">df <span class="token operator">=</span> data<span class="token punctuation">.</span>to_pandas<span class="token punctuation">(</span><span class="token punctuation">)</span></span> <span class=""><span class="token comment"># select only title and context column</span></span> <span class="">df <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"title"</span><span class="token punctuation">,</span> <span class="token string">"context"</span><span class="token punctuation">]</span><span class="token punctuation">]</span></span> <span class=""><span class="token comment"># drop rows containing duplicate context passages</span></span> <span class="">df <span class="token operator">=</span> df<span class="token punctuation">.</span>drop_duplicates<span class="token punctuation">(</span>subset<span class="token operator">=</span><span class="token string">"context"</span><span class="token punctuation">)</span></span> <span class="">df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span></span> </code></pre></div></div></div> <table><thead><tr><th>title</th><th>context</th><th></th></tr></thead><tbody><tr><td>0</td><td>University_of_Notre_Dame</td><td>Architecturally, the school has a Catholic cha…</td></tr><tr><td>5</td><td>University_of_Notre_Dame</td><td>As at most other universities, Notre Dame’s st…</td></tr><tr><td>10</td><td>University_of_Notre_Dame</td><td>The university is the major seat of the Congre…</td></tr><tr><td>15</td><td>University_of_Notre_Dame</td><td>The College of Engineering was established in …</td></tr><tr><td>20</td><td>University_of_Notre_Dame</td><td>All of Notre Dame’s undergraduate students are…</td></tr></tbody></table> <p>Then convert these records into the Document format.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> haystack <span class="token keyword">import</span> Document</span> <!-- --> <span class="">docs <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span></span> <span class=""><span class="token keyword">for</span> d <span class="token keyword">in</span> df<span class="token punctuation">.</span>iterrows<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> <span class=""> d <span class="token operator">=</span> d<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span></span> <span class=""> <span class="token comment"># create haystack document object with text content and doc metadata</span></span> <span class=""> doc <span class="token operator">=</span> Document<span class="token punctuation">(</span></span> <span class=""> content<span class="token operator">=</span>d<span class="token punctuation">[</span><span class="token string">"context"</span><span class="token punctuation">]</span><span class="token punctuation">,</span></span> <span class=""> meta<span class="token operator">=</span><span class="token punctuation">{</span></span> <span class=""> <span class="token string">"title"</span><span class="token punctuation">:</span> d<span class="token punctuation">[</span><span class="token string">"title"</span><span class="token punctuation">]</span><span class="token punctuation">,</span></span> <span class=""> <span class="token string">'context'</span><span class="token punctuation">:</span> d<span class="token punctuation">[</span><span class="token string">'context'</span><span class="token punctuation">]</span></span> <span class=""> <span class="token punctuation">}</span></span> <span class=""> <span class="token punctuation">)</span></span> <span class=""> docs<span class="token punctuation">.</span>append<span class="token punctuation">(</span>doc<span class="token punctuation">)</span></span> </code></pre></div></div></div> <p>This <code>Document</code> format contains two fields; <em>‘content’</em> for the text content or paragraphs, and <em>‘meta’</em> where we can place any additional information that can later be used to apply metadata filtering in our search.</p> <p>Now we upsert the documents to Pinecone.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token comment"># upsert the data document to pinecone index</span></span> <span class="">document_store<span class="token punctuation">.</span>write_documents<span class="token punctuation">(</span>docs<span class="token punctuation">)</span></span> </code></pre></div></div></div> <h3 class="flex whitespace-pre-wrap group font-semibold" id="initialize-retriever"><div class="absolute"><a href="#initialize-retriever" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Initialize retriever</span></h3> <p>The next step is to create embeddings from these documents. We will use Haystacks <code>EmbeddingRetriever</code> with a SentenceTransformer model (<code>multi-qa-MiniLM-L6-cos-v1</code>) which has been designed for question-answering.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> haystack<span class="token punctuation">.</span>retriever<span class="token punctuation">.</span>dense <span class="token keyword">import</span> EmbeddingRetriever</span> <!-- --> <span class="">retriever <span class="token operator">=</span> EmbeddingRetriever<span class="token punctuation">(</span></span> <span class=""> document_store<span class="token operator">=</span>document_store<span class="token punctuation">,</span></span> <span class=""> embedding_model<span class="token operator">=</span><span class="token string">"multi-qa-MiniLM-L6-cos-v1"</span><span class="token punctuation">,</span></span> <span class=""> model_format<span class="token operator">=</span><span class="token string">"sentence_transformers"</span></span> <span class=""><span class="token punctuation">)</span></span> </code></pre></div></div></div> <p>Then we run the <code>PineconeDocumentStore.update_embeddings</code> method with the <code>retriever</code> provided as an argument. GPU acceleration can greatly reduce the time required for this step.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class="">document_store<span class="token punctuation">.</span>update_embeddings<span class="token punctuation">(</span></span> <span class=""> retriever<span class="token punctuation">,</span></span> <span class=""> batch_size<span class="token operator">=</span><span class="token number">16</span></span> <span class=""><span class="token punctuation">)</span></span> </code></pre></div></div></div> <h3 class="flex whitespace-pre-wrap group font-semibold" id="inspect-documents-and-embeddings"><div class="absolute"><a href="#inspect-documents-and-embeddings" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Inspect documents and embeddings</span></h3> <p>We can get documents by their ID with the <code>PineconeDocumentStore.get_documents_by_id</code> method.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class="">d <span class="token operator">=</span> document_store<span class="token punctuation">.</span>get_documents_by_id<span class="token punctuation">(</span>ids<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'49091c797d2236e73fab510b1e9c7f6b'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> return_embedding<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span></span> </code></pre></div></div></div> <p>From here we return can view document content with <code>d.content</code> and the document embedding with <code>d.embedding</code>.</p> <h3 class="flex whitespace-pre-wrap group font-semibold" id="initialize-an-extractive-qa-pipeline"><div class="absolute"><a href="#initialize-an-extractive-qa-pipeline" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Initialize an extractive QA pipeline</span></h3> <p>An <code>ExtractiveQAPipeline</code> contains three key components by default:</p> <ul> <li>a document store (<code>PineconeDocumentStore</code>)</li> <li>a retriever model</li> <li>a reader model</li> </ul> <p>We use the <code>deepset/electra-base-squad2</code> model from the HuggingFace model hub as our reader model.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> haystack<span class="token punctuation">.</span>nodes <span class="token keyword">import</span> FARMReader</span> <!-- --> <span class="">reader <span class="token operator">=</span> FARMReader<span class="token punctuation">(</span></span> <span class=""> model_name_or_path<span class="token operator">=</span><span class="token string">'deepset/electra-base-squad2'</span><span class="token punctuation">,</span> </span> <span class=""> use_gpu<span class="token operator">=</span><span class="token boolean">True</span></span> <span class=""><span class="token punctuation">)</span></span> </code></pre></div></div></div> <p>We are now ready to initialize the <code>ExtractiveQAPipeline</code>.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> haystack<span class="token punctuation">.</span>pipelines <span class="token keyword">import</span> ExtractiveQAPipeline</span> <!-- --> <span class="">pipe <span class="token operator">=</span> ExtractiveQAPipeline<span class="token punctuation">(</span>reader<span class="token punctuation">,</span> retriever<span class="token punctuation">)</span></span> </code></pre></div></div></div> <h3 class="flex whitespace-pre-wrap group font-semibold" id="ask-questions"><div class="absolute"><a href="#ask-questions" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100" aria-label="Navigate to header"><div class="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div></a></div><span class="cursor-pointer">Ask Questions</span></h3> <p>Using our QA pipeline we can begin querying with <code>pipe.run</code>.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class=""><span class="token keyword">from</span> haystack<span class="token punctuation">.</span>utils <span class="token keyword">import</span> print_answers</span> <!-- --> <span class="">query <span class="token operator">=</span> <span class="token string">"What was Albert Einstein famous for?"</span></span> <span class=""><span class="token comment"># get the answer</span></span> <span class="">answer <span class="token operator">=</span> pipe<span class="token punctuation">.</span>run<span class="token punctuation">(</span></span> <span class=""> query<span class="token operator">=</span>query<span class="token punctuation">,</span></span> <span class=""> params<span class="token operator">=</span><span class="token punctuation">{</span></span> <span class=""> <span class="token string">"Retriever"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">"top_k"</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span></span> <span class=""> <span class="token punctuation">}</span></span> <span class=""><span class="token punctuation">)</span></span> <span class=""><span class="token comment"># print the answer(s)</span></span> <span class="">print_answers<span class="token punctuation">(</span>answer<span class="token punctuation">)</span></span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-plaintext"><code><span class="">Inferencing Samples: 100%|██████████| 1/1 [00:00<00:00, 3.53 Batches/s]</span> <!-- --> <span class="">Query: What was Albert Einstein famous for?</span> <span class="">Answers:</span> <span class="">[ <Answer {</span> <span class=""> 'answer': 'his theories of special relativity and general relativity', 'type': 'extractive', 'score': 0.993550717830658,</span> <span class=""> 'context': 'Albert Einstein is known for his theories of special relativity and general relativity. He also made important contributions to statistical mechanics,',</span> <span class=""> 'offsets_in_document': [{'start': 29, 'end': 86}],</span> <span class=""> 'offsets_in_context': [{'start': 29, 'end': 86}], </span> <span class=""> 'document_id': '23357c05e3e46bacea556705de1ea6a5',</span> <span class=""> 'meta': {</span> <span class=""> 'context': 'Albert Einstein is known for his theories of special relativity and general relativity. He also made important contributions to statistical mechanics, especially his mathematical treatment of Brownian motion, his resolution of the paradox of specific heats, and his connection of fluctuations and dissipation. Despite his reservations about its interpretation, Einstein also made contributions to quantum mechanics and, indirectly, quantum field theory, primarily through his theoretical studies of the photon.', 'title': 'Modern_history'</span> <span class=""> }</span> <span class="">}>]</span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class="">query <span class="token operator">=</span> <span class="token string">"How much oil is Egypt producing in a day?"</span></span> <span class=""><span class="token comment"># get the answer</span></span> <span class="">answer <span class="token operator">=</span> pipe<span class="token punctuation">.</span>run<span class="token punctuation">(</span></span> <span class=""> query<span class="token operator">=</span>query<span class="token punctuation">,</span></span> <span class=""> params<span class="token operator">=</span><span class="token punctuation">{</span></span> <span class=""> <span class="token string">"Retriever"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">"top_k"</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span></span> <span class=""> <span class="token punctuation">}</span></span> <span class=""><span class="token punctuation">)</span></span> <span class=""><span class="token comment"># print the answer(s)</span></span> <span class="">print_answers<span class="token punctuation">(</span>answer<span class="token punctuation">)</span></span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-plaintext"><code><span class="">Inferencing Samples: 100%|██████████| 1/1 [00:00<00:00, 3.81 Batches/s]</span> <!-- --> <span class="">Query: How much oil is Egypt producing in a day?</span> <span class="">Answers:</span> <span class="">[ <Answer {</span> <span class=""> 'answer': '691,000 bbl/d', 'type': 'extractive', 'score': 0.9999906420707703,</span> <span class=""> 'context': 'Egypt was producing 691,000 bbl/d of oil and 2,141.05 Tcf of natural gas (in 2013), which makes Egypt as the largest oil producer not member of the Or',</span> <span class=""> 'offsets_in_document': [{'start': 20, 'end': 33}],</span> <span class=""> 'offsets_in_context': [{'start': 20, 'end': 33}],</span> <span class=""> 'document_id': '57ed9720050a17237e323da5e3969a9b',</span> <span class=""> 'meta': {</span> <span class=""> 'context': 'Egypt was producing 691,000 bbl/d of oil and 2,141.05 Tcf of natural gas (in 2013), which makes Egypt as the largest oil producer not member of the Organization of the Petroleum Exporting Countries (OPEC) and the second-largest dry natural gas producer in Africa. In 2013, Egypt was the largest consumer of oil and natural gas in Africa, as more than 20% of total oil consumption and more than 40% of total dry natural gas consumption in Africa. Also, Egypt possesses the largest oil refinery capacity in Africa 726,000 bbl/d (in 2012). Egypt is currently planning to build its first nuclear power plant in El Dabaa city, northern Egypt.', 'title': 'Egypt'</span> <span class=""> }</span> <span class="">}>]</span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class="">query <span class="token operator">=</span> <span class="token string">"What are the first names of the youtube founders?"</span></span> <span class=""><span class="token comment"># get the answer</span></span> <span class="">answer <span class="token operator">=</span> pipe<span class="token punctuation">.</span>run<span class="token punctuation">(</span></span> <span class=""> query<span class="token operator">=</span>query<span class="token punctuation">,</span></span> <span class=""> params<span class="token operator">=</span><span class="token punctuation">{</span></span> <span class=""> <span class="token string">"Retriever"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">"top_k"</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span></span> <span class=""> <span class="token punctuation">}</span></span> <span class=""><span class="token punctuation">)</span></span> <span class=""><span class="token comment"># print the answer(s)</span></span> <span class="">print_answers<span class="token punctuation">(</span>answer<span class="token punctuation">)</span></span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-plaintext"><code><span class="">Inferencing Samples: 100%|██████████| 1/1 [00:00<00:00, 3.83 Batches/s]</span> <!-- --> <span class="">Query: What are the first names of the youtube founders?</span> <span class="">Answers:</span> <span class="">[ <Answer {</span> <span class=""> 'answer': 'Hurley and Chen', 'type': 'extractive', 'score': 0.9998972713947296,</span> <span class=""> 'context': 'According to a story that has often been repeated in the media, Hurley and Chen developed the idea for YouTube during the early months of 2005, after ',</span> <span class=""> 'offsets_in_document': [{'start': 64, 'end': 79}],</span> <span class=""> 'offsets_in_context': [{'start': 64, 'end': 79}],</span> <span class=""> 'document_id': 'bd1cbd61ab617d840c5f295e21e80092',</span> <span class=""> 'meta': {</span> <span class=""> 'context': 'According to a story that has often been repeated in the media, Hurley and Chen developed the idea for YouTube during the early months of 2005, after they had experienced difficulty sharing videos that had been shot at a dinner party at Chen\'s apartment in San Francisco. Karim did not attend the party and denied that it had occurred, but Chen commented that the idea that YouTube was founded after a dinner party "was probably very strengthened by marketing ideas around creating a story that was very digestible".', 'title': 'YouTube'</span> <span class=""> }</span> <span class="">}>]</span> </code></pre></div></div></div> <p>We can return multiple answers by setting the <code>top_k</code> parameter.</p> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="flex rounded-t-2xl text-gray-400 text-xs leading-6 border-b font-medium bg-black/40 border-gray-900/80"><div class="flex-none border-b px-4 pt-2.5 pb-2 flex items-center text-primary-light border-primary-light">Python</div><div class="flex-1 mr-4 flex items-center justify-end"></div></div><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-python"><code class="language-Python"><span class="">query <span class="token operator">=</span> <span class="token string">"Who was the first person to step foot on the moon?"</span></span> <span class=""><span class="token comment"># get the answer</span></span> <span class="">answer <span class="token operator">=</span> pipe<span class="token punctuation">.</span>run<span class="token punctuation">(</span></span> <span class=""> query<span class="token operator">=</span>query<span class="token punctuation">,</span></span> <span class=""> params<span class="token operator">=</span><span class="token punctuation">{</span></span> <span class=""> <span class="token string">"Retriever"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">"top_k"</span><span class="token punctuation">:</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">,</span></span> <span class=""> <span class="token punctuation">}</span></span> <span class=""><span class="token punctuation">)</span></span> <span class=""><span class="token comment"># print the answer(s)</span></span> <span class="">print_answers<span class="token punctuation">(</span>answer<span class="token punctuation">)</span></span> </code></pre></div></div></div> <div class="mt-5 mb-8 not-prose rounded-2xl relative text-gray-50 bg-[#0F1117] dark:bg-codeblock border border-transparent dark:border-gray-800/50 codeblock-dark"><div class="min-w-full relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out" style="font-variant-ligatures:none;height:auto"><div class="overflow-x-auto h-full p-5 [&_code]:pr-[3.5rem] overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-white/20 dark:scrollbar-thumb-white/20 hover:scrollbar-thumb-white/25 dark:hover:scrollbar-thumb-white/25 active:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25"><pre class="language-plaintext"><code><span class="">Inferencing Samples: 100%|██████████| 1/1 [00:00<00:00, 3.71 Batches/s]</span> <span class="">Inferencing Samples: 100%|██████████| 1/1 [00:00<00:00, 3.78 Batches/s]</span> <span class="">Inferencing Samples: 100%|██████████| 1/1 [00:00<00:00, 3.88 Batches/s]</span> <!-- --> <span class="">Query: Who was the first person to step foot on the moon?</span> <span class="">Answers:</span> <span class="">[ <Answer {</span> <span class=""> 'answer': 'Armstrong', 'type': 'extractive', 'score': 0.9998227059841156, </span> <span class=""> 'context': 'The trip to the Moon took just over three days. After achieving orbit, Armstrong and Aldrin transferred into the Lunar Module, named Eagle, and after ', </span> <span class=""> 'offsets_in_document': [{'start': 71, 'end': 80}], </span> <span class=""> 'offsets_in_context': [{'start': 71, 'end': 80}], </span> <span class=""> 'document_id': 'f74e1bf667e68d72e45437a7895df921', </span> <span class=""> 'meta': {</span> <span class=""> 'context': 'The trip to the Moon took just over three days. After achieving orbit, Armstrong and Aldrin transferred into the Lunar Module, named Eagle, and after a landing gear inspection by Collins remaining in the Command/Service Module Columbia, began their descent. After overcoming several computer overload alarms caused by an antenna switch left in the wrong position, and a slight downrange error, Armstrong took over manual flight control at about 180 meters (590 ft), and guided the Lunar Module to a safe landing spot at 20:18:04 UTC, July 20, 1969 (3:17:04 pm CDT). The first humans on the Moon would wait another six hours before they ventured out of their craft. At 02:56 UTC, July 21 (9:56 pm CDT July 20), Armstrong became the first human to set foot on the Moon.', 'title': 'Space_Race'</span> <span class=""> }</span> <span class=""> }>, <Answer {</span> <span class=""> 'answer': 'Frank Borman', 'type': 'extractive', 'score': 0.7770257890224457, </span> <span class=""> 'context': 'On December 21, 1968, Frank Borman, James Lovell, and William Anders became the first humans to ride the Saturn V rocket into space on Apollo 8. They ', </span> <span class=""> 'offsets_in_document': [{'start': 22, 'end': 34}], </span> <span class=""> 'offsets_in_context': [{'start': 22, 'end': 34}], </span> <span class=""> 'document_id': '2bc046ba90d94fe201ccde9d20552200', </span> <span class=""> 'meta': {</span> <span class=""> 'context': "On December 21, 1968, Frank Borman, James Lovell, and William Anders became the first humans to ride the Saturn V rocket into space on Apollo 8. They also became the first to leave low-Earth orbit and go to another celestial body, and entered lunar orbit on December 24. They made ten orbits in twenty hours, and transmitted one of the most watched TV broadcasts in history, with their Christmas Eve program from lunar orbit, that concluded with a reading from the biblical Book of Genesis. Two and a half hours after the broadcast, they fired their engine to perform the first trans-Earth injection to leave lunar orbit and return to the Earth. Apollo 8 safely landed in the Pacific ocean on December 27, in NASA's first dawn splashdown and recovery.", 'title': 'Space_Race'</span> <span class=""> }</span> <span class=""> }>, <Answer {</span> <span class=""> 'answer': 'Aldrin', 'type': 'extractive', 'score': 0.6680101901292801, </span> <span class=""> 'context': ' were, "That\'s one small step for [a] man, one giant leap for mankind." Aldrin joined him on the surface almost 20 minutes later. Altogether, they spe', </span> <span class=""> 'offsets_in_document': [{'start': 240, 'end': 246}], </span> <span class=""> 'offsets_in_context': [{'start': 72, 'end': 78}], </span> <span class=""> 'document_id': 'ae1c366b1eaf5fc9d32a8d81f76bd795', </span> <span class=""> 'meta': {</span> <span class=""> 'context': 'The first step was witnessed by at least one-fifth of the population of Earth, or about 723 million people. His first words when he stepped off the LM\'s landing footpad were, "That\'s one small step for [a] man, one giant leap for mankind." Aldrin joined him on the surface almost 20 minutes later. Altogether, they spent just under two and one-quarter hours outside their craft. The next day, they performed the first launch from another celestial body, and rendezvoused back with Columbia.', 'title': 'Space_Race'</span> <span class=""> }</span> <span class=""> }></span> <span class="">]</span> </code></pre></div></div></div></div><div class="leading-6 mt-14"><div class="pb-16 w-full"><div class="flex flex-col gap-y-4 xl:flex-col xl:gap-6 min-[1400px]:flex-row md:flex-row md:justify-end"><div class="flex flex-row gap-5 items-center grow justify-between md:justify-start xl:justify-between min-[1400px]:justify-start"><p class="text-sm text-gray-600 dark:text-gray-400">Was this page helpful?</p><div class="flex flex-row gap-3 items-center"><button class="px-3.5 py-2 flex flex-row gap-3 items-center border-standard rounded-xl text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 bg-white/50 dark:bg-codeblock/50 hover:border-gray-500 hover:dark:border-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class="fill-current"><path d="M10.1187 1.08741C8.925 0.746789 7.67813 1.43741 7.3375 2.63116L7.15938 3.25616C7.04375 3.66241 6.83438 4.03741 6.55 4.34991L4.94688 6.11241C4.66875 6.41866 4.69062 6.89366 4.99687 7.17179C5.30312 7.44991 5.77813 7.42804 6.05625 7.12179L7.65938 5.35929C8.1 4.87491 8.42188 4.29679 8.6 3.66866L8.77812 3.04366C8.89062 2.64679 9.30625 2.41554 9.70625 2.52804C10.1063 2.64054 10.3344 3.05616 10.2219 3.45616L10.0437 4.08116C9.86562 4.70304 9.58437 5.29054 9.2125 5.81554C9.05 6.04366 9.03125 6.34366 9.15938 6.59366C9.2875 6.84366 9.54375 6.99991 9.825 6.99991H14C14.275 6.99991 14.5 7.22491 14.5 7.49991C14.5 7.71241 14.3656 7.89679 14.175 7.96866C13.9438 8.05616 13.7688 8.24992 13.7094 8.49054C13.65 8.73117 13.7125 8.98429 13.875 9.16866C13.9531 9.25616 14 9.37179 14 9.49991C14 9.74366 13.825 9.94679 13.5938 9.99054C13.3375 10.0405 13.1219 10.2187 13.0312 10.4624C12.9406 10.7062 12.9813 10.9843 13.1438 11.1905C13.2094 11.2749 13.25 11.3812 13.25 11.4999C13.25 11.7093 13.1187 11.8937 12.9312 11.9655C12.5719 12.1062 12.3781 12.4937 12.4812 12.8655C12.4937 12.9062 12.5 12.953 12.5 12.9999C12.5 13.2749 12.275 13.4999 12 13.4999H8.95312C8.55937 13.4999 8.17188 13.3843 7.84375 13.1655L5.91563 11.8812C5.57188 11.6499 5.10625 11.7437 4.875 12.0905C4.64375 12.4374 4.7375 12.8999 5.08437 13.1312L7.0125 14.4155C7.5875 14.7999 8.2625 15.003 8.95312 15.003H12C13.0844 15.003 13.9656 14.1405 14 13.0655C14.4563 12.6999 14.75 12.1374 14.75 11.503C14.75 11.3624 14.7344 11.228 14.7094 11.0968C15.1906 10.7312 15.5 10.153 15.5 9.50304C15.5 9.29991 15.4688 9.10304 15.4125 8.91866C15.775 8.55304 16 8.05304 16 7.49991C16 6.39679 15.1063 5.49991 14 5.49991H11.1156C11.2625 5.17491 11.3875 4.83741 11.4844 4.49366L11.6625 3.86866C12.0031 2.67491 11.3125 1.42804 10.1187 1.08741ZM1 5.99991C0.446875 5.99991 0 6.44679 0 6.99991V13.9999C0 14.553 0.446875 14.9999 1 14.9999H3C3.55313 14.9999 4 14.553 4 13.9999V6.99991C4 6.44679 3.55313 5.99991 3 5.99991H1Z"></path></svg><small class="text-sm font-normal leading-4 ">Yes</small></button><button class="px-3.5 py-2 flex flex-row gap-3 items-center border-standard rounded-xl text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 bg-white/50 dark:bg-codeblock/50 hover:border-gray-500 hover:dark:border-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class="fill-current"><path d="M10.1187 14.9124C8.925 15.253 7.67813 14.5624 7.3375 13.3687L7.15938 12.7437C7.04375 12.3374 6.83438 11.9624 6.55 11.6499L4.94688 9.8874C4.66875 9.58115 4.69062 9.10615 4.99687 8.82803C5.30312 8.5499 5.77813 8.57178 6.05625 8.87803L7.65938 10.6405C8.1 11.1249 8.42188 11.703 8.6 12.3312L8.77812 12.9562C8.89062 13.353 9.30625 13.5843 9.70625 13.4718C10.1063 13.3593 10.3344 12.9437 10.2219 12.5437L10.0437 11.9187C9.86562 11.2968 9.58437 10.7093 9.2125 10.1843C9.05 9.95615 9.03125 9.65615 9.15938 9.40615C9.2875 9.15615 9.54375 8.9999 9.825 8.9999H14C14.275 8.9999 14.5 8.7749 14.5 8.4999C14.5 8.2874 14.3656 8.10303 14.175 8.03115C13.9438 7.94365 13.7688 7.7499 13.7094 7.50928C13.65 7.26865 13.7125 7.01553 13.875 6.83115C13.9531 6.74365 14 6.62803 14 6.4999C14 6.25615 13.825 6.05303 13.5938 6.00928C13.3375 5.95928 13.1219 5.78115 13.0312 5.53428C12.9406 5.2874 12.9813 5.0124 13.1438 4.80615C13.2094 4.72178 13.25 4.61553 13.25 4.49678C13.25 4.2874 13.1187 4.10303 12.9312 4.03115C12.5719 3.89053 12.3781 3.50303 12.4812 3.13115C12.4937 3.09053 12.5 3.04365 12.5 2.99678C12.5 2.72178 12.275 2.49678 12 2.49678H8.95312C8.55937 2.49678 8.17188 2.6124 7.84375 2.83115L5.91563 4.11553C5.57188 4.34678 5.10625 4.25303 4.875 3.90615C4.64375 3.55928 4.7375 3.09678 5.08437 2.86553L7.0125 1.58115C7.5875 1.19678 8.2625 0.993652 8.95312 0.993652H12C13.0844 0.993652 13.9656 1.85615 14 2.93115C14.4563 3.29678 14.75 3.85928 14.75 4.49365C14.75 4.63428 14.7344 4.76865 14.7094 4.8999C15.1906 5.26553 15.5 5.84365 15.5 6.49365C15.5 6.69678 15.4688 6.89365 15.4125 7.07803C15.775 7.44678 16 7.94678 16 8.4999C16 9.60303 15.1063 10.4999 14 10.4999H11.1156C11.2625 10.8249 11.3875 11.1624 11.4844 11.5062L11.6625 12.1312C12.0031 13.3249 11.3125 14.5718 10.1187 14.9124ZM1 11.9999C0.446875 11.9999 0 11.553 0 10.9999V3.9999C0 3.44678 0.446875 2.9999 1 2.9999H3C3.55313 2.9999 4 3.44678 4 3.9999V10.9999C4 11.553 3.55313 11.9999 3 11.9999H1Z"></path></svg><small class="text-sm font-normal leading-4 ">No</small></button></div></div><div class="flex flex-row gap-3 justify-end"></div></div></div><div class="mb-12 px-0.5 flex items-center text-sm font-semibold text-gray-700 dark:text-gray-200"><a class="flex items-center space-x-3 group" href="/integrations/context-data"><svg viewBox="0 0 3 6" class="h-1.5 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="group-hover:text-gray-900 dark:group-hover:text-white">Context Data</span></a><a class="flex items-center ml-auto space-x-3 group" href="/integrations/instill"><span class="group-hover:text-gray-900 dark:group-hover:text-white">Instill AI</span><svg viewBox="0 0 3 6" class="rotate-180 h-1.5 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div><footer id="footer" class="flex gap-12 justify-between pt-10 border-t border-gray-100 sm:flex dark:border-gray-800/50 pb-28"><div class="flex gap-6 flex-wrap"><a href="https://twitter.com/pinecone?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor" target="_blank"><span class="sr-only">twitter</span><svg class="w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/twitter.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/twitter.svg);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://www.linkedin.com/company/pinecone-io/" target="_blank"><span class="sr-only">linkedin</span><svg class="w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" style="-webkit-mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/linkedin.svg);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(https://mintlify.b-cdn.net/v6.6.0/brands/linkedin.svg);mask-repeat:no-repeat;mask-position:center"></svg></a></div></footer></div></div><div class="hidden xl:flex self-start sticky h-[calc(100vh-11rem)] top-[9.5rem]" id="content-side-layout"><div class="z-10 hidden xl:flex pl-10 box-border w-[19rem]" id="table-of-contents"><div id="table-of-contents-content" class="text-gray-600 text-sm leading-6 w-[16.5rem] overflow-y-auto space-y-2"><div class="text-gray-700 dark:text-gray-300 font-medium flex items-center space-x-2"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" xmlns="http://www.w3.org/2000/svg" class="h-3 w-3"><path d="M2.44434 12.6665H13.5554" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2.44434 3.3335H13.5554" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2.44434 8H7.33323" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>On this page</span></div><ul><li class="relative"><a href="#setup-guide" class="py-1 block font-medium hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Setup guide</a></li><li class="relative"><a style="margin-left:1rem" href="#install-haystack" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Install Haystack</a></li><li class="relative"><a style="margin-left:1rem" href="#initialize-the-pineconedocumentstore" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Initialize the PineconeDocumentStore</a></li><li class="relative"><a style="margin-left:1rem" href="#prepare-data" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Prepare data</a></li><li class="relative"><a style="margin-left:1rem" href="#initialize-retriever" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Initialize retriever</a></li><li class="relative"><a style="margin-left:1rem" href="#inspect-documents-and-embeddings" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Inspect documents and embeddings</a></li><li class="relative"><a style="margin-left:1rem" href="#initialize-an-extractive-qa-pipeline" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Initialize an extractive QA pipeline</a></li><li class="relative"><a style="margin-left:1rem" href="#ask-questions" class="group flex items-start py-1 whitespace-pre-wrap text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300">Ask Questions</a></li></ul></div></div></div></div></div></div></div></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"mdxSource":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst PrimarySecondaryCTA = ({primaryLabel, primaryHref, primaryTarget, secondaryLabel, secondaryHref, secondaryTarget}) =\u003e {\n const _components = {\n a: \"a\",\n div: \"div\",\n path: \"path\",\n svg: \"svg\",\n ..._provideComponents()\n };\n return _jsxs(_components.div, {\n style: {\n display: 'flex',\n alignItems: 'center',\n gap: 16\n },\n children: [primaryLabel \u0026\u0026 primaryHref \u0026\u0026 _jsx(_components.div, {\n style: {\n width: 'fit-content',\n height: 42,\n background: '#1B17F5',\n borderRadius: 4,\n overflow: 'hidden',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'inline-flex'\n },\n children: _jsxs(_components.a, {\n href: primaryHref,\n target: primaryTarget,\n style: {\n paddingLeft: 22,\n paddingRight: 22,\n paddingTop: 8,\n paddingBottom: 8,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 4,\n display: 'inline-flex',\n textDecoration: 'none',\n borderBottom: 'none'\n },\n children: [_jsx(_components.div, {\n style: {\n textAlign: 'justify',\n color: 'white',\n fontSize: 15,\n fontWeight: '600',\n letterSpacing: 0.46,\n wordWrap: 'break-word'\n },\n children: primaryLabel\n }), _jsx(_components.svg, {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n marginLeft: 2\n },\n children: _jsx(_components.path, {\n d: \"M9.70492 6L8.29492 7.41L12.8749 12L8.29492 16.59L9.70492 18L15.7049 12L9.70492 6Z\",\n fill: \"white\"\n })\n })]\n })\n }), secondaryLabel \u0026\u0026 secondaryHref \u0026\u0026 _jsx(_components.div, {\n style: {\n width: 'fit-content',\n height: 42,\n borderRadius: 4,\n overflow: 'hidden',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'inline-flex',\n textDecoration: 'none'\n },\n children: _jsx(_components.a, {\n href: secondaryHref,\n target: secondaryTarget,\n style: {\n paddingLeft: 11,\n paddingRight: 11,\n paddingTop: 8,\n paddingBottom: 8,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 8,\n display: 'inline-flex',\n textDecoration: 'none',\n borderBottom: 'none'\n },\n children: _jsx(_components.div, {\n style: {\n textAlign: 'justify',\n color: '#1B17F5',\n fontSize: 15,\n fontWeight: '600',\n letterSpacing: 0.46,\n wordWrap: 'break-word'\n },\n children: secondaryLabel\n })\n })\n })]\n });\n};\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n em: \"em\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock, Heading} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n if (!Heading) _missingMdxReference(\"Heading\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Haystack is the open source Python framework by Deepset for building custom apps with large language models (LLMs). It lets you quickly try out the latest models in natural language processing (NLP) while being flexible and easy to use. Their community of users and builders has helped shape Haystack into what it is today: a complete framework for building production-ready NLP apps.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Haystack and Pinecone integration can be used to keep your NLP-driven apps up-to-date with Haystack’s indexing pipelines that help you prepare and maintain your data.\"\n }), \"\\n\", _jsx(PrimarySecondaryCTA, {\n secondaryHref: \"#setup-guide\",\n secondaryLabel: \"View setup guide\"\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"setup-guide\",\n children: \"Setup guide\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"In this guide we will see how to integrate Pinecone and the popular \", _jsx(_components.a, {\n href: \"https://github.com/deepset-ai/haystack\",\n children: \"Haystack library\"\n }), \" for \", _jsx(_components.em, {\n children: \"Question-Answering\"\n }), \".\"]\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"install-haystack\",\n children: \"Install Haystack\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We start by installing the latest version of Haystack with all dependencies required for the \", _jsx(_components.code, {\n children: \"PineconeDocumentStore\"\n }), \".\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"pip install \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \"U farm\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \"haystack\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1.3\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \".0\"\n }), \" pinecone\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), \"grpc\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), \" datasets\"]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"initialize-the-pineconedocumentstore\",\n children: \"Initialize the PineconeDocumentStore\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We initialize a \", _jsx(_components.code, {\n children: \"PineconeDocumentStore\"\n }), \" by providing an API key and environment name. \", _jsx(_components.a, {\n href: \"https://app.pinecone.io\",\n children: \"Create an account\"\n }), \" to get your free API key.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"document_stores \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" PineconeDocumentStore\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"document_store \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" PineconeDocumentStore\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" api_key\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'\u003cYOUR_API_KEY\u003e'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" index\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'haystack-extractive-qa'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" similarity\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"cosine\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" embedding_dim\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"384\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"INFO - haystack.document_stores.pinecone - Index statistics: name: haystack-extractive-qa, embedding dimensions: 384, record count: 0\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"prepare-data\",\n children: \"Prepare data\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Before adding data to the document store, we must download and convert data into the Document format that Haystack uses.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"We will use the SQuAD dataset available from Hugging Face Datasets.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" datasets \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" load_dataset\"]\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# load the squad dataset\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"data \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" load_dataset\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"squad\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" split\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"train\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Next, we remove duplicates and unecessary columns.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# convert to a pandas dataframe\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" data\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"to_pandas\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# select only title and context column\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"context\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# drop rows containing duplicate context passages\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"drop_duplicates\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"subset\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"context\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"head\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"title\"\n }), _jsx(_components.th, {\n children: \"context\"\n }), _jsx(_components.th, {})]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"0\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"Architecturally, the school has a Catholic cha…\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"5\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"As at most other universities, Notre Dame’s st…\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"10\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"The university is the major seat of the Congre…\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"15\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"The College of Engineering was established in …\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"20\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"All of Notre Dame’s undergraduate students are…\"\n })]\n })]\n })]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Then convert these records into the Document format.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" Document\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"docs \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"for\"\n }), \" d \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"in\"\n }), \" df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"iterrows\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" d \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token comment\",\n children: \"# create haystack document object with text content and doc metadata\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" doc \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" Document\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" content\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"context\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" meta\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'context'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'context'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" docs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"append\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"doc\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This \", _jsx(_components.code, {\n children: \"Document\"\n }), \" format contains two fields; \", _jsx(_components.em, {\n children: \"‘content’\"\n }), \" for the text content or paragraphs, and \", _jsx(_components.em, {\n children: \"‘meta’\"\n }), \" where we can place any additional information that can later be used to apply metadata filtering in our search.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Now we upsert the documents to Pinecone.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# upsert the data document to pinecone index\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"write_documents\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"docs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"initialize-retriever\",\n children: \"Initialize retriever\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The next step is to create embeddings from these documents. We will use Haystacks \", _jsx(_components.code, {\n children: \"EmbeddingRetriever\"\n }), \" with a SentenceTransformer model (\", _jsx(_components.code, {\n children: \"multi-qa-MiniLM-L6-cos-v1\"\n }), \") which has been designed for question-answering.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"retriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"dense \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" EmbeddingRetriever\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"retriever \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" EmbeddingRetriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" document_store\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" embedding_model\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"multi-qa-MiniLM-L6-cos-v1\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" model_format\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"sentence_transformers\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then we run the \", _jsx(_components.code, {\n children: \"PineconeDocumentStore.update_embeddings\"\n }), \" method with the \", _jsx(_components.code, {\n children: \"retriever\"\n }), \" provided as an argument. GPU acceleration can greatly reduce the time required for this step.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"update_embeddings\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" retriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" batch_size\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"16\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"inspect-documents-and-embeddings\",\n children: \"Inspect documents and embeddings\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We can get documents by their ID with the \", _jsx(_components.code, {\n children: \"PineconeDocumentStore.get_documents_by_id\"\n }), \" method.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"d \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"get_documents_by_id\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"ids\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'49091c797d2236e73fab510b1e9c7f6b'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" return_embedding\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token boolean\",\n children: \"True\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"0\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"From here we return can view document content with \", _jsx(_components.code, {\n children: \"d.content\"\n }), \" and the document embedding with \", _jsx(_components.code, {\n children: \"d.embedding\"\n }), \".\"]\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"initialize-an-extractive-qa-pipeline\",\n children: \"Initialize an extractive QA pipeline\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"An \", _jsx(_components.code, {\n children: \"ExtractiveQAPipeline\"\n }), \" contains three key components by default:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"a document store (\", _jsx(_components.code, {\n children: \"PineconeDocumentStore\"\n }), \")\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"a retriever model\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"a reader model\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We use the \", _jsx(_components.code, {\n children: \"deepset/electra-base-squad2\"\n }), \" model from the HuggingFace model hub as our reader model.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"nodes \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" FARMReader\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"reader \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" FARMReader\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" model_name_or_path\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'deepset/electra-base-squad2'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" use_gpu\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token boolean\",\n children: \"True\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We are now ready to initialize the \", _jsx(_components.code, {\n children: \"ExtractiveQAPipeline\"\n }), \".\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"pipelines \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" ExtractiveQAPipeline\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"pipe \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" ExtractiveQAPipeline\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"reader\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" retriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"ask-questions\",\n children: \"Ask Questions\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Using our QA pipeline we can begin querying with \", _jsx(_components.code, {\n children: \"pipe.run\"\n }), \".\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"utils \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" print_answers\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"What was Albert Einstein famous for?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.53 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: What was Albert Einstein famous for?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'his theories of special relativity and general relativity', 'type': 'extractive', 'score': 0.993550717830658,\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Albert Einstein is known for his theories of special relativity and general relativity. He also made important contributions to statistical mechanics,',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 29, 'end': 86}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 29, 'end': 86}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': '23357c05e3e46bacea556705de1ea6a5',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Albert Einstein is known for his theories of special relativity and general relativity. He also made important contributions to statistical mechanics, especially his mathematical treatment of Brownian motion, his resolution of the paradox of specific heats, and his connection of fluctuations and dissipation. Despite his reservations about its interpretation, Einstein also made contributions to quantum mechanics and, indirectly, quantum field theory, primarily through his theoretical studies of the photon.', 'title': 'Modern_history'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"}\u003e]\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"How much oil is Egypt producing in a day?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.81 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: How much oil is Egypt producing in a day?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': '691,000 bbl/d', 'type': 'extractive', 'score': 0.9999906420707703,\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Egypt was producing 691,000 bbl/d of oil and 2,141.05 Tcf of natural gas (in 2013), which makes Egypt as the largest oil producer not member of the Or',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 20, 'end': 33}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 20, 'end': 33}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': '57ed9720050a17237e323da5e3969a9b',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Egypt was producing 691,000 bbl/d of oil and 2,141.05 Tcf of natural gas (in 2013), which makes Egypt as the largest oil producer not member of the Organization of the Petroleum Exporting Countries (OPEC) and the second-largest dry natural gas producer in Africa. In 2013, Egypt was the largest consumer of oil and natural gas in Africa, as more than 20% of total oil consumption and more than 40% of total dry natural gas consumption in Africa. Also, Egypt possesses the largest oil refinery capacity in Africa 726,000 bbl/d (in 2012). Egypt is currently planning to build its first nuclear power plant in El Dabaa city, northern Egypt.', 'title': 'Egypt'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"}\u003e]\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"What are the first names of the youtube founders?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.83 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: What are the first names of the youtube founders?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Hurley and Chen', 'type': 'extractive', 'score': 0.9998972713947296,\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'According to a story that has often been repeated in the media, Hurley and Chen developed the idea for YouTube during the early months of 2005, after ',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 64, 'end': 79}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 64, 'end': 79}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': 'bd1cbd61ab617d840c5f295e21e80092',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'According to a story that has often been repeated in the media, Hurley and Chen developed the idea for YouTube during the early months of 2005, after they had experienced difficulty sharing videos that had been shot at a dinner party at Chen\\\\'s apartment in San Francisco. Karim did not attend the party and denied that it had occurred, but Chen commented that the idea that YouTube was founded after a dinner party \\\"was probably very strengthened by marketing ideas around creating a story that was very digestible\\\".', 'title': 'YouTube'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"}\u003e]\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We can return multiple answers by setting the \", _jsx(_components.code, {\n children: \"top_k\"\n }), \" parameter.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Who was the first person to step foot on the moon?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"3\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.71 Batches/s]\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.78 Batches/s]\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.88 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: Who was the first person to step foot on the moon?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Armstrong', 'type': 'extractive', 'score': 0.9998227059841156, \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'The trip to the Moon took just over three days. After achieving orbit, Armstrong and Aldrin transferred into the Lunar Module, named Eagle, and after ', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 71, 'end': 80}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 71, 'end': 80}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': 'f74e1bf667e68d72e45437a7895df921', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'The trip to the Moon took just over three days. After achieving orbit, Armstrong and Aldrin transferred into the Lunar Module, named Eagle, and after a landing gear inspection by Collins remaining in the Command/Service Module Columbia, began their descent. After overcoming several computer overload alarms caused by an antenna switch left in the wrong position, and a slight downrange error, Armstrong took over manual flight control at about 180 meters (590 ft), and guided the Lunar Module to a safe landing spot at 20:18:04 UTC, July 20, 1969 (3:17:04 pm CDT). The first humans on the Moon would wait another six hours before they ventured out of their craft. At 02:56 UTC, July 21 (9:56 pm CDT July 20), Armstrong became the first human to set foot on the Moon.', 'title': 'Space_Race'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\u003e, \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Frank Borman', 'type': 'extractive', 'score': 0.7770257890224457, \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'On December 21, 1968, Frank Borman, James Lovell, and William Anders became the first humans to ride the Saturn V rocket into space on Apollo 8. They ', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 22, 'end': 34}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 22, 'end': 34}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': '2bc046ba90d94fe201ccde9d20552200', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': \\\"On December 21, 1968, Frank Borman, James Lovell, and William Anders became the first humans to ride the Saturn V rocket into space on Apollo 8. They also became the first to leave low-Earth orbit and go to another celestial body, and entered lunar orbit on December 24. They made ten orbits in twenty hours, and transmitted one of the most watched TV broadcasts in history, with their Christmas Eve program from lunar orbit, that concluded with a reading from the biblical Book of Genesis. Two and a half hours after the broadcast, they fired their engine to perform the first trans-Earth injection to leave lunar orbit and return to the Earth. Apollo 8 safely landed in the Pacific ocean on December 27, in NASA's first dawn splashdown and recovery.\\\", 'title': 'Space_Race'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\u003e, \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Aldrin', 'type': 'extractive', 'score': 0.6680101901292801, \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': ' were, \\\"That\\\\'s one small step for [a] man, one giant leap for mankind.\\\" Aldrin joined him on the surface almost 20 minutes later. Altogether, they spe', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 240, 'end': 246}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 72, 'end': 78}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': 'ae1c366b1eaf5fc9d32a8d81f76bd795', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'The first step was witnessed by at least one-fifth of the population of Earth, or about 723 million people. His first words when he stepped off the LM\\\\'s landing footpad were, \\\"That\\\\'s one small step for [a] man, one giant leap for mankind.\\\" Aldrin joined him on the surface almost 20 minutes later. Altogether, they spent just under two and one-quarter hours outside their craft. The next day, they performed the first launch from another celestial body, and rendezvoused back with Columbia.', 'title': 'Space_Race'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\u003e\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"]\"\n }), \"\\n\"]\n })\n })\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n PrimarySecondaryCTA,\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{"config":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Pinecone Docs","colors":{"primary":"#1C17FF","light":"#504CFF","dark":"#1C17FF"},"logo":"https://mintlify.s3.us-west-1.amazonaws.com/pinecone-2/logo/light.svg","favicon":"/favicon-512.png","api":{"openapi":["openapi/control_2024-04.yaml","openapi/control_2025-01.yaml","openapi/control_2024-10.yaml","openapi/control_2024-07.yaml","openapi/control_2024-04.yaml","openapi/data_2025-04.yaml","openapi/data_2025-01.yaml","openapi/data_2024-10.yaml","openapi/data_2024-07.yaml","openapi/data_2024-04.yaml","openapi/inference_2025-04.yaml","openapi/inference_2025-01.yaml","openapi/inference_2024-10.yaml","openapi/assistant_data_2025-04.yaml","openapi/assistant_data_2025-01.yaml","openapi/assistant_control_2025-04.yaml","openapi/assistant_control_2025-01.yaml","openapi/assistant_evaluation_2025-04.yaml","openapi/assistant_evaluation_2025-01.yaml"],"playground":{"display":"simple"}},"appearance":{"default":"light","strict":true},"background":{"color":{"light":"#FBFBFC"}},"navbar":{"links":[{"label":"Status","href":"https://status.pinecone.io"},{"label":"Support","href":"https://app.pinecone.io/organizations/-/settings/support"},{"label":"Log In","href":"https://app.pinecone.io/?sessionType=login"}],"primary":{"type":"button","label":"Sign up free","href":"https://app.pinecone.io/?sessionType=signup"}},"navigation":{"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":["guides/get-started/overview","guides/get-started/quickstart","guides/get-started/assistant-quickstart","guides/get-started/key-features",{"group":"Tutorials","pages":["guides/get-started/build-a-rag-chatbot","guides/get-started/semantic-search","guides/get-started/image-search","guides/get-started/multimodal-search","guides/get-started/recommender","guides/get-started/threat-detection","guides/get-started/examples"]},"guides/get-started/glossary"]},{"group":"Indexes","pages":["guides/indexes/understanding-indexes","guides/indexes/create-an-index","guides/indexes/implement-multitenancy","guides/indexes/manage-indexes",{"group":"Back up and restore","pages":["guides/indexes/understanding-backups","guides/indexes/back-up-an-index","guides/indexes/restore-an-index"]},{"group":"Pod-based indexes","pages":["guides/indexes/pods/understanding-pod-based-indexes","guides/indexes/pods/migrate-a-pod-based-index-to-serverless","guides/indexes/pods/choose-a-pod-type-and-size","guides/indexes/pods/create-a-pod-based-index","guides/indexes/pods/manage-pod-based-indexes","guides/indexes/pods/scale-pod-based-indexes",{"group":"Back up and restore","pages":["guides/indexes/pods/understanding-collections","guides/indexes/pods/back-up-a-pod-based-index","guides/indexes/pods/restore-a-pod-based-index"]}]},"guides/indexes/sparse-indexes"]},{"group":"Data","pages":["guides/data/upsert-data","guides/data/query-data","guides/data/fetch-data","guides/data/update-data","guides/data/delete-data",{"group":"Import data","pages":["guides/data/understanding-imports","guides/data/import-data"]},"guides/data/list-record-ids","guides/data/target-an-index","guides/data/understanding-metadata","guides/data/manage-rag-documents",{"group":"Data freshness","pages":["guides/data/data-freshness/understanding-data-freshness","guides/data/data-freshness/check-data-freshness"]},{"group":"Hybrid search and sparse vectors","pages":["guides/data/understanding-hybrid-search","guides/data/encode-sparse-vectors","guides/data/upsert-sparse-dense-vectors","guides/data/query-sparse-dense-vectors"]}]},{"group":"Inference","pages":["guides/inference/understanding-inference","guides/inference/generate-embeddings","guides/inference/rerank","guides/inference/integrated-inference"]},{"group":"Assistant","pages":["guides/assistant/understanding-assistant","guides/assistant/create-assistant","guides/assistant/manage-files","guides/assistant/chat-with-assistant","guides/assistant/manage-assistants",{"group":"Evaluate answers","pages":["guides/assistant/understanding-evaluation","guides/assistant/evaluate-answers"]},{"group":"Retrieve context snippets","pages":["guides/assistant/understanding-context-snippets","guides/assistant/retrieve-context-snippets"]}]},{"group":"Operations","pages":["guides/operations/local-development","guides/operations/automated-testing","guides/operations/move-to-production","guides/operations/performance-tuning",{"group":"Security","pages":["guides/operations/understanding-security","guides/organizations/configure-single-sign-on/okta","guides/operations/configure-cmek","guides/operations/connect-to-aws-privatelink"]},{"group":"Integrate with cloud storage","pages":["guides/operations/integrations/manage-storage-integrations","guides/operations/integrations/integrate-with-amazon-s3"]},"guides/operations/monitoring"]},{"group":"Organizations","pages":["guides/organizations/understanding-organizations",{"group":"Manage billing","pages":["guides/organizations/manage-billing/changing-your-billing-plan","guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace","guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace","guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"]},{"group":"Manage cost","pages":["guides/organizations/manage-cost/understanding-cost","guides/organizations/manage-cost/monitor-your-usage","guides/organizations/manage-cost/manage-cost"]},"guides/organizations/manage-organization-members"]},{"group":"Projects","pages":["guides/projects/understanding-projects","guides/projects/create-a-project","guides/projects/manage-api-keys","guides/projects/manage-project-members","guides/projects/manage-projects"]}]},{"tab":"Reference","versions":[{"version":"2025-04 (release candidate)","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2025-04/control-plane/list_indexes","reference/api/2025-04/control-plane/create_index","reference/api/2025-04/control-plane/create_for_model","reference/api/2025-04/control-plane/describe_index","reference/api/2025-04/control-plane/delete_index","reference/api/2025-04/control-plane/configure_index","reference/api/2025-04/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2025-04/data-plane/upsert","reference/api/2025-04/data-plane/upsert_records","reference/api/2025-04/data-plane/fetch","reference/api/2025-04/data-plane/update","reference/api/2025-04/data-plane/delete","reference/api/2025-04/data-plane/list"]},{"group":"Search","pages":["reference/api/2025-04/data-plane/query","reference/api/2025-04/data-plane/search_records"]},{"group":"Imports","pages":["reference/api/2025-04/data-plane/start_import","reference/api/2025-04/data-plane/list_imports","reference/api/2025-04/data-plane/describe_import","reference/api/2025-04/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2025-04/control-plane/list_collections","reference/api/2025-04/control-plane/create_collection","reference/api/2025-04/control-plane/describe_collection","reference/api/2025-04/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2025-04/inference/generate-embeddings"]},{"group":"Rerank","pages":["reference/api/2025-04/inference/rerank"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-04/assistant/list_assistants","reference/api/2025-04/assistant/create_assistant","reference/api/2025-04/assistant/describe_assistant","reference/api/2025-04/assistant/update_assistant","reference/api/2025-04/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-04/assistant/list_files","reference/api/2025-04/assistant/upload_file","reference/api/2025-04/assistant/describe_file","reference/api/2025-04/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-04/assistant/chat_assistant","reference/api/2025-04/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-04/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-04/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2025-01 (latest)","default":true,"groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2025-01/control-plane/list_indexes","reference/api/2025-01/control-plane/create_index","reference/api/2025-01/control-plane/create_for_model","reference/api/2025-01/control-plane/describe_index","reference/api/2025-01/control-plane/delete_index","reference/api/2025-01/control-plane/configure_index","reference/api/2025-01/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2025-01/data-plane/upsert","reference/api/2025-01/data-plane/upsert_records","reference/api/2025-01/data-plane/fetch","reference/api/2025-01/data-plane/update","reference/api/2025-01/data-plane/delete","reference/api/2025-01/data-plane/list"]},{"group":"Search","pages":["reference/api/2025-01/data-plane/query","reference/api/2025-01/data-plane/search_records"]},{"group":"Imports","pages":["reference/api/2025-01/data-plane/start_import","reference/api/2025-01/data-plane/list_imports","reference/api/2025-01/data-plane/describe_import","reference/api/2025-01/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2025-01/control-plane/list_collections","reference/api/2025-01/control-plane/create_collection","reference/api/2025-01/control-plane/describe_collection","reference/api/2025-01/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2025-01/inference/generate-embeddings"]},{"group":"Rerank","pages":["reference/api/2025-01/inference/rerank"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-10","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-10/control-plane/list_indexes","reference/api/2024-10/control-plane/create_index","reference/api/2024-10/control-plane/describe_index","reference/api/2024-10/control-plane/delete_index","reference/api/2024-10/control-plane/configure_index","reference/api/2024-10/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-10/data-plane/upsert","reference/api/2024-10/data-plane/query","reference/api/2024-10/data-plane/fetch","reference/api/2024-10/data-plane/update","reference/api/2024-10/data-plane/delete","reference/api/2024-10/data-plane/list"]},{"group":"Imports","pages":["reference/api/2024-10/data-plane/start_import","reference/api/2024-10/data-plane/list_imports","reference/api/2024-10/data-plane/describe_import","reference/api/2024-10/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2024-10/control-plane/list_collections","reference/api/2024-10/control-plane/create_collection","reference/api/2024-10/control-plane/describe_collection","reference/api/2024-10/control-plane/delete_collection"]}]},{"group":"Inference","pages":["reference/api/2024-10/inference/generate-embeddings","reference/api/2024-10/inference/rerank"]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-07","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-10/control-plane/list_indexes","reference/api/2024-10/control-plane/create_index","reference/api/2024-10/control-plane/describe_index","reference/api/2024-10/control-plane/delete_index","reference/api/2024-10/control-plane/configure_index","reference/api/2024-10/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-07/data-plane/upsert","reference/api/2024-07/data-plane/query","reference/api/2024-07/data-plane/fetch","reference/api/2024-07/data-plane/update","reference/api/2024-07/data-plane/delete","reference/api/2024-07/data-plane/list"]},{"group":"Backups","pages":["reference/api/2024-07/control-plane/list_collections","reference/api/2024-07/control-plane/create_collection","reference/api/2024-07/control-plane/describe_collection","reference/api/2024-07/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2024-10/inference/generate-embeddings"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-04","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-04/control-plane/list_indexes","reference/api/2024-04/control-plane/create_index","reference/api/2024-04/control-plane/describe_index","reference/api/2024-04/control-plane/delete_index","reference/api/2024-04/control-plane/configure_index","reference/api/2024-04/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-04/data-plane/upsert","reference/api/2024-04/data-plane/query","reference/api/2024-04/data-plane/fetch","reference/api/2024-04/data-plane/update","reference/api/2024-04/data-plane/delete","reference/api/2024-04/data-plane/list"]},{"group":"Backups","pages":["reference/api/2024-04/control-plane/list_collections","reference/api/2024-04/control-plane/create_collection","reference/api/2024-04/control-plane/describe_collection","reference/api/2024-04/control-plane/delete_collection"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]}]},{"tab":"Examples","groups":[{"group":"Examples","pages":["examples/notebooks","examples/sample-apps","examples/reference-architectures"]}]},{"tab":"Models","groups":[{"group":"Models","pages":["models/overview"]}]},{"tab":"Integrations","groups":[{"group":"Connect an integration","pages":["integrations/overview",{"group":"Data sources","pages":["integrations/airbyte","integrations/apify","integrations/aryn","integrations/box","integrations/confluent","integrations/databricks","integrations/datavolo","integrations/elasticsearch","integrations/estuary","integrations/fleak","integrations/flowise","integrations/gathr","integrations/matillion","integrations/nexla","integrations/redpanda","integrations/snowflake","integrations/streamnative","integrations/unstructured"]},{"group":"Frameworks","pages":["integrations/amazon-bedrock","integrations/amazon-sagemaker","integrations/cloudera","integrations/context-data","integrations/haystack","integrations/instill","integrations/langchain","integrations/llamaindex","integrations/nuclia","integrations/octoai"]},{"group":"Infrastructure","pages":["integrations/aws","integrations/azure","integrations/gcp","integrations/github-copilot","integrations/pulumi","integrations/terraform","integrations/vercel"]},{"group":"Models","pages":["integrations/anyscale","integrations/cohere","integrations/voyage","integrations/hugging-face-inference-endpoints","integrations/jina","integrations/openai","integrations/twelve-labs"]},{"group":"Observability","pages":["integrations/datadog","integrations/langtrace","integrations/new-relic","integrations/traceloop","integrations/trulens"]}]},{"group":"Build an integration","pages":["integrations/build-integration/become-a-partner","integrations/build-integration/attribute-usage-to-your-integration","integrations/build-integration/connect-your-users-to-pinecone"]}]},{"tab":"Troubleshooting","groups":[{"group":"Contact support","pages":["troubleshooting/contact-support","troubleshooting/how-to-work-with-support","troubleshooting/pinecone-support-slas"]},{"group":"Account management","pages":["troubleshooting/login-code-issues","troubleshooting/custom-data-processing-agreements","troubleshooting/delete-your-organization","troubleshooting/delete-your-account","troubleshooting/billing-disputes-and-refunds"]},{"group":"Indexes","pages":["troubleshooting/available-cloud-regions","troubleshooting/export-indexes","troubleshooting/wait-for-index-creation","troubleshooting/select-index-type-and-size","troubleshooting/how-and-when-to-increase-index-size","troubleshooting/use-namespaces-instead-of-several-indexes","troubleshooting/namespaces-vs-metadata-filtering","troubleshooting/restrictions-on-index-names","troubleshooting/return-all-vectors-in-an-index","troubleshooting/vertically-downscaling","troubleshooting/pods-are-full"]},{"group":"Data","pages":["troubleshooting/parallel-queries","troubleshooting/minimize-latencies","troubleshooting/embedding-values-changed-when-upserted","troubleshooting/how-and-when-to-add-replicas","troubleshooting/keep-customer-data-separate","troubleshooting/limitations-of-querying-by-id","troubleshooting/create-and-manage-vectors-with-metadata","troubleshooting/metadata-reconfiguration","troubleshooting/metadata-string-value-returned-as-datetime","troubleshooting/remove-metadata-field"]},{"group":"Common errors","pages":["troubleshooting/index-creation-error-missing-spec","troubleshooting/index-creation-error-max-serverless","troubleshooting/serverless-index-connection-errors","troubleshooting/error-handshake-read-failed","troubleshooting/pinecone-attribute-errors-with-langchain","troubleshooting/error-cannot-import-name-pinecone","troubleshooting/module-pinecone-has-no-attribute-init"]},{"group":"Miscellaneous","pages":["troubleshooting/best-practices","troubleshooting/differences-between-lexical-semantic-search","troubleshooting/nodejs-troubleshooting","troubleshooting/cors-issues","troubleshooting/debug-model-vs-pinecone-recall-issues","troubleshooting/non-indexed-field-filter-issues","troubleshooting/unable-to-pip-install"]}]},{"tab":"Releases","groups":[{"group":"Release notes","pages":["release-notes/2025","release-notes/2024","release-notes/2023","release-notes/2022"]},{"group":"Policies","pages":["release-notes/feature-availability"]}]}]},"footer":{"socials":{"twitter":"https://twitter.com/pinecone?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor","linkedin":"https://www.linkedin.com/company/pinecone-io/"}},"seo":{"metatags":{"og:image":"https://www.pinecone.io/images/docs_og_image.png","twitter:title":"The vector database to build knowledgeable AI | Pinecone","twitter:description":"Search through billions of items for similar matches to any object, in milliseconds. It's the next generation of search, an API call away.","twitter:site":"@pinecone","twitter:image":"https://www.pinecone.io/images/docs_og_image.png"},"indexing":"all"},"redirects":[{"source":"/reference/api/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/guides/indexes/user-namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/reference/quotas-and-limits","destination":"/reference/api/database-limits"},{"source":"/reference/known-limitations","destination":"/reference/api/known-limitations"},{"source":"/reference/object-identifiers","destination":"/reference/api/database-limits#identifier-limits"},{"source":"/guides/indexes/scale-pod-based-indexes","destination":"/guides/indexes/pods/scale-pod-based-indexes"},{"source":"/guides/indexes/choose-a-pod-type-and-size","destination":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"source":"/guides/indexes/configure-an-index","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/guides/indexes/migrate-a-pod-based-index-to-serverless","destination":"/guides/indexes/pods/migrate-a-pod-based-index-to-serverless"},{"source":"/guides/indexes/tag-an-index","destination":"/guides/indexes/manage-indexes#configure-index-tags"},{"source":"/guides/indexes/prevent-index-deletion","destination":"/guides/indexes/manage-indexes#configure-deletion-protection"},{"source":"/guides/indexes/delete-an-index","destination":"/guides/indexes/manage-indexes#delete-an-index"},{"source":"/guides/indexes/view-index-information","destination":"/guides/indexes/manage-indexes"},{"source":"/guides/indexes/understanding-backups-and-collections","destination":"/guides/indexes/understanding-backups"},{"source":"/reference/api/2025-01/assistant/create_file","destination":"/reference/api/2025-01/assistant/upload_file"},{"source":"/troubleshooting/delete-a-namespace","destination":"/guides/data/delete-data#delete-an-entire-namespace"},{"source":"/troubleshooting/handle-deletes-by-metadata","destination":"/guides/data/delete-data#delete-records-in-batches"},{"source":"/reference/api/2025-01/assistant/get_assistant","destination":"/reference/api/2025-01/assistant/describe_assistant"},{"source":"/guides/assistant/delete-file","destination":"/guides/assistant/manage-files#delete-a-file"},{"source":"/guides/assistant/upload-a-file","destination":"/guides/assistant/manage-files"},{"source":"/guides/assistant/check-file-status","destination":"/guides/assistant/manage-files#get-the-status-of-a-file"},{"source":"/guides/assistant/list-files","destination":"/guides/assistant/manage-files#list-files-in-an-assistant"},{"source":"/guides/assistant/update-an-assistant","destination":"/guides/assistant/manage-assistants"},{"source":"/guides/assistant/check-assistant-status","destination":"/guides/assistant/manage-assistants#get-the-status-of-an-assistant"},{"source":"/guides/assistant/list-assistants","destination":"/guides/assistant/manage-assistants#list-assistants-for-a-project"},{"source":"/guides/assistant/delete-assistant","destination":"/guides/assistant/manage-assistants#delete-an-assistant"},{"source":"/guides/data/filter-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/guides/operations/local-testing","destination":"/guides/operations/local-development"},{"source":"/guides/get-started/integrated-inference","destination":"/guides/inference/integrated-inference"},{"source":"/guides/data/get-an-index-endpoint","destination":"/guides/data/target-an-index"},{"source":"/reference/api/2024-04/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/reference/api/2024-07/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/guides/get-started/implement-multitenancy","destination":"/guides/indexes/implement-multitenancy"},{"source":"/guides/get-started/authentication","destination":"/reference/api/authentication"},{"source":"/guides/get-started/key-concepts","destination":"/guides/get-started/glossary"},{"source":"/guides/assistant/install-assistant-plugin","destination":"/reference/python-sdk#install-the-pinecone-assistant-python-plugin"},{"source":"/guides/assistant/use-existing-assistant","destination":"/guides/assistant/chat-with-assistant"},{"source":"/guides/operations/enable-aws-privatelink","destination":"/guides/operations/connect-to-aws-privatelink"},{"source":"/reference/security","destination":"/guides/operations/understanding-security"},{"source":"/guides/indexes/understanding-collections","destination":"/guides/indexes/pods/understanding-collections"},{"source":"/reference/pinecone-clients","destination":"/reference/pinecone-sdks"},{"source":"/reference/go-client","destination":"/reference/go-sdk"},{"source":"/reference/python-client","destination":"/reference/python-sdk"},{"source":"/reference/node-client","destination":"/reference/node-sdk"},{"source":"/reference/java-client","destination":"/reference/java-sdk"},{"source":"/release-notes/api-lifecycle-policy","destination":"/release-notes/feature-availability"},{"source":"/guides/indexes/configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/guides/operations/migrate-to-the-new-api","destination":"/guides/indexes/migrate-a-pod-based-index-to-serverless"},{"source":"/reference/api/control-plane/*","destination":"/reference/api/2024-07/control-plane/*"},{"source":"/reference/api/data-plane/*","destination":"/reference/api/2024-07/data-plane/*"},{"source":"/reference/api/inference/*","destination":"/reference/api/2024-07/inference/*"},{"source":"/legacy/reference/*","destination":"/reference/*"},{"source":"/tools/reference-architectures","destination":"/examples/reference-architectures"},{"source":"/tools/pinecone-utilities","destination":"/reference/tools/pinecone-datasets"},{"source":"/guides/inference/understanding-inference-api","destination":"/guides/inference/understanding-inference"},{"source":"/guides/indexes/migrate-a-legacy-starter-index-to-serverless","destination":"/guides/indexes/migrate-a-pod-based-index-to-serverless"},{"source":"/docs/filter-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/reference/community-libraries","destination":"/reference/pinecone-sdks#community-clients"},{"source":"/integrations/build-integration/register-your-integration","destination":"/integrations/build-integration/attribute-usage-to-your-integration"},{"source":"/integrations/build-integration/connect-to-pinecone-with-embedded-widget","destination":"/integrations/build-integration/connect-your-users-to-pinecone"},{"source":"/guides/get-started/examples","destination":"/examples/notebooks"},{"source":"/reference/quotas-and-rate-limits","destination":"/reference/quotas-and-limits"},{"source":"/troubleshooting/waiting-for-index-creation","destination":"/troubleshooting/wait-for-index-creation"},{"source":"/troubleshooting/using-namespaces-vs-metadata-filtering","destination":"/troubleshooting/namespaces-vs-metadata-filtering"},{"source":"/troubleshooting/using-namespaces-instead-of-several-indexes","destination":"/troubleshooting/use-namespaces-instead-of-several-indexes"},{"source":"/troubleshooting/support-slas","destination":"/troubleshooting/pinecone-support-slas"},{"source":"/troubleshooting/selecting-index-type-and-size","destination":"/troubleshooting/select-index-type-and-size.mdx"},{"source":"/troubleshooting/returning-all-vectors-in-an-index","destination":"/troubleshooting/return-all-vectors-in-an-index"},{"source":"/troubleshooting/removing-metadata-field","destination":"/troubleshooting/remove-metadata-field"},{"source":"/troubleshooting/querying-by-id","destination":"/troubleshooting/limitations-of-querying-by-id"},{"source":"/troubleshooting/keeping-customer-data-separate","destination":"/troubleshooting/keep-customer-data-separate"},{"source":"/troubleshooting/index-creation-error-spec","destination":"/troubleshooting/index-creation-error-missing-spec"},{"source":"/troubleshooting/increasing-index-size","destination":"/troubleshooting/how-and-when-to-increase-index-size"},{"source":"/troubleshooting/how-to-delete-account","destination":"/troubleshooting/delete-your-account"},{"source":"/troubleshooting/how-to-contact-support","destination":"/troubleshooting/contact-support"},{"source":"/troubleshooting/handling-deletes-by-metadata","destination":"/troubleshooting/handle-deletes-by-metadata"},{"source":"/troubleshooting/exporting-indexes","destination":"/troubleshooting/export-indexes"},{"source":"/troubleshooting/cannot-import-name-pinecone","destination":"/troubleshooting/error-cannot-import-name-pinecone"},{"source":"/troubleshooting/deleting-a-namespace","destination":"/troubleshooting/delete-a-namespace"},{"source":"/troubleshooting/debugging-recall-issues","destination":"/troubleshooting/debug-model-vs-pinecone-recall-issues"},{"source":"/troubleshooting/adding-replicas","destination":"/troubleshooting/how-and-when-to-add-replicas"},{"source":"/troubleshooting/creating-and-managing-vectors-with-metadata","destination":"/troubleshooting/create-and-manage-vectors-with-metadata"},{"source":"/guides/organizations/manage-cost/managing-cost","destination":"/guides/organizations/manage-cost/manage-cost"},{"source":"/guides/organizations/manage-cost/monitoring-your-usage","destination":"/guides/organizations/manage-cost/monitor-your-usage"},{"source":"/guides/data/using-public-pinecone-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/guides/data/creating-and-loading-private-datasets","destination":"/guides/data/create-and-load-private-datasets"},{"source":"/guides/operations/moving-to-production","destination":"/guides/operations/move-to-production"},{"source":"/guides/data/filtering-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/guides/indexes/choosing-a-pod-type-and-size","destination":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"source":"/guides/indexes/using-namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/guides/getting-started/overview","destination":"/guides/get-started/quickstart"},{"source":"/guides/indexes/convert-a-starter-index-to-serverless","destination":"/guides/indexes/convert-a-gcp-starter-index-to-serverless"},{"source":"/legacy/data/*","destination":"/guides/data/*"},{"source":"/guides/getting-started/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/guides/getting-started/authentication","destination":"/guides/get-started/authentication"},{"source":"/legacy/getting-started/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/legacy/getting-started/authentication","destination":"/guides/get-started/authentication"},{"source":"/legacy/indexes/*","destination":"/guides/indexes/*"},{"source":"/legacy/integrations/*","destination":"/integrations/*"},{"source":"/legacy/libraries/*","destination":"/tools/*"},{"source":"/legacy/operations/*","destination":"/guides/operations/*"},{"source":"/legacy/organizations/*","destination":"/guides/organizations/*"},{"source":"/legacy/projects/*","destination":"/guides/projects/*"},{"source":"/legacy/architecture","destination":"/reference/architecture/pod-based-architecture"},{"source":"/legacy/limits","destination":"/reference/quotas-and-limits"},{"source":"/legacy/security","destination":"/operations/understanding-security"},{"source":"/integrations/build-integration/attribute-api-activity","destination":"/integrations/build-integration/register-your-integration"},{"source":"/troubleshooting/downgrade-your-organization","destination":"/guides/organization/manage-billing/change-your-billing-plan"},{"source":"/troubleshooting/pinecone-has-no-attribute-from-texts","destination":"/troubleshooting/pinecone-attribute-errors-with-langchain"},{"source":"/reference/limits","destination":"/reference/quotas-and-limits"},{"source":"/guides/operations/troubleshooting","destination":"/troubleshooting/"},{"source":"/guides/projects/add-members-to-projects-and-organizations","destination":"/guides/projects/manage-project-members"},{"source":"https://docs.pinecone.io/","destination":"https://docs.pinecone.io/get-started/overview"},{"source":"https://docs.pinecone.io/home","destination":"https://docs.pinecone.io/get-started/overview"},{"source":"/guides/organizations/configure-single-sign-on/overview","destination":"/guides/organizations/configure-single-sign-on/okta"},{"source":"/docs/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/docs/overview","destination":"/guides/get-started/quickstart"},{"source":"/docs/authentication","destination":"/guides/get-started/authentication"},{"source":"/docs/new-api","destination":"/reference/api"},{"source":"/docs/organizations","destination":"/guides/organizations/understanding-organizations"},{"source":"/docs/manage-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"source":"/docs/setting-up-aws-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"source":"/docs/setting-up-azure-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace"},{"source":"/docs/setting-up-gcp-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"},{"source":"/docs/changing-your-billing-plan","destination":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"source":"/docs/subscription-status","destination":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"source":"/docs/manage-cost","destination":"/guides/organizations/manage-cost/understanding-cost"},{"source":"/docs/understanding-cost","destination":"/guides/organizations/manage-cost/understanding-cost"},{"source":"/docs/monitoring-usage","destination":"/guides/organizations/manage-cost/monitor-your-usage"},{"source":"/docs/managing-cost","destination":"/guides/organizations/manage-cost/manage-cost"},{"source":"/docs/configure-single-sign-on","destination":"/guides/organizations/configure-single-sign-on/okta"},{"source":"/docs/projects","destination":"/guides/projects/understanding-projects"},{"source":"/docs/create-project","destination":"/guides/projects/create-a-project"},{"source":"/docs/add-users-to-projects-and-organizations","destination":"/guides/projects/add-members-to-projects-and-organizations"},{"source":"/docs/rename-project","destination":"/guides/projects/rename-a-project"},{"source":"/guides/projects/set-a-project-pod-limit","destination":"/reference/quotas-and-limits#pods-per-project"},{"source":"/docs/change-project-pod-limit","destination":"/reference/quotas-and-limits#pods-per-project"},{"source":"/docs/indexes","destination":"/guides/indexes/understanding-indexes"},{"source":"/docs/create-an-index","destination":"/guides/indexes/create-an-index"},{"source":"/docs/view-index-information","destination":"/guides/indexes/view-index-information"},{"source":"/docs/back-up-an-index","destination":"/guides/indexes/back-up-an-index"},{"source":"/docs/delete-an-index","destination":"/guides/indexes/delete-an-index"},{"source":"/docs/namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/docs/choosing-index-type-and-size","destination":"/guides/indexes/choose-a-pod-type-and-size"},{"source":"/docs/configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/scaling-indexes","destination":"/guides/indexes/scale-pod-based-indexes"},{"source":"/docs/collections","destination":"/guides/indexes/pods/understanding-collections"},{"source":"/docs/convert-starter-to-serverless","destination":"/guides/indexes/convert-a-starter-index-to-serverless"},{"source":"/docs/upsert-data","destination":"/guides/data/upsert-data"},{"source":"/docs/query-data","destination":"/guides/data/query-data"},{"source":"/docs/fetch-data","destination":"/guides/data/fetch-data"},{"source":"/docs/update-data","destination":"/guides/data/update-data"},{"source":"/docs/delete-data","destination":"/guides/data/delete-data"},{"source":"/docs/get-record-ids","destination":"/guides/data/list-record-ids"},{"source":"/docs/get-index-endpoint","destination":"/guides/data/get-an-index-endpoint"},{"source":"/docs/metadata-filtering","destination":"/guides/data/understanding-metadata"},{"source":"/docs/manage-rag-documents","destination":"/guides/data/manage-rag-documents"},{"source":"/docs/hybrid-search-and-sparse-vectors","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/encode-sparse-vectors","destination":"/guides/data/encode-sparse-vectors"},{"source":"/docs/upsert-sparse-dense-vectors","destination":"/guides/data/upsert-sparse-dense-vectors"},{"source":"/docs/query-sparse-dense-vectors","destination":"/guides/data/query-sparse-dense-vectors"},{"source":"/docs/datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/using-public-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/creating-datasets","destination":"/guides/data/create-and-load-private-datasets"},{"source":"/docs/moving-to-production","destination":"/guides/operations/move-to-production"},{"source":"/docs/performance-tuning","destination":"/guides/operations/performance-tuning"},{"source":"/docs/monitoring","destination":"/guides/operations/monitoring"},{"source":"/docs/troubleshooting","destination":"/guides/operations/troubleshooting"},{"source":"/docs/multitenancy","destination":"/guides/operations/understanding-multitenancy"},{"source":"/docs/common-errors","destination":"/troubleshooting"},{"source":"guides/operations/common-errors","destination":"/troubleshooting"},{"source":"/docs/amazon-bedrock","destination":"/integrations/amazon-bedrock"},{"source":"/guides/integrations/setting-up-amazon-bedrock","destination":"/integrations/amazon-bedrock"},{"source":"/docs/sagemaker","destination":"/integrations/sagemaker"},{"source":"/docs/cohere","destination":"/integrations/cohere"},{"source":"/guides/integrations/setting-up-cohere","destination":"/integrations/cohere"},{"source":"/docs/databricks","destination":"/integrations/databricks"},{"source":"/guides/integrations/setting-up-databricks","destination":"/integrations/databricks"},{"source":"/docs/datadog","destination":"/integrations/datadog"},{"source":"/guides/integrations/setting-up-datadog","destination":"/integrations/datadog"},{"source":"/docs/elastic","destination":"/integrations/elastic"},{"source":"/docs/haystack","destination":"/integrations/haystack"},{"source":"/guides/integrations/setting-up-haystack","destination":"integrations/haystack"},{"source":"/docs/hugging-face-endpoints","destination":"/integrations/hugging-face-inference-endpoints"},{"source":"/guides/integrations/setting-up-hugging-face-endpoints","destination":"/integrations/hugging-face-inference-endpoints"},{"source":"/guides/integrations/setting-up-langchain","destination":"/guides/integrations/langchain"},{"source":"/docs/llamaindex","destination":"/integrations/llamaindex"},{"source":"/guides/integrations/setting-up-llamaindex","destination":"/integratations/llamaindex"},{"source":"/docs/openai","destination":"/integratations/openai"},{"source":"/guides/integrations/setting-up-openai","destination":"/integratations/openai"},{"source":"/docs/trulens","destination":"/integratations/trulens"},{"source":"/guides/integrations/setting-up-trulens","destination":"/integratations/trulens"},{"source":"/docs/release-notes","destination":"release-notes/2024"},{"source":"/docs/python-client","destination":"/reference/python-client"},{"source":"/docs/node-client","destination":"/reference/node-client"},{"source":"/docs/architecture","destination":"/reference/architecture/serverless-architecture"},{"source":"/docs/security","destination":"/operations/understanding-security"},{"source":"/docs/limits","destination":"/reference/quotas-and-limits"},{"source":"/reference/upsert","destination":"/reference/api/data-plane/upsert"},{"source":"/reference/query","destination":"/reference/api/data-plane/query"},{"source":"/reference/fetch","destination":"/reference/api/data-plane/fetch"},{"source":"/reference/update","destination":"/reference/api/data-plane/update"},{"source":"/reference/delete","destination":"/reference/api/data-plane/delete"},{"source":"/reference/alt_delete","destination":"/reference/api/data-plane/delete"},{"source":"/reference/list","destination":"/reference/api/data-plane/list"},{"source":"/reference/describe_index_stats","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/reference/alt_describe_index_stats","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/reference/list_indexes","destination":"/reference/api/control-plane/list_indexes"},{"source":"/reference/create_index","destination":"/reference/api/control-plane/create_index"},{"source":"/reference/describe_index","destination":"/reference/api/control-plane/describe_index"},{"source":"/reference/delete_index","destination":"/reference/api/control-plane/delete_index"},{"source":"/reference/configure_index","destination":"/reference/api/control-plane/configure_index"},{"source":"/reference/list_collections","destination":"/reference/api/control-plane/list_collections"},{"source":"/reference/create_collection","destination":"/reference/api/control-plane/create_collection"},{"source":"/reference/describe_collection","destination":"/reference/api/control-plane/describe_collection"},{"source":"/reference/delete_collection","destination":"/reference/api/control-plane/delete_collection"},{"source":"/page/examples","destination":"/examples/notebooks"},{"source":"/page/libraries","destination":"/tools/pinecone-utilities"},{"source":"/v1/*","destination":"/legacy/overview"},{"source":"/docs/manage-indexes","destination":"/guides/indexes/understanding-indexes"},{"source":"/docs/manage-indexes#list-all-indexes-in-a-project","destination":"/guides/indexes/manage-indexes"},{"source":"/docs/manage-indexes#get-information-about-an-index","destination":"/guides/indexes/manage-indexes"},{"source":"/docs/manage-indexes#create-a-serverless-index","destination":"/guides/indexes/create-an-index#create-a-serverless-index"},{"source":"/docs/manage-indexes#create-a-pod-based-index","destination":"/guides/indexes/create-an-index#create-a-pod-based-index"},{"source":"/docs/manage-indexes#create-a-starter-index","destination":"/guides/indexes/create-an-index#create-a-starter-index"},{"source":"/docs/manage-indexes#create-an-index-from-a-collection","destination":"/guides/indexes/create-an-index#create-an-index-from-a-collection"},{"source":"/docs/manage-indexes#configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#change-pod-sizes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#check-the-status-of-a-pod-size-change","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#add-replicas","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#selective-metadata-indexing","destination":"/guides/indexes/pods/manage-pod-based-indexes#selective-metadata-indexing"},{"source":"/docs/manage-indexes#delete-an-index","destination":"/guides/indexes/manage-indexes#delete-an-index"},{"source":"/docs/convert-to-severless","destination":"/guides/indexes/convert-a-starter-index-to-serverless"},{"source":"/docs/pinecone-public-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/metadata-filtered-search","destination":"/guides/data/understanding-metadata"},{"source":"/docs/insert-data","destination":"/guides/data/upsert-data"},{"source":"/docs/global-api-quickstart","destination":"/guides/get-started/quickstart"},{"source":"/docs/starter-environment","destination":"/guides/indexes/understanding-indexes#starter-indexes"},{"source":"/reference/describe_index_stats_post","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/docs/manage-data","destination":"/guides/data/upsert-data"},{"source":"/docs/manage-projects","destination":"/guides/projects/manage-projects"},{"source":"/guides/rename-a-project","destination":"/guides/projects/manage-projects"},{"source":"/installation","destination":"/reference/python-clients"},{"source":"/page/example-applications","destination":"/examples/notebooks"},{"source":"/docs/libraries","destination":"/tools/pinecone-utilities"},{"source":"/integrations","destination":"/integrations/overview"},{"source":"/docs/manage-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/basic-hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"basic-hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/node-client","destination":"/reference/node-client"},{"source":"/docs/api-reference","destination":"/reference/api/introduction"},{"source":"/docs/sdk","destination":"/reference/python-clients"},{"source":"/docs/image-similarity-search","destination":"/examples/notebooks"},{"source":"/docs/semantic-search-text-typescript","destination":"/examples/sample-apps"},{"source":"/docs/gen-qa-openai","destination":"/examples/notebooks"},{"source":"/docs/personalized-content-recommendations-typescript","destination":"/examples/notebooks"},{"source":"/docs/langchain-retrieval-agent","destination":"/examples/notebooks"},{"source":"/docs/langchain-retrieval-agent-typescript","destination":"/examples/sample-apps"},{"source":"/docs/langchain-retrieval-augmentation","destination":"/examples/notebooks"},{"source":"/docs/gpt-4-langchain-docs","destination":"/examples/notebooks"},{"source":"/docs/extractive-question-answering","destination":"/examples/notebooks"},{"source":"/docs/abstractive-question-answering","destination":"/examples/notebooks"},{"source":"/docs/table-qa","destination":"/examples/notebooks"},{"source":"/docs/ecommerce-search","destination":"/examples/notebooks"},{"source":"/docs/ner-search","destination":"/examples/notebooks"},{"source":"/docs/video-search","destination":"/examples/notebooks"},{"source":"/docs/satellite-image-search","destination":"/examples/notebooks"},{"source":"/docs/it-threat-detection","destination":"/examples/notebooks"},{"source":"/docs/document-deduplication","destination":"/examples/notebooks"},{"source":"/docs/movie-recommender","destination":"/examples/notebooks"},{"source":"/docs/audio-search","destination":"/examples/notebooks"},{"source":"/docs/time-series","destination":"/examples/notebooks"},{"source":"/docs/product-recommendation-engine","destination":"/examples/notebooks"},{"source":"/docs/upserting-sparse-dense-records","destination":"/guides/data/upsert-sparse-dense-vectors"},{"source":"/reference/manage-indexes/hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/weighting-sparse-and-dense-vectors","destination":"/guides/data/query-sparse-dense-vectors"},{"source":"/troubleshooting/serverless-controller-error","destination":"/troubleshooting/serverless-index-connection-errors"},{"source":"/new-api","destination":"/reference/api"},{"source":"/guides/operations/understanding-multitenancy","destination":"/guides/indexes/implement-multitenancy"},{"source":"troubleshooting/delete-your-account","destination":"/troubleshooting/delete-your-organization"},{"source":"/guides/inference/understanding-reranking","destination":"/guides/inference/understanding-inference#rerank-2"}],"integrations":{"gtm":{"tagId":"GTM-5RCSPVG"},"heap":{"appId":"3879495182"},"koala":{"publicApiKey":"pk_dedf7f497457f685cec291ae4d5002e828c1"},"posthog":{"apiKey":"phc_ns4m5RmmXmccva7A45MBGnJM2LSPGE3hG1YOmxBO4Pd"}}},"pageMetadata":{"title":"Haystack","description":"Using Haystack and Pinecone to keep your NLP-driven apps up-to-date","href":"/integrations/haystack"}}},"mdxExtracts":{"tableOfContents":[{"title":"Setup guide","slug":"setup-guide","depth":2,"children":[{"title":"Install Haystack","slug":"install-haystack","depth":3,"children":[]},{"title":"Initialize the PineconeDocumentStore","slug":"initialize-the-pineconedocumentstore","depth":3,"children":[]},{"title":"Prepare data","slug":"prepare-data","depth":3,"children":[]},{"title":"Initialize retriever","slug":"initialize-retriever","depth":3,"children":[]},{"title":"Inspect documents and embeddings","slug":"inspect-documents-and-embeddings","depth":3,"children":[]},{"title":"Initialize an extractive QA pipeline","slug":"initialize-an-extractive-qa-pipeline","depth":3,"children":[]},{"title":"Ask Questions","slug":"ask-questions","depth":3,"children":[]}]}],"codeExamples":{}},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Using Haystack and Pinecone to keep your NLP-driven apps up-to-date\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageData":{"navWithMetadata":[{"group":"Get started","pages":[{"title":"Pinecone Documentation","description":null,"sidebarTitle":"Overview","mode":"wide","href":"/guides/get-started/overview"},{"title":"Pinecone Database quickstart","description":null,"sidebarTitle":"Database quickstart","og:image":"https://www.pinecone.io/api/og/?title=Pinecone Database quickstart","href":"/guides/get-started/quickstart"},{"title":"Pinecone Assistant quickstart","description":null,"sidebarTitle":"Assistant quickstart","og:image":"https://www.pinecone.io/api/og/?title=Pinecone Assistant quickstart","href":"/guides/get-started/assistant-quickstart"},{"title":"Key features","description":null,"href":"/guides/get-started/key-features"},{"group":"Tutorials","pages":[{"title":"Build a RAG chatbot","description":null,"sidebarTitle":"RAG","href":"/guides/get-started/build-a-rag-chatbot"},{"title":"Semantic search","description":null,"url":"/examples/sample-apps/legal-semantic-search","href":"/guides/get-started/semantic-search"},{"title":"Image search","description":null,"url":"https://github.com/pinecone-io/image-search-example","href":"/guides/get-started/image-search"},{"title":"Multimodal search","description":null,"url":"/examples/sample-apps/shop-the-look","href":"/guides/get-started/multimodal-search"},{"title":"Recommender","description":null,"url":"https://github.com/pinecone-io/recommender-example-typescript","href":"/guides/get-started/recommender"},{"title":"Threat detection","description":null,"url":"https://colab.research.google.com/github/pinecone-io/examples/blob/master/docs/it-threat-detection.ipynb","href":"/guides/get-started/threat-detection"},{"title":"More examples","description":null,"url":"/examples/notebooks","href":"/guides/get-started/examples"}]},{"title":"Glossary","description":null,"href":"/guides/get-started/glossary"}]},{"group":"Indexes","pages":[{"title":"Understanding indexes","description":null,"href":"/guides/indexes/understanding-indexes"},{"title":"Create a serverless index","description":null,"sidebarTitle":"Create an index","href":"/guides/indexes/create-an-index"},{"title":"Implement multitenancy using namespaces","description":null,"sidebarTitle":"Implement multitenancy","href":"/guides/indexes/implement-multitenancy"},{"title":"Manage serverless indexes","description":null,"sidebarTitle":"Manage indexes","href":"/guides/indexes/manage-indexes"},{"group":"Back up and restore","pages":[{"title":"Understanding backups","description":null,"href":"/guides/indexes/understanding-backups"},{"title":"Back up an index","description":null,"href":"/guides/indexes/back-up-an-index"},{"title":"Restore an index","description":null,"href":"/guides/indexes/restore-an-index"}]},{"group":"Pod-based indexes","pages":[{"title":"Understanding pod-based indexes","description":null,"href":"/guides/indexes/pods/understanding-pod-based-indexes"},{"title":"Migrate a pod-based index to serverless","description":null,"href":"/guides/indexes/pods/migrate-a-pod-based-index-to-serverless"},{"title":"Choose a pod type and size","description":null,"sidebarTitle":"Choose a pod type","href":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"title":"Create a pod-based index","description":null,"href":"/guides/indexes/pods/create-a-pod-based-index"},{"title":"Manage pod-based indexes","description":null,"href":"/guides/indexes/pods/manage-pod-based-indexes"},{"title":"Scale pod-based indexes","description":null,"href":"/guides/indexes/pods/scale-pod-based-indexes"},{"group":"Back up and restore","pages":[{"title":"Understanding collections","description":null,"href":"/guides/indexes/pods/understanding-collections"},{"title":"Back up a pod-based index","description":null,"href":"/guides/indexes/pods/back-up-a-pod-based-index"},{"title":"Restore a pod-based index","description":null,"href":"/guides/indexes/pods/restore-a-pod-based-index"}]}]},{"title":"Get started with sparse indexes","description":null,"sidebarTitle":"Sparse indexes","href":"/guides/indexes/sparse-indexes"}]},{"group":"Data","pages":[{"title":"Upsert data","description":null,"href":"/guides/data/upsert-data"},{"title":"Query data","description":null,"href":"/guides/data/query-data"},{"title":"Fetch data","description":null,"href":"/guides/data/fetch-data"},{"title":"Update data","description":null,"href":"/guides/data/update-data"},{"title":"Delete data","description":null,"href":"/guides/data/delete-data"},{"group":"Import data","pages":[{"title":"Understanding imports","description":null,"href":"/guides/data/understanding-imports"},{"title":"Import data","description":null,"href":"/guides/data/import-data"}]},{"title":"List record IDs","description":null,"href":"/guides/data/list-record-ids"},{"title":"Target an index","description":null,"href":"/guides/data/target-an-index"},{"title":"Understanding metadata","description":null,"href":"/guides/data/understanding-metadata"},{"title":"Manage RAG documents","description":null,"href":"/guides/data/manage-rag-documents"},{"group":"Data freshness","pages":[{"title":"Understanding data freshness","description":null,"href":"/guides/data/data-freshness/understanding-data-freshness"},{"title":"Check data freshness","description":null,"href":"/guides/data/data-freshness/check-data-freshness"}]},{"group":"Hybrid search and sparse vectors","pages":[{"title":"Understanding hybrid search","description":null,"href":"/guides/data/understanding-hybrid-search"},{"title":"Encode sparse vectors","description":null,"href":"/guides/data/encode-sparse-vectors"},{"title":"Upsert sparse-dense vectors","description":null,"href":"/guides/data/upsert-sparse-dense-vectors"},{"title":"Query sparse-dense vectors","description":null,"href":"/guides/data/query-sparse-dense-vectors"}]}]},{"group":"Inference","pages":[{"title":"Understanding Pinecone Inference","description":null,"href":"/guides/inference/understanding-inference"},{"title":"Embed data","description":null,"href":"/guides/inference/generate-embeddings"},{"title":"Rerank documents","description":null,"href":"/guides/inference/rerank"},{"title":"Upsert and search with integrated inference","description":null,"href":"/guides/inference/integrated-inference"}]},{"group":"Assistant","pages":[{"title":"Understanding Pinecone Assistant","description":null,"href":"/guides/assistant/understanding-assistant"},{"title":"Create an assistant","description":null,"mode":"wide","href":"/guides/assistant/create-assistant"},{"title":"Manage files","description":null,"href":"/guides/assistant/manage-files"},{"title":"Chat with an assistant","description":null,"href":"/guides/assistant/chat-with-assistant"},{"title":"Manage assistants","description":null,"href":"/guides/assistant/manage-assistants"},{"group":"Evaluate answers","pages":[{"title":"Understanding evaluation","description":null,"href":"/guides/assistant/understanding-evaluation"},{"title":"Evaluate answers","description":null,"mode":"wide","href":"/guides/assistant/evaluate-answers"}]},{"group":"Retrieve context snippets","pages":[{"title":"Understanding context snippets","description":null,"href":"/guides/assistant/understanding-context-snippets"},{"title":"Retrieve context snippets","description":null,"mode":"wide","href":"/guides/assistant/retrieve-context-snippets"}]}]},{"group":"Operations","pages":[{"title":"Local development with Pinecone Local","description":null,"sidebarTitle":"Local development","href":"/guides/operations/local-development"},{"title":"CI/CD with Pinecone Local and GitHub Actions","description":null,"sidebarTitle":"Automated testing","href":"/guides/operations/automated-testing"},{"title":"Move to production","description":null,"href":"/guides/operations/move-to-production"},{"title":"Performance tuning","description":null,"href":"/guides/operations/performance-tuning"},{"group":"Security","pages":[{"title":"Understanding security","description":null,"href":"/guides/operations/understanding-security"},{"title":"Configure SSO with Okta","description":null,"href":"/guides/organizations/configure-single-sign-on/okta"},{"title":"Configure customer-managed encryption keys","description":null,"sidebarTitle":"Configure CMEK","href":"/guides/operations/configure-cmek"},{"title":"Connect to AWS PrivateLink","description":null,"href":"/guides/operations/connect-to-aws-privatelink"}]},{"group":"Integrate with cloud storage","pages":[{"title":"Manage storage integrations","description":null,"href":"/guides/operations/integrations/manage-storage-integrations"},{"title":"Integrate with Amazon S3","description":null,"icon":"aws","href":"/guides/operations/integrations/integrate-with-amazon-s3"}]},{"title":"Monitoring","description":null,"href":"/guides/operations/monitoring"}]},{"group":"Organizations","pages":[{"title":"Understanding organizations","description":null,"href":"/guides/organizations/understanding-organizations"},{"group":"Manage billing","pages":[{"title":"Change your billing plan","description":null,"href":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"title":"Set up billing through AWS Marketplace","description":null,"icon":"aws","href":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"title":"Set up billing through Azure Marketplace","description":null,"icon":"microsoft","href":"/guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace"},{"title":"Set up billing through GCP Marketplace","description":null,"icon":"google","href":"/guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"}]},{"group":"Manage cost","pages":[{"title":"Understanding cost","description":null,"href":"/guides/organizations/manage-cost/understanding-cost"},{"title":"Monitor your usage","description":null,"href":"/guides/organizations/manage-cost/monitor-your-usage"},{"title":"Manage cost","description":null,"href":"/guides/organizations/manage-cost/manage-cost"}]},{"title":"Manage organization members","description":null,"href":"/guides/organizations/manage-organization-members"}]},{"group":"Projects","pages":[{"title":"Understanding projects","description":null,"href":"/guides/projects/understanding-projects"},{"title":"Create a project","description":null,"mode":"wide","href":"/guides/projects/create-a-project"},{"title":"Manage API keys","description":null,"href":"/guides/projects/manage-api-keys"},{"title":"Manage project members","description":null,"href":"/guides/projects/manage-project-members"},{"title":"Rename a project","description":null,"mode":"wide","href":"/guides/projects/rename-a-project"}]},{"group":"APIs","pages":[{"title":"API reference","description":null,"sidebarTitle":"Introduction","href":"/reference/api/introduction"},{"title":"Authentication","description":null,"href":"/reference/api/authentication"},{"title":"API versioning","description":null,"sidebarTitle":"Versioning","href":"/reference/api/versioning"},{"group":"Limits","pages":[{"title":"Pinecone Database limits","description":null,"sidebarTitle":"Database limits","href":"/reference/api/database-limits"},{"title":"Pinecone Inference limits","description":null,"sidebarTitle":"Inference limits","href":"/reference/api/inference-limits"},{"title":"Pinecone Assistant limits","description":null,"sidebarTitle":"Assistant limits","href":"/reference/api/assistant-limits"},{"title":"Known limitations","description":null,"href":"/reference/api/known-limitations"}]},{"title":"Errors","description":null,"href":"/reference/api/errors"}]},{"group":"Database","version":"2025-04 (release candidate)","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"List all indexes in a project.","openapi":"control_2025-04 get /indexes","href":"/reference/api/2025-04/control-plane/list_indexes"},{"title":"Create an index","description":"Create a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n \nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2025-04 post /indexes","href":"/reference/api/2025-04/control-plane/create_index"},{"title":"Create an index for an embedding model","description":"Create a serverless integrated inference index for a specific embedding model.\n\nRefer to the [model guide](https://docs.pinecone.io/guides/inference/understanding-inference#embedding-models) for available models and model details.","openapi":"control_2025-04 post /indexes/create-for-model","href":"/reference/api/2025-04/control-plane/create_for_model"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2025-04 get /indexes/{index_name}","href":"/reference/api/2025-04/control-plane/describe_index"},{"title":"Delete an index","description":"Delete an existing index.","openapi":"control_2025-04 delete /indexes/{index_name}","href":"/reference/api/2025-04/control-plane/delete_index"},{"title":"Configure an index","description":"Configure an existing index. For serverless indexes, you can configure index deletion protection, tags, and integrated inference embedding settings for the index. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection.\n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2025-04 patch /indexes/{index_name}","href":"/reference/api/2025-04/control-plane/configure_index"},{"title":"Get index stats","description":"Return statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2025-04 post /describe_index_stats","href":"/reference/api/2025-04/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"Upsert vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-vectors).","openapi":"data_2025-04 post /vectors/upsert","href":"/reference/api/2025-04/data-plane/upsert"},{"title":"Upsert text","description":"Upsert text into a namespace.\n\nUpserting text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/reference/api/2025-01/control-plane/create_for_model).\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-text).","openapi":"data_2025-04 post /records/namespaces/{namespace}/upsert","href":"/reference/api/2025-04/data-plane/upsert_records"},{"title":"Fetch vectors","description":"Look up and return vectors by ID from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2025-04 get /vectors/fetch","href":"/reference/api/2025-04/data-plane/fetch"},{"title":"Update a vector","description":"Update a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2025-04 post /vectors/update","href":"/reference/api/2025-04/data-plane/update"},{"title":"Delete vectors","description":"Delete vectors by id from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2025-04 post /vectors/delete","href":"/reference/api/2025-04/data-plane/delete"},{"title":"List vector IDs","description":"List the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nReturns up to 100 IDs at a time by default in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list` is supported only for serverless indexes.","openapi":"data_2025-04 get /vectors/list","href":"/reference/api/2025-04/data-plane/list"}]},{"group":"Search","pages":[{"title":"Search with a vector","description":"Search a namespace with a query vector or record ID and return the IDs of the most similar records, along with their similarity scores.","openapi":"data_2025-04 post /query","href":"/reference/api/2025-04/data-plane/query"},{"title":"Search with text","description":"Search a namespace with a query text, query vector, or record ID and return the most similar records, along with their similarity scores. Optionally, rerank the initial results based on their relevance to the query. \n\nSearching with text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding). Searching with a query vector or record ID is supported for all indexes. \n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data). ","openapi":"data_2025-01 post /records/namespaces/{namespace}/search","href":"/reference/api/2025-04/data-plane/search_records"}]},{"group":"Imports","pages":[{"title":"Start import","description":"Start an asynchronous import of vectors from object storage into an index.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 post /bulk/imports","href":"/reference/api/2025-04/data-plane/start_import"},{"title":"List imports","description":"List all recent and ongoing import operations.\n\nBy default, `list_imports` returns up to 100 imports per page. If the `limit` parameter is set, `list` returns up to that number of imports instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of imports. When the response does not include a `pagination_token`, there are no more imports to return.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 get /bulk/imports","href":"/reference/api/2025-04/data-plane/list_imports"},{"title":"Describe an import","description":"Return details of a specific import operation.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 get /bulk/imports/{id}","href":"/reference/api/2025-04/data-plane/describe_import"},{"title":"Cancel an import","description":"Cancel an import operation if it is not yet finished. It has no effect if the operation is already finished.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 delete /bulk/imports/{id}","href":"/reference/api/2025-04/data-plane/cancel_import"}]},{"group":"Backups","pages":[{"title":"List collections","description":"List all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2025-04 get /collections","href":"/reference/api/2025-04/control-plane/list_collections"},{"title":"Create a collection","description":"Create a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2025-04 post /collections","href":"/reference/api/2025-04/control-plane/create_collection"},{"title":"Describe a collection","description":"Get a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-04 get /collections/{collection_name}","href":"/reference/api/2025-04/control-plane/describe_collection"},{"title":"Delete a collection","description":"Delete an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-04 delete /collections/{collection_name}","href":"/reference/api/2025-04/control-plane/delete_collection"}]}]},{"group":"Database","version":"2025-01 (latest)","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2025-01 get /indexes","href":"/reference/api/2025-01/control-plane/list_indexes"},{"title":"Create an index","description":"Create an index for vectors created with an external embedding model.\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#external-embedding).","openapi":"control_2025-01 post /indexes","href":"/reference/api/2025-01/control-plane/create_index"},{"title":"Create an index with integrated embedding","description":"Create an index with integrated embedding.\n\nWith this type of index, you provide source text, and Pinecone uses a [hosted embedding model](https://docs.pinecone.io/guides/inference/understanding-inference#embedding-models) to convert the text automatically during [upsert](https://docs.pinecone.io/reference/api/2025-01/data-plane/upsert_records) and [search](https://docs.pinecone.io/reference/api/2025-01/data-plane/search_records).\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding).","openapi":"control_2025-01 post /indexes/create-for-model","href":"/reference/api/2025-01/control-plane/create_for_model"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2025-01 get /indexes/{index_name}","href":"/reference/api/2025-01/control-plane/describe_index"},{"title":"Delete an index","description":"Delete an existing index.","openapi":"control_2025-01 delete /indexes/{index_name}","href":"/reference/api/2025-01/control-plane/delete_index"},{"title":"Configure an index","description":"Configure an existing index. \n\nFor serverless indexes, you can configure index deletion protection, tags, and integrated inference embedding settings for the index. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection.\n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2025-01 patch /indexes/{index_name}","href":"/reference/api/2025-01/control-plane/configure_index"},{"title":"Get index stats","description":"Return statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2025-01 post /describe_index_stats","href":"/reference/api/2025-01/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"Upsert vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-vectors).","openapi":"data_2025-01 post /vectors/upsert","href":"/reference/api/2025-01/data-plane/upsert"},{"title":"Upsert text","description":"Upsert source text into a namespace. Pinecone converts the text to vectors automatically using the hosted embedding model associated with the index.\n\nUpserting text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/reference/api/2025-01/control-plane/create_for_model).\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-text).","openapi":"data_2025-01 post /records/namespaces/{namespace}/upsert","href":"/reference/api/2025-01/data-plane/upsert_records"},{"title":"Fetch vectors","description":"Look up and return vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2025-01 get /vectors/fetch","href":"/reference/api/2025-01/data-plane/fetch"},{"title":"Update a vector","description":"Update a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2025-01 post /vectors/update","href":"/reference/api/2025-01/data-plane/update"},{"title":"Delete vectors","description":"Delete vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2025-01 post /vectors/delete","href":"/reference/api/2025-01/data-plane/delete"},{"title":"List vector IDs","description":"List the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nThis returns up to 100 IDs at a time by default in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list` is supported only for serverless indexes.","openapi":"data_2025-01 get /vectors/list","href":"/reference/api/2025-01/data-plane/list"}]},{"group":"Search","pages":[{"title":"Search with a vector","description":"Search a namespace with a query vector or record ID and return the IDs of the most similar records, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data). ","openapi":"data_2025-01 post /query","href":"/reference/api/2025-01/data-plane/query"},{"title":"Search with text","description":"Search a namespace with a query text, query vector, or record ID and return the most similar records, along with their similarity scores. Optionally, rerank the initial results based on their relevance to the query. \n\nSearching with text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding). Searching with a query vector or record ID is supported for all indexes. \n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data). ","openapi":"data_2025-01 post /records/namespaces/{namespace}/search","href":"/reference/api/2025-01/data-plane/search_records"}]},{"group":"Imports","pages":[{"title":"Start import","description":"Start an asynchronous import of vectors from object storage into an index.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 post /bulk/imports","href":"/reference/api/2025-01/data-plane/start_import"},{"title":"List imports","description":"List all recent and ongoing import operations.\n\nBy default, this returns up to 100 imports per page. If the `limit` parameter is set, `list` returns up to that number of imports instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of imports. When the response does not include a `pagination_token`, there are no more imports to return.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 get /bulk/imports","href":"/reference/api/2025-01/data-plane/list_imports"},{"title":"Describe an import","description":"Return details of a specific import operation.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 get /bulk/imports/{id}","href":"/reference/api/2025-01/data-plane/describe_import"},{"title":"Cancel an import","description":"Cancel an import operation if it is not yet finished. It has no effect if the operation is already finished.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 delete /bulk/imports/{id}","href":"/reference/api/2025-01/data-plane/cancel_import"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2025-01 get /collections","href":"/reference/api/2025-01/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2025-01 post /collections","href":"/reference/api/2025-01/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-01 get /collections/{collection_name}","href":"/reference/api/2025-01/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-01 delete /collections/{collection_name}","href":"/reference/api/2025-01/control-plane/delete_collection"}]}]},{"group":"Database","version":"2024-10","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2024-10 get /indexes","href":"/reference/api/2024-10/control-plane/list_indexes"},{"title":"Create an index","description":"This operation deploys a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n \nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2024-10 post /indexes","href":"/reference/api/2024-10/control-plane/create_index"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2024-10 get /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/describe_index"},{"title":"Delete an index","description":"This operation deletes an existing index.","openapi":"control_2024-10 delete /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/delete_index"},{"title":"Configure an index","description":"This operation configures an existing index. \n\nFor serverless indexes, you can configure only index deletion protection and tags. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection. \n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2024-10 patch /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/configure_index"},{"title":"Get index stats","description":"The `describe_index_stats` operation returns statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2024-10 post /describe_index_stats","href":"/reference/api/2024-10/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"The `upsert` operation writes vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data).","openapi":"data_2024-10 post /vectors/upsert","href":"/reference/api/2024-10/data-plane/upsert"},{"title":"Query vectors","description":"The `query` operation searches a namespace, using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2024-10 post /query","href":"/reference/api/2024-10/data-plane/query"},{"title":"Fetch vectors","description":"The `fetch` operation looks up and returns vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2024-10 get /vectors/fetch","href":"/reference/api/2024-10/data-plane/fetch"},{"title":"Update a vector","description":"The `update` operation updates a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2024-10 post /vectors/update","href":"/reference/api/2024-10/data-plane/update"},{"title":"Delete vectors","description":"The `delete` operation deletes vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2024-10 post /vectors/delete","href":"/reference/api/2024-10/data-plane/delete"},{"title":"List vector IDs","description":"The `list` operation lists the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nBy default, `list` returns up to 100 IDs per page in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list_vectors` is supported only for serverless indexes.","openapi":"data_2024-10 get /vectors/list","href":"/reference/api/2024-10/data-plane/list"}]},{"group":"Imports","pages":[{"title":"Start import","description":"The `start_import` operation starts an asynchronous import of vectors from object storage into an index. \n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 post /bulk/imports","href":"/reference/api/2024-10/data-plane/start_import"},{"title":"List imports","description":"The `list_imports` operation lists all recent and ongoing import operations. \n\nBy default, `list_imports` returns up to 100 imports per page. If the `limit` parameter is set, `list` returns up to that number of imports instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of imports. When the response does not include a `pagination_token`, there are no more imports to return.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 get /bulk/imports","href":"/reference/api/2024-10/data-plane/list_imports"},{"title":"Describe an import","description":"The `describe_import` operation returns details of a specific import operation. \n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 get /bulk/imports/{id}","href":"/reference/api/2024-10/data-plane/describe_import"},{"title":"Cancel an import","description":"The `cancel_import` operation cancels an import operation if it is not yet finished. It has no effect if the operation is already finished. \n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 delete /bulk/imports/{id}","href":"/reference/api/2024-10/data-plane/cancel_import"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2024-10 get /collections","href":"/reference/api/2024-10/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2024-10 post /collections","href":"/reference/api/2024-10/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-10 get /collections/{collection_name}","href":"/reference/api/2024-10/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-10 delete /collections/{collection_name}","href":"/reference/api/2024-10/control-plane/delete_collection"}]}]},{"group":"Database","version":"2024-07","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2024-10 get /indexes","href":"/reference/api/2024-10/control-plane/list_indexes"},{"title":"Create an index","description":"This operation deploys a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n \nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2024-10 post /indexes","href":"/reference/api/2024-10/control-plane/create_index"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2024-10 get /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/describe_index"},{"title":"Delete an index","description":"This operation deletes an existing index.","openapi":"control_2024-10 delete /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/delete_index"},{"title":"Configure an index","description":"This operation configures an existing index. \n\nFor serverless indexes, you can configure only index deletion protection and tags. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection. \n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2024-10 patch /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/configure_index"},{"title":"Get index stats","description":"The `describe_index_stats` operation returns statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2024-10 post /describe_index_stats","href":"/reference/api/2024-10/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"The `upsert` operation writes vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data).","openapi":"data_2024-07 post /vectors/upsert","href":"/reference/api/2024-07/data-plane/upsert"},{"title":"Query vectors","description":"The `query` operation searches a namespace, using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2024-07 post /query","href":"/reference/api/2024-07/data-plane/query"},{"title":"Fetch vectors","description":"The `fetch` operation looks up and returns vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2024-07 get /vectors/fetch","href":"/reference/api/2024-07/data-plane/fetch"},{"title":"Update a vector","description":"The `update` operation updates a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2024-07 post /vectors/update","href":"/reference/api/2024-07/data-plane/update"},{"title":"Delete vectors","description":"The `delete` operation deletes vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2024-07 post /vectors/delete","href":"/reference/api/2024-07/data-plane/delete"},{"title":"List vector IDs","description":"The `list` operation lists the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nBy default, `list` returns up to 100 IDs per page in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list_vectors` is supported only for serverless indexes.","openapi":"data_2024-10 get /vectors/list","href":"/reference/api/2024-07/data-plane/list"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2024-07 get /collections","href":"/reference/api/2024-07/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2024-07 post /collections","href":"/reference/api/2024-07/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-07 get /collections/{collection_name}","href":"/reference/api/2024-07/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-07 delete /collections/{collection_name}","href":"/reference/api/2024-07/control-plane/delete_collection"}]}]},{"group":"Database","version":"2024-04","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2024-04 get /indexes","href":"/reference/api/2024-04/control-plane/list_indexes"},{"title":"Create an index","description":"This operation deploys a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2024-04 post /indexes","href":"/reference/api/2024-04/control-plane/create_index"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2024-04 get /indexes/{index_name}","href":"/reference/api/2024-04/control-plane/describe_index"},{"title":"Delete an index","description":"This operation deletes an existing index.","openapi":"control_2024-04 delete /indexes/{index_name}","href":"/reference/api/2024-04/control-plane/delete_index"},{"title":"Configure an index","description":"This operation configures the pod size and number of replicas for a pod-based index.\n\nIt is not possible to change the pod type of an index. However, you can create a collection from an index and then [create a new index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection.","openapi":"control_2024-04 patch /indexes/{index_name}","href":"/reference/api/2024-04/control-plane/configure_index"},{"title":"Get index stats","description":"The `describe_index_stats` operation returns statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2024-04 post /describe_index_stats","href":"/reference/api/2024-04/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"The `upsert` operation writes vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data).","openapi":"data_2024-04 post /vectors/upsert","href":"/reference/api/2024-04/data-plane/upsert"},{"title":"Query vectors","description":"The `query` operation searches a namespace, using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2024-04 post /query","href":"/reference/api/2024-04/data-plane/query"},{"title":"Fetch vectors","description":"The `fetch` operation looks up and returns vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2024-04 get /vectors/fetch","href":"/reference/api/2024-04/data-plane/fetch"},{"title":"Update a vector","description":"The `update` operation updates a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2024-04 post /vectors/update","href":"/reference/api/2024-04/data-plane/update"},{"title":"Delete vectors","description":"The `delete` operation deletes vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2024-04 post /vectors/delete","href":"/reference/api/2024-04/data-plane/delete"},{"title":"List vector IDs","description":"The `list` operation lists the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nBy default, `list` returns up to 100 IDs per page in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list_vectors` is supported only for serverless indexes.","openapi":"data_2024-10 get /vectors/list","href":"/reference/api/2024-04/data-plane/list"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 get /collections","href":"/reference/api/2024-04/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 post /collections","href":"/reference/api/2024-04/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 get /collections/{collection_name}","href":"/reference/api/2024-04/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 delete /collections/{collection_name}","href":"/reference/api/2024-04/control-plane/delete_collection"}]}]},{"group":"Inference","version":"2025-04 (release candidate)","pages":[{"title":"Embed data","description":"Generate embeddings for input data.\n\nFor guidance and examples, see [Generate embeddings](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2025-04 post /embed","href":"/reference/api/2025-04/inference/generate-embeddings"},{"title":"Rerank documents","description":"Rerank documents according to their relevance to a query.\n\nFor guidance and examples, see [Rerank documents](https://docs.pinecone.io/guides/inference/rerank).","openapi":"inference_2025-04 post /rerank","href":"/reference/api/2025-04/inference/rerank"}]},{"group":"Inference","version":"2025-01 (latest)","pages":[{"title":"Generate vectors","description":"[Generate vector embeddings](https://docs.pinecone.io/guides/inference/generate-embeddings) for input data. This endpoint uses [Pinecone Inference](https://docs.pinecone.io/guides/inference/understanding-inference).","openapi":"inference_2025-01 post /embed","href":"/reference/api/2025-01/inference/generate-embeddings"},{"title":"Rerank results","description":"[Rerank query results](https://docs.pinecone.io/guides/inference/rerank) according to their relevance to a query. This endpoint uses [Pinecone Inference](https://docs.pinecone.io/guides/inference/understanding-inference).","openapi":"inference_2025-01 post /rerank","href":"/reference/api/2025-01/inference/rerank"}]},{"group":"Inference","version":"2024-10","pages":[{"title":"Embed data","description":"Generate embeddings for input data.\n\nFor guidance and examples, see [Generate embeddings](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2024-10 post /embed","href":"/reference/api/2024-10/inference/generate-embeddings"},{"title":"Rerank documents","description":"Rerank documents according to their relevance to a query.\n\nFor guidance and examples, see [Rerank documents](https://docs.pinecone.io/guides/inference/rerank).","openapi":"inference_2024-10 post /rerank","href":"/reference/api/2024-10/inference/rerank"}]},{"group":"Inference","version":"2024-07","pages":[{"group":"Embed","pages":[{"title":"Embed data","description":"Generate embeddings for input data.\n\nFor guidance and examples, see [Generate embeddings](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2024-10 post /embed","href":"/reference/api/2024-10/inference/generate-embeddings"}]}]},{"group":"Assistant","version":"2025-04 (release candidate)","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-04 GET /assistants","href":"/reference/api/2025-04/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-04 POST /assistants","href":"/reference/api/2025-04/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-04 GET /assistants/{assistant_name}","href":"/reference/api/2025-04/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-04 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-04/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-04 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-04/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-04 GET /files/{assistant_name}","href":"/reference/api/2025-04/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-04 POST /files/{assistant_name}","href":"/reference/api/2025-04/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-04 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-04/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-04 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-04/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-04 POST /chat/{assistant_name}","href":"/reference/api/2025-04/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-04 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-04/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-04 POST /evaluation/metrics/alignment","href":"/reference/api/2025-04/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-04 POST /chat/{assistant_name}/context","href":"/reference/api/2025-04/assistant/context_assistant"}]}]},{"group":"Assistant","version":"2025-01 (latest)","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-01 GET /assistants","href":"/reference/api/2025-01/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-01 POST /assistants","href":"/reference/api/2025-01/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-01 GET /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-01 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-01 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}","href":"/reference/api/2025-01/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-01 POST /files/{assistant_name}","href":"/reference/api/2025-01/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-01 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}","href":"/reference/api/2025-01/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-01/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-01 POST /evaluation/metrics/alignment","href":"/reference/api/2025-01/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/context","href":"/reference/api/2025-01/assistant/context_assistant"}]}]},{"group":"SDKs","pages":[{"title":"Introduction","description":null,"href":"/reference/pinecone-sdks"},{"title":"Python SDK","description":null,"icon":"python","href":"/reference/python-sdk"},{"title":"Node.js SDK","description":null,"icon":"node-js","href":"/reference/node-sdk"},{"title":"Java SDK","description":null,"icon":"java","href":"/reference/java-sdk"},{"title":"Go SDK","description":null,"icon":"golang","href":"/reference/go-sdk"},{"title":".NET SDK","description":null,"icon":"microsoft","href":"/reference/dotnet-sdk"},{"title":"Rust SDK","description":null,"icon":"rust","href":"/reference/rust-sdk"}]},{"group":"Tools","pages":[{"title":"Pinecone text client","description":null,"href":"/reference/tools/pinecone-text-client"},{"title":"Spark-Pinecone connector","description":null,"href":"/reference/tools/pinecone-spark-connector"}]},{"group":"Architecture","pages":[{"title":"Serverless architecture","description":null,"href":"/reference/architecture/serverless-architecture"},{"title":"Pod-based architecture","description":null,"href":"/reference/architecture/pod-based-architecture"},{"title":"Pinecone Assistant architecture","description":null,"sidebarTitle":"Assistant architecture","href":"/reference/architecture/assistant-architecture"}]},{"group":"Examples","pages":[{"title":"Notebooks","description":null,"href":"/examples/notebooks"},{"title":"Sample apps","description":null,"href":"/examples/sample-apps"},{"title":"Reference architectures","description":null,"href":"/examples/reference-architectures"}]},{"group":"Models","pages":[{"title":"Model Gallery","description":"Pinecone integrations enable you to build and deploy AI applications faster and more efficiently. Integrate Pinecone with your favorite frameworks, data sources, and infrastructure providers.","href":"/models/overview"}]},{"group":"Connect an integration","pages":[{"title":"Integrations","description":"Pinecone integrations enable you to build and deploy AI applications faster and more efficiently. Integrate Pinecone with your favorite frameworks, data sources, and infrastructure providers.","sidebarTitle":"View all","href":"/integrations/overview"},{"group":"Data sources","pages":[{"title":"Airbyte","description":null,"href":"/integrations/airbyte"},{"title":"Apify","description":null,"href":"/integrations/apify"},{"title":"Aryn","description":null,"href":"/integrations/aryn"},{"title":"Box","description":null,"href":"/integrations/box"},{"title":"Confluent","description":null,"href":"/integrations/confluent"},{"title":"Databricks","description":"Using Databricks and Pinecone to create and index vector embeddings at scale","href":"/integrations/databricks"},{"title":"Datavolo","description":null,"href":"/integrations/datavolo"},{"title":"Elasticsearch","description":null,"href":"/integrations/elasticsearch"},{"title":"Estuary","description":null,"href":"/integrations/estuary"},{"title":"Fleak","description":null,"href":"/integrations/fleak"},{"title":"FlowiseAI","description":null,"href":"/integrations/flowise"},{"title":"Gathr","description":null,"href":"/integrations/gathr"},{"title":"Matillion","description":null,"href":"/integrations/matillion"},{"title":"Nexla","description":null,"href":"/integrations/nexla"},{"title":"Redpanda","description":null,"href":"/integrations/redpanda"},{"title":"Snowflake","description":null,"href":"/integrations/snowflake"},{"title":"StreamNative","description":null,"href":"/integrations/streamnative"},{"title":"Unstructured","description":null,"href":"/integrations/unstructured"}]},{"group":"Frameworks","pages":[{"title":"Amazon Bedrock","description":"Pinecone as a Knowledge Base for Amazon Bedrock","href":"/integrations/amazon-bedrock"},{"title":"Amazon SageMaker","description":null,"href":"/integrations/amazon-sagemaker"},{"title":"Cloudera AI","description":"Vector embedding, RAG, and semantic search at scale","href":"/integrations/cloudera"},{"title":"Context Data","description":null,"href":"/integrations/context-data"},{"title":"Haystack","description":"Using Haystack and Pinecone to keep your NLP-driven apps up-to-date","href":"/integrations/haystack"},{"title":"Instill AI","description":null,"href":"/integrations/instill"},{"title":"LangChain","description":"Using LangChain and Pinecone to add knowledge to LLMs","href":"/integrations/langchain"},{"title":"LlamaIndex","description":"Using LlamaIndex and Pinecone to build semantic search and RAG applications","href":"/integrations/llamaindex"},{"title":"Nuclia","description":null,"href":"/integrations/nuclia"},{"title":"OctoAI","description":null,"href":"/integrations/octoai"}]},{"group":"Infrastructure","pages":[{"title":"Amazon Web Services (AWS)","description":null,"href":"/integrations/aws"},{"title":"Azure","description":null,"href":"/integrations/azure"},{"title":"Google Cloud Platform (GCP)","description":null,"href":"/integrations/gcp"},{"title":"GitHub Copilot","description":null,"href":"/integrations/github-copilot"},{"title":"Pulumi","description":null,"href":"/integrations/pulumi"},{"title":"Terraform","description":"Using Terraform to manage Pinecone resources","href":"/integrations/terraform"},{"title":"Vercel","description":null,"href":"/integrations/vercel"}]},{"group":"Models","pages":[{"title":"Anyscale","description":null,"href":"/integrations/anyscale"},{"title":"Cohere","description":"Using Cohere and Pinecone to generate and index high-quality vector embeddings","href":"/integrations/cohere"},{"title":"Voyage AI","description":"Using Voyage AI and Pinecone to generate and index high-quality vector embeddings","href":"/integrations/voyage"},{"title":"Hugging Face Inference Endpoints","description":"Using Hugging Face Inference Endpoints and Pinecone to generate and index high-quality vector embeddings","href":"/integrations/hugging-face-inference-endpoints"},{"title":"Jina AI","description":null,"href":"/integrations/jina"},{"title":"OpenAI","description":"Using OpenAI and Pinecone to combine deep learning capabilities for embedding generation with efficient vector storage and retrieval","href":"/integrations/openai"},{"title":"Twelve Labs","description":null,"href":"/integrations/twelve-labs"}]},{"group":"Observability","pages":[{"title":"Datadog","description":"Monitoring Pinecone with Datadog","href":"/integrations/datadog"},{"title":"Langtrace","description":null,"href":"/integrations/langtrace"},{"title":"New Relic","description":null,"href":"/integrations/new-relic"},{"title":"Traceloop","description":null,"href":"/integrations/traceloop"},{"title":"TruLens","description":"Using TruLens and Pinecone to evaluate grounded LLM applications","href":"/integrations/trulens"}]}]},{"group":"Build an integration","pages":[{"title":"Become a Pinecone partner","description":null,"href":"/integrations/build-integration/become-a-partner"},{"title":"Attribute usage to your integration","description":null,"href":"/integrations/build-integration/attribute-usage-to-your-integration"},{"title":"Connect your users to Pinecone","description":null,"href":"/integrations/build-integration/connect-your-users-to-pinecone"}]},{"group":"","pages":[{"title":"Contact Support","description":null,"articleID":"13882889246237","href":"/troubleshooting/contact-support"},{"title":"How to work with Support","description":null,"articleID":"17535134154397","href":"/troubleshooting/how-to-work-with-support"},{"title":"Pinecone Support SLAs","description":null,"articleID":"15908636632861","href":"/troubleshooting/pinecone-support-slas"}]},{"group":"Account management","pages":[{"title":"Login code issues","description":null,"articleID":"12439535003677","href":"/troubleshooting/login-code-issues"},{"title":"Custom data processing agreements","description":null,"articleID":"15195271335069","href":"/troubleshooting/custom-data-processing-agreements"},{"title":"Delete your organization","description":null,"articleID":"11329562340253","href":"/troubleshooting/delete-your-organization"},{"title":"Delete your account","description":null,"href":"/troubleshooting/delete-your-account"},{"title":"Billing disputes and refunds","description":null,"articleID":"15991289038237","href":"/troubleshooting/billing-disputes-and-refunds"}]},{"group":"Indexes","pages":[{"title":"Available cloud regions","description":null,"articleID":"19318696331677","href":"/troubleshooting/available-cloud-regions"},{"title":"Export indexes","description":null,"articleID":"12438275491741","href":"/troubleshooting/export-indexes"},{"title":"Wait for index creation to be complete","description":null,"articleID":"8747593242909","href":"/troubleshooting/wait-for-index-creation"},{"title":"Select index type and size","description":null,"articleID":"15991468911901","href":"/troubleshooting/select-index-type-and-size"},{"title":"How and when to increase index size","description":null,"articleID":"15991281846941","href":"/troubleshooting/how-and-when-to-increase-index-size"},{"title":"Use namespaces instead of several indexes","description":null,"articleID":"15769675534621","href":"/troubleshooting/use-namespaces-instead-of-several-indexes"},{"title":"Namespaces vs. metadata filtering","description":null,"articleID":"7884238411165","href":"/troubleshooting/namespaces-vs-metadata-filtering"},{"title":"Restrictions on index names","description":null,"articleID":"11729246212637","href":"/troubleshooting/restrictions-on-index-names"},{"title":"Return all vectors in an index","description":null,"articleID":"11604325992349","href":"/troubleshooting/return-all-vectors-in-an-index"},{"title":"Vertically downscaling","description":null,"articleID":"15991321917981","href":"/troubleshooting/vertically-downscaling"},{"title":"Pods are full","description":null,"articleID":"18863372418717","href":"/troubleshooting/pods-are-full"}]},{"group":"Data","pages":[{"title":"Parallel queries","description":null,"articleID":"9133714526877","href":"/troubleshooting/parallel-queries"},{"title":"Minimize latencies","description":null,"articleID":"18863347205661","href":"/troubleshooting/minimize-latencies"},{"title":"Embedding values changed when upserted","description":null,"articleID":"17535273763741","href":"/troubleshooting/embedding-values-changed-when-upserted"},{"title":"How and when to add replicas","description":null,"articleID":"18863942216477","href":"/troubleshooting/how-and-when-to-add-replicas"},{"title":"Keep customer data separate in Pinecone","description":null,"articleID":"7985415079453","href":"/troubleshooting/keep-customer-data-separate"},{"title":"Limitations of querying by ID","description":null,"articleID":"18864309197469","href":"/troubleshooting/limitations-of-querying-by-id"},{"title":"Create and manage vectors with metadata","description":null,"articleID":"14643255054109","href":"/troubleshooting/create-and-manage-vectors-with-metadata"},{"title":"Metadata re-configuration","description":null,"articleID":"15991362468509","href":"/troubleshooting/metadata-reconfiguration"},{"title":"Metadata string value returned as a datetime object","description":null,"articleID":"11113544724381","href":"/troubleshooting/metadata-string-value-returned-as-datetime"},{"title":"Remove a metadata field from a record","description":null,"articleID":"15277578080413","href":"/troubleshooting/remove-metadata-field"}]},{"group":"Common errors","pages":[{"title":"Index creation error - missing spec parameter","description":null,"articleID":"18863405419421","href":"/troubleshooting/index-creation-error-missing-spec"},{"title":"Serverless index creation error - max serverless indexes","description":null,"articleID":"18863343628701","href":"/troubleshooting/index-creation-error-max-serverless"},{"title":"Serverless index connection errors","description":null,"articleID":"16136406269085","href":"/troubleshooting/serverless-index-connection-errors"},{"title":"Error: Handshake read failed when connecting","description":null,"articleID":"10724456320413","href":"/troubleshooting/error-handshake-read-failed"},{"title":"PineconeAttribute errors with LangChain","description":null,"articleID":"16401743809693","href":"/troubleshooting/pinecone-attribute-errors-with-langchain"},{"title":"Error: Cannot import name 'Pinecone' from 'pinecone'","description":null,"articleID":"18220730068381","href":"/troubleshooting/error-cannot-import-name-pinecone"},{"title":"Python AttributeError: module pinecone has no attribute init","description":null,"articleID":"16064065689117","href":"/troubleshooting/module-pinecone-has-no-attribute-init"}]},{"group":"Miscellaneous","pages":[{"title":"Best Practices","description":null,"articleID":"15991289038237","href":"/troubleshooting/best-practices"},{"title":"Differences between Lexical and Semantic Search regarding relevancy","description":null,"articleID":"9500075821981","href":"/troubleshooting/differences-between-lexical-semantic-search"},{"title":"Node.JS Troubleshooting","description":null,"articleID":"9570011184797","href":"/troubleshooting/nodejs-troubleshooting"},{"title":"CORS Issues","description":null,"articleID":"8764985175709","href":"/troubleshooting/cors-issues"},{"title":"Debug model vs. Pinecone recall issues","description":null,"articleID":"9570903705757","href":"/troubleshooting/debug-model-vs-pinecone-recall-issues"},{"title":"Non-indexed field filter issues","description":null,"articleID":"15991457795613","href":"/troubleshooting/non-indexed-field-filter-issues"},{"title":"Unable to pip install","description":null,"articleID":"18863347253917","href":"/troubleshooting/unable-to-pip-install"}]},{"group":"Release notes","pages":[{"title":"2025 releases","description":null,"mode":"wide","href":"/release-notes/2025"},{"title":"2024 releases","description":null,"mode":"wide","href":"/release-notes/2024"},{"title":"2023 releases","description":null,"href":"/release-notes/2023"},{"title":"2022 releases","description":null,"href":"/release-notes/2022"}]},{"group":"Policies","pages":[{"title":"Feature availability","description":null,"href":"/release-notes/feature-availability"}]}],"docsNavWithMetadata":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":[{"title":"Pinecone Documentation","description":null,"sidebarTitle":"Overview","mode":"wide","href":"/guides/get-started/overview"},{"title":"Pinecone Database quickstart","description":null,"sidebarTitle":"Database quickstart","og:image":"https://www.pinecone.io/api/og/?title=Pinecone Database quickstart","href":"/guides/get-started/quickstart"},{"title":"Pinecone Assistant quickstart","description":null,"sidebarTitle":"Assistant quickstart","og:image":"https://www.pinecone.io/api/og/?title=Pinecone Assistant quickstart","href":"/guides/get-started/assistant-quickstart"},{"title":"Key features","description":null,"href":"/guides/get-started/key-features"},{"group":"Tutorials","pages":[{"title":"Build a RAG chatbot","description":null,"sidebarTitle":"RAG","href":"/guides/get-started/build-a-rag-chatbot"},{"title":"Semantic search","description":null,"url":"/examples/sample-apps/legal-semantic-search","href":"/guides/get-started/semantic-search"},{"title":"Image search","description":null,"url":"https://github.com/pinecone-io/image-search-example","href":"/guides/get-started/image-search"},{"title":"Multimodal search","description":null,"url":"/examples/sample-apps/shop-the-look","href":"/guides/get-started/multimodal-search"},{"title":"Recommender","description":null,"url":"https://github.com/pinecone-io/recommender-example-typescript","href":"/guides/get-started/recommender"},{"title":"Threat detection","description":null,"url":"https://colab.research.google.com/github/pinecone-io/examples/blob/master/docs/it-threat-detection.ipynb","href":"/guides/get-started/threat-detection"},{"title":"More examples","description":null,"url":"/examples/notebooks","href":"/guides/get-started/examples"}]},{"title":"Glossary","description":null,"href":"/guides/get-started/glossary"}]},{"group":"Indexes","pages":[{"title":"Understanding indexes","description":null,"href":"/guides/indexes/understanding-indexes"},{"title":"Create a serverless index","description":null,"sidebarTitle":"Create an index","href":"/guides/indexes/create-an-index"},{"title":"Implement multitenancy using namespaces","description":null,"sidebarTitle":"Implement multitenancy","href":"/guides/indexes/implement-multitenancy"},{"title":"Manage serverless indexes","description":null,"sidebarTitle":"Manage indexes","href":"/guides/indexes/manage-indexes"},{"group":"Back up and restore","pages":[{"title":"Understanding backups","description":null,"href":"/guides/indexes/understanding-backups"},{"title":"Back up an index","description":null,"href":"/guides/indexes/back-up-an-index"},{"title":"Restore an index","description":null,"href":"/guides/indexes/restore-an-index"}]},{"group":"Pod-based indexes","pages":[{"title":"Understanding pod-based indexes","description":null,"href":"/guides/indexes/pods/understanding-pod-based-indexes"},{"title":"Migrate a pod-based index to serverless","description":null,"href":"/guides/indexes/pods/migrate-a-pod-based-index-to-serverless"},{"title":"Choose a pod type and size","description":null,"sidebarTitle":"Choose a pod type","href":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"title":"Create a pod-based index","description":null,"href":"/guides/indexes/pods/create-a-pod-based-index"},{"title":"Manage pod-based indexes","description":null,"href":"/guides/indexes/pods/manage-pod-based-indexes"},{"title":"Scale pod-based indexes","description":null,"href":"/guides/indexes/pods/scale-pod-based-indexes"},{"group":"Back up and restore","pages":[{"title":"Understanding collections","description":null,"href":"/guides/indexes/pods/understanding-collections"},{"title":"Back up a pod-based index","description":null,"href":"/guides/indexes/pods/back-up-a-pod-based-index"},{"title":"Restore a pod-based index","description":null,"href":"/guides/indexes/pods/restore-a-pod-based-index"}]}]},{"title":"Get started with sparse indexes","description":null,"sidebarTitle":"Sparse indexes","href":"/guides/indexes/sparse-indexes"}]},{"group":"Data","pages":[{"title":"Upsert data","description":null,"href":"/guides/data/upsert-data"},{"title":"Query data","description":null,"href":"/guides/data/query-data"},{"title":"Fetch data","description":null,"href":"/guides/data/fetch-data"},{"title":"Update data","description":null,"href":"/guides/data/update-data"},{"title":"Delete data","description":null,"href":"/guides/data/delete-data"},{"group":"Import data","pages":[{"title":"Understanding imports","description":null,"href":"/guides/data/understanding-imports"},{"title":"Import data","description":null,"href":"/guides/data/import-data"}]},{"title":"List record IDs","description":null,"href":"/guides/data/list-record-ids"},{"title":"Target an index","description":null,"href":"/guides/data/target-an-index"},{"title":"Understanding metadata","description":null,"href":"/guides/data/understanding-metadata"},{"title":"Manage RAG documents","description":null,"href":"/guides/data/manage-rag-documents"},{"group":"Data freshness","pages":[{"title":"Understanding data freshness","description":null,"href":"/guides/data/data-freshness/understanding-data-freshness"},{"title":"Check data freshness","description":null,"href":"/guides/data/data-freshness/check-data-freshness"}]},{"group":"Hybrid search and sparse vectors","pages":[{"title":"Understanding hybrid search","description":null,"href":"/guides/data/understanding-hybrid-search"},{"title":"Encode sparse vectors","description":null,"href":"/guides/data/encode-sparse-vectors"},{"title":"Upsert sparse-dense vectors","description":null,"href":"/guides/data/upsert-sparse-dense-vectors"},{"title":"Query sparse-dense vectors","description":null,"href":"/guides/data/query-sparse-dense-vectors"}]}]},{"group":"Inference","pages":[{"title":"Understanding Pinecone Inference","description":null,"href":"/guides/inference/understanding-inference"},{"title":"Embed data","description":null,"href":"/guides/inference/generate-embeddings"},{"title":"Rerank documents","description":null,"href":"/guides/inference/rerank"},{"title":"Upsert and search with integrated inference","description":null,"href":"/guides/inference/integrated-inference"}]},{"group":"Assistant","pages":[{"title":"Understanding Pinecone Assistant","description":null,"href":"/guides/assistant/understanding-assistant"},{"title":"Create an assistant","description":null,"mode":"wide","href":"/guides/assistant/create-assistant"},{"title":"Manage files","description":null,"href":"/guides/assistant/manage-files"},{"title":"Chat with an assistant","description":null,"href":"/guides/assistant/chat-with-assistant"},{"title":"Manage assistants","description":null,"href":"/guides/assistant/manage-assistants"},{"group":"Evaluate answers","pages":[{"title":"Understanding evaluation","description":null,"href":"/guides/assistant/understanding-evaluation"},{"title":"Evaluate answers","description":null,"mode":"wide","href":"/guides/assistant/evaluate-answers"}]},{"group":"Retrieve context snippets","pages":[{"title":"Understanding context snippets","description":null,"href":"/guides/assistant/understanding-context-snippets"},{"title":"Retrieve context snippets","description":null,"href":"/guides/assistant/retrieve-context-snippets"}]}]},{"group":"Operations","pages":[{"title":"Local development with Pinecone Local","description":null,"sidebarTitle":"Local development","href":"/guides/operations/local-development"},{"title":"CI/CD with Pinecone Local and GitHub Actions","description":null,"sidebarTitle":"Automated testing","href":"/guides/operations/automated-testing"},{"title":"Move to production","description":null,"href":"/guides/operations/move-to-production"},{"title":"Performance tuning","description":null,"href":"/guides/operations/performance-tuning"},{"group":"Security","pages":[{"title":"Understanding security","description":null,"href":"/guides/operations/understanding-security"},{"title":"Configure SSO with Okta","description":null,"href":"/guides/organizations/configure-single-sign-on/okta"},{"title":"Configure customer-managed encryption keys","description":null,"sidebarTitle":"Configure CMEK","href":"/guides/operations/configure-cmek"},{"title":"Connect to AWS PrivateLink","description":null,"href":"/guides/operations/connect-to-aws-privatelink"}]},{"group":"Integrate with cloud storage","pages":[{"title":"Manage storage integrations","description":null,"href":"/guides/operations/integrations/manage-storage-integrations"},{"title":"Integrate with Amazon S3","description":null,"icon":"aws","href":"/guides/operations/integrations/integrate-with-amazon-s3"}]},{"title":"Monitoring","description":null,"href":"/guides/operations/monitoring"}]},{"group":"Organizations","pages":[{"title":"Understanding organizations","description":null,"href":"/guides/organizations/understanding-organizations"},{"group":"Manage billing","pages":[{"title":"Change your billing plan","description":null,"href":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"title":"Set up billing through AWS Marketplace","description":null,"icon":"aws","href":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"title":"Set up billing through Azure Marketplace","description":null,"icon":"microsoft","href":"/guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace"},{"title":"Set up billing through GCP Marketplace","description":null,"icon":"google","href":"/guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"}]},{"group":"Manage cost","pages":[{"title":"Understanding cost","description":null,"href":"/guides/organizations/manage-cost/understanding-cost"},{"title":"Monitor your usage","description":null,"href":"/guides/organizations/manage-cost/monitor-your-usage"},{"title":"Manage cost","description":null,"href":"/guides/organizations/manage-cost/manage-cost"}]},{"title":"Manage organization members","description":null,"href":"/guides/organizations/manage-organization-members"}]},{"group":"Projects","pages":[{"title":"Understanding projects","description":null,"href":"/guides/projects/understanding-projects"},{"title":"Create a project","description":null,"mode":"wide","href":"/guides/projects/create-a-project"},{"title":"Manage API keys","description":null,"href":"/guides/projects/manage-api-keys"},{"title":"Manage project members","description":null,"href":"/guides/projects/manage-project-members"},{"title":"Manage projects","description":null,"href":"/guides/projects/manage-projects"}]}]},{"tab":"Reference","versions":[{"version":"2025-04 (release candidate)","groups":[{"group":"APIs","pages":[{"title":"API reference","description":null,"sidebarTitle":"Introduction","href":"/reference/api/introduction"},{"title":"Authentication","description":null,"href":"/reference/api/authentication"},{"title":"API versioning","description":null,"sidebarTitle":"Versioning","href":"/reference/api/versioning"},{"group":"Limits","pages":[{"title":"Pinecone Database limits","description":null,"sidebarTitle":"Database limits","href":"/reference/api/database-limits"},{"title":"Pinecone Inference limits","description":null,"sidebarTitle":"Inference limits","href":"/reference/api/inference-limits"},{"title":"Pinecone Assistant limits","description":null,"sidebarTitle":"Assistant limits","href":"/reference/api/assistant-limits"},{"title":"Known limitations","description":null,"href":"/reference/api/known-limitations"}]},{"title":"Errors","description":null,"href":"/reference/api/errors"}]},{"group":"Database","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"List all indexes in a project.","openapi":"control_2025-04 get /indexes","href":"/reference/api/2025-04/control-plane/list_indexes"},{"title":"Create an index","description":"Create a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n \nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2025-04 post /indexes","href":"/reference/api/2025-04/control-plane/create_index"},{"title":"Create an index with integrated embedding","description":"Create an index with integrated embedding.\n\nWith this type of index, you provide source text, and Pinecone uses a [hosted embedding model](https://docs.pinecone.io/guides/inference/understanding-inference#embedding-models) to convert the text automatically during [upsert](https://docs.pinecone.io/reference/api/2025-01/data-plane/upsert_records) and [search](https://docs.pinecone.io/reference/api/2025-01/data-plane/search_records).\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding).","openapi":"control_2025-04 post /indexes/create-for-model","href":"/reference/api/2025-04/control-plane/create_for_model"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2025-04 get /indexes/{index_name}","href":"/reference/api/2025-04/control-plane/describe_index"},{"title":"Delete an index","description":"Delete an existing index.","openapi":"control_2025-04 delete /indexes/{index_name}","href":"/reference/api/2025-04/control-plane/delete_index"},{"title":"Configure an index","description":"Configure an existing index. For serverless indexes, you can configure index deletion protection, tags, and integrated inference embedding settings for the index. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection.\n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2025-04 patch /indexes/{index_name}","href":"/reference/api/2025-04/control-plane/configure_index"},{"title":"Get index stats","description":"Return statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2025-04 post /describe_index_stats","href":"/reference/api/2025-04/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"Upsert vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-vectors).","openapi":"data_2025-04 post /vectors/upsert","href":"/reference/api/2025-04/data-plane/upsert"},{"title":"Upsert text","description":"Upsert text into a namespace. Pinecone converts the text to vectors automatically using the hosted embedding model associated with the index.\n\nUpserting text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/reference/api/2025-01/control-plane/create_for_model).\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-text).","openapi":"data_2025-04 post /records/namespaces/{namespace}/upsert","href":"/reference/api/2025-04/data-plane/upsert_records"},{"title":"Fetch vectors","description":"Look up and return vectors by ID from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2025-04 get /vectors/fetch","href":"/reference/api/2025-04/data-plane/fetch"},{"title":"Update a vector","description":"Update a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2025-04 post /vectors/update","href":"/reference/api/2025-04/data-plane/update"},{"title":"Delete vectors","description":"Delete vectors by id from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2025-04 post /vectors/delete","href":"/reference/api/2025-04/data-plane/delete"},{"title":"List vector IDs","description":"List the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nReturns up to 100 IDs at a time by default in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list` is supported only for serverless indexes.","openapi":"data_2025-04 get /vectors/list","href":"/reference/api/2025-04/data-plane/list"}]},{"group":"Search","pages":[{"title":"Search with a vector","description":"Search a namespace using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2025-04 post /query","href":"/reference/api/2025-04/data-plane/query"},{"title":"Search with text","description":"Search a namespace with a query text, query vector, or record ID and return the most similar records, along with their similarity scores. Optionally, rerank the initial results based on their relevance to the query. \n\nSearching with text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding). Searching with a query vector or record ID is supported for all indexes. \n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2025-01 post /records/namespaces/{namespace}/search","href":"/reference/api/2025-04/data-plane/search_records"}]},{"group":"Imports","pages":[{"title":"Start import","description":"Start an asynchronous import of vectors from object storage into an index.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 post /bulk/imports","href":"/reference/api/2025-04/data-plane/start_import"},{"title":"List imports","description":"List all recent and ongoing import operations.\n\nBy default, `list_imports` returns up to 100 imports per page. If the `limit` parameter is set, `list` returns up to that number of imports instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of imports. When the response does not include a `pagination_token`, there are no more imports to return.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 get /bulk/imports","href":"/reference/api/2025-04/data-plane/list_imports"},{"title":"Describe an import","description":"Return details of a specific import operation.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 get /bulk/imports/{id}","href":"/reference/api/2025-04/data-plane/describe_import"},{"title":"Cancel an import","description":"Cancel an import operation if it is not yet finished. It has no effect if the operation is already finished.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-04 delete /bulk/imports/{id}","href":"/reference/api/2025-04/data-plane/cancel_import"}]},{"group":"Backups","pages":[{"title":"List collections","description":"List all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2025-04 get /collections","href":"/reference/api/2025-04/control-plane/list_collections"},{"title":"Create a collection","description":"Create a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2025-04 post /collections","href":"/reference/api/2025-04/control-plane/create_collection"},{"title":"Describe a collection","description":"Get a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-04 get /collections/{collection_name}","href":"/reference/api/2025-04/control-plane/describe_collection"},{"title":"Delete a collection","description":"Delete an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-04 delete /collections/{collection_name}","href":"/reference/api/2025-04/control-plane/delete_collection"}]}]},{"group":"Inference","pages":[{"group":"Embed","pages":[{"title":"Generate vectors","description":"Generate vector embeddings for input data. This endpoint uses [Pinecone Inference](https://docs.pinecone.io/guides/inference/understanding-inference).\n\nFor guidance and examples, see [Embed data](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2025-04 post /embed","href":"/reference/api/2025-04/inference/generate-embeddings"}]},{"group":"Rerank","pages":[{"title":"Rerank documents","description":"Rerank documents according to their relevance to a query.\n\nFor guidance and examples, see [Rerank documents](https://docs.pinecone.io/guides/inference/rerank).","openapi":"inference_2025-04 post /rerank","href":"/reference/api/2025-04/inference/rerank"}]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-04 GET /assistants","href":"/reference/api/2025-04/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-04 POST /assistants","href":"/reference/api/2025-04/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-04 GET /assistants/{assistant_name}","href":"/reference/api/2025-04/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-04 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-04/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-04 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-04/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-04 GET /files/{assistant_name}","href":"/reference/api/2025-04/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-04 POST /files/{assistant_name}","href":"/reference/api/2025-04/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-04 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-04/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-04 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-04/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-04 POST /chat/{assistant_name}","href":"/reference/api/2025-04/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-04 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-04/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-04 POST /evaluation/metrics/alignment","href":"/reference/api/2025-04/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-04 POST /chat/{assistant_name}/context","href":"/reference/api/2025-04/assistant/context_assistant"}]}]},{"group":"SDKs","pages":[{"title":"Introduction","description":null,"href":"/reference/pinecone-sdks"},{"title":"Python SDK","description":null,"icon":"python","href":"/reference/python-sdk"},{"title":"Node.js SDK","description":null,"icon":"node-js","href":"/reference/node-sdk"},{"title":"Java SDK","description":null,"icon":"java","href":"/reference/java-sdk"},{"title":"Go SDK","description":null,"icon":"golang","href":"/reference/go-sdk"},{"title":".NET SDK","description":null,"icon":"microsoft","href":"/reference/dotnet-sdk"},{"title":"Rust SDK","description":null,"icon":"rust","href":"/reference/rust-sdk"}]},{"group":"Tools","pages":[{"title":"Pinecone text client","description":null,"href":"/reference/tools/pinecone-text-client"},{"title":"Spark-Pinecone connector","description":null,"href":"/reference/tools/pinecone-spark-connector"}]},{"group":"Architecture","pages":[{"title":"Serverless architecture","description":null,"href":"/reference/architecture/serverless-architecture"},{"title":"Pod-based architecture","description":null,"href":"/reference/architecture/pod-based-architecture"},{"title":"Pinecone Assistant architecture","description":null,"sidebarTitle":"Assistant architecture","href":"/reference/architecture/assistant-architecture"}]}]},{"version":"2025-01 (latest)","default":true,"groups":[{"group":"APIs","pages":[{"title":"API reference","description":null,"sidebarTitle":"Introduction","href":"/reference/api/introduction"},{"title":"Authentication","description":null,"href":"/reference/api/authentication"},{"title":"API versioning","description":null,"sidebarTitle":"Versioning","href":"/reference/api/versioning"},{"group":"Limits","pages":[{"title":"Pinecone Database limits","description":null,"sidebarTitle":"Database limits","href":"/reference/api/database-limits"},{"title":"Pinecone Inference limits","description":null,"sidebarTitle":"Inference limits","href":"/reference/api/inference-limits"},{"title":"Pinecone Assistant limits","description":null,"sidebarTitle":"Assistant limits","href":"/reference/api/assistant-limits"},{"title":"Known limitations","description":null,"href":"/reference/api/known-limitations"}]},{"title":"Errors","description":null,"href":"/reference/api/errors"}]},{"group":"Database","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2025-01 get /indexes","href":"/reference/api/2025-01/control-plane/list_indexes"},{"title":"Create an index","description":"Create an index for vectors created with an external embedding model.\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#external-embedding).","openapi":"control_2025-01 post /indexes","href":"/reference/api/2025-01/control-plane/create_index"},{"title":"Create an index with integrated embedding","description":"Create an index with integrated embedding.\n\nWith this type of index, you provide source text, and Pinecone uses a [hosted embedding model](https://docs.pinecone.io/guides/inference/understanding-inference#embedding-models) to convert the text automatically during [upsert](https://docs.pinecone.io/reference/api/2025-01/data-plane/upsert_records) and [search](https://docs.pinecone.io/reference/api/2025-01/data-plane/search_records).\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding).","openapi":"control_2025-01 post /indexes/create-for-model","href":"/reference/api/2025-01/control-plane/create_for_model"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2025-01 get /indexes/{index_name}","href":"/reference/api/2025-01/control-plane/describe_index"},{"title":"Delete an index","description":"Delete an existing index.","openapi":"control_2025-01 delete /indexes/{index_name}","href":"/reference/api/2025-01/control-plane/delete_index"},{"title":"Configure an index","description":"Configure an existing index. \n\nFor serverless indexes, you can configure index deletion protection, tags, and integrated inference embedding settings for the index. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection.\n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2025-01 patch /indexes/{index_name}","href":"/reference/api/2025-01/control-plane/configure_index"},{"title":"Get index stats","description":"Return statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2025-01 post /describe_index_stats","href":"/reference/api/2025-01/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"Upsert vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-vectors).","openapi":"data_2025-01 post /vectors/upsert","href":"/reference/api/2025-01/data-plane/upsert"},{"title":"Upsert text","description":"Upsert text into a namespace. Pinecone converts the text to vectors automatically using the hosted embedding model associated with the index.\n\nUpserting text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/reference/api/2025-01/control-plane/create_for_model).\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data#upsert-text).","openapi":"data_2025-01 post /records/namespaces/{namespace}/upsert","href":"/reference/api/2025-01/data-plane/upsert_records"},{"title":"Fetch vectors","description":"Look up and return vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2025-01 get /vectors/fetch","href":"/reference/api/2025-01/data-plane/fetch"},{"title":"Update a vector","description":"Update a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2025-01 post /vectors/update","href":"/reference/api/2025-01/data-plane/update"},{"title":"Delete vectors","description":"Delete vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2025-01 post /vectors/delete","href":"/reference/api/2025-01/data-plane/delete"},{"title":"List vector IDs","description":"List the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nThis returns up to 100 IDs at a time by default in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list` is supported only for serverless indexes.","openapi":"data_2025-01 get /vectors/list","href":"/reference/api/2025-01/data-plane/list"}]},{"group":"Search","pages":[{"title":"Search with a vector","description":"Search a namespace with a query vector or record ID and return the IDs of the most similar records, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2025-01 post /query","href":"/reference/api/2025-01/data-plane/query"},{"title":"Search with text","description":"Search a namespace with a query text, query vector, or record ID and return the most similar records, along with their similarity scores. Optionally, rerank the initial results based on their relevance to the query. \n\nSearching with text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/guides/indexes/create-an-index#integrated-embedding). Searching with a query vector or record ID is supported for all indexes. \n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2025-01 post /records/namespaces/{namespace}/search","href":"/reference/api/2025-01/data-plane/search_records"}]},{"group":"Imports","pages":[{"title":"Start import","description":"Start an asynchronous import of vectors from object storage into an index.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 post /bulk/imports","href":"/reference/api/2025-01/data-plane/start_import"},{"title":"List imports","description":"List all recent and ongoing import operations.\n\nBy default, this returns up to 100 imports per page. If the `limit` parameter is set, `list` returns up to that number of imports instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of imports. When the response does not include a `pagination_token`, there are no more imports to return.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 get /bulk/imports","href":"/reference/api/2025-01/data-plane/list_imports"},{"title":"Describe an import","description":"Return details of a specific import operation.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 get /bulk/imports/{id}","href":"/reference/api/2025-01/data-plane/describe_import"},{"title":"Cancel an import","description":"Cancel an import operation if it is not yet finished. It has no effect if the operation is already finished.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2025-01 delete /bulk/imports/{id}","href":"/reference/api/2025-01/data-plane/cancel_import"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2025-01 get /collections","href":"/reference/api/2025-01/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2025-01 post /collections","href":"/reference/api/2025-01/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-01 get /collections/{collection_name}","href":"/reference/api/2025-01/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2025-01 delete /collections/{collection_name}","href":"/reference/api/2025-01/control-plane/delete_collection"}]}]},{"group":"Inference","pages":[{"group":"Embed","pages":[{"title":"Generate vectors","description":"Generate vector embeddings for input data. This endpoint uses [Pinecone Inference](https://docs.pinecone.io/guides/inference/understanding-inference).\n\nFor guidance and examples, see [Embed data](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2025-01 post /embed","href":"/reference/api/2025-01/inference/generate-embeddings"}]},{"group":"Rerank","pages":[{"title":"Rerank results","description":"Rerank query results according to their relevance to a query. This endpoint uses [Pinecone Inference](https://docs.pinecone.io/guides/inference/understanding-inference).\n\nFor guidance and examples, see [Rerank documents](https://docs.pinecone.io/guides/inference/rerank).","openapi":"inference_2025-01 post /rerank","href":"/reference/api/2025-01/inference/rerank"}]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-01 GET /assistants","href":"/reference/api/2025-01/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-01 POST /assistants","href":"/reference/api/2025-01/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-01 GET /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-01 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-01 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}","href":"/reference/api/2025-01/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-01 POST /files/{assistant_name}","href":"/reference/api/2025-01/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-01 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}","href":"/reference/api/2025-01/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-01/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-01 POST /evaluation/metrics/alignment","href":"/reference/api/2025-01/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/context","href":"/reference/api/2025-01/assistant/context_assistant"}]}]},{"group":"SDKs","pages":[{"title":"Introduction","description":null,"href":"/reference/pinecone-sdks"},{"title":"Python SDK","description":null,"icon":"python","href":"/reference/python-sdk"},{"title":"Node.js SDK","description":null,"icon":"node-js","href":"/reference/node-sdk"},{"title":"Java SDK","description":null,"icon":"java","href":"/reference/java-sdk"},{"title":"Go SDK","description":null,"icon":"golang","href":"/reference/go-sdk"},{"title":".NET SDK","description":null,"icon":"microsoft","href":"/reference/dotnet-sdk"},{"title":"Rust SDK","description":null,"icon":"rust","href":"/reference/rust-sdk"}]},{"group":"Tools","pages":[{"title":"Pinecone text client","description":null,"href":"/reference/tools/pinecone-text-client"},{"title":"Spark-Pinecone connector","description":null,"href":"/reference/tools/pinecone-spark-connector"}]},{"group":"Architecture","pages":[{"title":"Serverless architecture","description":null,"href":"/reference/architecture/serverless-architecture"},{"title":"Pod-based architecture","description":null,"href":"/reference/architecture/pod-based-architecture"},{"title":"Pinecone Assistant architecture","description":null,"sidebarTitle":"Assistant architecture","href":"/reference/architecture/assistant-architecture"}]}]},{"version":"2024-10","groups":[{"group":"APIs","pages":[{"title":"API reference","description":null,"sidebarTitle":"Introduction","href":"/reference/api/introduction"},{"title":"Authentication","description":null,"href":"/reference/api/authentication"},{"title":"API versioning","description":null,"sidebarTitle":"Versioning","href":"/reference/api/versioning"},{"group":"Limits","pages":[{"title":"Pinecone Database limits","description":null,"sidebarTitle":"Database limits","href":"/reference/api/database-limits"},{"title":"Pinecone Inference limits","description":null,"sidebarTitle":"Inference limits","href":"/reference/api/inference-limits"},{"title":"Pinecone Assistant limits","description":null,"sidebarTitle":"Assistant limits","href":"/reference/api/assistant-limits"},{"title":"Known limitations","description":null,"href":"/reference/api/known-limitations"}]},{"title":"Errors","description":null,"href":"/reference/api/errors"}]},{"group":"Database","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2024-10 get /indexes","href":"/reference/api/2024-10/control-plane/list_indexes"},{"title":"Create an index","description":"This operation deploys a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n \nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2024-10 post /indexes","href":"/reference/api/2024-10/control-plane/create_index"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2024-10 get /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/describe_index"},{"title":"Delete an index","description":"This operation deletes an existing index.","openapi":"control_2024-10 delete /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/delete_index"},{"title":"Configure an index","description":"This operation configures an existing index. \n\nFor serverless indexes, you can configure only index deletion protection and tags. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection. \n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2024-10 patch /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/configure_index"},{"title":"Get index stats","description":"The `describe_index_stats` operation returns statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2024-10 post /describe_index_stats","href":"/reference/api/2024-10/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"The `upsert` operation writes vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data).","openapi":"data_2024-10 post /vectors/upsert","href":"/reference/api/2024-10/data-plane/upsert"},{"title":"Query vectors","description":"The `query` operation searches a namespace, using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2024-10 post /query","href":"/reference/api/2024-10/data-plane/query"},{"title":"Fetch vectors","description":"The `fetch` operation looks up and returns vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2024-10 get /vectors/fetch","href":"/reference/api/2024-10/data-plane/fetch"},{"title":"Update a vector","description":"The `update` operation updates a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2024-10 post /vectors/update","href":"/reference/api/2024-10/data-plane/update"},{"title":"Delete vectors","description":"The `delete` operation deletes vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2024-10 post /vectors/delete","href":"/reference/api/2024-10/data-plane/delete"},{"title":"List vector IDs","description":"The `list` operation lists the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nBy default, `list` returns up to 100 IDs per page in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list_vectors` is supported only for serverless indexes.","openapi":"data_2024-10 get /vectors/list","href":"/reference/api/2024-10/data-plane/list"}]},{"group":"Imports","pages":[{"title":"Start import","description":"The `start_import` operation starts an asynchronous import of vectors from object storage into an index. \n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 post /bulk/imports","href":"/reference/api/2024-10/data-plane/start_import"},{"title":"List imports","description":"The `list_imports` operation lists all recent and ongoing import operations. \n\nBy default, `list_imports` returns up to 100 imports per page. If the `limit` parameter is set, `list` returns up to that number of imports instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of imports. When the response does not include a `pagination_token`, there are no more imports to return.\n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 get /bulk/imports","href":"/reference/api/2024-10/data-plane/list_imports"},{"title":"Describe an import","description":"The `describe_import` operation returns details of a specific import operation. \n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 get /bulk/imports/{id}","href":"/reference/api/2024-10/data-plane/describe_import"},{"title":"Cancel an import","description":"The `cancel_import` operation cancels an import operation if it is not yet finished. It has no effect if the operation is already finished. \n\nFor guidance and examples, see [Import data](https://docs.pinecone.io/guides/data/import-data).","openapi":"data_2024-10 delete /bulk/imports/{id}","href":"/reference/api/2024-10/data-plane/cancel_import"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2024-10 get /collections","href":"/reference/api/2024-10/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2024-10 post /collections","href":"/reference/api/2024-10/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-10 get /collections/{collection_name}","href":"/reference/api/2024-10/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-10 delete /collections/{collection_name}","href":"/reference/api/2024-10/control-plane/delete_collection"}]}]},{"group":"Inference","pages":[{"title":"Embed data","description":"Generate embeddings for input data.\n\nFor guidance and examples, see [Generate embeddings](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2024-10 post /embed","href":"/reference/api/2024-10/inference/generate-embeddings"},{"title":"Rerank documents","description":"Rerank documents according to their relevance to a query.\n\nFor guidance and examples, see [Rerank documents](https://docs.pinecone.io/guides/inference/rerank).","openapi":"inference_2024-10 post /rerank","href":"/reference/api/2024-10/inference/rerank"}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-01 GET /assistants","href":"/reference/api/2025-01/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-01 POST /assistants","href":"/reference/api/2025-01/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-01 GET /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-01 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-01 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}","href":"/reference/api/2025-01/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-01 POST /files/{assistant_name}","href":"/reference/api/2025-01/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-01 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}","href":"/reference/api/2025-01/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-01/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-01 POST /evaluation/metrics/alignment","href":"/reference/api/2025-01/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/context","href":"/reference/api/2025-01/assistant/context_assistant"}]}]},{"group":"SDKs","pages":[{"title":"Introduction","description":null,"href":"/reference/pinecone-sdks"},{"title":"Python SDK","description":null,"icon":"python","href":"/reference/python-sdk"},{"title":"Node.js SDK","description":null,"icon":"node-js","href":"/reference/node-sdk"},{"title":"Java SDK","description":null,"icon":"java","href":"/reference/java-sdk"},{"title":"Go SDK","description":null,"icon":"golang","href":"/reference/go-sdk"},{"title":".NET SDK","description":null,"icon":"microsoft","href":"/reference/dotnet-sdk"},{"title":"Rust SDK","description":null,"icon":"rust","href":"/reference/rust-sdk"}]},{"group":"Tools","pages":[{"title":"Pinecone text client","description":null,"href":"/reference/tools/pinecone-text-client"},{"title":"Spark-Pinecone connector","description":null,"href":"/reference/tools/pinecone-spark-connector"}]},{"group":"Architecture","pages":[{"title":"Serverless architecture","description":null,"href":"/reference/architecture/serverless-architecture"},{"title":"Pod-based architecture","description":null,"href":"/reference/architecture/pod-based-architecture"},{"title":"Pinecone Assistant architecture","description":null,"sidebarTitle":"Assistant architecture","href":"/reference/architecture/assistant-architecture"}]}]},{"version":"2024-07","groups":[{"group":"APIs","pages":[{"title":"API reference","description":null,"sidebarTitle":"Introduction","href":"/reference/api/introduction"},{"title":"Authentication","description":null,"href":"/reference/api/authentication"},{"title":"API versioning","description":null,"sidebarTitle":"Versioning","href":"/reference/api/versioning"},{"group":"Limits","pages":[{"title":"Pinecone Database limits","description":null,"sidebarTitle":"Database limits","href":"/reference/api/database-limits"},{"title":"Pinecone Inference limits","description":null,"sidebarTitle":"Inference limits","href":"/reference/api/inference-limits"},{"title":"Pinecone Assistant limits","description":null,"sidebarTitle":"Assistant limits","href":"/reference/api/assistant-limits"},{"title":"Known limitations","description":null,"href":"/reference/api/known-limitations"}]},{"title":"Errors","description":null,"href":"/reference/api/errors"}]},{"group":"Database","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2024-10 get /indexes","href":"/reference/api/2024-10/control-plane/list_indexes"},{"title":"Create an index","description":"This operation deploys a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n \nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2024-10 post /indexes","href":"/reference/api/2024-10/control-plane/create_index"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2024-10 get /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/describe_index"},{"title":"Delete an index","description":"This operation deletes an existing index.","openapi":"control_2024-10 delete /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/delete_index"},{"title":"Configure an index","description":"This operation configures an existing index. \n\nFor serverless indexes, you can configure only index deletion protection and tags. For pod-based indexes, you can configure the pod size, number of replicas, tags, and index deletion protection. \n\nIt is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then [create a new pod-based index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection. For guidance and examples, see [Configure an index](http://docs.pinecone.io/guides/indexes/pods/manage-pod-based-indexes).","openapi":"control_2024-10 patch /indexes/{index_name}","href":"/reference/api/2024-10/control-plane/configure_index"},{"title":"Get index stats","description":"The `describe_index_stats` operation returns statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2024-10 post /describe_index_stats","href":"/reference/api/2024-10/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"The `upsert` operation writes vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data).","openapi":"data_2024-07 post /vectors/upsert","href":"/reference/api/2024-07/data-plane/upsert"},{"title":"Query vectors","description":"The `query` operation searches a namespace, using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2024-07 post /query","href":"/reference/api/2024-07/data-plane/query"},{"title":"Fetch vectors","description":"The `fetch` operation looks up and returns vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2024-07 get /vectors/fetch","href":"/reference/api/2024-07/data-plane/fetch"},{"title":"Update a vector","description":"The `update` operation updates a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2024-07 post /vectors/update","href":"/reference/api/2024-07/data-plane/update"},{"title":"Delete vectors","description":"The `delete` operation deletes vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2024-07 post /vectors/delete","href":"/reference/api/2024-07/data-plane/delete"},{"title":"List vector IDs","description":"The `list` operation lists the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nBy default, `list` returns up to 100 IDs per page in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list_vectors` is supported only for serverless indexes.","openapi":"data_2024-10 get /vectors/list","href":"/reference/api/2024-07/data-plane/list"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\nServerless indexes do not support collections.\n","openapi":"control_2024-07 get /collections","href":"/reference/api/2024-07/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n \nServerless indexes do not support collections.\n","openapi":"control_2024-07 post /collections","href":"/reference/api/2024-07/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-07 get /collections/{collection_name}","href":"/reference/api/2024-07/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\nServerless indexes do not support collections.\n","openapi":"control_2024-07 delete /collections/{collection_name}","href":"/reference/api/2024-07/control-plane/delete_collection"}]}]},{"group":"Inference","pages":[{"group":"Embed","pages":[{"title":"Embed data","description":"Generate embeddings for input data.\n\nFor guidance and examples, see [Generate embeddings](https://docs.pinecone.io/guides/inference/generate-embeddings).","openapi":"inference_2024-10 post /embed","href":"/reference/api/2024-10/inference/generate-embeddings"}]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-01 GET /assistants","href":"/reference/api/2025-01/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-01 POST /assistants","href":"/reference/api/2025-01/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-01 GET /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-01 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-01 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}","href":"/reference/api/2025-01/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-01 POST /files/{assistant_name}","href":"/reference/api/2025-01/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-01 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}","href":"/reference/api/2025-01/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-01/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-01 POST /evaluation/metrics/alignment","href":"/reference/api/2025-01/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/context","href":"/reference/api/2025-01/assistant/context_assistant"}]}]},{"group":"SDKs","pages":[{"title":"Introduction","description":null,"href":"/reference/pinecone-sdks"},{"title":"Python SDK","description":null,"icon":"python","href":"/reference/python-sdk"},{"title":"Node.js SDK","description":null,"icon":"node-js","href":"/reference/node-sdk"},{"title":"Java SDK","description":null,"icon":"java","href":"/reference/java-sdk"},{"title":"Go SDK","description":null,"icon":"golang","href":"/reference/go-sdk"},{"title":".NET SDK","description":null,"icon":"microsoft","href":"/reference/dotnet-sdk"},{"title":"Rust SDK","description":null,"icon":"rust","href":"/reference/rust-sdk"}]},{"group":"Tools","pages":[{"title":"Pinecone text client","description":null,"href":"/reference/tools/pinecone-text-client"},{"title":"Spark-Pinecone connector","description":null,"href":"/reference/tools/pinecone-spark-connector"}]},{"group":"Architecture","pages":[{"title":"Serverless architecture","description":null,"href":"/reference/architecture/serverless-architecture"},{"title":"Pod-based architecture","description":null,"href":"/reference/architecture/pod-based-architecture"},{"title":"Pinecone Assistant architecture","description":null,"sidebarTitle":"Assistant architecture","href":"/reference/architecture/assistant-architecture"}]}]},{"version":"2024-04","groups":[{"group":"APIs","pages":[{"title":"API reference","description":null,"sidebarTitle":"Introduction","href":"/reference/api/introduction"},{"title":"Authentication","description":null,"href":"/reference/api/authentication"},{"title":"API versioning","description":null,"sidebarTitle":"Versioning","href":"/reference/api/versioning"},{"group":"Limits","pages":[{"title":"Pinecone Database limits","description":null,"sidebarTitle":"Database limits","href":"/reference/api/database-limits"},{"title":"Pinecone Inference limits","description":null,"sidebarTitle":"Inference limits","href":"/reference/api/inference-limits"},{"title":"Pinecone Assistant limits","description":null,"sidebarTitle":"Assistant limits","href":"/reference/api/assistant-limits"},{"title":"Known limitations","description":null,"href":"/reference/api/known-limitations"}]},{"title":"Errors","description":null,"href":"/reference/api/errors"}]},{"group":"Database","pages":[{"group":"Indexes","pages":[{"title":"List indexes","description":"This operation returns a list of all indexes in a project.","openapi":"control_2024-04 get /indexes","href":"/reference/api/2024-04/control-plane/list_indexes"},{"title":"Create an index","description":"This operation deploys a Pinecone index. This is where you specify the measure of similarity, the dimension of vectors to be stored in the index, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an index](https://docs.pinecone.io/guides/indexes/create-an-index#create-a-serverless-index).\n","openapi":"control_2024-04 post /indexes","href":"/reference/api/2024-04/control-plane/create_index"},{"title":"Describe an index","description":"Get a description of an index.","openapi":"control_2024-04 get /indexes/{index_name}","href":"/reference/api/2024-04/control-plane/describe_index"},{"title":"Delete an index","description":"This operation deletes an existing index.","openapi":"control_2024-04 delete /indexes/{index_name}","href":"/reference/api/2024-04/control-plane/delete_index"},{"title":"Configure an index","description":"This operation configures the pod size and number of replicas for a pod-based index.\n\nIt is not possible to change the pod type of an index. However, you can create a collection from an index and then [create a new index with a different pod type](http://docs.pinecone.io/guides/indexes/pods/create-a-pod-based-index#create-a-pod-index-from-a-collection) from the collection.","openapi":"control_2024-04 patch /indexes/{index_name}","href":"/reference/api/2024-04/control-plane/configure_index"},{"title":"Get index stats","description":"The `describe_index_stats` operation returns statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.\n\nServerless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.","openapi":"data_2024-04 post /describe_index_stats","href":"/reference/api/2024-04/data-plane/describeindexstats"}]},{"group":"Vectors","pages":[{"title":"Upsert vectors","description":"The `upsert` operation writes vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.\n\nFor guidance and examples, see [Upsert data](https://docs.pinecone.io/guides/data/upsert-data).","openapi":"data_2024-04 post /vectors/upsert","href":"/reference/api/2024-04/data-plane/upsert"},{"title":"Query vectors","description":"The `query` operation searches a namespace, using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.\n\nFor guidance and examples, see [Query data](https://docs.pinecone.io/guides/data/query-data).","openapi":"data_2024-04 post /query","href":"/reference/api/2024-04/data-plane/query"},{"title":"Fetch vectors","description":"The `fetch` operation looks up and returns vectors, by ID, from a single namespace. The returned vectors include the vector data and/or metadata.\n\nFor guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/data/fetch-data).","openapi":"data_2024-04 get /vectors/fetch","href":"/reference/api/2024-04/data-plane/fetch"},{"title":"Update a vector","description":"The `update` operation updates a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.\n\nFor guidance and examples, see [Update data](https://docs.pinecone.io/guides/data/update-data).","openapi":"data_2024-04 post /vectors/update","href":"/reference/api/2024-04/data-plane/update"},{"title":"Delete vectors","description":"The `delete` operation deletes vectors, by id, from a single namespace.\n\nFor guidance and examples, see [Delete data](https://docs.pinecone.io/guides/data/delete-data).","openapi":"data_2024-04 post /vectors/delete","href":"/reference/api/2024-04/data-plane/delete"},{"title":"List vector IDs","description":"The `list` operation lists the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.\n\nBy default, `list` returns up to 100 IDs per page in sorted order (bitwise \"C\" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.\n\nFor guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/data/list-record-ids).\n\n**Note:** `list_vectors` is supported only for serverless indexes.","openapi":"data_2024-10 get /vectors/list","href":"/reference/api/2024-04/data-plane/list"}]},{"group":"Backups","pages":[{"title":"List collections","description":"This operation returns a list of all collections in a project.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 get /collections","href":"/reference/api/2024-04/control-plane/list_collections"},{"title":"Create a collection","description":"This operation creates a Pinecone collection.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 post /collections","href":"/reference/api/2024-04/control-plane/create_collection"},{"title":"Describe a collection","description":"This operation gets a description of a collection.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 get /collections/{collection_name}","href":"/reference/api/2024-04/control-plane/describe_collection"},{"title":"Delete a collection","description":"This operation deletes an existing collection.\n\nServerless indexes do not support collections.\n","openapi":"control_2024-04 delete /collections/{collection_name}","href":"/reference/api/2024-04/control-plane/delete_collection"}]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":[{"title":"List assistants","description":"List of all assistants in a project.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#list-assistants-for-a-project).","openapi":"assistant_control_2025-01 GET /assistants","href":"/reference/api/2025-01/assistant/list_assistants"},{"title":"Create an assistant","description":"Create an assistant. This is where you specify the underlying training model, which cloud provider you would like to deploy with, and more.\n\nFor guidance and examples, see [Create an assistant](https://docs.pinecone.io/guides/assistant/create-assistant)","openapi":"assistant_control_2025-01 POST /assistants","href":"/reference/api/2025-01/assistant/create_assistant"},{"title":"Check assistant status","description":"Get the status of an assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#get-the-status-of-an-assistant)","openapi":"assistant_control_2025-01 GET /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/describe_assistant"},{"title":"Update an assistant","description":"Update an existing assistant. You can modify the assistant's instructions.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#add-instructions-to-an-assistant).","openapi":"assistant_control_2025-01 PATCH /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/update_assistant"},{"title":"Delete an assistant","description":"Delete an existing assistant.\n\nFor guidance and examples, see [Manage assistants](https://docs.pinecone.io/guides/assistant/manage-assistants#delete-an-assistant)","openapi":"assistant_control_2025-01 DELETE /assistants/{assistant_name}","href":"/reference/api/2025-01/assistant/delete_assistant"}]},{"group":"Files","pages":[{"title":"List Files","description":"List all files in an assistant, with an option to filter files with metadata.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}","href":"/reference/api/2025-01/assistant/list_files"},{"title":"Upload file to assistant","description":"Upload a file to the specified assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).","openapi":"assistant_data_2025-01 POST /files/{assistant_name}","href":"/reference/api/2025-01/assistant/upload_file"},{"title":"Describe a file upload","description":"Get the status and metadata of a file uploaded to an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).","openapi":"assistant_data_2025-01 GET /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/describe_file"},{"title":"Delete an uploaded file","description":"Delete an uploaded file from an assistant.\n\nFor guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).","openapi":"assistant_data_2025-01 DELETE /files/{assistant_name}/{assistant_file_id}","href":"/reference/api/2025-01/assistant/delete_file"}]},{"group":"Chat","pages":[{"title":"Chat with an assistant","description":"Chat with an assistant and get back citations in structured form. \n\nThis is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant's responses and references than the OpenAI-compatible chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}","href":"/reference/api/2025-01/assistant/chat_assistant"},{"title":"Chat through an OpenAI-compatible interface","description":"Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. \n\nIt is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface.\n\nFor guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/chat/completions","href":"/reference/api/2025-01/assistant/chat_completion_assistant"}]},{"group":"Evaluation","pages":[{"title":"Evaluate an answer","description":"Evaluate the correctness and completeness of a response from an assistant or a RAG system. The correctness and completeness are evaluated based on the precision and recall of the generated answer with respect to the ground truth answer facts. Alignment is the harmonic mean of correctness and completeness.\n\nFor guidance and examples, see [Evaluate answers](https://docs.pinecone.io/guides/assistant/evaluate-answers).","openapi":"assistant_evaluation_2025-01 POST /evaluation/metrics/alignment","href":"/reference/api/2025-01/assistant/metrics_alignment"}]},{"group":"Context snippets","pages":[{"title":"Retrieve context from an assistant","description":"Retrieve context snippets from an assistant to use as part of RAG or any agentic flow.\n\nFor guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).","openapi":"assistant_data_2025-01 POST /chat/{assistant_name}/context","href":"/reference/api/2025-01/assistant/context_assistant"}]}]},{"group":"SDKs","pages":[{"title":"Introduction","description":null,"href":"/reference/pinecone-sdks"},{"title":"Python SDK","description":null,"icon":"python","href":"/reference/python-sdk"},{"title":"Node.js SDK","description":null,"icon":"node-js","href":"/reference/node-sdk"},{"title":"Java SDK","description":null,"icon":"java","href":"/reference/java-sdk"},{"title":"Go SDK","description":null,"icon":"golang","href":"/reference/go-sdk"},{"title":".NET SDK","description":null,"icon":"microsoft","href":"/reference/dotnet-sdk"},{"title":"Rust SDK","description":null,"icon":"rust","href":"/reference/rust-sdk"}]},{"group":"Tools","pages":[{"title":"Pinecone text client","description":null,"href":"/reference/tools/pinecone-text-client"},{"title":"Spark-Pinecone connector","description":null,"href":"/reference/tools/pinecone-spark-connector"}]},{"group":"Architecture","pages":[{"title":"Serverless architecture","description":null,"href":"/reference/architecture/serverless-architecture"},{"title":"Pod-based architecture","description":null,"href":"/reference/architecture/pod-based-architecture"},{"title":"Pinecone Assistant architecture","description":null,"sidebarTitle":"Assistant architecture","href":"/reference/architecture/assistant-architecture"}]}]}]},{"tab":"Examples","groups":[{"group":"Examples","pages":[{"title":"Notebooks","description":null,"href":"/examples/notebooks"},{"title":"Sample apps","description":null,"href":"/examples/sample-apps"},{"title":"Reference architectures","description":null,"href":"/examples/reference-architectures"}]}]},{"tab":"Models","groups":[{"group":"Models","pages":[{"title":"Model Gallery","description":"Pinecone integrations enable you to build and deploy AI applications faster and more efficiently. Integrate Pinecone with your favorite frameworks, data sources, and infrastructure providers.","href":"/models/overview"}]}]},{"tab":"Integrations","groups":[{"group":"Connect an integration","pages":[{"title":"Integrations","description":"Pinecone integrations enable you to build and deploy AI applications faster and more efficiently. Integrate Pinecone with your favorite frameworks, data sources, and infrastructure providers.","sidebarTitle":"View all","href":"/integrations/overview"},{"group":"Data sources","pages":[{"title":"Airbyte","description":null,"href":"/integrations/airbyte"},{"title":"Apify","description":null,"href":"/integrations/apify"},{"title":"Aryn","description":null,"href":"/integrations/aryn"},{"title":"Box","description":null,"href":"/integrations/box"},{"title":"Confluent","description":null,"href":"/integrations/confluent"},{"title":"Databricks","description":"Using Databricks and Pinecone to create and index vector embeddings at scale","href":"/integrations/databricks"},{"title":"Datavolo","description":null,"href":"/integrations/datavolo"},{"title":"Elasticsearch","description":null,"href":"/integrations/elasticsearch"},{"title":"Estuary","description":null,"href":"/integrations/estuary"},{"title":"Fleak","description":null,"href":"/integrations/fleak"},{"title":"FlowiseAI","description":null,"href":"/integrations/flowise"},{"title":"Gathr","description":null,"href":"/integrations/gathr"},{"title":"Matillion","description":null,"href":"/integrations/matillion"},{"title":"Nexla","description":null,"href":"/integrations/nexla"},{"title":"Redpanda","description":null,"href":"/integrations/redpanda"},{"title":"Snowflake","description":null,"href":"/integrations/snowflake"},{"title":"StreamNative","description":null,"href":"/integrations/streamnative"},{"title":"Unstructured","description":null,"href":"/integrations/unstructured"}]},{"group":"Frameworks","pages":[{"title":"Amazon Bedrock","description":"Pinecone as a Knowledge Base for Amazon Bedrock","href":"/integrations/amazon-bedrock"},{"title":"Amazon SageMaker","description":null,"href":"/integrations/amazon-sagemaker"},{"title":"Cloudera AI","description":"Vector embedding, RAG, and semantic search at scale","href":"/integrations/cloudera"},{"title":"Context Data","description":null,"href":"/integrations/context-data"},{"title":"Haystack","description":"Using Haystack and Pinecone to keep your NLP-driven apps up-to-date","href":"/integrations/haystack"},{"title":"Instill AI","description":null,"href":"/integrations/instill"},{"title":"LangChain","description":"Using LangChain and Pinecone to add knowledge to LLMs","href":"/integrations/langchain"},{"title":"LlamaIndex","description":"Using LlamaIndex and Pinecone to build semantic search and RAG applications","href":"/integrations/llamaindex"},{"title":"Nuclia","description":null,"href":"/integrations/nuclia"},{"title":"OctoAI","description":null,"href":"/integrations/octoai"}]},{"group":"Infrastructure","pages":[{"title":"Amazon Web Services (AWS)","description":null,"href":"/integrations/aws"},{"title":"Azure","description":null,"href":"/integrations/azure"},{"title":"Google Cloud Platform (GCP)","description":null,"href":"/integrations/gcp"},{"title":"GitHub Copilot","description":null,"href":"/integrations/github-copilot"},{"title":"Pulumi","description":null,"href":"/integrations/pulumi"},{"title":"Terraform","description":"Using Terraform to manage Pinecone resources","href":"/integrations/terraform"},{"title":"Vercel","description":null,"href":"/integrations/vercel"}]},{"group":"Models","pages":[{"title":"Anyscale","description":null,"href":"/integrations/anyscale"},{"title":"Cohere","description":"Using Cohere and Pinecone to generate and index high-quality vector embeddings","href":"/integrations/cohere"},{"title":"Voyage AI","description":"Using Voyage AI and Pinecone to generate and index high-quality vector embeddings","href":"/integrations/voyage"},{"title":"Hugging Face Inference Endpoints","description":"Using Hugging Face Inference Endpoints and Pinecone to generate and index high-quality vector embeddings","href":"/integrations/hugging-face-inference-endpoints"},{"title":"Jina AI","description":null,"href":"/integrations/jina"},{"title":"OpenAI","description":"Using OpenAI and Pinecone to combine deep learning capabilities for embedding generation with efficient vector storage and retrieval","href":"/integrations/openai"},{"title":"Twelve Labs","description":null,"href":"/integrations/twelve-labs"}]},{"group":"Observability","pages":[{"title":"Datadog","description":"Monitoring Pinecone with Datadog","href":"/integrations/datadog"},{"title":"Langtrace","description":null,"href":"/integrations/langtrace"},{"title":"New Relic","description":null,"href":"/integrations/new-relic"},{"title":"Traceloop","description":null,"href":"/integrations/traceloop"},{"title":"TruLens","description":"Using TruLens and Pinecone to evaluate grounded LLM applications","href":"/integrations/trulens"}]}]},{"group":"Build an integration","pages":[{"title":"Become a Pinecone partner","description":null,"href":"/integrations/build-integration/become-a-partner"},{"title":"Attribute usage to your integration","description":null,"href":"/integrations/build-integration/attribute-usage-to-your-integration"},{"title":"Connect your users to Pinecone","description":null,"href":"/integrations/build-integration/connect-your-users-to-pinecone"}]}]},{"tab":"Troubleshooting","groups":[{"group":"Contact support","pages":[{"title":"Contact Support","description":null,"articleID":"13882889246237","href":"/troubleshooting/contact-support"},{"title":"How to work with Support","description":null,"articleID":"17535134154397","href":"/troubleshooting/how-to-work-with-support"},{"title":"Pinecone Support SLAs","description":null,"articleID":"15908636632861","href":"/troubleshooting/pinecone-support-slas"}]},{"group":"Account management","pages":[{"title":"Login code issues","description":null,"articleID":"12439535003677","href":"/troubleshooting/login-code-issues"},{"title":"Custom data processing agreements","description":null,"articleID":"15195271335069","href":"/troubleshooting/custom-data-processing-agreements"},{"title":"Delete your organization","description":null,"articleID":"11329562340253","href":"/troubleshooting/delete-your-organization"},{"title":"Delete your account","description":null,"href":"/troubleshooting/delete-your-account"},{"title":"Billing disputes and refunds","description":null,"articleID":"15991289038237","href":"/troubleshooting/billing-disputes-and-refunds"}]},{"group":"Indexes","pages":[{"title":"Available cloud regions","description":null,"articleID":"19318696331677","href":"/troubleshooting/available-cloud-regions"},{"title":"Export indexes","description":null,"articleID":"12438275491741","href":"/troubleshooting/export-indexes"},{"title":"Wait for index creation to be complete","description":null,"articleID":"8747593242909","href":"/troubleshooting/wait-for-index-creation"},{"title":"Select index type and size","description":null,"articleID":"15991468911901","href":"/troubleshooting/select-index-type-and-size"},{"title":"How and when to increase index size","description":null,"articleID":"15991281846941","href":"/troubleshooting/how-and-when-to-increase-index-size"},{"title":"Use namespaces instead of several indexes","description":null,"articleID":"15769675534621","href":"/troubleshooting/use-namespaces-instead-of-several-indexes"},{"title":"Namespaces vs. metadata filtering","description":null,"articleID":"7884238411165","href":"/troubleshooting/namespaces-vs-metadata-filtering"},{"title":"Restrictions on index names","description":null,"articleID":"11729246212637","href":"/troubleshooting/restrictions-on-index-names"},{"title":"Return all vectors in an index","description":null,"articleID":"11604325992349","href":"/troubleshooting/return-all-vectors-in-an-index"},{"title":"Vertically downscaling","description":null,"articleID":"15991321917981","href":"/troubleshooting/vertically-downscaling"},{"title":"Pods are full","description":null,"articleID":"18863372418717","href":"/troubleshooting/pods-are-full"}]},{"group":"Data","pages":[{"title":"Parallel queries","description":null,"articleID":"9133714526877","href":"/troubleshooting/parallel-queries"},{"title":"Minimize latencies","description":null,"articleID":"18863347205661","href":"/troubleshooting/minimize-latencies"},{"title":"Embedding values changed when upserted","description":null,"articleID":"17535273763741","href":"/troubleshooting/embedding-values-changed-when-upserted"},{"title":"How and when to add replicas","description":null,"articleID":"18863942216477","href":"/troubleshooting/how-and-when-to-add-replicas"},{"title":"Keep customer data separate in Pinecone","description":null,"articleID":"7985415079453","href":"/troubleshooting/keep-customer-data-separate"},{"title":"Limitations of querying by ID","description":null,"articleID":"18864309197469","href":"/troubleshooting/limitations-of-querying-by-id"},{"title":"Create and manage vectors with metadata","description":null,"articleID":"14643255054109","href":"/troubleshooting/create-and-manage-vectors-with-metadata"},{"title":"Metadata re-configuration","description":null,"articleID":"15991362468509","href":"/troubleshooting/metadata-reconfiguration"},{"title":"Metadata string value returned as a datetime object","description":null,"articleID":"11113544724381","href":"/troubleshooting/metadata-string-value-returned-as-datetime"},{"title":"Remove a metadata field from a record","description":null,"articleID":"15277578080413","href":"/troubleshooting/remove-metadata-field"}]},{"group":"Common errors","pages":[{"title":"Index creation error - missing spec parameter","description":null,"articleID":"18863405419421","href":"/troubleshooting/index-creation-error-missing-spec"},{"title":"Serverless index creation error - max serverless indexes","description":null,"articleID":"18863343628701","href":"/troubleshooting/index-creation-error-max-serverless"},{"title":"Serverless index connection errors","description":null,"articleID":"16136406269085","href":"/troubleshooting/serverless-index-connection-errors"},{"title":"Error: Handshake read failed when connecting","description":null,"articleID":"10724456320413","href":"/troubleshooting/error-handshake-read-failed"},{"title":"PineconeAttribute errors with LangChain","description":null,"articleID":"16401743809693","href":"/troubleshooting/pinecone-attribute-errors-with-langchain"},{"title":"Error: Cannot import name 'Pinecone' from 'pinecone'","description":null,"articleID":"18220730068381","href":"/troubleshooting/error-cannot-import-name-pinecone"},{"title":"Python AttributeError: module pinecone has no attribute init","description":null,"articleID":"16064065689117","href":"/troubleshooting/module-pinecone-has-no-attribute-init"}]},{"group":"Miscellaneous","pages":[{"title":"Best Practices","description":null,"articleID":"15991289038237","href":"/troubleshooting/best-practices"},{"title":"Differences between Lexical and Semantic Search regarding relevancy","description":null,"articleID":"9500075821981","href":"/troubleshooting/differences-between-lexical-semantic-search"},{"title":"Node.js Troubleshooting","description":null,"articleID":"9570011184797","href":"/troubleshooting/nodejs-troubleshooting"},{"title":"CORS Issues","description":null,"articleID":"8764985175709","href":"/troubleshooting/cors-issues"},{"title":"Debug model vs. Pinecone recall issues","description":null,"articleID":"9570903705757","href":"/troubleshooting/debug-model-vs-pinecone-recall-issues"},{"title":"Non-indexed field filter issues","description":null,"articleID":"15991457795613","href":"/troubleshooting/non-indexed-field-filter-issues"},{"title":"Unable to pip install","description":null,"articleID":"18863347253917","href":"/troubleshooting/unable-to-pip-install"}]}]},{"tab":"Releases","groups":[{"group":"Release notes","pages":[{"title":"2025 releases","description":null,"mode":"wide","href":"/release-notes/2025"},{"title":"2024 releases","description":null,"mode":"wide","href":"/release-notes/2024"},{"title":"2023 releases","description":null,"href":"/release-notes/2023"},{"title":"2022 releases","description":null,"href":"/release-notes/2022"}]},{"group":"Policies","pages":[{"title":"Feature availability","description":null,"href":"/release-notes/feature-availability"}]}]}]},"pageMetadata":{"title":"Haystack","description":"Using Haystack and Pinecone to keep your NLP-driven apps up-to-date","href":"/integrations/haystack"},"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Pinecone Docs","colors":{"primary":"#1C17FF","light":"#504CFF","dark":"#1C17FF"},"logo":"https://mintlify.s3.us-west-1.amazonaws.com/pinecone-2/logo/light.svg","favicon":"/favicon-512.png","api":{"openapi":["openapi/control_2024-04.yaml","openapi/control_2025-01.yaml","openapi/control_2024-10.yaml","openapi/control_2024-07.yaml","openapi/control_2024-04.yaml","openapi/data_2025-04.yaml","openapi/data_2025-01.yaml","openapi/data_2024-10.yaml","openapi/data_2024-07.yaml","openapi/data_2024-04.yaml","openapi/inference_2025-04.yaml","openapi/inference_2025-01.yaml","openapi/inference_2024-10.yaml","openapi/assistant_data_2025-04.yaml","openapi/assistant_data_2025-01.yaml","openapi/assistant_control_2025-04.yaml","openapi/assistant_control_2025-01.yaml","openapi/assistant_evaluation_2025-04.yaml","openapi/assistant_evaluation_2025-01.yaml"],"playground":{"display":"simple"}},"appearance":{"default":"light","strict":true},"background":{"color":{"light":"#FBFBFC"}},"navbar":{"links":[{"label":"Status","href":"https://status.pinecone.io"},{"label":"Support","href":"https://app.pinecone.io/organizations/-/settings/support"},{"label":"Log In","href":"https://app.pinecone.io/?sessionType=login"}],"primary":{"type":"button","label":"Sign up free","href":"https://app.pinecone.io/?sessionType=signup"}},"navigation":{"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":["guides/get-started/overview","guides/get-started/quickstart","guides/get-started/assistant-quickstart","guides/get-started/key-features",{"group":"Tutorials","pages":["guides/get-started/build-a-rag-chatbot","guides/get-started/semantic-search","guides/get-started/image-search","guides/get-started/multimodal-search","guides/get-started/recommender","guides/get-started/threat-detection","guides/get-started/examples"]},"guides/get-started/glossary"]},{"group":"Indexes","pages":["guides/indexes/understanding-indexes","guides/indexes/create-an-index","guides/indexes/implement-multitenancy","guides/indexes/manage-indexes",{"group":"Back up and restore","pages":["guides/indexes/understanding-backups","guides/indexes/back-up-an-index","guides/indexes/restore-an-index"]},{"group":"Pod-based indexes","pages":["guides/indexes/pods/understanding-pod-based-indexes","guides/indexes/pods/migrate-a-pod-based-index-to-serverless","guides/indexes/pods/choose-a-pod-type-and-size","guides/indexes/pods/create-a-pod-based-index","guides/indexes/pods/manage-pod-based-indexes","guides/indexes/pods/scale-pod-based-indexes",{"group":"Back up and restore","pages":["guides/indexes/pods/understanding-collections","guides/indexes/pods/back-up-a-pod-based-index","guides/indexes/pods/restore-a-pod-based-index"]}]},"guides/indexes/sparse-indexes"]},{"group":"Data","pages":["guides/data/upsert-data","guides/data/query-data","guides/data/fetch-data","guides/data/update-data","guides/data/delete-data",{"group":"Import data","pages":["guides/data/understanding-imports","guides/data/import-data"]},"guides/data/list-record-ids","guides/data/target-an-index","guides/data/understanding-metadata","guides/data/manage-rag-documents",{"group":"Data freshness","pages":["guides/data/data-freshness/understanding-data-freshness","guides/data/data-freshness/check-data-freshness"]},{"group":"Hybrid search and sparse vectors","pages":["guides/data/understanding-hybrid-search","guides/data/encode-sparse-vectors","guides/data/upsert-sparse-dense-vectors","guides/data/query-sparse-dense-vectors"]}]},{"group":"Inference","pages":["guides/inference/understanding-inference","guides/inference/generate-embeddings","guides/inference/rerank","guides/inference/integrated-inference"]},{"group":"Assistant","pages":["guides/assistant/understanding-assistant","guides/assistant/create-assistant","guides/assistant/manage-files","guides/assistant/chat-with-assistant","guides/assistant/manage-assistants",{"group":"Evaluate answers","pages":["guides/assistant/understanding-evaluation","guides/assistant/evaluate-answers"]},{"group":"Retrieve context snippets","pages":["guides/assistant/understanding-context-snippets","guides/assistant/retrieve-context-snippets"]}]},{"group":"Operations","pages":["guides/operations/local-development","guides/operations/automated-testing","guides/operations/move-to-production","guides/operations/performance-tuning",{"group":"Security","pages":["guides/operations/understanding-security","guides/organizations/configure-single-sign-on/okta","guides/operations/configure-cmek","guides/operations/connect-to-aws-privatelink"]},{"group":"Integrate with cloud storage","pages":["guides/operations/integrations/manage-storage-integrations","guides/operations/integrations/integrate-with-amazon-s3"]},"guides/operations/monitoring"]},{"group":"Organizations","pages":["guides/organizations/understanding-organizations",{"group":"Manage billing","pages":["guides/organizations/manage-billing/changing-your-billing-plan","guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace","guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace","guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"]},{"group":"Manage cost","pages":["guides/organizations/manage-cost/understanding-cost","guides/organizations/manage-cost/monitor-your-usage","guides/organizations/manage-cost/manage-cost"]},"guides/organizations/manage-organization-members"]},{"group":"Projects","pages":["guides/projects/understanding-projects","guides/projects/create-a-project","guides/projects/manage-api-keys","guides/projects/manage-project-members","guides/projects/manage-projects"]}]},{"tab":"Reference","versions":[{"version":"2025-04 (release candidate)","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2025-04/control-plane/list_indexes","reference/api/2025-04/control-plane/create_index","reference/api/2025-04/control-plane/create_for_model","reference/api/2025-04/control-plane/describe_index","reference/api/2025-04/control-plane/delete_index","reference/api/2025-04/control-plane/configure_index","reference/api/2025-04/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2025-04/data-plane/upsert","reference/api/2025-04/data-plane/upsert_records","reference/api/2025-04/data-plane/fetch","reference/api/2025-04/data-plane/update","reference/api/2025-04/data-plane/delete","reference/api/2025-04/data-plane/list"]},{"group":"Search","pages":["reference/api/2025-04/data-plane/query","reference/api/2025-04/data-plane/search_records"]},{"group":"Imports","pages":["reference/api/2025-04/data-plane/start_import","reference/api/2025-04/data-plane/list_imports","reference/api/2025-04/data-plane/describe_import","reference/api/2025-04/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2025-04/control-plane/list_collections","reference/api/2025-04/control-plane/create_collection","reference/api/2025-04/control-plane/describe_collection","reference/api/2025-04/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2025-04/inference/generate-embeddings"]},{"group":"Rerank","pages":["reference/api/2025-04/inference/rerank"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-04/assistant/list_assistants","reference/api/2025-04/assistant/create_assistant","reference/api/2025-04/assistant/describe_assistant","reference/api/2025-04/assistant/update_assistant","reference/api/2025-04/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-04/assistant/list_files","reference/api/2025-04/assistant/upload_file","reference/api/2025-04/assistant/describe_file","reference/api/2025-04/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-04/assistant/chat_assistant","reference/api/2025-04/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-04/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-04/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2025-01 (latest)","default":true,"groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2025-01/control-plane/list_indexes","reference/api/2025-01/control-plane/create_index","reference/api/2025-01/control-plane/create_for_model","reference/api/2025-01/control-plane/describe_index","reference/api/2025-01/control-plane/delete_index","reference/api/2025-01/control-plane/configure_index","reference/api/2025-01/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2025-01/data-plane/upsert","reference/api/2025-01/data-plane/upsert_records","reference/api/2025-01/data-plane/fetch","reference/api/2025-01/data-plane/update","reference/api/2025-01/data-plane/delete","reference/api/2025-01/data-plane/list"]},{"group":"Search","pages":["reference/api/2025-01/data-plane/query","reference/api/2025-01/data-plane/search_records"]},{"group":"Imports","pages":["reference/api/2025-01/data-plane/start_import","reference/api/2025-01/data-plane/list_imports","reference/api/2025-01/data-plane/describe_import","reference/api/2025-01/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2025-01/control-plane/list_collections","reference/api/2025-01/control-plane/create_collection","reference/api/2025-01/control-plane/describe_collection","reference/api/2025-01/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2025-01/inference/generate-embeddings"]},{"group":"Rerank","pages":["reference/api/2025-01/inference/rerank"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-10","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-10/control-plane/list_indexes","reference/api/2024-10/control-plane/create_index","reference/api/2024-10/control-plane/describe_index","reference/api/2024-10/control-plane/delete_index","reference/api/2024-10/control-plane/configure_index","reference/api/2024-10/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-10/data-plane/upsert","reference/api/2024-10/data-plane/query","reference/api/2024-10/data-plane/fetch","reference/api/2024-10/data-plane/update","reference/api/2024-10/data-plane/delete","reference/api/2024-10/data-plane/list"]},{"group":"Imports","pages":["reference/api/2024-10/data-plane/start_import","reference/api/2024-10/data-plane/list_imports","reference/api/2024-10/data-plane/describe_import","reference/api/2024-10/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2024-10/control-plane/list_collections","reference/api/2024-10/control-plane/create_collection","reference/api/2024-10/control-plane/describe_collection","reference/api/2024-10/control-plane/delete_collection"]}]},{"group":"Inference","pages":["reference/api/2024-10/inference/generate-embeddings","reference/api/2024-10/inference/rerank"]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-07","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-10/control-plane/list_indexes","reference/api/2024-10/control-plane/create_index","reference/api/2024-10/control-plane/describe_index","reference/api/2024-10/control-plane/delete_index","reference/api/2024-10/control-plane/configure_index","reference/api/2024-10/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-07/data-plane/upsert","reference/api/2024-07/data-plane/query","reference/api/2024-07/data-plane/fetch","reference/api/2024-07/data-plane/update","reference/api/2024-07/data-plane/delete","reference/api/2024-07/data-plane/list"]},{"group":"Backups","pages":["reference/api/2024-07/control-plane/list_collections","reference/api/2024-07/control-plane/create_collection","reference/api/2024-07/control-plane/describe_collection","reference/api/2024-07/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2024-10/inference/generate-embeddings"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-04","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-04/control-plane/list_indexes","reference/api/2024-04/control-plane/create_index","reference/api/2024-04/control-plane/describe_index","reference/api/2024-04/control-plane/delete_index","reference/api/2024-04/control-plane/configure_index","reference/api/2024-04/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-04/data-plane/upsert","reference/api/2024-04/data-plane/query","reference/api/2024-04/data-plane/fetch","reference/api/2024-04/data-plane/update","reference/api/2024-04/data-plane/delete","reference/api/2024-04/data-plane/list"]},{"group":"Backups","pages":["reference/api/2024-04/control-plane/list_collections","reference/api/2024-04/control-plane/create_collection","reference/api/2024-04/control-plane/describe_collection","reference/api/2024-04/control-plane/delete_collection"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]}]},{"tab":"Examples","groups":[{"group":"Examples","pages":["examples/notebooks","examples/sample-apps","examples/reference-architectures"]}]},{"tab":"Models","groups":[{"group":"Models","pages":["models/overview"]}]},{"tab":"Integrations","groups":[{"group":"Connect an integration","pages":["integrations/overview",{"group":"Data sources","pages":["integrations/airbyte","integrations/apify","integrations/aryn","integrations/box","integrations/confluent","integrations/databricks","integrations/datavolo","integrations/elasticsearch","integrations/estuary","integrations/fleak","integrations/flowise","integrations/gathr","integrations/matillion","integrations/nexla","integrations/redpanda","integrations/snowflake","integrations/streamnative","integrations/unstructured"]},{"group":"Frameworks","pages":["integrations/amazon-bedrock","integrations/amazon-sagemaker","integrations/cloudera","integrations/context-data","integrations/haystack","integrations/instill","integrations/langchain","integrations/llamaindex","integrations/nuclia","integrations/octoai"]},{"group":"Infrastructure","pages":["integrations/aws","integrations/azure","integrations/gcp","integrations/github-copilot","integrations/pulumi","integrations/terraform","integrations/vercel"]},{"group":"Models","pages":["integrations/anyscale","integrations/cohere","integrations/voyage","integrations/hugging-face-inference-endpoints","integrations/jina","integrations/openai","integrations/twelve-labs"]},{"group":"Observability","pages":["integrations/datadog","integrations/langtrace","integrations/new-relic","integrations/traceloop","integrations/trulens"]}]},{"group":"Build an integration","pages":["integrations/build-integration/become-a-partner","integrations/build-integration/attribute-usage-to-your-integration","integrations/build-integration/connect-your-users-to-pinecone"]}]},{"tab":"Troubleshooting","groups":[{"group":"Contact support","pages":["troubleshooting/contact-support","troubleshooting/how-to-work-with-support","troubleshooting/pinecone-support-slas"]},{"group":"Account management","pages":["troubleshooting/login-code-issues","troubleshooting/custom-data-processing-agreements","troubleshooting/delete-your-organization","troubleshooting/delete-your-account","troubleshooting/billing-disputes-and-refunds"]},{"group":"Indexes","pages":["troubleshooting/available-cloud-regions","troubleshooting/export-indexes","troubleshooting/wait-for-index-creation","troubleshooting/select-index-type-and-size","troubleshooting/how-and-when-to-increase-index-size","troubleshooting/use-namespaces-instead-of-several-indexes","troubleshooting/namespaces-vs-metadata-filtering","troubleshooting/restrictions-on-index-names","troubleshooting/return-all-vectors-in-an-index","troubleshooting/vertically-downscaling","troubleshooting/pods-are-full"]},{"group":"Data","pages":["troubleshooting/parallel-queries","troubleshooting/minimize-latencies","troubleshooting/embedding-values-changed-when-upserted","troubleshooting/how-and-when-to-add-replicas","troubleshooting/keep-customer-data-separate","troubleshooting/limitations-of-querying-by-id","troubleshooting/create-and-manage-vectors-with-metadata","troubleshooting/metadata-reconfiguration","troubleshooting/metadata-string-value-returned-as-datetime","troubleshooting/remove-metadata-field"]},{"group":"Common errors","pages":["troubleshooting/index-creation-error-missing-spec","troubleshooting/index-creation-error-max-serverless","troubleshooting/serverless-index-connection-errors","troubleshooting/error-handshake-read-failed","troubleshooting/pinecone-attribute-errors-with-langchain","troubleshooting/error-cannot-import-name-pinecone","troubleshooting/module-pinecone-has-no-attribute-init"]},{"group":"Miscellaneous","pages":["troubleshooting/best-practices","troubleshooting/differences-between-lexical-semantic-search","troubleshooting/nodejs-troubleshooting","troubleshooting/cors-issues","troubleshooting/debug-model-vs-pinecone-recall-issues","troubleshooting/non-indexed-field-filter-issues","troubleshooting/unable-to-pip-install"]}]},{"tab":"Releases","groups":[{"group":"Release notes","pages":["release-notes/2025","release-notes/2024","release-notes/2023","release-notes/2022"]},{"group":"Policies","pages":["release-notes/feature-availability"]}]}]},"footer":{"socials":{"twitter":"https://twitter.com/pinecone?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor","linkedin":"https://www.linkedin.com/company/pinecone-io/"}},"seo":{"metatags":{"og:image":"https://www.pinecone.io/images/docs_og_image.png","twitter:title":"The vector database to build knowledgeable AI | Pinecone","twitter:description":"Search through billions of items for similar matches to any object, in milliseconds. It's the next generation of search, an API call away.","twitter:site":"@pinecone","twitter:image":"https://www.pinecone.io/images/docs_og_image.png"},"indexing":"all"},"redirects":[{"source":"/reference/api/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/guides/indexes/user-namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/reference/quotas-and-limits","destination":"/reference/api/database-limits"},{"source":"/reference/known-limitations","destination":"/reference/api/known-limitations"},{"source":"/reference/object-identifiers","destination":"/reference/api/database-limits#identifier-limits"},{"source":"/guides/indexes/scale-pod-based-indexes","destination":"/guides/indexes/pods/scale-pod-based-indexes"},{"source":"/guides/indexes/choose-a-pod-type-and-size","destination":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"source":"/guides/indexes/configure-an-index","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/guides/indexes/migrate-a-pod-based-index-to-serverless","destination":"/guides/indexes/pods/migrate-a-pod-based-index-to-serverless"},{"source":"/guides/indexes/tag-an-index","destination":"/guides/indexes/manage-indexes#configure-index-tags"},{"source":"/guides/indexes/prevent-index-deletion","destination":"/guides/indexes/manage-indexes#configure-deletion-protection"},{"source":"/guides/indexes/delete-an-index","destination":"/guides/indexes/manage-indexes#delete-an-index"},{"source":"/guides/indexes/view-index-information","destination":"/guides/indexes/manage-indexes"},{"source":"/guides/indexes/understanding-backups-and-collections","destination":"/guides/indexes/understanding-backups"},{"source":"/reference/api/2025-01/assistant/create_file","destination":"/reference/api/2025-01/assistant/upload_file"},{"source":"/troubleshooting/delete-a-namespace","destination":"/guides/data/delete-data#delete-an-entire-namespace"},{"source":"/troubleshooting/handle-deletes-by-metadata","destination":"/guides/data/delete-data#delete-records-in-batches"},{"source":"/reference/api/2025-01/assistant/get_assistant","destination":"/reference/api/2025-01/assistant/describe_assistant"},{"source":"/guides/assistant/delete-file","destination":"/guides/assistant/manage-files#delete-a-file"},{"source":"/guides/assistant/upload-a-file","destination":"/guides/assistant/manage-files"},{"source":"/guides/assistant/check-file-status","destination":"/guides/assistant/manage-files#get-the-status-of-a-file"},{"source":"/guides/assistant/list-files","destination":"/guides/assistant/manage-files#list-files-in-an-assistant"},{"source":"/guides/assistant/update-an-assistant","destination":"/guides/assistant/manage-assistants"},{"source":"/guides/assistant/check-assistant-status","destination":"/guides/assistant/manage-assistants#get-the-status-of-an-assistant"},{"source":"/guides/assistant/list-assistants","destination":"/guides/assistant/manage-assistants#list-assistants-for-a-project"},{"source":"/guides/assistant/delete-assistant","destination":"/guides/assistant/manage-assistants#delete-an-assistant"},{"source":"/guides/data/filter-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/guides/operations/local-testing","destination":"/guides/operations/local-development"},{"source":"/guides/get-started/integrated-inference","destination":"/guides/inference/integrated-inference"},{"source":"/guides/data/get-an-index-endpoint","destination":"/guides/data/target-an-index"},{"source":"/reference/api/2024-04/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/reference/api/2024-07/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/guides/get-started/implement-multitenancy","destination":"/guides/indexes/implement-multitenancy"},{"source":"/guides/get-started/authentication","destination":"/reference/api/authentication"},{"source":"/guides/get-started/key-concepts","destination":"/guides/get-started/glossary"},{"source":"/guides/assistant/install-assistant-plugin","destination":"/reference/python-sdk#install-the-pinecone-assistant-python-plugin"},{"source":"/guides/assistant/use-existing-assistant","destination":"/guides/assistant/chat-with-assistant"},{"source":"/guides/operations/enable-aws-privatelink","destination":"/guides/operations/connect-to-aws-privatelink"},{"source":"/reference/security","destination":"/guides/operations/understanding-security"},{"source":"/guides/indexes/understanding-collections","destination":"/guides/indexes/pods/understanding-collections"},{"source":"/reference/pinecone-clients","destination":"/reference/pinecone-sdks"},{"source":"/reference/go-client","destination":"/reference/go-sdk"},{"source":"/reference/python-client","destination":"/reference/python-sdk"},{"source":"/reference/node-client","destination":"/reference/node-sdk"},{"source":"/reference/java-client","destination":"/reference/java-sdk"},{"source":"/release-notes/api-lifecycle-policy","destination":"/release-notes/feature-availability"},{"source":"/guides/indexes/configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/guides/operations/migrate-to-the-new-api","destination":"/guides/indexes/migrate-a-pod-based-index-to-serverless"},{"source":"/reference/api/control-plane/*","destination":"/reference/api/2024-07/control-plane/*"},{"source":"/reference/api/data-plane/*","destination":"/reference/api/2024-07/data-plane/*"},{"source":"/reference/api/inference/*","destination":"/reference/api/2024-07/inference/*"},{"source":"/legacy/reference/*","destination":"/reference/*"},{"source":"/tools/reference-architectures","destination":"/examples/reference-architectures"},{"source":"/tools/pinecone-utilities","destination":"/reference/tools/pinecone-datasets"},{"source":"/guides/inference/understanding-inference-api","destination":"/guides/inference/understanding-inference"},{"source":"/guides/indexes/migrate-a-legacy-starter-index-to-serverless","destination":"/guides/indexes/migrate-a-pod-based-index-to-serverless"},{"source":"/docs/filter-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/reference/community-libraries","destination":"/reference/pinecone-sdks#community-clients"},{"source":"/integrations/build-integration/register-your-integration","destination":"/integrations/build-integration/attribute-usage-to-your-integration"},{"source":"/integrations/build-integration/connect-to-pinecone-with-embedded-widget","destination":"/integrations/build-integration/connect-your-users-to-pinecone"},{"source":"/guides/get-started/examples","destination":"/examples/notebooks"},{"source":"/reference/quotas-and-rate-limits","destination":"/reference/quotas-and-limits"},{"source":"/troubleshooting/waiting-for-index-creation","destination":"/troubleshooting/wait-for-index-creation"},{"source":"/troubleshooting/using-namespaces-vs-metadata-filtering","destination":"/troubleshooting/namespaces-vs-metadata-filtering"},{"source":"/troubleshooting/using-namespaces-instead-of-several-indexes","destination":"/troubleshooting/use-namespaces-instead-of-several-indexes"},{"source":"/troubleshooting/support-slas","destination":"/troubleshooting/pinecone-support-slas"},{"source":"/troubleshooting/selecting-index-type-and-size","destination":"/troubleshooting/select-index-type-and-size.mdx"},{"source":"/troubleshooting/returning-all-vectors-in-an-index","destination":"/troubleshooting/return-all-vectors-in-an-index"},{"source":"/troubleshooting/removing-metadata-field","destination":"/troubleshooting/remove-metadata-field"},{"source":"/troubleshooting/querying-by-id","destination":"/troubleshooting/limitations-of-querying-by-id"},{"source":"/troubleshooting/keeping-customer-data-separate","destination":"/troubleshooting/keep-customer-data-separate"},{"source":"/troubleshooting/index-creation-error-spec","destination":"/troubleshooting/index-creation-error-missing-spec"},{"source":"/troubleshooting/increasing-index-size","destination":"/troubleshooting/how-and-when-to-increase-index-size"},{"source":"/troubleshooting/how-to-delete-account","destination":"/troubleshooting/delete-your-account"},{"source":"/troubleshooting/how-to-contact-support","destination":"/troubleshooting/contact-support"},{"source":"/troubleshooting/handling-deletes-by-metadata","destination":"/troubleshooting/handle-deletes-by-metadata"},{"source":"/troubleshooting/exporting-indexes","destination":"/troubleshooting/export-indexes"},{"source":"/troubleshooting/cannot-import-name-pinecone","destination":"/troubleshooting/error-cannot-import-name-pinecone"},{"source":"/troubleshooting/deleting-a-namespace","destination":"/troubleshooting/delete-a-namespace"},{"source":"/troubleshooting/debugging-recall-issues","destination":"/troubleshooting/debug-model-vs-pinecone-recall-issues"},{"source":"/troubleshooting/adding-replicas","destination":"/troubleshooting/how-and-when-to-add-replicas"},{"source":"/troubleshooting/creating-and-managing-vectors-with-metadata","destination":"/troubleshooting/create-and-manage-vectors-with-metadata"},{"source":"/guides/organizations/manage-cost/managing-cost","destination":"/guides/organizations/manage-cost/manage-cost"},{"source":"/guides/organizations/manage-cost/monitoring-your-usage","destination":"/guides/organizations/manage-cost/monitor-your-usage"},{"source":"/guides/data/using-public-pinecone-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/guides/data/creating-and-loading-private-datasets","destination":"/guides/data/create-and-load-private-datasets"},{"source":"/guides/operations/moving-to-production","destination":"/guides/operations/move-to-production"},{"source":"/guides/data/filtering-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/guides/indexes/choosing-a-pod-type-and-size","destination":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"source":"/guides/indexes/using-namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/guides/getting-started/overview","destination":"/guides/get-started/quickstart"},{"source":"/guides/indexes/convert-a-starter-index-to-serverless","destination":"/guides/indexes/convert-a-gcp-starter-index-to-serverless"},{"source":"/legacy/data/*","destination":"/guides/data/*"},{"source":"/guides/getting-started/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/guides/getting-started/authentication","destination":"/guides/get-started/authentication"},{"source":"/legacy/getting-started/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/legacy/getting-started/authentication","destination":"/guides/get-started/authentication"},{"source":"/legacy/indexes/*","destination":"/guides/indexes/*"},{"source":"/legacy/integrations/*","destination":"/integrations/*"},{"source":"/legacy/libraries/*","destination":"/tools/*"},{"source":"/legacy/operations/*","destination":"/guides/operations/*"},{"source":"/legacy/organizations/*","destination":"/guides/organizations/*"},{"source":"/legacy/projects/*","destination":"/guides/projects/*"},{"source":"/legacy/architecture","destination":"/reference/architecture/pod-based-architecture"},{"source":"/legacy/limits","destination":"/reference/quotas-and-limits"},{"source":"/legacy/security","destination":"/operations/understanding-security"},{"source":"/integrations/build-integration/attribute-api-activity","destination":"/integrations/build-integration/register-your-integration"},{"source":"/troubleshooting/downgrade-your-organization","destination":"/guides/organization/manage-billing/change-your-billing-plan"},{"source":"/troubleshooting/pinecone-has-no-attribute-from-texts","destination":"/troubleshooting/pinecone-attribute-errors-with-langchain"},{"source":"/reference/limits","destination":"/reference/quotas-and-limits"},{"source":"/guides/operations/troubleshooting","destination":"/troubleshooting/"},{"source":"/guides/projects/add-members-to-projects-and-organizations","destination":"/guides/projects/manage-project-members"},{"source":"https://docs.pinecone.io/","destination":"https://docs.pinecone.io/get-started/overview"},{"source":"https://docs.pinecone.io/home","destination":"https://docs.pinecone.io/get-started/overview"},{"source":"/guides/organizations/configure-single-sign-on/overview","destination":"/guides/organizations/configure-single-sign-on/okta"},{"source":"/docs/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/docs/overview","destination":"/guides/get-started/quickstart"},{"source":"/docs/authentication","destination":"/guides/get-started/authentication"},{"source":"/docs/new-api","destination":"/reference/api"},{"source":"/docs/organizations","destination":"/guides/organizations/understanding-organizations"},{"source":"/docs/manage-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"source":"/docs/setting-up-aws-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"source":"/docs/setting-up-azure-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace"},{"source":"/docs/setting-up-gcp-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"},{"source":"/docs/changing-your-billing-plan","destination":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"source":"/docs/subscription-status","destination":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"source":"/docs/manage-cost","destination":"/guides/organizations/manage-cost/understanding-cost"},{"source":"/docs/understanding-cost","destination":"/guides/organizations/manage-cost/understanding-cost"},{"source":"/docs/monitoring-usage","destination":"/guides/organizations/manage-cost/monitor-your-usage"},{"source":"/docs/managing-cost","destination":"/guides/organizations/manage-cost/manage-cost"},{"source":"/docs/configure-single-sign-on","destination":"/guides/organizations/configure-single-sign-on/okta"},{"source":"/docs/projects","destination":"/guides/projects/understanding-projects"},{"source":"/docs/create-project","destination":"/guides/projects/create-a-project"},{"source":"/docs/add-users-to-projects-and-organizations","destination":"/guides/projects/add-members-to-projects-and-organizations"},{"source":"/docs/rename-project","destination":"/guides/projects/rename-a-project"},{"source":"/guides/projects/set-a-project-pod-limit","destination":"/reference/quotas-and-limits#pods-per-project"},{"source":"/docs/change-project-pod-limit","destination":"/reference/quotas-and-limits#pods-per-project"},{"source":"/docs/indexes","destination":"/guides/indexes/understanding-indexes"},{"source":"/docs/create-an-index","destination":"/guides/indexes/create-an-index"},{"source":"/docs/view-index-information","destination":"/guides/indexes/view-index-information"},{"source":"/docs/back-up-an-index","destination":"/guides/indexes/back-up-an-index"},{"source":"/docs/delete-an-index","destination":"/guides/indexes/delete-an-index"},{"source":"/docs/namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/docs/choosing-index-type-and-size","destination":"/guides/indexes/choose-a-pod-type-and-size"},{"source":"/docs/configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/scaling-indexes","destination":"/guides/indexes/scale-pod-based-indexes"},{"source":"/docs/collections","destination":"/guides/indexes/pods/understanding-collections"},{"source":"/docs/convert-starter-to-serverless","destination":"/guides/indexes/convert-a-starter-index-to-serverless"},{"source":"/docs/upsert-data","destination":"/guides/data/upsert-data"},{"source":"/docs/query-data","destination":"/guides/data/query-data"},{"source":"/docs/fetch-data","destination":"/guides/data/fetch-data"},{"source":"/docs/update-data","destination":"/guides/data/update-data"},{"source":"/docs/delete-data","destination":"/guides/data/delete-data"},{"source":"/docs/get-record-ids","destination":"/guides/data/list-record-ids"},{"source":"/docs/get-index-endpoint","destination":"/guides/data/get-an-index-endpoint"},{"source":"/docs/metadata-filtering","destination":"/guides/data/understanding-metadata"},{"source":"/docs/manage-rag-documents","destination":"/guides/data/manage-rag-documents"},{"source":"/docs/hybrid-search-and-sparse-vectors","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/encode-sparse-vectors","destination":"/guides/data/encode-sparse-vectors"},{"source":"/docs/upsert-sparse-dense-vectors","destination":"/guides/data/upsert-sparse-dense-vectors"},{"source":"/docs/query-sparse-dense-vectors","destination":"/guides/data/query-sparse-dense-vectors"},{"source":"/docs/datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/using-public-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/creating-datasets","destination":"/guides/data/create-and-load-private-datasets"},{"source":"/docs/moving-to-production","destination":"/guides/operations/move-to-production"},{"source":"/docs/performance-tuning","destination":"/guides/operations/performance-tuning"},{"source":"/docs/monitoring","destination":"/guides/operations/monitoring"},{"source":"/docs/troubleshooting","destination":"/guides/operations/troubleshooting"},{"source":"/docs/multitenancy","destination":"/guides/operations/understanding-multitenancy"},{"source":"/docs/common-errors","destination":"/troubleshooting"},{"source":"guides/operations/common-errors","destination":"/troubleshooting"},{"source":"/docs/amazon-bedrock","destination":"/integrations/amazon-bedrock"},{"source":"/guides/integrations/setting-up-amazon-bedrock","destination":"/integrations/amazon-bedrock"},{"source":"/docs/sagemaker","destination":"/integrations/sagemaker"},{"source":"/docs/cohere","destination":"/integrations/cohere"},{"source":"/guides/integrations/setting-up-cohere","destination":"/integrations/cohere"},{"source":"/docs/databricks","destination":"/integrations/databricks"},{"source":"/guides/integrations/setting-up-databricks","destination":"/integrations/databricks"},{"source":"/docs/datadog","destination":"/integrations/datadog"},{"source":"/guides/integrations/setting-up-datadog","destination":"/integrations/datadog"},{"source":"/docs/elastic","destination":"/integrations/elastic"},{"source":"/docs/haystack","destination":"/integrations/haystack"},{"source":"/guides/integrations/setting-up-haystack","destination":"integrations/haystack"},{"source":"/docs/hugging-face-endpoints","destination":"/integrations/hugging-face-inference-endpoints"},{"source":"/guides/integrations/setting-up-hugging-face-endpoints","destination":"/integrations/hugging-face-inference-endpoints"},{"source":"/guides/integrations/setting-up-langchain","destination":"/guides/integrations/langchain"},{"source":"/docs/llamaindex","destination":"/integrations/llamaindex"},{"source":"/guides/integrations/setting-up-llamaindex","destination":"/integratations/llamaindex"},{"source":"/docs/openai","destination":"/integratations/openai"},{"source":"/guides/integrations/setting-up-openai","destination":"/integratations/openai"},{"source":"/docs/trulens","destination":"/integratations/trulens"},{"source":"/guides/integrations/setting-up-trulens","destination":"/integratations/trulens"},{"source":"/docs/release-notes","destination":"release-notes/2024"},{"source":"/docs/python-client","destination":"/reference/python-client"},{"source":"/docs/node-client","destination":"/reference/node-client"},{"source":"/docs/architecture","destination":"/reference/architecture/serverless-architecture"},{"source":"/docs/security","destination":"/operations/understanding-security"},{"source":"/docs/limits","destination":"/reference/quotas-and-limits"},{"source":"/reference/upsert","destination":"/reference/api/data-plane/upsert"},{"source":"/reference/query","destination":"/reference/api/data-plane/query"},{"source":"/reference/fetch","destination":"/reference/api/data-plane/fetch"},{"source":"/reference/update","destination":"/reference/api/data-plane/update"},{"source":"/reference/delete","destination":"/reference/api/data-plane/delete"},{"source":"/reference/alt_delete","destination":"/reference/api/data-plane/delete"},{"source":"/reference/list","destination":"/reference/api/data-plane/list"},{"source":"/reference/describe_index_stats","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/reference/alt_describe_index_stats","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/reference/list_indexes","destination":"/reference/api/control-plane/list_indexes"},{"source":"/reference/create_index","destination":"/reference/api/control-plane/create_index"},{"source":"/reference/describe_index","destination":"/reference/api/control-plane/describe_index"},{"source":"/reference/delete_index","destination":"/reference/api/control-plane/delete_index"},{"source":"/reference/configure_index","destination":"/reference/api/control-plane/configure_index"},{"source":"/reference/list_collections","destination":"/reference/api/control-plane/list_collections"},{"source":"/reference/create_collection","destination":"/reference/api/control-plane/create_collection"},{"source":"/reference/describe_collection","destination":"/reference/api/control-plane/describe_collection"},{"source":"/reference/delete_collection","destination":"/reference/api/control-plane/delete_collection"},{"source":"/page/examples","destination":"/examples/notebooks"},{"source":"/page/libraries","destination":"/tools/pinecone-utilities"},{"source":"/v1/*","destination":"/legacy/overview"},{"source":"/docs/manage-indexes","destination":"/guides/indexes/understanding-indexes"},{"source":"/docs/manage-indexes#list-all-indexes-in-a-project","destination":"/guides/indexes/manage-indexes"},{"source":"/docs/manage-indexes#get-information-about-an-index","destination":"/guides/indexes/manage-indexes"},{"source":"/docs/manage-indexes#create-a-serverless-index","destination":"/guides/indexes/create-an-index#create-a-serverless-index"},{"source":"/docs/manage-indexes#create-a-pod-based-index","destination":"/guides/indexes/create-an-index#create-a-pod-based-index"},{"source":"/docs/manage-indexes#create-a-starter-index","destination":"/guides/indexes/create-an-index#create-a-starter-index"},{"source":"/docs/manage-indexes#create-an-index-from-a-collection","destination":"/guides/indexes/create-an-index#create-an-index-from-a-collection"},{"source":"/docs/manage-indexes#configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#change-pod-sizes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#check-the-status-of-a-pod-size-change","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#add-replicas","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#selective-metadata-indexing","destination":"/guides/indexes/pods/manage-pod-based-indexes#selective-metadata-indexing"},{"source":"/docs/manage-indexes#delete-an-index","destination":"/guides/indexes/manage-indexes#delete-an-index"},{"source":"/docs/convert-to-severless","destination":"/guides/indexes/convert-a-starter-index-to-serverless"},{"source":"/docs/pinecone-public-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/metadata-filtered-search","destination":"/guides/data/understanding-metadata"},{"source":"/docs/insert-data","destination":"/guides/data/upsert-data"},{"source":"/docs/global-api-quickstart","destination":"/guides/get-started/quickstart"},{"source":"/docs/starter-environment","destination":"/guides/indexes/understanding-indexes#starter-indexes"},{"source":"/reference/describe_index_stats_post","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/docs/manage-data","destination":"/guides/data/upsert-data"},{"source":"/docs/manage-projects","destination":"/guides/projects/manage-projects"},{"source":"/guides/rename-a-project","destination":"/guides/projects/manage-projects"},{"source":"/installation","destination":"/reference/python-clients"},{"source":"/page/example-applications","destination":"/examples/notebooks"},{"source":"/docs/libraries","destination":"/tools/pinecone-utilities"},{"source":"/integrations","destination":"/integrations/overview"},{"source":"/docs/manage-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/basic-hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"basic-hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/node-client","destination":"/reference/node-client"},{"source":"/docs/api-reference","destination":"/reference/api/introduction"},{"source":"/docs/sdk","destination":"/reference/python-clients"},{"source":"/docs/image-similarity-search","destination":"/examples/notebooks"},{"source":"/docs/semantic-search-text-typescript","destination":"/examples/sample-apps"},{"source":"/docs/gen-qa-openai","destination":"/examples/notebooks"},{"source":"/docs/personalized-content-recommendations-typescript","destination":"/examples/notebooks"},{"source":"/docs/langchain-retrieval-agent","destination":"/examples/notebooks"},{"source":"/docs/langchain-retrieval-agent-typescript","destination":"/examples/sample-apps"},{"source":"/docs/langchain-retrieval-augmentation","destination":"/examples/notebooks"},{"source":"/docs/gpt-4-langchain-docs","destination":"/examples/notebooks"},{"source":"/docs/extractive-question-answering","destination":"/examples/notebooks"},{"source":"/docs/abstractive-question-answering","destination":"/examples/notebooks"},{"source":"/docs/table-qa","destination":"/examples/notebooks"},{"source":"/docs/ecommerce-search","destination":"/examples/notebooks"},{"source":"/docs/ner-search","destination":"/examples/notebooks"},{"source":"/docs/video-search","destination":"/examples/notebooks"},{"source":"/docs/satellite-image-search","destination":"/examples/notebooks"},{"source":"/docs/it-threat-detection","destination":"/examples/notebooks"},{"source":"/docs/document-deduplication","destination":"/examples/notebooks"},{"source":"/docs/movie-recommender","destination":"/examples/notebooks"},{"source":"/docs/audio-search","destination":"/examples/notebooks"},{"source":"/docs/time-series","destination":"/examples/notebooks"},{"source":"/docs/product-recommendation-engine","destination":"/examples/notebooks"},{"source":"/docs/upserting-sparse-dense-records","destination":"/guides/data/upsert-sparse-dense-vectors"},{"source":"/reference/manage-indexes/hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/weighting-sparse-and-dense-vectors","destination":"/guides/data/query-sparse-dense-vectors"},{"source":"/troubleshooting/serverless-controller-error","destination":"/troubleshooting/serverless-index-connection-errors"},{"source":"/new-api","destination":"/reference/api"},{"source":"/guides/operations/understanding-multitenancy","destination":"/guides/indexes/implement-multitenancy"},{"source":"troubleshooting/delete-your-account","destination":"/troubleshooting/delete-your-organization"},{"source":"/guides/inference/understanding-reranking","destination":"/guides/inference/understanding-inference#rerank-2"}],"integrations":{"gtm":{"tagId":"GTM-5RCSPVG"},"heap":{"appId":"3879495182"},"koala":{"publicApiKey":"pk_dedf7f497457f685cec291ae4d5002e828c1"},"posthog":{"apiKey":"phc_ns4m5RmmXmccva7A45MBGnJM2LSPGE3hG1YOmxBO4Pd"}}},"apiReferenceData":{}},"feedback":{"thumbs":true},"favicons":{"icons":[{"rel":"apple-touch-icon","sizes":"180x180","href":"https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/apple-touch-icon.png?v=3","type":"image/png"},{"rel":"icon","sizes":"32x32","href":"https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/favicon-32x32.png?v=3","type":"image/png"},{"rel":"icon","sizes":"16x16","href":"https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/favicon-16x16.png?v=3","type":"image/png"},{"rel":"shortcut icon","href":"https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/favicon.ico?v=3","type":"image/x-icon"}],"browserconfig":"https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/_generated/favicon/browserconfig.xml?v=3"},"subdomain":"docs.pinecone.io","actualSubdomain":"pinecone-2","internalAnalyticsWriteKey":"phc_TXdpocbGVeZVm5VJmAsHTMrCofBQu3e0kN8HGMNGTVW","inkeep":{"integrationApiKey":"869c11f905eb3c10953283f0ea6f5e6f660b79a1ebf68cc2"},"trieve":{"datasetId":"bd1572e2-e04f-49a0-a923-29918fd6e521","chatEnabled":true},"shouldIndex":true,"org":{"plan":"enterprise","createdAt":"2024-03-15T16:30:25.517Z"},"cssFiles":[{"_id":"65f4b35d240ed87a86de2757","filePath":"styles.css","subdomain":"pinecone-2","__v":0,"content":"/* Global styles */\n\n#topbar-cta-button {\n margin-left: 1rem;\n}\n\n#topbar-cta-button a {\n display: flex;\n align-items: center;\n padding: 0.375rem 1rem !important;\n gap: 0.5rem;\n background-color: #1C17FF;\n color: #fff !important;\n border-radius: 0.25rem;\n font-weight: 500;\n letter-spacing: 0.4px;\n}\n\n#topbar-cta-button a:hover {\n background-color: #030080 !important;\n}\n\n\n/* #topbar-cta-button span {\n border-radius: 4px;\n font-weight: 500;\n letter-spacing: 0.4px;\n} */\n\n/* #topbar-cta-button div \u003e svg {\n display: none;\n} */\n\n/* inserting svg via :after isn't working for some reason, used js instead */\n/* #topbar-cta-button div::after {\n content: url('data:image/svg+xml;utf8,\u003csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg id=\"Icon Right\"\u003e\u003cpath id=\"Vector\" d=\"M8.08906 5L6.91406 6.175L10.7307 10L6.91406 13.825L8.08906 15L13.0891 10L8.08906 5Z\" fill=\"white\"/\u003e\u003c/g\u003e\u003c/svg\u003e');\n content: \"test\";\n display: block;\n width: 20px;\n height: 20px;\n margin-left: 8px;\n background-image: url('data:image/svg+xml;utf8,\u003csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg id=\"Icon Right\"\u003e\u003cpath id=\"Vector\" d=\"M8.08906 5L6.91406 6.175L10.7307 10L6.91406 13.825L8.08906 15L13.0891 10L8.08906 5Z\" fill=\"white\"/\u003e\u003c/g\u003e\u003c/svg\u003e');\n background-color: #000000;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n} */\n\n\n.documentation-link {\n color: #1c17ff;\n text-decoration: none;\n}\n\n.documentation-link:hover {\n color: #000000;\n /* Black color when hovering */\n}\n\n.custom-button {\n display: inline-block;\n padding: 2px 8px;\n background-color: #f1f1f1;\n color: #333;\n /* Text color */\n border: 1px solid #aaa;\n /* Border color */\n border-radius: 25px;\n /* Rounded borders */\n text-align: center;\n user-select: none;\n transition: background-color 0.3s ease;\n /* Smooth transition for background color */\n}\n\n/* Change the button color on hover (make it unclickable) */\n.custom-button:hover {\n background-color: #1c17ff;\n color: #f1f1f1;\n}\n\n/* Adjust the width for the second column */\n/* td:nth-child(2) {\n width: 200px; /* Adjust the width as per your requirement\n} */\n\n/* \nAdd an announcement bar \nTODO: This can be version specific if you add a page-specific class/ID, but it doesn't seem to work for the OpenAI docs without rewriting the JSON\n*/\n/* #navbar:before {\n background-color: #ff4c04;\n content: \"The legacy version of the API, which required regional URLs for control plane operations, is deprecated as of April 15, 2024 and will be removed in a future, to be announced, release.\";\n color: rgb(255, 255, 255);\n display: block;\n text-align: center;\n padding: 6px;\n font-size: 90%;\n}\n*/\n/* Text color */\n/* body {\n color: #121142 !important;\n} */\n\n/* Header */\n#navbar {\n background: white;\n position: fixed;\n /* position: sticky !important; */\n /* top: 0 !important; */\n}\n\n#navbar-transition {\n border-bottom: 1px solid #e2e5e7;\n}\n\n#navbar .max-w-8xl {\n max-width: 100%;\n}\n\n/* Logo + \"Docs\" text + version select */\n#navbar\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type {\n flex: initial;\n}\n\n#navbar\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type\u003ea:first-of-type {\n flex: initial;\n display: flex;\n}\n\n#navbar img[alt=\"logo\"] {\n max-width: 150px;\n}\n\n/* Version select */\n[aria-haspopup=\"menu\"] {\n border-radius: 0.25rem;\n border: 1px solid rgba(115, 143, 171, 0.50);\n background-color: transparent !important;\n color: #121142;\n}\n\n[aria-labelledby=\"headlessui-menu-button-:r0:\"] {\n width: 11rem;\n}\n\n/* Right side nav container */\n#navbar\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:nth-of-type(3) {\n flex: initial;\n margin-left: 0;\n}\n\n/* Prevent nav items from shrinking */\n#navbar\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:nth-of-type(3)\u003enav {\n flex-shrink: 0;\n}\n\n/* nav links */\n#navbar nav a {\n color: #121142;\n padding: 0.6rem 1rem;\n transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n#navbar nav a:hover {\n background-color: rgba(27, 23, 245, 0.04);\n border-radius: 0.25rem;\n}\n\n#navbar nav ul li:not(:last-of-type) {\n margin-left: 0;\n}\n\n/* Hide dark mode toggle */\n#navbar\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:first-of-type\u003ediv:nth-of-type(3)\u003ediv {\n display: none;\n}\n\n/* Second nav container */\n/* Links */\n#navbar a {\n color: #121142;\n margin: 0;\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n\n/* Selected links */\n#navbar a.font-semibold {\n color: #1B17F5;\n border-bottom-width: 0.1875rem;\n border-color: #1B17F5;\n}\n\n#navbar div.absolute.bottom-0 {\n display: none;\n}\n\n/* Sidebar */\n#sidebar {\n left: 0rem;\n padding-left: 3rem;\n background: white;\n border-right: 1px solid #e2e5e7;\n /* position: sticky; */\n /* flex-shrink: 0; */\n /* top: 0; */\n}\n\n#sidebar-content {\n padding-left: 2rem;\n}\n\n/* Sidebar headings and link color */\n#sidebar-content h5,\n#sidebar a {\n color: #121142;\n}\n\n/* Sidebar Introduction link */\n#sidebar\u003ediv\u003eul\u003ediv:first-of-type\u003eli:only-of-type {\n margin-left: 0;\n}\n\n#sidebar\u003ediv\u003eul\u003ediv:first-of-type\u003eli:only-of-type\u003ea {\n font-weight: 600;\n}\n\n/* Nav items */\n#navigation-items\u003ediv\u003eul\u003eli {\n margin-left: 0.75rem;\n}\n\n/* Selected nav items */\n#navigation-items\u003ediv\u003eul\u003eli a.font-semibold {\n color: #1B17F5;\n font-weight: 400;\n background-color: #3C72FF0A;\n}\n\n/* Main content area */\n/* main \u003e div:first-of-type \u003e div:last-of-type \u003e div:first-of-type {\n display: flex;\n} */\n@media screen and (min-width: 1024px) {\n #content-area\u003ediv:first-child:not(#header)\u003ediv.relative.w-full.flex.items-center.justify-center:first-child {\n margin-top: 7rem\n }\n}\n\n\n/* Content container */\n/* #content-container {\n padding-left: 3.5rem !important;\n} */\n#content-container\u003ediv {\n padding-top: 10rem;\n}\n\n@media (min-width: 1024px) {\n #content-container\u003ediv {\n gap: 3rem;\n }\n\n #content-container #table-of-contents {\n padding-left: 0;\n }\n}\n\n/* Title eyebrow */\n#header .eyebrow {\n text-transform: uppercase;\n color: #121142;\n font-size: 0.625rem;\n letter-spacing: 1px;\n line-height: 160%;\n}\n\n/* Hide empty eyebrow */\n#header .eyebrow:empty {\n display: none;\n}\n\n/* Title container */\n#header\u003ediv:first-of-type\u003ediv:nth-of-type(2) {\n margin-top: 0;\n}\n\n/* Title */\n#header h1 {\n color: #121142;\n}\n\n/* Article text */\n.prose h2,\n.prose h3,\n.prose h4,\n.prose p {\n color: #121142;\n}\n\n.prose a {\n color: #1B17F5;\n font-weight: 400;\n}\n\n/* Overwrite tailwind max-width */\n.max-w-8xl {\n max-width: 94.5rem;\n}\n\n.card {\n box-shadow: none;\n border: 1px solid #D8DDDF;\n border-radius: 0.25rem;\n transition: box-shadow 0.3s ease;\n}\n\n.card:hover {\n box-shadow: 0px 5px 5px -3px rgba(163, 169, 175, 0.20), 0px 8px 10px 1px rgba(163, 169, 175, 0.14), 0px 3px 14px 2px rgba(163, 169, 175, 0.12);\n border: 1px solid #D8DDDF !important;\n}\n\n.card\u003ediv {\n padding: 1.5rem;\n}\n\n.card h2,\n.example-card h2 {\n font-size: 1.25rem;\n}\n\n.card p,\n.example-card p {\n margin-top: 0.625rem;\n font-size: 0.875rem;\n color: #121142;\n}\n\n.card .eyebrow {\n font-size: 0.625rem;\n text-transform: uppercase;\n line-height: 160%;\n letter-spacing: 1px;\n}\n\n.card .integration-logo {\n width: 3.125rem;\n height: 3.125rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.card-grid {\n display: grid;\n gap: 1.5rem;\n}\n\n@media (min-width: 640px) {\n .card-grid {\n grid-template-columns: 1fr 1fr;\n }\n}\n\n@media (min-width: 1024px) {\n .card-grid {\n grid-template-columns: 1fr 1fr 1fr;\n }\n}\n\n.example-card {\n box-shadow: none;\n border: 1px solid #D8DDDF;\n border-radius: 0.25rem;\n transition: box-shadow 0.3s ease;\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n background-color: #fff;\n}\n\n.example-card .arrow {\n margin-left: auto;\n margin-top: auto;\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.example-card:hover .arrow {\n opacity: 1;\n}\n\n.example-card:hover {\n box-shadow: 0px 5px 5px -3px rgba(163, 169, 175, 0.20), 0px 8px 10px 1px rgba(163, 169, 175, 0.14), 0px 3px 14px 2px rgba(163, 169, 175, 0.12);\n border: 1px solid #D8DDDF !important;\n}\n\n.example-card .tags {\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem;\n margin-top: 1.5rem;\n}\n\n.example-card .card-tag {\n border-radius: 1rem;\n background-color: rgba(115, 143, 171, 0.08);\n color: #121142;\n font-size: 0.8125rem;\n line-height: 138%;\n letter-spacing: 0.16px;\n padding: 0.1875rem 0.375rem;\n display: flex;\n gap: 0.375rem;\n align-items: center;\n}\n\n.example-card .vectors {\n color: #72788D;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n gap: 1rem;\n font-size: 0.875rem;\n line-height: 150%;\n letter-spacing: 0.15px;\n padding-top: 2.875rem;\n margin-top: auto;\n}\n\n.examples-h2 {\n font-size: 1.25rem;\n margin-bottom: 1.5rem;\n}\n\n/* Integrations */\n#integrations-banner {\n position: relative;\n margin-top: 7rem;\n height: 12.75rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n /* background: url('https://mintlify.s3-us-west-1.amazonaws.com/pinecone-2/images/background.png') no-repeat center center; */\n background-size: 90%;\n background-color: rgb(251, 251, 252);\n text-align: center;\n border-bottom: 1px solid #e2e5e7;\n}\n\n#integrations-banner h1 {\n color: #000000;\n font-size: 3rem;\n}\n\n#integrations-banner p {\n color: #000000;\n font-size: 1.25rem;\n opacity: 0.7;\n margin-top: 0.5rem;\n}\n\n/* Integrations related articles */\n#related-articles {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n#related-articles h2 {\n color: #121142;\n font-size: 1.25rem;\n font-weight: 600;\n letter-spacing: 0.15px;\n line-height: 150%;\n margin-bottom: 1rem;\n}\n\n#related-articles a {\n padding: 1.0625rem 0;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 1rem;\n color: #121142;\n font-size: 0.875rem;\n line-height: 150%;\n letter-spacing: 0.15px;\n}\n\n#related-articles a:not(:last-of-type) {\n border-bottom: 1px solid #D8DDDF;\n}\n\n#related-articles a:hover {\n opacity: 0.7;\n}\n\n#related-articles a\u003esvg {\n flex-shrink: 0;\n}\n\n/* Integrations back button */\n#back-button {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n color: #121142 !important;\n font-size: 0.875rem;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-bottom: 1.5rem;\n}\n\n#back-button:hover {\n opacity: 0.7;\n}\n\n#back-button\u003esvg {\n flex-shrink: 0;\n}\n\n/* Sample apps */\n\n.sample-app {\n color: #121142;\n}\n\n.sample-app h2 {\n font-size: 2.125rem;\n font-weight: 600;\n line-height: 123.5%;\n letter-spacing: 0.25px;\n}\n\n.sample-app h2:not(:first-of-type) {\n margin: 4rem 0 0 0;\n}\n\n.sample-app h2:first-of-type {\n margin: 0;\n}\n\n.sample-app h3 {\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin: 3rem 0 0 0;\n}\n\n.sample-app h4 {\n font-size: 0.875rem;\n font-weight: 700;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin: 3rem 0 0 0;\n}\n\n.sample-app p,\n.sample-app ul {\n margin: 1.5rem 0 0 0;\n font-size: 0.875rem;\n list-style-type: disc;\n}\n\n.sample-app li::before {\n display: none;\n}\n\n.sample-app li {\n padding-left: 0 !important;\n margin-left: 1.25rem;\n}\n\n.sample-app li::marker {\n color: #121142;\n}\n\n.sample-app-heading {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n\n.sample-app-heading .eyebrow {\n color: #121142;\n font-size: 0.625rem;\n line-height: 160%;\n letter-spacing: 1px;\n text-transform: uppercase;\n}\n\n.sample-app-heading h1 {\n color: #121142;\n margin: 0.5rem 0 0 0;\n font-size: 2.125rem;\n font-weight: 600;\n line-height: 123.5%;\n letter-spacing: 0.25px;\n}\n\n.sample-app-heading p {\n color: #121142;\n margin: 0.5rem 0 1.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 150%;\n letter-spacing: 0.15px;\n}\n\n/* Sample apps content area with sidebar */\n.sample-app-split {\n display: flex;\n flex-direction: column;\n gap: 3rem;\n}\n\n.sample-app-split .sidebar a:not(.connect-with-pinecone) {\n font-size: 0.875rem;\n color: #121142;\n border-bottom: none;\n}\n\n.sample-app-split .toc-list {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.sample-app-split .toc-list a.bold {\n font-weight: 700;\n margin-top: 0.5rem;\n}\n\n.sample-app-split\u003e.content.no-margin\u003ep:first-of-type {\n margin-top: 0 !important;\n}\n\n.connect-with-pinecone {\n border: 1px solid rgba(115, 143, 171, 0.50);\n border-radius: 0.25rem;\n padding: 0.5rem 1rem;\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.5rem;\n letter-spacing: 0.4px;\n color: #121142 !important;\n text-decoration: none;\n align-self: flex-start;\n}\n\n@media (min-width: 1280px) {\n .sample-app-split {\n flex-direction: row;\n }\n\n .sample-app-split .content {\n overflow-x: auto;\n }\n\n .sample-app-split .sidebar {\n width: 20.625rem;\n flex-shrink: 0;\n }\n}\n\n/* Hacky codeblock targeting */\ndiv[class*=\"bg-codeblock\"].relative {\n background: #121142;\n border-radius: 0.25rem;\n}\n\np\u003ecode {\n font-size: 0.75rem;\n line-height: 150%;\n letter-spacing: 0.5px;\n border-radius: 0.25rem;\n padding: 0.125rem 0.5rem;\n background-color: rgba(115, 143, 171, 0.08);\n color: #030080;\n border: none;\n}\n\ncode .api-key.set {\n color: orange;\n}\n\n.pinecone-connect-connected {\n width: 100%;\n max-width: 31.25rem;\n background-color: rgb(255, 255, 255);\n transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n border-radius: 0.25rem;\n padding: 1.5rem;\n margin: 1.5rem 0;\n border: 1px solid rgb(224, 224, 224);\n}\n\n.pinecone-connect-connected img {\n height: 1.875rem;\n margin: 0;\n}\n\n.pinecone-connect-connected p {\n color: rgba(0, 0, 0, 0.87) !important;\n}\n\n.pinecone-connect-connected p:last-of-type {\n margin-top: 0.75rem;\n}\n\n.remove-api-key {\n display: flex;\n width: 100%;\n max-width: 31.25rem;\n margin-top: -1.25rem;\n}\n\n.remove-api-key\u003ebutton {\n font-size: 0.8125rem;\n font-weight: 500;\n color: #1d4ed8;\n margin-left: auto;\n}\n\n\n/* Model Gallery */\n\n.featured-card-container {\n padding: 0 1rem;\n position: relative;\n width: 100%;\n margin: 1rem 0;\n overflow: visible;\n -webkit-overflow-scrolling: touch;\n}\n\n.featured-model-cards {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: calc(25% - 0.75rem);\n gap: 1rem;\n overflow-x: auto;\n scroll-behavior: smooth;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n padding: 1rem 0;\n margin: -1rem 0;\n scrollbar-width: none;\n -ms-overflow-style: none;\n cursor: grab;\n}\n\n.featured-model-cards\u003e* {\n scroll-snap-align: start;\n}\n\n.carousel-button {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 9999px;\n background: white;\n box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n cursor: pointer;\n border: 1px solid #D8DDDF;\n padding: 0;\n}\n\n.carousel-button:hover {\n background-color: #f9fafb;\n transform: translateY(-50%) scale(1.05);\n box-shadow: 0 6px 8px -2px rgb(0 0 0 / 0.15);\n}\n\n.carousel-button.prev {\n left: -1.25rem;\n}\n\n.carousel-button.next {\n right: -1.25rem;\n}\n\n/* Make sure parent containers don't clip the buttons */\n#content-container,\n#content-area,\nmain {\n overflow: visible !important;\n}\n\n@media (max-width: 1280px) {\n .featured-model-cards {\n grid-auto-columns: calc(33.333% - 0.67rem);\n }\n}\n\n@media (max-width: 1024px) {\n .featured-model-cards {\n grid-auto-columns: calc(50% - 0.5rem);\n }\n}\n\n@media (max-width: 768px) {\n .featured-model-cards {\n grid-auto-columns: 100%;\n padding-bottom: 1rem;\n }\n\n .carousel-button {\n display: none !important;\n }\n}\n\n.outlined-button {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 150px;\n height: 36px;\n padding: 4px;\n border-radius: 4px;\n border: 1px solid var(--Light-Secondary-Shades-50p, rgba(115, 143, 171, 0.5));\n color: #FFFFFF;\n text-decoration: none;\n font-size: 14px;\n letter-spacing: 0.4;\n text-align: center;\n color: #121142;\n font-weight: 500;\n transition: background-color 0.3s ease, border 0.3s ease, color 0.3s ease;\n}\n\n.outlined-button:hover {\n background-color: #3C72FF0A;\n border: 1px solid #1B17F5;\n color: #FFFFFF;\n}\n\n\n.control {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n background-color: rgba(255, 255, 255, 0.7);\n border-radius: 50%;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n opacity: 0.5;\n transition: opacity 0.3s ease;\n}\n\n.control:hover {\n opacity: 1;\n}\n\n.prev-slide {\n left: 10px;\n}\n\n.next-slide {\n right: 10px;\n}\n\n.inference-text p {\n margin-top: 0rem;\n}\n\n\n/* Model page */\n.model-page-card {\n padding: 1.5rem;\n border-radius: 0.25rem;\n border: 1px solid #D8DDDF;\n background: #FFF;\n margin-bottom: 2.5rem;\n}\n\n.model-page-card-title {\n display: flex;\n flex-wrap: wrap;\n gap: 1rem;\n align-items: center;\n}\n\n.model-page-card-title\u003eh1 {\n font-size: 1.5rem;\n color: #121142;\n}\n\n.model-page-card-logo {\n width: 2.125rem;\n height: 2.125rem;\n flex-shrink: 0;\n}\n\n.model-page-card-logo\u003eimg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.model-page-card-inference {\n border-radius: 1rem;\n border: 1px solid #D8DDDF;\n padding: 0.25rem 0.375rem 0.25rem 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.375rem;\n font-size: 0.8125rem;\n}\n\n.model-page-card-stats {\n display: flex;\n gap: 1.5rem;\n flex-wrap: wrap;\n margin-top: 1rem;\n}\n\n.model-page-card-stats\u003ediv\u003espan {\n font-size: 0.625rem;\n color: #72788D;\n letter-spacing: 0.2px;\n font-weight: 500;\n}\n\n.model-page-card-stats\u003ediv\u003ep {\n font-size: 0.75rem;\n color: #121142;\n letter-spacing: 0.17px;\n}\n\n.model-page-card-stats\u003ediv.price {\n margin-left: auto;\n}\n\n.model-page-card-stats\u003ediv.price\u003ep {\n margin-left: auto;\n font-weight: 600;\n}\n\n.model-page-tabs {\n display: flex;\n width: 100%;\n border-bottom: 1px solid #D8DDDF;\n margin-bottom: 2rem;\n}\n\n.model-page-tabs\u003ebutton {\n padding: 0.5625rem 1rem;\n border-bottom: 1px solid transparent;\n color: #72788D;\n display: flex;\n align-items: center;\n gap: 0.375rem;\n font-weight: 500;\n letter-spacing: 0.4px;\n}\n\n.model-page-tabs\u003ebutton\u003esvg\u003epath {\n fill: #72788D;\n}\n\n.model-page-tabs\u003ebutton.active {\n border-bottom: 2px solid #1B17F5;\n color: #1B17F5;\n}\n\n.model-page-tabs\u003ebutton.active\u003esvg\u003epath {\n fill: #1B17F5;\n}\n\n.model-page-playground {\n display: none;\n}\n\n.model-page-guides {\n display: flex;\n flex-direction: column;\n gap: 3rem;\n}\n\n.model-page-content {\n flex-shrink: 1;\n width: auto;\n max-width: 1050px;\n\n @media (max-width: 1500px) {\n max-width: 700px;\n }\n}\n\n.model-page-content\u003e :first-child {\n margin-top: 0;\n}\n\n.model-page-content pre {\n white-space: pre-wrap;\n}\n\n.model-page-sidebar {\n width: 100%;\n flex-shrink: 1;\n}\n\n.model-page-sidebar .iframe-placeholder {\n height: 800px;\n}\n\n/* removing inline padding for now */\n@media (min-width: 1280px) {\n .model-search-container {\n padding-inline: 0px;\n }\n}\n\n.model-page-sidebar-readmore {\n font-size: 0.875rem;\n font-style: normal;\n font-weight: 500;\n line-height: 150%;\n letter-spacing: 0.15px\n}\n\n.model-page-sidebar-readmore svg {\n margin-bottom: 2px;\n}\n\n.model-search-container {\n height: 1045px;\n\n @media (max-width: 768px) {\n height: 1200px;\n }\n}\n\n@media (min-width: 1080px) {\n .model-page-guides {\n flex-direction: row;\n }\n\n .model-page-sidebar {\n max-width: 20.6875rem;\n flex-shrink: 0;\n }\n\n}\n\n.connect-widget-skeleton {\n margin-block: 45px;\n width: 498px;\n height: 180px;\n /* Adjust height to match your widget */\n background: #f6f7f9;\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n border: 1px solid #D8DDDF;\n}\n\n.skeleton-content {\n width: 450px;\n height: 180px;\n background: linear-gradient(90deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.6) 50%,\n rgba(255, 255, 255, 0) 100%);\n animation: shimmer 1.5s infinite;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n@keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n}\n\n/* For dark mode */\n.dark .connect-widget-skeleton {\n background: #2a2a2a;\n}\n\n/* Hide scrollbar for Chrome/Safari */\n.featured-model-cards::-webkit-scrollbar {\n display: none;\n}\n\n/* Show grabbing cursor while actively scrolling */\n.featured-model-cards:active {\n cursor: grabbing;\n}\n\n/* Add minimum width for model card buttons */\n.featured-model-cards .example-card button,\n.featured-model-cards .model-card button {\n min-width: 200px;\n /* Ensures button doesn't shrink below this width */\n width: 100%;\n /* Allows button to grow with container */\n max-width: 400px;\n /* Prevents button from getting too wide */\n margin: 0 auto;\n /* Centers the button if container is wider */\n}"}],"jsFiles":[{"_id":"66108af93a6c5022ffa6a741","filePath":"script.js","subdomain":"pinecone-2","__v":0,"content":"\"use client\";\n\n// Handle anchor links after dynamic content loads\nconst anchorObserver = new MutationObserver((mutations) =\u003e {\n if (window.location.hash) {\n const target = document.querySelector(window.location.hash);\n if (target) {\n // Disconnect observer once we find our target\n anchorObserver.disconnect();\n \n // Small delay to ensure final layout is settled\n setTimeout(() =\u003e {\n target.scrollIntoView();\n window.scrollBy(0, -120); // Adjust for fixed header\n }, 100);\n }\n }\n});\n\n// Start observing document for content changes\nanchorObserver.observe(document.body, {\n childList: true,\n subtree: true\n});\n\n// Insert skeleton loader immediately\nconst pineconeConnectWidget = document.getElementById(\"pinecone-connect-widget\");\nif (pineconeConnectWidget) {\n pineconeConnectWidget.innerHTML = `\n \u003cdiv class=\"connect-widget-skeleton\"\u003e\n \u003cdiv class=\"skeleton-content\"\u003e\u003c/div\u003e\n \u003c/div\u003e\n `;\n}\n\nwindow.onload = function () {};\n\n// Get the Mintlify search containers, going to reuse them as the triggers for Inkeep\nconst searchButtonContainerIds = [\n \"search-bar-entry\",\n \"search-bar-entry-mobile\",\n];\n\n// Clone and replace, needed to remove existing event listeners\nconst clonedSearchButtonContainers = searchButtonContainerIds.map((id) =\u003e {\n const originalElement = document.getElementById(id);\n const clonedElement = originalElement.cloneNode(true);\n\n originalElement.parentNode.replaceChild(clonedElement, originalElement);\n\n return clonedElement;\n});\n\nconst pineconeConnectWidgetScript = document.createElement(\"script\");\ndocument.body.appendChild(pineconeConnectWidgetScript);\n\nfunction debounce(func, delay) {\n let timerId;\n return function (...args) {\n clearTimeout(timerId);\n timerId = setTimeout(() =\u003e {\n func.apply(this, args);\n }, delay);\n };\n}\n\n// Set api keys inside codeblocks\nconst setApiKeys = () =\u003e {\n // console.log(\"setting api keys\")\n const codeElements = document.querySelectorAll(\n \"code:not(.inline-flex.gap-2.items-center)\"\n );\n const apiKey = sessionStorage.getItem(\"apiKey\");\n\n codeElements.forEach((el) =\u003e {\n el.innerHTML = el.innerHTML.replace(\n /{{YOUR_API_KEY}}/g,\n `\u003cspan class=\"api-key\"\u003eYOUR_API_KEY\u003c/span\u003e`\n );\n });\n\n const codeBlocks = document.querySelectorAll(\"div.mt-5.mb-8.not-prose\");\n\n codeBlocks.forEach((codeBlock) =\u003e {\n const copyButton = codeBlock.querySelector(\"button\");\n const clonedElement = copyButton.cloneNode(true);\n copyButton.parentNode.replaceChild(clonedElement, copyButton);\n\n clonedElement.addEventListener(\"click\", () =\u003e {\n const codeElement = codeBlock.querySelector(\"code\");\n navigator.clipboard.writeText(codeElement.textContent);\n\n const statusElement = clonedElement.nextElementSibling;\n\n statusElement.textContent = \"Copied!\";\n clonedElement.innerHTML = `\u003csvg class=\"fill-primary-light\" width=\"16\" height=\"11\" viewBox=\"0 0 16 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M14.7813 1.21873C15.0751 1.51248 15.0751 1.98748 14.7813 2.2781L6.53135 10.5312C6.2376 10.825 5.7626 10.825 5.47197 10.5312L1.21885 6.28123C0.925098 5.98748 0.925098 5.51248 1.21885 5.22185C1.5126 4.93123 1.9876 4.9281 2.27822 5.22185L5.99697 8.9406L13.7188 1.21873C14.0126 0.924976 14.4876 0.924976 14.7782 1.21873H14.7813Z\"\u003e\u003c/path\u003e\u003c/svg\u003e`;\n\n setTimeout(() =\u003e {\n statusElement.textContent = \"Copy\";\n clonedElement.innerHTML = `\u003csvg class=\"fill-gray-700 group-hover:fill-gray-400\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath d=\"M2 14.5H9C9.275 14.5 9.5 14.275 9.5 14V12H11V14C11 15.1031 10.1031 16 9 16H2C0.896875 16 0 15.1031 0 14V7C0 5.89687 0.896875 5 2 5H4V6.5H2C1.725 6.5 1.5 6.725 1.5 7V14C1.5 14.275 1.725 14.5 2 14.5ZM7 11C5.89687 11 5 10.1031 5 9V2C5 0.896875 5.89687 0 7 0H14C15.1031 0 16 0.896875 16 2V9C16 10.1031 15.1031 11 14 11H7Z\"\u003e\u003c/path\u003e\u003c/svg\u003e`;\n }, 2000);\n });\n });\n\n if (apiKey) {\n const apiKeys = document.querySelectorAll(\".api-key\");\n apiKeys.forEach((el) =\u003e {\n el.innerHTML = apiKey;\n el.classList.add(\"set\");\n });\n\n // Add remove api key button\n const widgetContainer = document.getElementById(\"pinecone-connect-widget\");\n\n const div = document.createElement(\"div\");\n div.classList.add(\"remove-api-key\");\n const button = document.createElement(\"button\");\n button.textContent = \"Remove API Key from guide\";\n button.addEventListener(\"click\", () =\u003e {\n sessionStorage.removeItem(\"apiKey\");\n widgetContainer.innerHTML = \"\";\n div.remove();\n loadConnectWidget();\n\n apiKeys.forEach((el) =\u003e {\n el.innerHTML = \"YOUR_API_KEY\";\n el.classList.remove(\"set\");\n });\n });\n\n div.appendChild(button);\n widgetContainer.insertAdjacentElement(\"afterend\", div);\n }\n};\n\nconst debouncedSetApiKeys = debounce(() =\u003e {\n setApiKeys();\n}, 1000);\n\nconst loadConnectWidget = () =\u003e {\n const apiKey = sessionStorage.getItem(\"apiKey\");\n const widgetContainer = document.getElementById(\"pinecone-connect-widget\");\n \n if (!apiKey) {\n import(\"https://connect.pinecone.io/embed.js\")\n .then(() =\u003e {\n try {\n console.log(\"Trying to initialize connectToPinecone\");\n \n // Clear the skeleton loader before initializing the widget\n widgetContainer.innerHTML = '';\n \n let integrationId = \"docs\"; // default\n const currentPath = window.location.pathname;\n \n if (currentPath === \"/guides/get-started/quickstart\") {\n integrationId = \"db-quickstart\";\n } else if (currentPath === \"/guides/get-started/assistant-quickstart\") {\n integrationId = \"assistant-quickstart\";\n }\n\n window.connectToPinecone(\n (apiKey) =\u003e {\n console.log(apiKey);\n sessionStorage.setItem(\"apiKey\", apiKey);\n setApiKeys();\n },\n {\n integrationId,\n container: widgetContainer,\n }\n );\n } catch (error) {\n console.error(\"Error initializing Pinecone widget:\", error);\n }\n })\n .catch((error) =\u003e {\n console.error(\"Error importing embed.js:\", error);\n });\n } else {\n widgetContainer.innerHTML = `\n \u003cdiv class=\"pinecone-connect-connected\"\u003e\n \u003cimg src=\"https://connect.pinecone.io/assets/pinecone_full_logo_dark-fc6bab47.svg\" alt=\"Pinecone\"\u003e\n \u003cdiv\u003e\n \u003cp\u003eYou're all set! An API key has been generated and provided to Pinecone Docs.\u003c/p\u003e\n \u003cp\u003eYou can manage your API keys in the \u003ca href=\"https://app.pinecone.io\" target=\"_blank\"\u003ePinecone console\u003c/a\u003e.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n `;\n }\n};\n\nconst debouncedLoadConnectWidget = debounce(() =\u003e {\n try {\n loadConnectWidget();\n } catch (error) {\n console.error(\"Error loading connect widget:\", error);\n }\n}, 1000);\n\n// Load the Inkeep script\nconst inkeepScript = document.createElement(\"script\");\ninkeepScript.type = \"module\";\ninkeepScript.src =\n \"https://unpkg.com/@inkeep/widgets-embed@0.2.271/dist/embed.js\";\ndocument.body.appendChild(inkeepScript);\n\n// Once the Inkeep script has loaded, load the Inkeep chat components\ninkeepScript.addEventListener(\"load\", function () {\n function convertFilesToBase64(files) {\n const filesArray = Array.from(files);\n return Promise.all(\n filesArray.map((file) =\u003e {\n return new Promise((resolve, reject) =\u003e {\n const reader = new FileReader();\n reader.onload = (event) =\u003e {\n const result = event.target.result;\n const base64Data = result\n ?.toString()\n .replace(/^data:.+;base64,/, \"\");\n resolve({\n data: base64Data,\n fileName: file.name,\n mimeType: file.type,\n });\n };\n reader.onerror = (error) =\u003e reject(error);\n reader.readAsDataURL(file);\n });\n })\n );\n }\n\n const supportFormConfig = {\n heading: \"Contact support\",\n successConfirmationPage: {\n heading: \"Submission successful\",\n message:\n \"To view your open tickets, go to the Support page on the Pinecone console.\",\n },\n fields: [\n {\n type: \"STANDARD_FIELD\",\n label: \"Email (associated with Pinecone account)\",\n name: \"email\",\n inputType: \"EMAIL\",\n required: true,\n },\n {\n type: \"STANDARD_FIELD\",\n label: \"Subject\",\n name: \"subject\",\n inputType: \"TEXT\",\n required: true,\n },\n \n {\n type: \"INCLUDE_CHAT_SESSION\",\n defaultValue: true,\n },\n {\n type: \"STANDARD_FIELD\",\n label: \"Additional details\",\n name: \"additional_details\",\n inputType: \"TEXTAREA\",\n },\n ],\n submitCallback: async (values) =\u003e {\n const { formDetails, chatSession } = values;\n const formData = new FormData();\n formData.append('subject', formDetails.subject);\n formData.append('email', formDetails.email);\n formData.append('additional_details', formDetails.additional_details);\n formData.append('chatbot_source', \"docs\");\n\n if (chatSession) {\n formData.append(\"chatSession\", JSON.stringify(chatSession));\n }\n console.log(\"TEST LOG\", formDetails);\n\n try {\n try {\n const response = await fetch(\"https://www.pinecone.io/api/submitTicket\", {\n method: \"POST\",\n body: formData,\n mode: \"no-cors\",\n });\n // const result = await response.json();\n // console.log(\"RESULT\", result);\n return { success: true }; // We assume success if we get here due to cors issues\n } catch (error) {\n console.error(\"Error submitting form 1:\", error);\n return { success: false };\n }\n } catch (error) {\n console.error(\"Error submitting form 2:\", error);\n return { success: false };\n }\n },\n };\n // Customization settings\n const sharedConfig = {\n stylesheetUrls: [\n \"https://www.pinecone.io/customerStylesheets/pinecone.css\",\n ],\n baseSettings: {\n apiKey: \"ac936dc250fee335d56e8e7f01c93f6352fa88a69331053c\",\n integrationId: \"clu1mcp8l0008nc70ugr3yft8\",\n organizationId: \"org_2w8WbI2ZUZ7xN2wp\",\n primaryBrandColor: \"#1c17ff\",\n\n theme: {\n primaryColors: {\n textColorOnPrimary: \"white\",\n },\n colors: {\n gray: {\n \"gray.50\": \"242 243 251\",\n \"gray.100\": \"236 237 246\",\n \"gray.200\": \"223 225 236\",\n \"gray.300\": \"203 207 220\",\n \"gray.400\": \"152 159 177\",\n \"gray.500\": \"105 111 132\",\n \"gray.600\": \"74 83 104\",\n \"gray.700\": \"54 64 86\",\n \"gray.800\": \"31 40 61\",\n \"gray.900\": \"17 24 46\",\n },\n },\n components: {\n SearchBarTrigger: {\n defaultProps: {\n variant: \"subtle\",\n },\n },\n },\n },\n customIcons: {\n search: { builtIn: \"IoSearch\" },\n },\n\n breadcrumbRules: {\n urlToBreadcrumbMapper: [\n {\n matchingRule: {\n ruleType: \"PartialUrl\",\n partialUrl: \"pinecone.io\",\n },\n replaceLeading: true,\n breadcrumbName: \"Home\",\n },\n {\n matchingRule: {\n ruleType: \"PartialUrl\",\n partialUrl: \"docs.pinecone.io\",\n },\n replaceLeading: true,\n breadcrumbName: \"Docs\",\n },\n {\n matchingRule: {\n ruleType: \"PartialUrl\",\n partialUrl: \"www.pinecone.io/learn\",\n },\n replaceLeading: true,\n breadcrumbName: \"Learn\",\n },\n {\n matchingRule: {\n ruleType: \"PartialUrl\",\n partialUrl: \"www.pinecone.io/blog\",\n },\n replaceLeading: true,\n breadcrumbName: \"Blog\",\n },\n {\n matchingRule: {\n ruleType: \"PartialUrl\",\n partialUrl: \"pinecone.io/community\",\n },\n replaceLeading: true,\n breadcrumbName: \"Community\",\n },\n ],\n },\n\n customCardSettings: [\n {\n filters: {\n RootBreadcrumb: \"Community\",\n },\n searchTabLabel: \"Community\",\n icon: { builtIn: \"IoPeopleOutline\" },\n },\n {\n filters: {\n RootBreadcrumb: \"Blog\",\n },\n searchTabLabel: \"Blog\",\n icon: { builtIn: \"IoPencilOutline\" },\n },\n {\n filters: {\n RootBreadcrumb: \"Learn\",\n },\n searchTabLabel: \"Learn\",\n icon: { builtIn: \"IoBookOutline\" },\n },\n {\n filters: {\n RootBreadcrumb: \"Home\",\n },\n searchTabLabel: \"Home\",\n icon: { builtIn: \"IoHomeOutline\" },\n },\n {\n filters: {\n RootBreadcrumb: \"Support\",\n },\n searchTabLabel: \"Support\",\n icon: { builtIn: \"IoHelpBuoyOutline\" },\n },\n ],\n },\n aiChatSettings: {\n chatSubjectName: \"Pinecone\",\n botAvatarSrcUrl:\n \"https://storage.googleapis.com/organization-image-assets/pinecone-botAvatarSrcUrl-1707422859519.svg\",\n botAvatarDarkSrcUrl:\n \"https://storage.googleapis.com/organization-image-assets/pinecone-botAvatarDarkSrcUrl-1707422858768.svg\",\n getHelpCallToActions: [\n {\n name: \"Community\",\n url: \"https://community.pinecone.io/\",\n icon: {\n builtIn: \"IoPeopleOutline\",\n },\n },\n {\n name: \"Support Center\",\n url: \"https://app.pinecone.io/organizations/-/settings/support\",\n icon: {\n builtIn: \"IoHelpBuoyOutline\",\n },\n },\n {\n name: \"Create Support Ticket\",\n type: \"OPEN_FORM\",\n formConfig: supportFormConfig,\n icon: {\n builtIn: \"info\",\n },\n },\n ],\n quickQuestions: [\n \"What are the benefits of serverless?\",\n \"How do I do a dense and sparse search?\",\n \"What are the primary ways to minimize latency?\",\n ],\n includeAIAnnotations: {\n shouldEscalateToSupport: true,\n },\n aiAnnotationPolicies: {\n shouldEscalateToSupport: [\n {\n threshold: \"STANDARD\",\n action: {\n type: \"SHOW_SUPPORT_BUTTON\",\n label: \"Contact Support\",\n icon: { builtIn: \"LuUsers\" },\n action: {\n type: \"OPEN_FORM\",\n formConfig: supportFormConfig,\n },\n },\n },\n ],\n },\n },\n searchSettings: {\n tabSettings: {\n isAllTabEnabled: false,\n rootBreadcrumbsToUseAsTabs: [\n \"Docs\",\n \"Learn\",\n \"Forums\",\n \"Community\",\n \"Support\",\n \"Blog\",\n \"Home\",\n ],\n },\n },\n };\n\n // for syncing with dark mode\n const colorModeSettings = {\n observedElement: document.documentElement,\n isDarkModeCallback: (el) =\u003e {\n return el.classList.contains(\"dark\");\n },\n colorModeAttribute: \"class\",\n };\n\n // instantiate Inkeep \"custom trigger\" component\n const inkeepSearchModal = Inkeep({\n ...sharedConfig.baseSettings,\n }).embed({\n componentType: \"CustomTrigger\",\n colorModeSync: colorModeSettings,\n properties: {\n ...sharedConfig,\n isOpen: false,\n onClose: () =\u003e {\n inkeepSearchModal.render({\n isOpen: false,\n });\n },\n },\n });\n\n // When the Mintlify search bar clone is clicked, open the Inkeep search modal\n clonedSearchButtonContainers.forEach((trigger) =\u003e {\n trigger.addEventListener(\"click\", function () {\n inkeepSearchModal.render({\n isOpen: true,\n });\n });\n });\n\n // Add event listener for the 'keydown' event on the document object for cmd + k\n document.addEventListener(\"keydown\", function (event) {\n if (event.metaKey \u0026\u0026 event.key === \"k\") {\n event.preventDefault(); // Prevent the default behavior of the keyboard shortcut\n inkeepSearchModal.render({\n isOpen: true,\n });\n }\n });\n});\n\nfunction addRelatedArticles(titles, links) {\n const existing = document.querySelector(\"#related-articles\");\n if (existing) return;\n\n const sidebar = document.querySelector(\"#table-of-contents\");\n const relatedArticles = document.createElement(\"div\");\n relatedArticles.id = \"related-articles\";\n\n const title = document.createElement(\"h2\");\n title.textContent = \"Related Articles\";\n relatedArticles.appendChild(title);\n\n titles.forEach((title, index) =\u003e {\n const relatedArticle = document.createElement(\"a\");\n relatedArticle.href = links[index];\n relatedArticle.textContent = title;\n relatedArticle.insertAdjacentHTML(\n \"beforeend\",\n '\u003csvg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg id=\"ChevronRightFilled\"\u003e\u003cpath id=\"Vector\" d=\"M9.70492 6L8.29492 7.41L12.8749 12L8.29492 16.59L9.70492 18L15.7049 12L9.70492 6Z\" fill=\"#1B17F5\"/\u003e\u003c/g\u003e\u003c/svg\u003e'\n );\n relatedArticles.appendChild(relatedArticle);\n });\n\n sidebar.appendChild(relatedArticles);\n}\n\nconst relatedArticles = {\n airbyte: {\n titles: [\n \"Data Sync and Search: Pinecone and Airbyte\",\n \"Introduction to Airbyte and the Pinecone connector\",\n \"Postgres to Pinecone Syncing\",\n ],\n links: [\n \"https://www.pinecone.io/learn/series/airbyte/\",\n \"https://www.pinecone.io/learn/series/airbyte/airbyte-and-pinecone-intro/\",\n \"https://www.pinecone.io/learn/series/airbyte/airbyte-postgres-to-pinecone/\",\n ],\n },\n\n bedrock: {\n titles: [\"Pinecone as a Knowledge Base for Amazon Bedrock\"],\n links: [\"https://www.pinecone.io/blog/amazon-bedrock-integration/\"],\n },\n\n sagemaker: {\n titles: [\n \"Mitigate hallucinations through Retrieval Augmented Generation using Pinecone vector database \u0026 Llama-2 from Amazon SageMaker JumpStart\",\n ],\n links: [\n \"https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/\",\n ],\n },\n\n langchain: {\n titles: [\"LangChain AI Handbook\"],\n links: [\"https://www.pinecone.io/learn/series/langchain/\"],\n },\n\n openai: {\n titles: [\n \"Generative Question-Answering with Long-Term Memory\",\n \"OpenAI's Text Embeddings v3\",\n ],\n links: [\n \"https://www.pinecone.io/learn/openai-gen-qa/\",\n \"https://www.pinecone.io/learn/openai-embeddings-v3/\",\n ],\n },\n\n snowflake: {\n titles: [\n \"Snowpark Container Services: Securely Deploy and run Sophisticated Generative AI and full-stack apps in Snowflake\",\n ],\n links: [\n \"https://www.snowflake.com/blog/snowpark-container-services-deploy-genai-full-stack-apps/\",\n ],\n },\n};\n\nlet isScrollListenerAdded = false;\nlet scrollListener = null;\n\n// Mutation observer to handle page changes\nconst observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (mutation.type === \"childList\") {\n try {\n\n // Pinecone connect widget\n const pineconeConnectWidget = document.querySelector(\n \"#pinecone-connect-widget\"\n );\n if (\n pineconeConnectWidget \u0026\u0026\n !pineconeConnectWidget.classList.contains(\"loaded\")\n ) {\n debouncedLoadConnectWidget();\n pineconeConnectWidget.classList.add(\"loaded\");\n }\n\n // console.log(\"mutation\")\n\n if (\n pineconeConnectWidget \u0026\u0026\n !pineconeConnectWidget.classList.contains(\"apiKeysSet\")\n ) {\n debouncedSetApiKeys();\n pineconeConnectWidget.classList.add(\"apiKeysSet\");\n }\n\n const [path, page, page2] = window.location.pathname\n .split(\"/\")\n .slice(1);\n\n var contentContainer = document.querySelector(\"#content-container\");\n var contentArea = document.querySelector('#content-area');\n\n //** Model Gallery **/\n if (path !== \"models\") {\n const sidebar = document.querySelector(\"#sidebar\");\n if (sidebar) sidebar.style.display = \"\";\n if (contentContainer) contentContainer.style.paddingLeft = \"\";\n } else {\n const sidebar = document.querySelector(\"#sidebar\");\n if (sidebar) sidebar.style.display = \"none\";\n if (contentContainer) contentContainer.style.paddingLeft = \"0px\";\n if (contentArea) contentArea.style.paddingLeft = '0px';\n if (contentArea) contentArea.style.marginLeft = '12px';\n const header = document.querySelector(\"#header\");\n if (header) header.remove();\n const tableOfContents = document.querySelector(\"#table-of-contents\");\n if (tableOfContents) tableOfContents.remove();\n }\n\n //** References **/\n\n // Remove nested toc items on /reference/api/database-limits page\n if (path === \"reference\" \u0026\u0026 page === \"api\" \u0026\u0026 page2 === \"database-limits\") {\n document.querySelectorAll(\"#table-of-contents-content \u003e ul li\").forEach(li =\u003e {\n const link = li.querySelector(\"a\")\n if (link.classList.contains(\"text-gray-500\")) {\n li.remove()\n }\n });\n }\n \n //** Integrations **/\n\n if (path === \"integrations\" \u0026\u0026 page === \"overview\") {\n const toc = document.querySelector(\"#table-of-contents\");\n if (toc) toc.style.display = \"none\";\n\n const header = document.querySelector(\"#header\");\n if (header) header.style.display = \"none\";\n\n const existingBanner = document.querySelector(\"#integrations-banner\");\n if (!existingBanner) {\n const banner = document.createElement(\"div\");\n banner.id = \"integrations-banner\";\n\n const h1 = document.createElement(\"h1\");\n h1.textContent = \"Integrations\";\n banner.appendChild(h1);\n\n const p = document.createElement(\"p\");\n p.textContent = \"Build powerful workflows with our partners\";\n banner.appendChild(p);\n\n const navbar = document.getElementById(\"navbar\");\n navbar.insertAdjacentElement(\"afterend\", banner);\n }\n\n // Remove content padding\n const contentContainer = document.querySelector(\"#content-container\");\n contentContainer.firstElementChild.style.paddingTop = \"1rem\";\n\n // Move sidebar\n const sidebar = document.querySelector(\"#sidebar\");\n sidebar.style.top = \"19.8rem\";\n\n // Handle sidebar\n const handleSidebarScroll = () =\u003e {\n let maxScroll = 200;\n let startPosition = 19.8;\n let endPosition = 7.1;\n\n if (window.scrollY \u003c= maxScroll) {\n let scrollFraction = window.scrollY / maxScroll;\n let positionDifference = startPosition - endPosition;\n let currentPosition =\n startPosition - scrollFraction * positionDifference;\n sidebar.style.top = `${currentPosition}rem`;\n } else {\n sidebar.style.top = `${endPosition}rem`;\n }\n };\n\n if (!isScrollListenerAdded) {\n scrollListener = handleSidebarScroll;\n window.addEventListener(\"scroll\", scrollListener);\n isScrollListenerAdded = true;\n }\n } else {\n // Remove sidebar scroll listener\n if (isScrollListenerAdded \u0026\u0026 scrollListener !== null) {\n window.removeEventListener(\"scroll\", scrollListener);\n isScrollListenerAdded = false;\n }\n\n // remove the banner\n const existingBanner = document.querySelector(\"#integrations-banner\");\n if (existingBanner) {\n existingBanner.remove();\n }\n\n // Move sidebar\n const sidebar = document.querySelector(\"#sidebar\");\n if (sidebar) sidebar.style.top = \"7.1rem\";\n\n // Set sample apps side nav link to active for all sample apps\n if (page === \"sample-apps\") {\n const aElement = document.querySelector(\n 'a[href=\"/examples/sample-apps\"]'\n );\n if (aElement) {\n aElement.className =\n \"group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 rounded-lg focus:outline-primary dark:focus:outline-primary-light bg-primary/10 text-primary font-semibold dark:text-primary-light dark:bg-primary-light/10\";\n }\n } else if (page === \"notebooks\") {\n const aElement = document.querySelector(\n 'li \u003e a[href=\"/examples/sample-apps\"]'\n );\n if (aElement) {\n aElement.className =\n \"group mt-2 lg:mt-0 flex items-center pr-3 py-1.5 rounded-lg focus:outline-primary dark:focus:outline-primary-light hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300\";\n };\n }\n if (path === \"integrations\" \u0026\u0026 page !== \"overview\") {\n // Insert back button\n const backButton = document.querySelector(\"#back-button\");\n if (!backButton) {\n const link = document.createElement(\"a\");\n link.id = \"back-button\";\n link.href = \"/integrations/overview\";\n link.textContent = \"Back to Integrations\";\n link.insertAdjacentHTML(\n \"afterbegin\",\n '\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\"\u003e\u003cpath d=\"M10.4693 5.44L9.5293 4.5L5.5293 8.5L9.5293 12.5L10.4693 11.56L7.41596 8.5L10.4693 5.44Z\" fill=\"#1B17F5\"/\u003e\u003c/svg\u003e'\n );\n\n const header = document.querySelector(\"#header\");\n header.insertAdjacentElement(\"afterbegin\", link);\n }\n\n // Add related articles\n switch (\n page /* Hide related articles for now\n case \"airbyte\":\n addRelatedArticles(\n relatedArticles.airbyte.titles,\n relatedArticles.airbyte.links\n );\n break;\n airbyte;\n case \"amazon-bedrock\":\n addRelatedArticles(\n relatedArticles.bedrock.titles,\n relatedArticles.bedrock.links\n );\n break;\n case \"amazon-sagemaker\":\n addRelatedArticles(\n relatedArticles.sagemaker.titles,\n relatedArticles.sagemaker.links\n );\n break;\n case \"langchain\":\n addRelatedArticles(\n relatedArticles.langchain.titles,\n relatedArticles.langchain.links\n );\n break;\n case \"openai\":\n addRelatedArticles(\n relatedArticles.openai.titles,\n relatedArticles.openai.links\n );\n break;\n case \"snowflake\":\n addRelatedArticles(relatedArticles.snowflake.titles, relatedArticles.snowflake.links)\n break; */\n ) {\n default:\n break;\n }\n }\n\n // Sample apps\n if (page === \"sample-apps\" \u0026\u0026 !!page2) {\n const header = document.querySelector(\"#header\");\n if (header) header.style.display = \"none\";\n\n const toc = document.querySelector(\"#table-of-contents\");\n if (toc) toc.style.display = \"none\";\n\n const contentArea = document.querySelector(\n \"#content-area \u003e div.mt-8\"\n );\n contentArea.style.marginTop = \"0\";\n\n // Create toc\n document.querySelectorAll(\".sample-app-split\").forEach((div) =\u003e {\n const toc = div.querySelector(\".toc\");\n const content = div.querySelector(\".content\");\n const existing = div.querySelector(\".toc-list\");\n\n if (toc \u0026\u0026 content \u0026\u0026 !existing) {\n const tocList = document.createElement(\"div\");\n tocList.className = \"toc-list\";\n\n const headers = content.querySelectorAll(\n \"h2, h3, .connect-with-pinecone\"\n );\n\n headers.forEach((header) =\u003e {\n // If connect btn, clone it and append\n if (header.classList.contains(\"connect-with-pinecone\")) {\n const cloned = header.cloneNode(true);\n tocList.appendChild(cloned);\n return;\n }\n // Slugify heading text and create id\n const slugify = (text) =\u003e\n text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n const id = slugify(header.textContent);\n header.id = id; // Set ID on the header using the slugified text\n\n // Create an anchor link and append it to the TOC\n const anchor = document.createElement(\"a\");\n anchor.href = `#${id}`;\n anchor.textContent = header.textContent;\n anchor.className = header.tagName === \"H2\" ? \"bold\" : \"\";\n\n tocList.appendChild(anchor);\n });\n\n toc.appendChild(tocList);\n\n const initialTopOffset =\n tocList.getBoundingClientRect().top + window.scrollY - 148;\n const stickySidebar = () =\u003e {\n if (window.innerWidth \u003e 1280) {\n if (window.scrollY \u003e= initialTopOffset) {\n tocList.style.position = \"fixed\";\n tocList.style.top = \"148px\";\n } else {\n tocList.style.position = \"relative\";\n tocList.style.top = \"\";\n }\n } else {\n tocList.style.position = \"relative\";\n tocList.style.top = \"\";\n }\n };\n\n stickySidebar();\n window.addEventListener(\"scroll\", stickySidebar);\n window.addEventListener(\"resize\", stickySidebar);\n }\n });\n }\n\n // Notebooks\n if (\n path === \"examples\" \u0026\u0026\n (page === \"notebooks\" || page === \"sample-apps\" || page == \"reference-architectures\")\n ) {\n const toc = document.querySelector(\"#table-of-contents\");\n if (toc) toc.style.display = \"none\";\n\n const heading = document.querySelector(\"#header h1\");\n if (heading) heading.style.fontSize = \"1.5rem\";\n }\n }\n } catch (error) {\n console.error(\"Error handling mutation:\", error);\n }\n }\n });\n});\n\nobserver.observe(document.body, { childList: true, subtree: true });\n\n// Replace the header cta button since replacing the svg via css ::after is not working\nwindow.addEventListener(\"load\", () =\u003e {\n const ctaButton = document.querySelector(\"#topbar-cta-button\");\n\n if (ctaButton) {\n ctaButton.innerHTML = \"\";\n const a = document.createElement(\"a\");\n a.href = \"https://app.pinecone.io/?sessionType=signup\";\n a.target = \"_blank\";\n a.textContent = \"Sign up free\";\n\n const svg =\n '\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\u003e\u003cpath d=\"M8.08906 5L6.91406 6.175L10.7307 10L6.91406 13.825L8.08906 15L13.0891 10L8.08906 5Z\" fill=\"white\"/\u003e\u003c/svg\u003e';\n\n a.insertAdjacentHTML(\"beforeend\", svg);\n ctaButton.appendChild(a);\n }\n localStorage.setItem(\"isDarkMode\", \"false\");\n const [path, page, page2] = window.location.pathname.split(\"/\").slice(1);\n if (path !== \"reference\") {\n // Remove version picker from home page on load\n const versionToggle = document.getElementById(\n \"headlessui-menu-button-:r0:\"\n );\n if (versionToggle) {\n versionToggle.style.visibility = \"hidden\";\n }\n }\n});\n// Model Carousel\ndocument.addEventListener('DOMContentLoaded', () =\u003e {\n const carousel = document.getElementById('modelCarousel');\n const prevButton = document.getElementById('prevButton');\n const nextButton = document.getElementById('nextButton');\n \n if (!carousel || !prevButton || !nextButton) return;\n \n const handleScroll = (direction) =\u003e {\n const cardWidth = carousel.offsetWidth / 3;\n carousel.scrollBy({\n left: direction * cardWidth,\n behavior: 'smooth'\n });\n };\n \n prevButton.addEventListener('click', (e) =\u003e {\n e.preventDefault();\n handleScroll(-1);\n });\n \n nextButton.addEventListener('click', (e) =\u003e {\n e.preventDefault();\n handleScroll(1);\n });\n});\n\n\n\n"}],"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nconst PrimarySecondaryCTA = ({primaryLabel, primaryHref, primaryTarget, secondaryLabel, secondaryHref, secondaryTarget}) =\u003e {\n const _components = {\n a: \"a\",\n div: \"div\",\n path: \"path\",\n svg: \"svg\",\n ..._provideComponents()\n };\n return _jsxs(_components.div, {\n style: {\n display: 'flex',\n alignItems: 'center',\n gap: 16\n },\n children: [primaryLabel \u0026\u0026 primaryHref \u0026\u0026 _jsx(_components.div, {\n style: {\n width: 'fit-content',\n height: 42,\n background: '#1B17F5',\n borderRadius: 4,\n overflow: 'hidden',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'inline-flex'\n },\n children: _jsxs(_components.a, {\n href: primaryHref,\n target: primaryTarget,\n style: {\n paddingLeft: 22,\n paddingRight: 22,\n paddingTop: 8,\n paddingBottom: 8,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 4,\n display: 'inline-flex',\n textDecoration: 'none',\n borderBottom: 'none'\n },\n children: [_jsx(_components.div, {\n style: {\n textAlign: 'justify',\n color: 'white',\n fontSize: 15,\n fontWeight: '600',\n letterSpacing: 0.46,\n wordWrap: 'break-word'\n },\n children: primaryLabel\n }), _jsx(_components.svg, {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n marginLeft: 2\n },\n children: _jsx(_components.path, {\n d: \"M9.70492 6L8.29492 7.41L12.8749 12L8.29492 16.59L9.70492 18L15.7049 12L9.70492 6Z\",\n fill: \"white\"\n })\n })]\n })\n }), secondaryLabel \u0026\u0026 secondaryHref \u0026\u0026 _jsx(_components.div, {\n style: {\n width: 'fit-content',\n height: 42,\n borderRadius: 4,\n overflow: 'hidden',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'inline-flex',\n textDecoration: 'none'\n },\n children: _jsx(_components.a, {\n href: secondaryHref,\n target: secondaryTarget,\n style: {\n paddingLeft: 11,\n paddingRight: 11,\n paddingTop: 8,\n paddingBottom: 8,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 8,\n display: 'inline-flex',\n textDecoration: 'none',\n borderBottom: 'none'\n },\n children: _jsx(_components.div, {\n style: {\n textAlign: 'justify',\n color: '#1B17F5',\n fontSize: 15,\n fontWeight: '600',\n letterSpacing: 0.46,\n wordWrap: 'break-word'\n },\n children: secondaryLabel\n })\n })\n })]\n });\n};\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n em: \"em\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock, Heading} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n if (!Heading) _missingMdxReference(\"Heading\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Haystack is the open source Python framework by Deepset for building custom apps with large language models (LLMs). It lets you quickly try out the latest models in natural language processing (NLP) while being flexible and easy to use. Their community of users and builders has helped shape Haystack into what it is today: a complete framework for building production-ready NLP apps.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Haystack and Pinecone integration can be used to keep your NLP-driven apps up-to-date with Haystack’s indexing pipelines that help you prepare and maintain your data.\"\n }), \"\\n\", _jsx(PrimarySecondaryCTA, {\n secondaryHref: \"#setup-guide\",\n secondaryLabel: \"View setup guide\"\n }), \"\\n\", _jsx(Heading, {\n level: \"2\",\n id: \"setup-guide\",\n children: \"Setup guide\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"In this guide we will see how to integrate Pinecone and the popular \", _jsx(_components.a, {\n href: \"https://github.com/deepset-ai/haystack\",\n children: \"Haystack library\"\n }), \" for \", _jsx(_components.em, {\n children: \"Question-Answering\"\n }), \".\"]\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"install-haystack\",\n children: \"Install Haystack\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We start by installing the latest version of Haystack with all dependencies required for the \", _jsx(_components.code, {\n children: \"PineconeDocumentStore\"\n }), \".\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"pip install \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \"U farm\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \"haystack\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"\u003e=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1.3\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \".0\"\n }), \" pinecone\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), \"grpc\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), \" datasets\"]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"initialize-the-pineconedocumentstore\",\n children: \"Initialize the PineconeDocumentStore\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We initialize a \", _jsx(_components.code, {\n children: \"PineconeDocumentStore\"\n }), \" by providing an API key and environment name. \", _jsx(_components.a, {\n href: \"https://app.pinecone.io\",\n children: \"Create an account\"\n }), \" to get your free API key.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"document_stores \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" PineconeDocumentStore\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"document_store \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" PineconeDocumentStore\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" api_key\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'\u003cYOUR_API_KEY\u003e'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" index\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'haystack-extractive-qa'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" similarity\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"cosine\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" embedding_dim\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"384\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"INFO - haystack.document_stores.pinecone - Index statistics: name: haystack-extractive-qa, embedding dimensions: 384, record count: 0\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"prepare-data\",\n children: \"Prepare data\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Before adding data to the document store, we must download and convert data into the Document format that Haystack uses.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"We will use the SQuAD dataset available from Hugging Face Datasets.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" datasets \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" load_dataset\"]\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# load the squad dataset\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"data \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" load_dataset\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"squad\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" split\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"train\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Next, we remove duplicates and unecessary columns.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# convert to a pandas dataframe\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" data\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"to_pandas\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# select only title and context column\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"context\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# drop rows containing duplicate context passages\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"drop_duplicates\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"subset\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"context\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"head\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"title\"\n }), _jsx(_components.th, {\n children: \"context\"\n }), _jsx(_components.th, {})]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"0\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"Architecturally, the school has a Catholic cha…\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"5\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"As at most other universities, Notre Dame’s st…\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"10\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"The university is the major seat of the Congre…\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"15\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"The College of Engineering was established in …\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"20\"\n }), _jsx(_components.td, {\n children: \"University_of_Notre_Dame\"\n }), _jsx(_components.td, {\n children: \"All of Notre Dame’s undergraduate students are…\"\n })]\n })]\n })]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Then convert these records into the Document format.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" Document\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"docs \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"for\"\n }), \" d \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"in\"\n }), \" df\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"iterrows\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" d \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token comment\",\n children: \"# create haystack document object with text content and doc metadata\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" doc \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" Document\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" content\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"context\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" meta\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"title\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'context'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" d\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'context'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" docs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"append\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"doc\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This \", _jsx(_components.code, {\n children: \"Document\"\n }), \" format contains two fields; \", _jsx(_components.em, {\n children: \"‘content’\"\n }), \" for the text content or paragraphs, and \", _jsx(_components.em, {\n children: \"‘meta’\"\n }), \" where we can place any additional information that can later be used to apply metadata filtering in our search.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Now we upsert the documents to Pinecone.\"\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# upsert the data document to pinecone index\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"write_documents\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"docs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"initialize-retriever\",\n children: \"Initialize retriever\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The next step is to create embeddings from these documents. We will use Haystacks \", _jsx(_components.code, {\n children: \"EmbeddingRetriever\"\n }), \" with a SentenceTransformer model (\", _jsx(_components.code, {\n children: \"multi-qa-MiniLM-L6-cos-v1\"\n }), \") which has been designed for question-answering.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"retriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"dense \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" EmbeddingRetriever\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"retriever \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" EmbeddingRetriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" document_store\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" embedding_model\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"multi-qa-MiniLM-L6-cos-v1\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" model_format\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"sentence_transformers\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Then we run the \", _jsx(_components.code, {\n children: \"PineconeDocumentStore.update_embeddings\"\n }), \" method with the \", _jsx(_components.code, {\n children: \"retriever\"\n }), \" provided as an argument. GPU acceleration can greatly reduce the time required for this step.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"update_embeddings\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" retriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" batch_size\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"16\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"inspect-documents-and-embeddings\",\n children: \"Inspect documents and embeddings\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We can get documents by their ID with the \", _jsx(_components.code, {\n children: \"PineconeDocumentStore.get_documents_by_id\"\n }), \" method.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"d \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" document_store\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"get_documents_by_id\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"ids\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'49091c797d2236e73fab510b1e9c7f6b'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" return_embedding\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token boolean\",\n children: \"True\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"0\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"From here we return can view document content with \", _jsx(_components.code, {\n children: \"d.content\"\n }), \" and the document embedding with \", _jsx(_components.code, {\n children: \"d.embedding\"\n }), \".\"]\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"initialize-an-extractive-qa-pipeline\",\n children: \"Initialize an extractive QA pipeline\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"An \", _jsx(_components.code, {\n children: \"ExtractiveQAPipeline\"\n }), \" contains three key components by default:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"a document store (\", _jsx(_components.code, {\n children: \"PineconeDocumentStore\"\n }), \")\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"a retriever model\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"a reader model\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We use the \", _jsx(_components.code, {\n children: \"deepset/electra-base-squad2\"\n }), \" model from the HuggingFace model hub as our reader model.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"nodes \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" FARMReader\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"reader \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" FARMReader\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" model_name_or_path\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'deepset/electra-base-squad2'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \"]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" use_gpu\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token boolean\",\n children: \"True\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We are now ready to initialize the \", _jsx(_components.code, {\n children: \"ExtractiveQAPipeline\"\n }), \".\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"pipelines \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" ExtractiveQAPipeline\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"pipe \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" ExtractiveQAPipeline\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"reader\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" retriever\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(Heading, {\n level: \"3\",\n id: \"ask-questions\",\n children: \"Ask Questions\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Using our QA pipeline we can begin querying with \", _jsx(_components.code, {\n children: \"pipe.run\"\n }), \".\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"from\"\n }), \" haystack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"utils \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"import\"\n }), \" print_answers\"]\n }), \"\\n\", \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"What was Albert Einstein famous for?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.53 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: What was Albert Einstein famous for?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'his theories of special relativity and general relativity', 'type': 'extractive', 'score': 0.993550717830658,\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Albert Einstein is known for his theories of special relativity and general relativity. He also made important contributions to statistical mechanics,',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 29, 'end': 86}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 29, 'end': 86}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': '23357c05e3e46bacea556705de1ea6a5',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Albert Einstein is known for his theories of special relativity and general relativity. He also made important contributions to statistical mechanics, especially his mathematical treatment of Brownian motion, his resolution of the paradox of specific heats, and his connection of fluctuations and dissipation. Despite his reservations about its interpretation, Einstein also made contributions to quantum mechanics and, indirectly, quantum field theory, primarily through his theoretical studies of the photon.', 'title': 'Modern_history'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"}\u003e]\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"How much oil is Egypt producing in a day?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.81 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: How much oil is Egypt producing in a day?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': '691,000 bbl/d', 'type': 'extractive', 'score': 0.9999906420707703,\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Egypt was producing 691,000 bbl/d of oil and 2,141.05 Tcf of natural gas (in 2013), which makes Egypt as the largest oil producer not member of the Or',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 20, 'end': 33}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 20, 'end': 33}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': '57ed9720050a17237e323da5e3969a9b',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'Egypt was producing 691,000 bbl/d of oil and 2,141.05 Tcf of natural gas (in 2013), which makes Egypt as the largest oil producer not member of the Organization of the Petroleum Exporting Countries (OPEC) and the second-largest dry natural gas producer in Africa. In 2013, Egypt was the largest consumer of oil and natural gas in Africa, as more than 20% of total oil consumption and more than 40% of total dry natural gas consumption in Africa. Also, Egypt possesses the largest oil refinery capacity in Africa 726,000 bbl/d (in 2012). Egypt is currently planning to build its first nuclear power plant in El Dabaa city, northern Egypt.', 'title': 'Egypt'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"}\u003e]\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"What are the first names of the youtube founders?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.83 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: What are the first names of the youtube founders?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Hurley and Chen', 'type': 'extractive', 'score': 0.9998972713947296,\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'According to a story that has often been repeated in the media, Hurley and Chen developed the idea for YouTube during the early months of 2005, after ',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 64, 'end': 79}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 64, 'end': 79}],\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': 'bd1cbd61ab617d840c5f295e21e80092',\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'According to a story that has often been repeated in the media, Hurley and Chen developed the idea for YouTube during the early months of 2005, after they had experienced difficulty sharing videos that had been shot at a dinner party at Chen\\\\'s apartment in San Francisco. Karim did not attend the party and denied that it had occurred, but Chen commented that the idea that YouTube was founded after a dinner party \\\"was probably very strengthened by marketing ideas around creating a story that was very digestible\\\".', 'title': 'YouTube'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"}\u003e]\"\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"We can return multiple answers by setting the \", _jsx(_components.code, {\n children: \"top_k\"\n }), \" parameter.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"Python\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-Python\",\n children: [_jsxs(_components.span, {\n className: \"\",\n children: [\"query \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Who was the first person to step foot on the moon?\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# get the answer\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"answer \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" pipe\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"run\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" query\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"query\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" params\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"Retriever\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"top_k\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"3\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: _jsx(_components.span, {\n className: \"token comment\",\n children: \"# print the answer(s)\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"\",\n children: [\"print_answers\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"answer\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n })]\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(CodeBlock, {\n filename: \"\",\n expandable: \"false\",\n children: _jsx(_components.pre, {\n className: \"language-plaintext\",\n children: _jsxs(_components.code, {\n children: [_jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.71 Batches/s]\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.78 Batches/s]\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Inferencing Samples: 100%|██████████| 1/1 [00:00\u003c00:00, 3.88 Batches/s]\"\n }), \"\\n\", \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Query: Who was the first person to step foot on the moon?\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"Answers:\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"[ \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Armstrong', 'type': 'extractive', 'score': 0.9998227059841156, \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'The trip to the Moon took just over three days. After achieving orbit, Armstrong and Aldrin transferred into the Lunar Module, named Eagle, and after ', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 71, 'end': 80}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 71, 'end': 80}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': 'f74e1bf667e68d72e45437a7895df921', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'The trip to the Moon took just over three days. After achieving orbit, Armstrong and Aldrin transferred into the Lunar Module, named Eagle, and after a landing gear inspection by Collins remaining in the Command/Service Module Columbia, began their descent. After overcoming several computer overload alarms caused by an antenna switch left in the wrong position, and a slight downrange error, Armstrong took over manual flight control at about 180 meters (590 ft), and guided the Lunar Module to a safe landing spot at 20:18:04 UTC, July 20, 1969 (3:17:04 pm CDT). The first humans on the Moon would wait another six hours before they ventured out of their craft. At 02:56 UTC, July 21 (9:56 pm CDT July 20), Armstrong became the first human to set foot on the Moon.', 'title': 'Space_Race'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\u003e, \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Frank Borman', 'type': 'extractive', 'score': 0.7770257890224457, \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'On December 21, 1968, Frank Borman, James Lovell, and William Anders became the first humans to ride the Saturn V rocket into space on Apollo 8. They ', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 22, 'end': 34}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 22, 'end': 34}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': '2bc046ba90d94fe201ccde9d20552200', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': \\\"On December 21, 1968, Frank Borman, James Lovell, and William Anders became the first humans to ride the Saturn V rocket into space on Apollo 8. They also became the first to leave low-Earth orbit and go to another celestial body, and entered lunar orbit on December 24. They made ten orbits in twenty hours, and transmitted one of the most watched TV broadcasts in history, with their Christmas Eve program from lunar orbit, that concluded with a reading from the biblical Book of Genesis. Two and a half hours after the broadcast, they fired their engine to perform the first trans-Earth injection to leave lunar orbit and return to the Earth. Apollo 8 safely landed in the Pacific ocean on December 27, in NASA's first dawn splashdown and recovery.\\\", 'title': 'Space_Race'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\u003e, \u003cAnswer {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'answer': 'Aldrin', 'type': 'extractive', 'score': 0.6680101901292801, \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': ' were, \\\"That\\\\'s one small step for [a] man, one giant leap for mankind.\\\" Aldrin joined him on the surface almost 20 minutes later. Altogether, they spe', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_document': [{'start': 240, 'end': 246}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'offsets_in_context': [{'start': 72, 'end': 78}], \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'document_id': 'ae1c366b1eaf5fc9d32a8d81f76bd795', \"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'meta': {\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" 'context': 'The first step was witnessed by at least one-fifth of the population of Earth, or about 723 million people. His first words when he stepped off the LM\\\\'s landing footpad were, \\\"That\\\\'s one small step for [a] man, one giant leap for mankind.\\\" Aldrin joined him on the surface almost 20 minutes later. Altogether, they spent just under two and one-quarter hours outside their craft. The next day, they performed the first launch from another celestial body, and rendezvoused back with Columbia.', 'title': 'Space_Race'\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \" }\u003e\"\n }), \"\\n\", _jsx(_components.span, {\n className: \"\",\n children: \"]\"\n }), \"\\n\"]\n })\n })\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n PrimarySecondaryCTA,\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{"config":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Pinecone Docs","colors":{"primary":"#1C17FF","light":"#504CFF","dark":"#1C17FF"},"logo":"https://mintlify.s3.us-west-1.amazonaws.com/pinecone-2/logo/light.svg","favicon":"/favicon-512.png","api":{"openapi":["openapi/control_2024-04.yaml","openapi/control_2025-01.yaml","openapi/control_2024-10.yaml","openapi/control_2024-07.yaml","openapi/control_2024-04.yaml","openapi/data_2025-04.yaml","openapi/data_2025-01.yaml","openapi/data_2024-10.yaml","openapi/data_2024-07.yaml","openapi/data_2024-04.yaml","openapi/inference_2025-04.yaml","openapi/inference_2025-01.yaml","openapi/inference_2024-10.yaml","openapi/assistant_data_2025-04.yaml","openapi/assistant_data_2025-01.yaml","openapi/assistant_control_2025-04.yaml","openapi/assistant_control_2025-01.yaml","openapi/assistant_evaluation_2025-04.yaml","openapi/assistant_evaluation_2025-01.yaml"],"playground":{"display":"simple"}},"appearance":{"default":"light","strict":true},"background":{"color":{"light":"#FBFBFC"}},"navbar":{"links":[{"label":"Status","href":"https://status.pinecone.io"},{"label":"Support","href":"https://app.pinecone.io/organizations/-/settings/support"},{"label":"Log In","href":"https://app.pinecone.io/?sessionType=login"}],"primary":{"type":"button","label":"Sign up free","href":"https://app.pinecone.io/?sessionType=signup"}},"navigation":{"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":["guides/get-started/overview","guides/get-started/quickstart","guides/get-started/assistant-quickstart","guides/get-started/key-features",{"group":"Tutorials","pages":["guides/get-started/build-a-rag-chatbot","guides/get-started/semantic-search","guides/get-started/image-search","guides/get-started/multimodal-search","guides/get-started/recommender","guides/get-started/threat-detection","guides/get-started/examples"]},"guides/get-started/glossary"]},{"group":"Indexes","pages":["guides/indexes/understanding-indexes","guides/indexes/create-an-index","guides/indexes/implement-multitenancy","guides/indexes/manage-indexes",{"group":"Back up and restore","pages":["guides/indexes/understanding-backups","guides/indexes/back-up-an-index","guides/indexes/restore-an-index"]},{"group":"Pod-based indexes","pages":["guides/indexes/pods/understanding-pod-based-indexes","guides/indexes/pods/migrate-a-pod-based-index-to-serverless","guides/indexes/pods/choose-a-pod-type-and-size","guides/indexes/pods/create-a-pod-based-index","guides/indexes/pods/manage-pod-based-indexes","guides/indexes/pods/scale-pod-based-indexes",{"group":"Back up and restore","pages":["guides/indexes/pods/understanding-collections","guides/indexes/pods/back-up-a-pod-based-index","guides/indexes/pods/restore-a-pod-based-index"]}]},"guides/indexes/sparse-indexes"]},{"group":"Data","pages":["guides/data/upsert-data","guides/data/query-data","guides/data/fetch-data","guides/data/update-data","guides/data/delete-data",{"group":"Import data","pages":["guides/data/understanding-imports","guides/data/import-data"]},"guides/data/list-record-ids","guides/data/target-an-index","guides/data/understanding-metadata","guides/data/manage-rag-documents",{"group":"Data freshness","pages":["guides/data/data-freshness/understanding-data-freshness","guides/data/data-freshness/check-data-freshness"]},{"group":"Hybrid search and sparse vectors","pages":["guides/data/understanding-hybrid-search","guides/data/encode-sparse-vectors","guides/data/upsert-sparse-dense-vectors","guides/data/query-sparse-dense-vectors"]}]},{"group":"Inference","pages":["guides/inference/understanding-inference","guides/inference/generate-embeddings","guides/inference/rerank","guides/inference/integrated-inference"]},{"group":"Assistant","pages":["guides/assistant/understanding-assistant","guides/assistant/create-assistant","guides/assistant/manage-files","guides/assistant/chat-with-assistant","guides/assistant/manage-assistants",{"group":"Evaluate answers","pages":["guides/assistant/understanding-evaluation","guides/assistant/evaluate-answers"]},{"group":"Retrieve context snippets","pages":["guides/assistant/understanding-context-snippets","guides/assistant/retrieve-context-snippets"]}]},{"group":"Operations","pages":["guides/operations/local-development","guides/operations/automated-testing","guides/operations/move-to-production","guides/operations/performance-tuning",{"group":"Security","pages":["guides/operations/understanding-security","guides/organizations/configure-single-sign-on/okta","guides/operations/configure-cmek","guides/operations/connect-to-aws-privatelink"]},{"group":"Integrate with cloud storage","pages":["guides/operations/integrations/manage-storage-integrations","guides/operations/integrations/integrate-with-amazon-s3"]},"guides/operations/monitoring"]},{"group":"Organizations","pages":["guides/organizations/understanding-organizations",{"group":"Manage billing","pages":["guides/organizations/manage-billing/changing-your-billing-plan","guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace","guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace","guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"]},{"group":"Manage cost","pages":["guides/organizations/manage-cost/understanding-cost","guides/organizations/manage-cost/monitor-your-usage","guides/organizations/manage-cost/manage-cost"]},"guides/organizations/manage-organization-members"]},{"group":"Projects","pages":["guides/projects/understanding-projects","guides/projects/create-a-project","guides/projects/manage-api-keys","guides/projects/manage-project-members","guides/projects/manage-projects"]}]},{"tab":"Reference","versions":[{"version":"2025-04 (release candidate)","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2025-04/control-plane/list_indexes","reference/api/2025-04/control-plane/create_index","reference/api/2025-04/control-plane/create_for_model","reference/api/2025-04/control-plane/describe_index","reference/api/2025-04/control-plane/delete_index","reference/api/2025-04/control-plane/configure_index","reference/api/2025-04/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2025-04/data-plane/upsert","reference/api/2025-04/data-plane/upsert_records","reference/api/2025-04/data-plane/fetch","reference/api/2025-04/data-plane/update","reference/api/2025-04/data-plane/delete","reference/api/2025-04/data-plane/list"]},{"group":"Search","pages":["reference/api/2025-04/data-plane/query","reference/api/2025-04/data-plane/search_records"]},{"group":"Imports","pages":["reference/api/2025-04/data-plane/start_import","reference/api/2025-04/data-plane/list_imports","reference/api/2025-04/data-plane/describe_import","reference/api/2025-04/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2025-04/control-plane/list_collections","reference/api/2025-04/control-plane/create_collection","reference/api/2025-04/control-plane/describe_collection","reference/api/2025-04/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2025-04/inference/generate-embeddings"]},{"group":"Rerank","pages":["reference/api/2025-04/inference/rerank"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-04/assistant/list_assistants","reference/api/2025-04/assistant/create_assistant","reference/api/2025-04/assistant/describe_assistant","reference/api/2025-04/assistant/update_assistant","reference/api/2025-04/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-04/assistant/list_files","reference/api/2025-04/assistant/upload_file","reference/api/2025-04/assistant/describe_file","reference/api/2025-04/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-04/assistant/chat_assistant","reference/api/2025-04/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-04/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-04/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2025-01 (latest)","default":true,"groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2025-01/control-plane/list_indexes","reference/api/2025-01/control-plane/create_index","reference/api/2025-01/control-plane/create_for_model","reference/api/2025-01/control-plane/describe_index","reference/api/2025-01/control-plane/delete_index","reference/api/2025-01/control-plane/configure_index","reference/api/2025-01/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2025-01/data-plane/upsert","reference/api/2025-01/data-plane/upsert_records","reference/api/2025-01/data-plane/fetch","reference/api/2025-01/data-plane/update","reference/api/2025-01/data-plane/delete","reference/api/2025-01/data-plane/list"]},{"group":"Search","pages":["reference/api/2025-01/data-plane/query","reference/api/2025-01/data-plane/search_records"]},{"group":"Imports","pages":["reference/api/2025-01/data-plane/start_import","reference/api/2025-01/data-plane/list_imports","reference/api/2025-01/data-plane/describe_import","reference/api/2025-01/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2025-01/control-plane/list_collections","reference/api/2025-01/control-plane/create_collection","reference/api/2025-01/control-plane/describe_collection","reference/api/2025-01/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2025-01/inference/generate-embeddings"]},{"group":"Rerank","pages":["reference/api/2025-01/inference/rerank"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-10","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-10/control-plane/list_indexes","reference/api/2024-10/control-plane/create_index","reference/api/2024-10/control-plane/describe_index","reference/api/2024-10/control-plane/delete_index","reference/api/2024-10/control-plane/configure_index","reference/api/2024-10/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-10/data-plane/upsert","reference/api/2024-10/data-plane/query","reference/api/2024-10/data-plane/fetch","reference/api/2024-10/data-plane/update","reference/api/2024-10/data-plane/delete","reference/api/2024-10/data-plane/list"]},{"group":"Imports","pages":["reference/api/2024-10/data-plane/start_import","reference/api/2024-10/data-plane/list_imports","reference/api/2024-10/data-plane/describe_import","reference/api/2024-10/data-plane/cancel_import"]},{"group":"Backups","pages":["reference/api/2024-10/control-plane/list_collections","reference/api/2024-10/control-plane/create_collection","reference/api/2024-10/control-plane/describe_collection","reference/api/2024-10/control-plane/delete_collection"]}]},{"group":"Inference","pages":["reference/api/2024-10/inference/generate-embeddings","reference/api/2024-10/inference/rerank"]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-07","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-10/control-plane/list_indexes","reference/api/2024-10/control-plane/create_index","reference/api/2024-10/control-plane/describe_index","reference/api/2024-10/control-plane/delete_index","reference/api/2024-10/control-plane/configure_index","reference/api/2024-10/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-07/data-plane/upsert","reference/api/2024-07/data-plane/query","reference/api/2024-07/data-plane/fetch","reference/api/2024-07/data-plane/update","reference/api/2024-07/data-plane/delete","reference/api/2024-07/data-plane/list"]},{"group":"Backups","pages":["reference/api/2024-07/control-plane/list_collections","reference/api/2024-07/control-plane/create_collection","reference/api/2024-07/control-plane/describe_collection","reference/api/2024-07/control-plane/delete_collection"]}]},{"group":"Inference","pages":[{"group":"Embed","pages":["reference/api/2024-10/inference/generate-embeddings"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]},{"version":"2024-04","groups":[{"group":"APIs","pages":["reference/api/introduction","reference/api/authentication","reference/api/versioning",{"group":"Limits","pages":["reference/api/database-limits","reference/api/inference-limits","reference/api/assistant-limits","reference/api/known-limitations"]},"reference/api/errors"]},{"group":"Database","pages":[{"group":"Indexes","pages":["reference/api/2024-04/control-plane/list_indexes","reference/api/2024-04/control-plane/create_index","reference/api/2024-04/control-plane/describe_index","reference/api/2024-04/control-plane/delete_index","reference/api/2024-04/control-plane/configure_index","reference/api/2024-04/data-plane/describeindexstats"]},{"group":"Vectors","pages":["reference/api/2024-04/data-plane/upsert","reference/api/2024-04/data-plane/query","reference/api/2024-04/data-plane/fetch","reference/api/2024-04/data-plane/update","reference/api/2024-04/data-plane/delete","reference/api/2024-04/data-plane/list"]},{"group":"Backups","pages":["reference/api/2024-04/control-plane/list_collections","reference/api/2024-04/control-plane/create_collection","reference/api/2024-04/control-plane/describe_collection","reference/api/2024-04/control-plane/delete_collection"]}]},{"group":"Assistant","pages":[{"group":"Assistants","pages":["reference/api/2025-01/assistant/list_assistants","reference/api/2025-01/assistant/create_assistant","reference/api/2025-01/assistant/describe_assistant","reference/api/2025-01/assistant/update_assistant","reference/api/2025-01/assistant/delete_assistant"]},{"group":"Files","pages":["reference/api/2025-01/assistant/list_files","reference/api/2025-01/assistant/upload_file","reference/api/2025-01/assistant/describe_file","reference/api/2025-01/assistant/delete_file"]},{"group":"Chat","pages":["reference/api/2025-01/assistant/chat_assistant","reference/api/2025-01/assistant/chat_completion_assistant"]},{"group":"Evaluation","pages":["reference/api/2025-01/assistant/metrics_alignment"]},{"group":"Context snippets","pages":["reference/api/2025-01/assistant/context_assistant"]}]},{"group":"SDKs","pages":["reference/pinecone-sdks","reference/python-sdk","reference/node-sdk","reference/java-sdk","reference/go-sdk","reference/dotnet-sdk","reference/rust-sdk"]},{"group":"Tools","pages":["reference/tools/pinecone-text-client","reference/tools/pinecone-spark-connector"]},{"group":"Architecture","pages":["reference/architecture/serverless-architecture","reference/architecture/pod-based-architecture","reference/architecture/assistant-architecture"]}]}]},{"tab":"Examples","groups":[{"group":"Examples","pages":["examples/notebooks","examples/sample-apps","examples/reference-architectures"]}]},{"tab":"Models","groups":[{"group":"Models","pages":["models/overview"]}]},{"tab":"Integrations","groups":[{"group":"Connect an integration","pages":["integrations/overview",{"group":"Data sources","pages":["integrations/airbyte","integrations/apify","integrations/aryn","integrations/box","integrations/confluent","integrations/databricks","integrations/datavolo","integrations/elasticsearch","integrations/estuary","integrations/fleak","integrations/flowise","integrations/gathr","integrations/matillion","integrations/nexla","integrations/redpanda","integrations/snowflake","integrations/streamnative","integrations/unstructured"]},{"group":"Frameworks","pages":["integrations/amazon-bedrock","integrations/amazon-sagemaker","integrations/cloudera","integrations/context-data","integrations/haystack","integrations/instill","integrations/langchain","integrations/llamaindex","integrations/nuclia","integrations/octoai"]},{"group":"Infrastructure","pages":["integrations/aws","integrations/azure","integrations/gcp","integrations/github-copilot","integrations/pulumi","integrations/terraform","integrations/vercel"]},{"group":"Models","pages":["integrations/anyscale","integrations/cohere","integrations/voyage","integrations/hugging-face-inference-endpoints","integrations/jina","integrations/openai","integrations/twelve-labs"]},{"group":"Observability","pages":["integrations/datadog","integrations/langtrace","integrations/new-relic","integrations/traceloop","integrations/trulens"]}]},{"group":"Build an integration","pages":["integrations/build-integration/become-a-partner","integrations/build-integration/attribute-usage-to-your-integration","integrations/build-integration/connect-your-users-to-pinecone"]}]},{"tab":"Troubleshooting","groups":[{"group":"Contact support","pages":["troubleshooting/contact-support","troubleshooting/how-to-work-with-support","troubleshooting/pinecone-support-slas"]},{"group":"Account management","pages":["troubleshooting/login-code-issues","troubleshooting/custom-data-processing-agreements","troubleshooting/delete-your-organization","troubleshooting/delete-your-account","troubleshooting/billing-disputes-and-refunds"]},{"group":"Indexes","pages":["troubleshooting/available-cloud-regions","troubleshooting/export-indexes","troubleshooting/wait-for-index-creation","troubleshooting/select-index-type-and-size","troubleshooting/how-and-when-to-increase-index-size","troubleshooting/use-namespaces-instead-of-several-indexes","troubleshooting/namespaces-vs-metadata-filtering","troubleshooting/restrictions-on-index-names","troubleshooting/return-all-vectors-in-an-index","troubleshooting/vertically-downscaling","troubleshooting/pods-are-full"]},{"group":"Data","pages":["troubleshooting/parallel-queries","troubleshooting/minimize-latencies","troubleshooting/embedding-values-changed-when-upserted","troubleshooting/how-and-when-to-add-replicas","troubleshooting/keep-customer-data-separate","troubleshooting/limitations-of-querying-by-id","troubleshooting/create-and-manage-vectors-with-metadata","troubleshooting/metadata-reconfiguration","troubleshooting/metadata-string-value-returned-as-datetime","troubleshooting/remove-metadata-field"]},{"group":"Common errors","pages":["troubleshooting/index-creation-error-missing-spec","troubleshooting/index-creation-error-max-serverless","troubleshooting/serverless-index-connection-errors","troubleshooting/error-handshake-read-failed","troubleshooting/pinecone-attribute-errors-with-langchain","troubleshooting/error-cannot-import-name-pinecone","troubleshooting/module-pinecone-has-no-attribute-init"]},{"group":"Miscellaneous","pages":["troubleshooting/best-practices","troubleshooting/differences-between-lexical-semantic-search","troubleshooting/nodejs-troubleshooting","troubleshooting/cors-issues","troubleshooting/debug-model-vs-pinecone-recall-issues","troubleshooting/non-indexed-field-filter-issues","troubleshooting/unable-to-pip-install"]}]},{"tab":"Releases","groups":[{"group":"Release notes","pages":["release-notes/2025","release-notes/2024","release-notes/2023","release-notes/2022"]},{"group":"Policies","pages":["release-notes/feature-availability"]}]}]},"footer":{"socials":{"twitter":"https://twitter.com/pinecone?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor","linkedin":"https://www.linkedin.com/company/pinecone-io/"}},"seo":{"metatags":{"og:image":"https://www.pinecone.io/images/docs_og_image.png","twitter:title":"The vector database to build knowledgeable AI | Pinecone","twitter:description":"Search through billions of items for similar matches to any object, in milliseconds. It's the next generation of search, an API call away.","twitter:site":"@pinecone","twitter:image":"https://www.pinecone.io/images/docs_og_image.png"},"indexing":"all"},"redirects":[{"source":"/reference/api/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/guides/indexes/user-namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/reference/quotas-and-limits","destination":"/reference/api/database-limits"},{"source":"/reference/known-limitations","destination":"/reference/api/known-limitations"},{"source":"/reference/object-identifiers","destination":"/reference/api/database-limits#identifier-limits"},{"source":"/guides/indexes/scale-pod-based-indexes","destination":"/guides/indexes/pods/scale-pod-based-indexes"},{"source":"/guides/indexes/choose-a-pod-type-and-size","destination":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"source":"/guides/indexes/configure-an-index","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/guides/indexes/migrate-a-pod-based-index-to-serverless","destination":"/guides/indexes/pods/migrate-a-pod-based-index-to-serverless"},{"source":"/guides/indexes/tag-an-index","destination":"/guides/indexes/manage-indexes#configure-index-tags"},{"source":"/guides/indexes/prevent-index-deletion","destination":"/guides/indexes/manage-indexes#configure-deletion-protection"},{"source":"/guides/indexes/delete-an-index","destination":"/guides/indexes/manage-indexes#delete-an-index"},{"source":"/guides/indexes/view-index-information","destination":"/guides/indexes/manage-indexes"},{"source":"/guides/indexes/understanding-backups-and-collections","destination":"/guides/indexes/understanding-backups"},{"source":"/reference/api/2025-01/assistant/create_file","destination":"/reference/api/2025-01/assistant/upload_file"},{"source":"/troubleshooting/delete-a-namespace","destination":"/guides/data/delete-data#delete-an-entire-namespace"},{"source":"/troubleshooting/handle-deletes-by-metadata","destination":"/guides/data/delete-data#delete-records-in-batches"},{"source":"/reference/api/2025-01/assistant/get_assistant","destination":"/reference/api/2025-01/assistant/describe_assistant"},{"source":"/guides/assistant/delete-file","destination":"/guides/assistant/manage-files#delete-a-file"},{"source":"/guides/assistant/upload-a-file","destination":"/guides/assistant/manage-files"},{"source":"/guides/assistant/check-file-status","destination":"/guides/assistant/manage-files#get-the-status-of-a-file"},{"source":"/guides/assistant/list-files","destination":"/guides/assistant/manage-files#list-files-in-an-assistant"},{"source":"/guides/assistant/update-an-assistant","destination":"/guides/assistant/manage-assistants"},{"source":"/guides/assistant/check-assistant-status","destination":"/guides/assistant/manage-assistants#get-the-status-of-an-assistant"},{"source":"/guides/assistant/list-assistants","destination":"/guides/assistant/manage-assistants#list-assistants-for-a-project"},{"source":"/guides/assistant/delete-assistant","destination":"/guides/assistant/manage-assistants#delete-an-assistant"},{"source":"/guides/data/filter-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/guides/operations/local-testing","destination":"/guides/operations/local-development"},{"source":"/guides/get-started/integrated-inference","destination":"/guides/inference/integrated-inference"},{"source":"/guides/data/get-an-index-endpoint","destination":"/guides/data/target-an-index"},{"source":"/reference/api/2024-04/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/reference/api/2024-07/assistant/*","destination":"/reference/api/2025-01/assistant/*"},{"source":"/guides/get-started/implement-multitenancy","destination":"/guides/indexes/implement-multitenancy"},{"source":"/guides/get-started/authentication","destination":"/reference/api/authentication"},{"source":"/guides/get-started/key-concepts","destination":"/guides/get-started/glossary"},{"source":"/guides/assistant/install-assistant-plugin","destination":"/reference/python-sdk#install-the-pinecone-assistant-python-plugin"},{"source":"/guides/assistant/use-existing-assistant","destination":"/guides/assistant/chat-with-assistant"},{"source":"/guides/operations/enable-aws-privatelink","destination":"/guides/operations/connect-to-aws-privatelink"},{"source":"/reference/security","destination":"/guides/operations/understanding-security"},{"source":"/guides/indexes/understanding-collections","destination":"/guides/indexes/pods/understanding-collections"},{"source":"/reference/pinecone-clients","destination":"/reference/pinecone-sdks"},{"source":"/reference/go-client","destination":"/reference/go-sdk"},{"source":"/reference/python-client","destination":"/reference/python-sdk"},{"source":"/reference/node-client","destination":"/reference/node-sdk"},{"source":"/reference/java-client","destination":"/reference/java-sdk"},{"source":"/release-notes/api-lifecycle-policy","destination":"/release-notes/feature-availability"},{"source":"/guides/indexes/configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/guides/operations/migrate-to-the-new-api","destination":"/guides/indexes/migrate-a-pod-based-index-to-serverless"},{"source":"/reference/api/control-plane/*","destination":"/reference/api/2024-07/control-plane/*"},{"source":"/reference/api/data-plane/*","destination":"/reference/api/2024-07/data-plane/*"},{"source":"/reference/api/inference/*","destination":"/reference/api/2024-07/inference/*"},{"source":"/legacy/reference/*","destination":"/reference/*"},{"source":"/tools/reference-architectures","destination":"/examples/reference-architectures"},{"source":"/tools/pinecone-utilities","destination":"/reference/tools/pinecone-datasets"},{"source":"/guides/inference/understanding-inference-api","destination":"/guides/inference/understanding-inference"},{"source":"/guides/indexes/migrate-a-legacy-starter-index-to-serverless","destination":"/guides/indexes/migrate-a-pod-based-index-to-serverless"},{"source":"/docs/filter-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/reference/community-libraries","destination":"/reference/pinecone-sdks#community-clients"},{"source":"/integrations/build-integration/register-your-integration","destination":"/integrations/build-integration/attribute-usage-to-your-integration"},{"source":"/integrations/build-integration/connect-to-pinecone-with-embedded-widget","destination":"/integrations/build-integration/connect-your-users-to-pinecone"},{"source":"/guides/get-started/examples","destination":"/examples/notebooks"},{"source":"/reference/quotas-and-rate-limits","destination":"/reference/quotas-and-limits"},{"source":"/troubleshooting/waiting-for-index-creation","destination":"/troubleshooting/wait-for-index-creation"},{"source":"/troubleshooting/using-namespaces-vs-metadata-filtering","destination":"/troubleshooting/namespaces-vs-metadata-filtering"},{"source":"/troubleshooting/using-namespaces-instead-of-several-indexes","destination":"/troubleshooting/use-namespaces-instead-of-several-indexes"},{"source":"/troubleshooting/support-slas","destination":"/troubleshooting/pinecone-support-slas"},{"source":"/troubleshooting/selecting-index-type-and-size","destination":"/troubleshooting/select-index-type-and-size.mdx"},{"source":"/troubleshooting/returning-all-vectors-in-an-index","destination":"/troubleshooting/return-all-vectors-in-an-index"},{"source":"/troubleshooting/removing-metadata-field","destination":"/troubleshooting/remove-metadata-field"},{"source":"/troubleshooting/querying-by-id","destination":"/troubleshooting/limitations-of-querying-by-id"},{"source":"/troubleshooting/keeping-customer-data-separate","destination":"/troubleshooting/keep-customer-data-separate"},{"source":"/troubleshooting/index-creation-error-spec","destination":"/troubleshooting/index-creation-error-missing-spec"},{"source":"/troubleshooting/increasing-index-size","destination":"/troubleshooting/how-and-when-to-increase-index-size"},{"source":"/troubleshooting/how-to-delete-account","destination":"/troubleshooting/delete-your-account"},{"source":"/troubleshooting/how-to-contact-support","destination":"/troubleshooting/contact-support"},{"source":"/troubleshooting/handling-deletes-by-metadata","destination":"/troubleshooting/handle-deletes-by-metadata"},{"source":"/troubleshooting/exporting-indexes","destination":"/troubleshooting/export-indexes"},{"source":"/troubleshooting/cannot-import-name-pinecone","destination":"/troubleshooting/error-cannot-import-name-pinecone"},{"source":"/troubleshooting/deleting-a-namespace","destination":"/troubleshooting/delete-a-namespace"},{"source":"/troubleshooting/debugging-recall-issues","destination":"/troubleshooting/debug-model-vs-pinecone-recall-issues"},{"source":"/troubleshooting/adding-replicas","destination":"/troubleshooting/how-and-when-to-add-replicas"},{"source":"/troubleshooting/creating-and-managing-vectors-with-metadata","destination":"/troubleshooting/create-and-manage-vectors-with-metadata"},{"source":"/guides/organizations/manage-cost/managing-cost","destination":"/guides/organizations/manage-cost/manage-cost"},{"source":"/guides/organizations/manage-cost/monitoring-your-usage","destination":"/guides/organizations/manage-cost/monitor-your-usage"},{"source":"/guides/data/using-public-pinecone-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/guides/data/creating-and-loading-private-datasets","destination":"/guides/data/create-and-load-private-datasets"},{"source":"/guides/operations/moving-to-production","destination":"/guides/operations/move-to-production"},{"source":"/guides/data/filtering-with-metadata","destination":"/guides/data/understanding-metadata"},{"source":"/guides/indexes/choosing-a-pod-type-and-size","destination":"/guides/indexes/pods/choose-a-pod-type-and-size"},{"source":"/guides/indexes/using-namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/guides/getting-started/overview","destination":"/guides/get-started/quickstart"},{"source":"/guides/indexes/convert-a-starter-index-to-serverless","destination":"/guides/indexes/convert-a-gcp-starter-index-to-serverless"},{"source":"/legacy/data/*","destination":"/guides/data/*"},{"source":"/guides/getting-started/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/guides/getting-started/authentication","destination":"/guides/get-started/authentication"},{"source":"/legacy/getting-started/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/legacy/getting-started/authentication","destination":"/guides/get-started/authentication"},{"source":"/legacy/indexes/*","destination":"/guides/indexes/*"},{"source":"/legacy/integrations/*","destination":"/integrations/*"},{"source":"/legacy/libraries/*","destination":"/tools/*"},{"source":"/legacy/operations/*","destination":"/guides/operations/*"},{"source":"/legacy/organizations/*","destination":"/guides/organizations/*"},{"source":"/legacy/projects/*","destination":"/guides/projects/*"},{"source":"/legacy/architecture","destination":"/reference/architecture/pod-based-architecture"},{"source":"/legacy/limits","destination":"/reference/quotas-and-limits"},{"source":"/legacy/security","destination":"/operations/understanding-security"},{"source":"/integrations/build-integration/attribute-api-activity","destination":"/integrations/build-integration/register-your-integration"},{"source":"/troubleshooting/downgrade-your-organization","destination":"/guides/organization/manage-billing/change-your-billing-plan"},{"source":"/troubleshooting/pinecone-has-no-attribute-from-texts","destination":"/troubleshooting/pinecone-attribute-errors-with-langchain"},{"source":"/reference/limits","destination":"/reference/quotas-and-limits"},{"source":"/guides/operations/troubleshooting","destination":"/troubleshooting/"},{"source":"/guides/projects/add-members-to-projects-and-organizations","destination":"/guides/projects/manage-project-members"},{"source":"https://docs.pinecone.io/","destination":"https://docs.pinecone.io/get-started/overview"},{"source":"https://docs.pinecone.io/home","destination":"https://docs.pinecone.io/get-started/overview"},{"source":"/guides/organizations/configure-single-sign-on/overview","destination":"/guides/organizations/configure-single-sign-on/okta"},{"source":"/docs/quickstart","destination":"/guides/get-started/quickstart"},{"source":"/docs/overview","destination":"/guides/get-started/quickstart"},{"source":"/docs/authentication","destination":"/guides/get-started/authentication"},{"source":"/docs/new-api","destination":"/reference/api"},{"source":"/docs/organizations","destination":"/guides/organizations/understanding-organizations"},{"source":"/docs/manage-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"source":"/docs/setting-up-aws-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-aws-marketplace"},{"source":"/docs/setting-up-azure-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-azure-marketplace"},{"source":"/docs/setting-up-gcp-marketplace-billing","destination":"/guides/organizations/manage-billing/setting-up-billing-through-gcp-marketplace"},{"source":"/docs/changing-your-billing-plan","destination":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"source":"/docs/subscription-status","destination":"/guides/organizations/manage-billing/changing-your-billing-plan"},{"source":"/docs/manage-cost","destination":"/guides/organizations/manage-cost/understanding-cost"},{"source":"/docs/understanding-cost","destination":"/guides/organizations/manage-cost/understanding-cost"},{"source":"/docs/monitoring-usage","destination":"/guides/organizations/manage-cost/monitor-your-usage"},{"source":"/docs/managing-cost","destination":"/guides/organizations/manage-cost/manage-cost"},{"source":"/docs/configure-single-sign-on","destination":"/guides/organizations/configure-single-sign-on/okta"},{"source":"/docs/projects","destination":"/guides/projects/understanding-projects"},{"source":"/docs/create-project","destination":"/guides/projects/create-a-project"},{"source":"/docs/add-users-to-projects-and-organizations","destination":"/guides/projects/add-members-to-projects-and-organizations"},{"source":"/docs/rename-project","destination":"/guides/projects/rename-a-project"},{"source":"/guides/projects/set-a-project-pod-limit","destination":"/reference/quotas-and-limits#pods-per-project"},{"source":"/docs/change-project-pod-limit","destination":"/reference/quotas-and-limits#pods-per-project"},{"source":"/docs/indexes","destination":"/guides/indexes/understanding-indexes"},{"source":"/docs/create-an-index","destination":"/guides/indexes/create-an-index"},{"source":"/docs/view-index-information","destination":"/guides/indexes/view-index-information"},{"source":"/docs/back-up-an-index","destination":"/guides/indexes/back-up-an-index"},{"source":"/docs/delete-an-index","destination":"/guides/indexes/delete-an-index"},{"source":"/docs/namespaces","destination":"/guides/indexes/understanding-indexes#namespaces"},{"source":"/docs/choosing-index-type-and-size","destination":"/guides/indexes/choose-a-pod-type-and-size"},{"source":"/docs/configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/scaling-indexes","destination":"/guides/indexes/scale-pod-based-indexes"},{"source":"/docs/collections","destination":"/guides/indexes/pods/understanding-collections"},{"source":"/docs/convert-starter-to-serverless","destination":"/guides/indexes/convert-a-starter-index-to-serverless"},{"source":"/docs/upsert-data","destination":"/guides/data/upsert-data"},{"source":"/docs/query-data","destination":"/guides/data/query-data"},{"source":"/docs/fetch-data","destination":"/guides/data/fetch-data"},{"source":"/docs/update-data","destination":"/guides/data/update-data"},{"source":"/docs/delete-data","destination":"/guides/data/delete-data"},{"source":"/docs/get-record-ids","destination":"/guides/data/list-record-ids"},{"source":"/docs/get-index-endpoint","destination":"/guides/data/get-an-index-endpoint"},{"source":"/docs/metadata-filtering","destination":"/guides/data/understanding-metadata"},{"source":"/docs/manage-rag-documents","destination":"/guides/data/manage-rag-documents"},{"source":"/docs/hybrid-search-and-sparse-vectors","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/encode-sparse-vectors","destination":"/guides/data/encode-sparse-vectors"},{"source":"/docs/upsert-sparse-dense-vectors","destination":"/guides/data/upsert-sparse-dense-vectors"},{"source":"/docs/query-sparse-dense-vectors","destination":"/guides/data/query-sparse-dense-vectors"},{"source":"/docs/datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/using-public-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/creating-datasets","destination":"/guides/data/create-and-load-private-datasets"},{"source":"/docs/moving-to-production","destination":"/guides/operations/move-to-production"},{"source":"/docs/performance-tuning","destination":"/guides/operations/performance-tuning"},{"source":"/docs/monitoring","destination":"/guides/operations/monitoring"},{"source":"/docs/troubleshooting","destination":"/guides/operations/troubleshooting"},{"source":"/docs/multitenancy","destination":"/guides/operations/understanding-multitenancy"},{"source":"/docs/common-errors","destination":"/troubleshooting"},{"source":"guides/operations/common-errors","destination":"/troubleshooting"},{"source":"/docs/amazon-bedrock","destination":"/integrations/amazon-bedrock"},{"source":"/guides/integrations/setting-up-amazon-bedrock","destination":"/integrations/amazon-bedrock"},{"source":"/docs/sagemaker","destination":"/integrations/sagemaker"},{"source":"/docs/cohere","destination":"/integrations/cohere"},{"source":"/guides/integrations/setting-up-cohere","destination":"/integrations/cohere"},{"source":"/docs/databricks","destination":"/integrations/databricks"},{"source":"/guides/integrations/setting-up-databricks","destination":"/integrations/databricks"},{"source":"/docs/datadog","destination":"/integrations/datadog"},{"source":"/guides/integrations/setting-up-datadog","destination":"/integrations/datadog"},{"source":"/docs/elastic","destination":"/integrations/elastic"},{"source":"/docs/haystack","destination":"/integrations/haystack"},{"source":"/guides/integrations/setting-up-haystack","destination":"integrations/haystack"},{"source":"/docs/hugging-face-endpoints","destination":"/integrations/hugging-face-inference-endpoints"},{"source":"/guides/integrations/setting-up-hugging-face-endpoints","destination":"/integrations/hugging-face-inference-endpoints"},{"source":"/guides/integrations/setting-up-langchain","destination":"/guides/integrations/langchain"},{"source":"/docs/llamaindex","destination":"/integrations/llamaindex"},{"source":"/guides/integrations/setting-up-llamaindex","destination":"/integratations/llamaindex"},{"source":"/docs/openai","destination":"/integratations/openai"},{"source":"/guides/integrations/setting-up-openai","destination":"/integratations/openai"},{"source":"/docs/trulens","destination":"/integratations/trulens"},{"source":"/guides/integrations/setting-up-trulens","destination":"/integratations/trulens"},{"source":"/docs/release-notes","destination":"release-notes/2024"},{"source":"/docs/python-client","destination":"/reference/python-client"},{"source":"/docs/node-client","destination":"/reference/node-client"},{"source":"/docs/architecture","destination":"/reference/architecture/serverless-architecture"},{"source":"/docs/security","destination":"/operations/understanding-security"},{"source":"/docs/limits","destination":"/reference/quotas-and-limits"},{"source":"/reference/upsert","destination":"/reference/api/data-plane/upsert"},{"source":"/reference/query","destination":"/reference/api/data-plane/query"},{"source":"/reference/fetch","destination":"/reference/api/data-plane/fetch"},{"source":"/reference/update","destination":"/reference/api/data-plane/update"},{"source":"/reference/delete","destination":"/reference/api/data-plane/delete"},{"source":"/reference/alt_delete","destination":"/reference/api/data-plane/delete"},{"source":"/reference/list","destination":"/reference/api/data-plane/list"},{"source":"/reference/describe_index_stats","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/reference/alt_describe_index_stats","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/reference/list_indexes","destination":"/reference/api/control-plane/list_indexes"},{"source":"/reference/create_index","destination":"/reference/api/control-plane/create_index"},{"source":"/reference/describe_index","destination":"/reference/api/control-plane/describe_index"},{"source":"/reference/delete_index","destination":"/reference/api/control-plane/delete_index"},{"source":"/reference/configure_index","destination":"/reference/api/control-plane/configure_index"},{"source":"/reference/list_collections","destination":"/reference/api/control-plane/list_collections"},{"source":"/reference/create_collection","destination":"/reference/api/control-plane/create_collection"},{"source":"/reference/describe_collection","destination":"/reference/api/control-plane/describe_collection"},{"source":"/reference/delete_collection","destination":"/reference/api/control-plane/delete_collection"},{"source":"/page/examples","destination":"/examples/notebooks"},{"source":"/page/libraries","destination":"/tools/pinecone-utilities"},{"source":"/v1/*","destination":"/legacy/overview"},{"source":"/docs/manage-indexes","destination":"/guides/indexes/understanding-indexes"},{"source":"/docs/manage-indexes#list-all-indexes-in-a-project","destination":"/guides/indexes/manage-indexes"},{"source":"/docs/manage-indexes#get-information-about-an-index","destination":"/guides/indexes/manage-indexes"},{"source":"/docs/manage-indexes#create-a-serverless-index","destination":"/guides/indexes/create-an-index#create-a-serverless-index"},{"source":"/docs/manage-indexes#create-a-pod-based-index","destination":"/guides/indexes/create-an-index#create-a-pod-based-index"},{"source":"/docs/manage-indexes#create-a-starter-index","destination":"/guides/indexes/create-an-index#create-a-starter-index"},{"source":"/docs/manage-indexes#create-an-index-from-a-collection","destination":"/guides/indexes/create-an-index#create-an-index-from-a-collection"},{"source":"/docs/manage-indexes#configure-pod-based-indexes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#change-pod-sizes","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#check-the-status-of-a-pod-size-change","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#add-replicas","destination":"/guides/indexes/pods/manage-pod-based-indexes"},{"source":"/docs/manage-indexes#selective-metadata-indexing","destination":"/guides/indexes/pods/manage-pod-based-indexes#selective-metadata-indexing"},{"source":"/docs/manage-indexes#delete-an-index","destination":"/guides/indexes/manage-indexes#delete-an-index"},{"source":"/docs/convert-to-severless","destination":"/guides/indexes/convert-a-starter-index-to-serverless"},{"source":"/docs/pinecone-public-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/metadata-filtered-search","destination":"/guides/data/understanding-metadata"},{"source":"/docs/insert-data","destination":"/guides/data/upsert-data"},{"source":"/docs/global-api-quickstart","destination":"/guides/get-started/quickstart"},{"source":"/docs/starter-environment","destination":"/guides/indexes/understanding-indexes#starter-indexes"},{"source":"/reference/describe_index_stats_post","destination":"/reference/api/data-plane/describeindexstats"},{"source":"/docs/manage-data","destination":"/guides/data/upsert-data"},{"source":"/docs/manage-projects","destination":"/guides/projects/manage-projects"},{"source":"/guides/rename-a-project","destination":"/guides/projects/manage-projects"},{"source":"/installation","destination":"/reference/python-clients"},{"source":"/page/example-applications","destination":"/examples/notebooks"},{"source":"/docs/libraries","destination":"/tools/pinecone-utilities"},{"source":"/integrations","destination":"/integrations/overview"},{"source":"/docs/manage-datasets","destination":"/guides/data/use-public-pinecone-datasets"},{"source":"/docs/basic-hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"basic-hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/node-client","destination":"/reference/node-client"},{"source":"/docs/api-reference","destination":"/reference/api/introduction"},{"source":"/docs/sdk","destination":"/reference/python-clients"},{"source":"/docs/image-similarity-search","destination":"/examples/notebooks"},{"source":"/docs/semantic-search-text-typescript","destination":"/examples/sample-apps"},{"source":"/docs/gen-qa-openai","destination":"/examples/notebooks"},{"source":"/docs/personalized-content-recommendations-typescript","destination":"/examples/notebooks"},{"source":"/docs/langchain-retrieval-agent","destination":"/examples/notebooks"},{"source":"/docs/langchain-retrieval-agent-typescript","destination":"/examples/sample-apps"},{"source":"/docs/langchain-retrieval-augmentation","destination":"/examples/notebooks"},{"source":"/docs/gpt-4-langchain-docs","destination":"/examples/notebooks"},{"source":"/docs/extractive-question-answering","destination":"/examples/notebooks"},{"source":"/docs/abstractive-question-answering","destination":"/examples/notebooks"},{"source":"/docs/table-qa","destination":"/examples/notebooks"},{"source":"/docs/ecommerce-search","destination":"/examples/notebooks"},{"source":"/docs/ner-search","destination":"/examples/notebooks"},{"source":"/docs/video-search","destination":"/examples/notebooks"},{"source":"/docs/satellite-image-search","destination":"/examples/notebooks"},{"source":"/docs/it-threat-detection","destination":"/examples/notebooks"},{"source":"/docs/document-deduplication","destination":"/examples/notebooks"},{"source":"/docs/movie-recommender","destination":"/examples/notebooks"},{"source":"/docs/audio-search","destination":"/examples/notebooks"},{"source":"/docs/time-series","destination":"/examples/notebooks"},{"source":"/docs/product-recommendation-engine","destination":"/examples/notebooks"},{"source":"/docs/upserting-sparse-dense-records","destination":"/guides/data/upsert-sparse-dense-vectors"},{"source":"/reference/manage-indexes/hybrid-search","destination":"/guides/data/understanding-hybrid-search"},{"source":"/docs/weighting-sparse-and-dense-vectors","destination":"/guides/data/query-sparse-dense-vectors"},{"source":"/troubleshooting/serverless-controller-error","destination":"/troubleshooting/serverless-index-connection-errors"},{"source":"/new-api","destination":"/reference/api"},{"source":"/guides/operations/understanding-multitenancy","destination":"/guides/indexes/implement-multitenancy"},{"source":"troubleshooting/delete-your-account","destination":"/troubleshooting/delete-your-organization"},{"source":"/guides/inference/understanding-reranking","destination":"/guides/inference/understanding-inference#rerank-2"}],"integrations":{"gtm":{"tagId":"GTM-5RCSPVG"},"heap":{"appId":"3879495182"},"koala":{"publicApiKey":"pk_dedf7f497457f685cec291ae4d5002e828c1"},"posthog":{"apiKey":"phc_ns4m5RmmXmccva7A45MBGnJM2LSPGE3hG1YOmxBO4Pd"}}},"pageMetadata":{"title":"Haystack","description":"Using Haystack and Pinecone to keep your NLP-driven apps up-to-date","href":"/integrations/haystack"}}},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"}},"gitSource":{"type":"github","owner":"pinecone-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false},"banner":null},"__N_SSG":true},"page":"/_sites/[subdomain]/[[...slug]]","query":{"subdomain":"docs.pinecone.io","slug":["integrations","haystack"]},"buildId":"hzTwpsMqEXMyTe6T_hPSJ","isFallback":false,"isExperimentalCompile":false,"gsp":true,"scriptLoader":[]}</script></html></body></html>