New package: @chatcops/store-upstash-vector
維護者通常 1 天內回覆
評估
這個 Issue 還沒有評估資料。
描述
@chatcops/core now has a VectorStore interface (#333). This adds a new package with a VectorStore backed by Upstash Vector, for serverless sites (Vercel, Netlify) that already use Upstash Redis through @chatcops/store-redis.
What every vector store needs
- Implement
VectorStorefrom@chatcops/core(packages/core/src/storage/types.ts):dimensions,upsert,query(cosine similarity, best first),deleteBySource, andkeywordQuerywhere the backend has full-text search. - Expose it as
vectorson the storage the package already returns, sorunStorageConformancepicks it up. Its vector section (inpackages/core/src/testing/conformance.ts) is the spec: run it from the package'stests/conformance.test.ts, with at least 4 dimensions. - Filters follow
MetadataFilter: every key must match, a value matches only the same type (1is not"1"), an array means any of its values, and a record without the key never matches. memoryVectors(packages/core/src/storage/memory-vectors.ts) is the reference implementation, andsegmentWordsthere splits text into words withIntl.Segmenter(use it so Japanese and Chinese keyword search works).- Add a short section for your store under "Vector stores" in
website/src/content/docs/server/storage.mdx, and a changeset for the package (minor).
For this package
- Start from
packages/store-redisfor the layout:package.json("private": truefor now,@upstash/vectoras a peer dependency),tsconfig.json,vitest.config.ts,README.md,CHANGELOG.md. The rootvitest.config.tsandpnpm-workspace.yamlpick up new packages underpackages/on their own. - Export
upstashVectors({ index, dimensions })returning aVectorStore, whereindexis an@upstash/vectorIndex. - Upstash filters are a string syntax (
locale = 'de' AND collection IN ('docs', 'pricing')). Build it fromMetadataFilterwith proper quoting, so a value can't change the filter. keywordQueryonly if the index type supports full-text (hybrid or sparse indexes). Otherwise leave it out.- There's no local Upstash Vector emulator, so: unit tests with a fake
Indexfor the logic (filter building, mapping, deletes), and the conformance suite gated onCHATCOPS_TEST_UPSTASH_VECTOR_URLandCHATCOPS_TEST_UPSTASH_VECTOR_TOKEN, skipped without them. Upstash has a free tier if you'd like to run it yourself.
Acceptance criteria
- New package builds, type-checks and passes its tests in CI
- Conformance passes against a real index when the env variables are set (say in the PR whether you ran it)
- Filter strings are quoted safely, with a test for a value containing a quote
- README, a docs section and a changeset
-
pnpm test:coverageandpnpm lintpass
- 主要語言
- TypeScript
- 星號
- 13
- 分支
- 7
- 平均合併
- 3 小時 11 分鐘
- 30 天內合併 PR
- 330
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
codercops/chatcops 的其他 Issue
-
Ingest: a crawl source for sites without a sitemap可能已有人在做 @bhushan4work 於 2 天前認領。 未關閉enhancement
codercops/chatcops#586 · 1 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
-
fix(core): Cohere and Voyage rerankers bypass non-positive limit check on NaN topN and send invalid null payload可能已有人在做 @bhushan4work 於 3 天前認領。 未關閉bug core
codercops/chatcops#582 · 3 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
-
Widget: a code block tagged `c++`, `c#` or `objective-c` shows part of the tag as code可能已有人在做 @prakashNalla 於 4 天前認領。 未關閉bug widget
codercops/chatcops#578 · 2 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
-
Docs: Astro, Nuxt and SvelteKit guides for the server可能已有人在做 @anurag2787 於 4 天前認領。 未關閉documentation
codercops/chatcops#575 · 2 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
-
Server: chatcopsNext(), one catch-all route for Next.js可能已有人在做 @Saifjafri212213 於 4 天前認領。 未關閉enhancement server
codercops/chatcops#574 · 2 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
查看 codercops/chatcops 的全部 Issue
相似的 Issue
-
Navbar avatar and name stay stale after saving profile changes可能已有人在做 @alexechoi 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 76/100
marmelab/atomic-crm#416 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 76/100
epam/ai-dial-react-file-manager#99 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
canonical/craft-actions#146 ·
維護者通常 2 天內回覆
-
feature-request
難度 2/5 1-3 小時 新手友好度 66/100
bluesky-social/social-app#12343 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
lucide-icons/lucide#5165 ·
維護者通常 1 天內回覆