Register and share your invite link to earn from video plays and referrals.

Search results for VectorDatabase
VectorDatabase community
One keyword maps to one global community path.
Create community
People
Not Found
Tweets including VectorDatabase
# Weaviate Features and Practical Usage 🚀 Need to pull every object, vectors included, for a migration or audit export? Stop fighting deep pagination. Weaviate's Cursor API walks the entire collection in order with no offset limit. 📌 Title and Feature URL Title: Read all objects URL: 📝 Overview Weaviate's iterator() method traverses an entire collection efficiently while avoiding the performance penalties of traditional offset-based pagination. Internally it uses a cursor based on the after operator, sidestepping the deep pagination problem. For any full-collection processing, using the cursor is the rule. 🔧 How It Works - limit/offset deep pagination slows down dramatically as the number of skipped records grows, which becomes critical at scale. - The cursor uses an after parameter to continue from where it left off, avoiding that slowdown. - The Python client wraps this as an Iterator, so a simple for loop walks all objects. - By default it returns all properties and UUIDs, excluding blob and reference properties. - Result ordering is not guaranteed; this is a mechanism for systematic full-collection access. 🛠 Practical Usage - Basic form: collection = client.collections.use("WineReview"), then for item in collection.iterator(): to walk every object, reading item.uuid and - To include vectors: for item in collection.iterator(include_vector=True): and read item.vector. - For named vectors, pass include_vector=['title', 'body'] or True for all vectors. - For multi-tenant collections, iterate per tenant with with_tenant(tenant_name).iterator(); get the tenant list via tenants.get(). 🎯 Use Cases - Migrate to another cluster by pulling vectors and properties together, then writing them back. - Export an entire collection for audit and compliance. - Access all objects sequentially for reindexing or batch processing. - In multi-tenant setups, walk each tenant's full set for inventory/reconciliation. ⚠️ Caveats - Result ordering is not guaranteed; do not build order-dependent logic on it. - The cursor is built for systematic full-collection access, not random queries. - include_vector=True increases data transfer for the vectors; enable it only when needed. - You cannot iterate all tenants at once; run the iterator per tenant in multi-tenant collections. #Weaviate# #VectorDatabase#
Show more
# Weaviate Features and Practical Usage 🚀 Ingesting data is just the start. From partial updates to conditional bulk deletes to existence checks, Weaviate's object management API covers the full CRUD you need to run a real sync pipeline. 📌 Title and Feature URL Title: Manage objects URL: 📝 Overview Weaviate provides fundamental CRUD operations on objects within a collection: create, read, update (partial or full replacement), and delete. These are organized under the Python client's accessor, and the ability to choose between partial update and full replacement is central to operational design. 🔧 How It Works The key methods are: - insert: add a single object; you can also pass uuid, vector, and references. - insert_many: add multiple objects at once. - update: a partial update that modifies only the specified properties while preserving the rest. - replace: overwrites the entire object with new data. - delete_by_id: deletes a single object by UUID. - delete_many: deletes multiple objects matching a filter. - exists: checks whether an object is present. When you modify properties configured for vectorization, Weaviate automatically regenerates the embeddings transparently during the update. 🛠 Practical Usage - Partial update: properties={"title": "Updated"}) - Full replacement: properties={"title": "New", "body": "Complete"}) - Conditional bulk delete: "brand").equal("OldBrand")) - For reproducible IDs, use generate_uuid5() from weaviate.util so the same input always yields the same UUID, preventing duplicate IDs on re-import. - delete_many supports dry_run (preview matches without deleting) and verbose for detailed output. 🎯 Use Cases - For product master sync, apply only changed fields (price, description) via update's partial update. - Purge a discontinued brand with delete_many(where=...) conditional bulk delete. - Assign stable IDs with generate_uuid5 to prevent duplicate inserts in a daily sync. - Confirm the target count with dry_run before running a production delete. ⚠️ Caveats - Updating a vectorized property triggers automatic re-vectorization and incurs embedding cost; factor "updating the description = embedding cost" into your sync design. - update is partial, replace is full; properties omitted from a replace are dropped, so don't confuse the two. - delete_many is bounded by a QUERY_MAXIMUM_RESULTS limit to prevent resource exhaustion; large deletes must be batched. - Deletes are generally irreversible; make dry_run previews a habit. #Weaviate# #VectorDatabase#
Show more
# Weaviate Features and Practical Usage 🚀 Tired of standing up a vector DB server just for a test? Embedded Weaviate launches from your script in one line and disappears when you're done, making it a perfect throwaway DB for CI and notebooks. 📌 Title and Feature URL Title: Embedded Weaviate URL: 📝 Overview Embedded Weaviate is an experimental deployment model that runs a Weaviate instance from your application code rather than a standalone server. The instance lifecycle is tied to the client app, so it terminates when your app exits, though persisted data survives. Its biggest benefit is running experiments with zero infrastructure setup. 🔧 How It Works - In Python you launch it with weaviate.connect_to_embedded(version=..., headers=..., environment_variables=...). - The client checks binary_path for a cached binary; if missing, it downloads the right binary (Linux or macOS) from GitHub releases and caches it for reuse. - On first startup it creates a persistent datastore at persistence_data_path, and subsequent runs reuse it, so data survives between sessions. - The instance exits when the script ends, the app terminates, or the notebook becomes inactive. 🛠 Practical Usage - Key parameters are version (latest, a version string, or a binary URL), port (default 8079), persistence_data_path (default ~/.local/share/weaviate), and binary_path (default ~/.cache/weaviate-embedded). - For advanced setup use EmbeddedOptions and pass modules or API keys via additional_env_vars={"ENABLE_MODULES": "..."}, then call client.connect(). - If logs are noisy, quiet them with environment_variables={"LOG_LEVEL": "error"}. - TypeScript requires a separate package, weaviate-ts-embedded. 🎯 Use Cases - Running regression tests for search logic in CI with zero infrastructure setup. - Prototyping and experimentation in Jupyter notebooks. - Lightweight, single-user local validation. ⚠️ Caveats - It is experimental; APIs and parameters may change. - It is single-node only, with no clustering or distributed deployment, and is not production-grade. - Supported operating systems are Linux and macOS only. - Avoid changing XDG_DATA_HOME or XDG_CACHE_HOME, since they are widely used by other applications. #Weaviate# #VectorDatabase#
Show more
A useful but little-known Gemini API feature 🔎 Before building your own RAG pipeline from scratch, try the managed version. Gemini's "File Search" is a managed RAG solution: upload files and Google handles chunking, embedding, and retrieval. No vector database required. 📌 Title: File Search 🔗 URL: 🧩 Overview Building RAG typically requires document chunking, embedding model selection, and vector DB setup and maintenance. File Search handles all of that on Google's side. Upload your files, and Gemini automatically searches relevant chunks within them to inform its answers. 🛠 How to use it Upload files via the Files API, enable the File Search tool, and send your request. Gemini automatically retrieves relevant chunks and incorporates them into the response. Supports PDFs, text, code, and more. You can search across multiple files at once. 🏗 Building it into production ・Internal document Q&A: upload policies, manuals, and meeting notes to build a chat-based Q&A system for employees. No vector DB needed, instant setup. ・Customer support: upload product docs and automatically return accurate answers to customer questions. ・Legal/compliance: upload contracts and regulatory documents, answer questions about specific clauses with easy source identification. ・Technical doc search: search API docs and design specs to build a developer assistant that answers questions instantly. 💡 Use cases 📚 Internal knowledge base Q&A systems 🎧 Product-doc-based support bots ⚖️ Legal document clause search and interpretation 🧑‍💻 Developer assistants grounded in technical docs ⚠️ Watch out Being managed means limited customization of chunking strategies and embedding models. If you need fine-grained accuracy tuning, a custom RAG setup is more flexible. Also check file size and count limits before scaling to large document collections. ✨ "Want to try RAG but the infra is heavy" is a common blocker. Start with a small document set on File Search and experience how simple managed RAG can be. #Gemini# #LLM#
Show more
"Chat with your documents" usually means uploading them to someone else's cloud. The QVAC SDK does the whole thing on-device. It ships native RAG: ragIngest your files, embed turns them into vectors locally, ragSearch finds the relevant passages, and completion answers from text the model can actually see. No external vector database. What you can build with it: a knowledge base over years of your notes, contract and research Q&A, a support bot grounded only in your manuals, a private second brain that cites its sources. Your private documents never leave the machine. No cloud vector store, no API key, no leak surface. npm install @qvac/sdk
Show more
Summary: I spent time trying to figure out this orchestration layer problem, can we design a multi model architecture in the long term. The more I dug in the more I understand that trying to build an abstracted layer is hard. As agentic activities increase and agent chaining and complex tasks get assigned to AI it will become harder to move between models. There is a reasonable probability that 75% of the enterprises will build their implementation of the solution to their core problem around one model "stack". Token price reduction by 90% is the solve and mobility between models from the same frontier lab! Evals, harnesses, cache memory are the moats and I don't see models providing simple abstraction to those. I know there are efforts to do this out there, the long term solve for orchestration if it works will need to be "Claude code" level of design genius. Here's a chat with Fable @HamzaFodderwala had. **Why abstraction looks easy.** Models are stateless — every API call is weights + a prompt assembled at runtime. Everything the model "knows" about you — memory, documents, history, tools — is injected into the context window by software outside the model. So in principle, all your state already lives outside the weights. The catch is what "state" includes. **Layer 1 — Data (fully portable).** Enterprise documents, tickets, logs. Retrieved via RAG: text is chunked, embedded, stored in a vector database (Pinecone, pgvector), and relevant pieces are fetched into the prompt per query. The embedding model is separate from the LLM, so this layer is genuinely model-agnostic. Already solved. **Layer 2 — Memory (portable in principle).** Systems like Mem0 and Zep sit between the app and the model: after each interaction they extract salient facts ("user prefers X"), store them as plain text, and inject the relevant ones into future prompts. Because the artifact is natural language, it reads into any model. Facts port. **Layer 3 — Orchestration/routing (works, but only for shallow tasks).** Gateways like OpenRouter and LiteLLM normalize API differences and route each request to the cheapest capable model. This is the fungibility layer being furiously built. It genuinely works for one-shot, verifiable tasks — classification, extraction, summarization — which conveniently are the tasks where cheap models suffice anyway. **Where it breaks — the non-portable state.** Four things stay behind when you switch: - **The harness.** Prompts, tool schemas, and guardrails are tuned to one model's quirks. An agent must get every step right, so reliability compounds: a model that's 98% reliable per step completes a 50-step task about a third of the time; at 90% per step, it almost never finishes. Swapping models costs you a few points per step — the difference between an agent that works and one that doesn't. - **The evals.** Swapping means re-testing everything and re-fixing every regression. The real switching cost isn't data migration — it's re-verification. Nobody has abstracted that. - **Procedural memory.** Facts port; skills don't. Cached successful workflows and learned workarounds are conditional on the model that produced them. - **Cache pricing.** Provider-specific, worth 75–90% of input costs on agentic workloads. Quiet lock-in. **The labs' angle.** They offer hosted memory, hosted file stores, caching, fine-tuning — every one pulls state from your side onto theirs. The labs will crack memory first, but as lock-in, not portability. Nobody standardizes their own exit door. MCP is the partial exception: it standardizes tool and data access across models, but doesn't touch harness tuning or evals. **Where 3P vendors fit.** Routers are thin-margin commodity plumbing; vector DBs and memory infra are real but small. The two structurally interesting positions: **eval platforms** (LangSmith, Braintrust) — since switching cost equals re-verification cost, whoever industrializes cross-model testing actually enables fungibility.
Show more