Skip to content

Pinecone sdk 10.0.0 migration - #614

Merged
jennapederson merged 14 commits into
mainfrom
chore/pinecone-sdk-10.0.0-migration
Sep 3, 2026
Merged

Pinecone sdk 10.0.0 migration#614
jennapederson merged 14 commits into
mainfrom
chore/pinecone-sdk-10.0.0-migration

Conversation

@jennapederson

@jennapedersonjennapederson commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Problem

Migrate notebooks on https://docs.pinecone.io/examples/notebooks to python SDK 10.0.0.

Solution

Bumped versions, updated non-integrated inference notebooks to use Docs API, clean up, minor bug fixes.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
  • Infrastructure change (CI configs, etc)
  • Non-code change (docs, etc)
  • None of the above: (explain here)

Test Plan

Have all been run locally via Claude.


Note

Low Risk
Documentation and GitHub Actions validation only; no production runtime or auth logic changes.

Overview
This slice of the Pinecone Python SDK 10.0.0 notebook work updates CI and one docs example.

Notebook:cascading-retrieval.ipynb now installs pinecone==10.0.0 instead of 9.1.0 (with pinecone-notebooks==0.1.1 unchanged).

Link checker:aistudio.google.com is added to the ignore list so CI does not fail on URLs that redirect to Google sign-in.

Pinning checker: A new join_continuations helper merges backslash-continued lines in code cells before scanning %pip install lines, so multi-line installs (e.g. one package per line) are validated as a single command and pinned versions are detected correctly.

Reviewed by Cursor Bugbot for commit 9b8990b. Bugbot is set up for automated code reviews on this repo. Configure here.

… 10.0.0
Converts index creation/upsert/search to the new schema-based Documents API
(pc.indexes.create with SchemaBuilder, index.documents.upsert/search) and
fixes a rerank response breaking change (document is now a plain dict).
Also fixes a stale refs/heads/master data URL and swaps a describe_index_stats
freshness check for one that polls document search directly, since document
upserts aren't visible to search as soon as the vector count updates.
Verified end-to-end against a live Pinecone project on pinecone==10.0.0rc1
before bumping the pin to 10.0.0.
… namespace
pc.preview.indexes/pc.preview.index graduated to pc.indexes/pc.index in
pinecone 10.0.0, and pinecone.preview.SchemaBuilder moved to a top-level
import. Also fixes idx.documents.batch_upsert(max_workers=...) which was
renamed to max_concurrency in the GA API.
Verified sections 0-15 and the search/filter mechanics of section 16
end-to-end against a live Pinecone project on pinecone==10.0.0rc1 (with
the two Gemini embedding calls stubbed, since GOOGLE_API_KEY isn't
available in this session) before bumping the pin to 10.0.0.
No API changes needed - create_index_for_model, pc.Index, upsert_records,
search, and delete_index are all unchanged in 10.0.0. Verified end-to-end
against a live Pinecone project (under a temporary test index name) on
pinecone==10.0.0rc1 before bumping the pin to 10.0.0. Also fixes two
pre-existing typos (distinguise, invervention) flagged by codespell.
No API changes needed - has_index, create_index_for_model, pc.Index,
upsert_records, search (with rerank), and delete_index are all unchanged
in 10.0.0. Verified end-to-end against a live Pinecone project (under a
temporary test index name) on pinecone==10.0.0rc1 before bumping the pin.
No API changes needed - has_index, create_index_for_model, pc.Index,
upsert_records, search, pc.inference.rerank, and delete_index are all
unchanged in 10.0.0. Verified end-to-end against a live Pinecone project
(under temporary test index names) on pinecone==10.0.0rc1 before bumping
the pin.
No API changes needed - has_index, create_index_for_model, pc.Index,
upsert_records, search, pc.inference.rerank, and delete_index are all
unchanged in 10.0.0. Also switches !pip to %pip for reliable kernel
targeting. Verified the full RAG pipeline end-to-end (upsert, cascading
retrieval, OpenAI generation) against a live Pinecone project on
pinecone==10.0.0rc1 before bumping the pin.
…e 10.0.0
Fixes a real breaking change: index.search() Hit objects only support
bracket access via "id"/"score" in 10.0.0, not the "_id"/"_score" wire
names this notebook used (that alias existed in 7.0.2 but was removed).
Also updates the Claude model from the now-404ing claude-3-5-haiku-latest
to claude-haiku-4-5-20251001 (unrelated to the SDK migration, but needed
for the notebook to run at all).
Verified end-to-end against a live Pinecone project (under temporary test
index names) on pinecone==10.0.0rc1, including the real Claude generation
call, before bumping the pin to 10.0.0.
Updates the Claude model from the now-404ing claude-3-5-haiku-latest to
claude-haiku-4-5-20251001, and fixes a resulting fragility: the newer
model consistently emits a leading text block before its tool_use block,
breaking the single-step demo cell's response.content[0] assumption. Now
scans for the tool_use block explicitly, matching the pattern the
notebook's own run_agent() function already uses.
Verified the full multi-turn, multi-step agentic workflow end-to-end
against a live Pinecone project (under a temporary test index name) on
pinecone==10.0.0rc1, including real web search and Claude tool-use calls,
before bumping the pin to 10.0.0.
Brings it in line with the other notebooks in the repo, which all set
source_tag for usage attribution.
"state-of-the-art" was flagged for time-sensitive language. Swaps in
"red-tailed" (as in red-tailed hawk), which ties into the notebook's own
bird corpus and demonstrates the same tokenizer-splitting behavior.
…o-search
check-pinning.py only regex-matched the first line of a `%pip install \`
continuation, so it flagged the trailing backslash as a fake unpinned
"package" while silently skipping every real package on the continuation
lines. Now joins \-continued lines before parsing.
That blind spot had hidden a real unpinned dependency in
agentic-rag-with-claude.ipynb: duckduckgo-search, which is also deprecated
in favor of ddgs. Migrated to ddgs==9.16.0 (confirmed drop-in: same DDGS
class/import, same .text() signature).
@jennapederson
jennapederson marked this pull request as ready for review September 1, 2026 20:14
@jennapederson
jennapederson requested a review from a team as a code ownerSeptember 1, 2026 20:14
@jennapederson

Copy link
Copy Markdown
ContributorAuthor

Addressed most linting failures. Remaining are ones we need to ignore at this point or related to SDK not being published yet.

@arjunpatel7arjunpatel7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many of these change are sdk bumps with minimal potential issues for errata. Approved!

@jennapederson
jennapederson merged commit 13cf966 into mainSep 3, 2026
15 of 26 checks passed
@jennapederson
jennapederson deleted the chore/pinecone-sdk-10.0.0-migration branch September 3, 2026 15:33
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jennapederson@arjunpatel7