RAG knowledge assistant RFP questions

The questions that separate RAG implementation partners on source permissions, answer accuracy, vector stores, re-indexing, prompt injection and Dify or Open WebUI license limits. Use the answers to compare written scopes, not sales claims.

On this page

RAG knowledge assistant RFP questions: how to run the evaluation

An organization that wants a RAG knowledge assistant answering from internal documents with citations should not judge bidders on how confident their proposals sound. The same written questions, sent in the same form to every bidder, are the only fair basis for comparison, and each answer should come with evidence: a configuration export, a test report, a sample audit log, a named runbook or a reference architecture diagram. Ask each partner to show permission-aware retrieval working on a test corpus where two users with different access rights ask the same question, and to show what the answer and its citations look like in each case. Assurances such as "we follow best practice" should be recorded as unanswered.

Compare the written scopes side by side before comparing prices. Each bid should state what is in scope (connectors, file types, scanned content, evaluation sets, guardrails, handover documentation), what is delivered and in what form, what is excluded and who pays for the exclusions. Exclusions often decide the real cost, so ask for the list of assumptions the partner made about your identity provider, document sources, hardware and reindexing frequency. Quotes for fixed-scope work should be traceable to that written scope. Confirm with each bidder which costs recur after go-live, such as model inference, vector database hosting, evaluation runs and upgrades, and which are one-time.

DeployOpen runs this same evaluation on itself: it answers the questions below in writing, supports each answer with artifacts, and lists what it excludes. The questions apply to any implementation partner, and a buyer should expect the same level of evidence from every bidder. Where a partner cannot answer, the honest result is a gap that goes into the contract as a named risk, not a promise to resolve it later.

Questions on permissions, retrieval testing and answer accuracy

How do source document permissions get copied into the index and enforced at query time?

A strong partner names the enforcement point and shows it working. Permissions are read from the source system (file share, wiki, document management system or helpdesk), stored as access metadata on every chunk, and filtered before any text reaches the model. The answer should specify which identity system supplies group membership, how the assistant authenticates users (for example through OIDC or SAML), and whether filtering happens inside the vector database query or in a service in front of it. Ask for a test where a user without access to a folder asks a question whose answer lives only there, and confirm that no snippet, citation or summary leaks. Open WebUI documents role-based access control with groups and per-resource permissions, and Dify Enterprise documents separate SSO scopes for workspace and web app access, so ask how these are configured for the chosen platform.

What happens to answers when a document's permissions change at the source?

The partner should describe a sync job that re-reads permissions on a defined schedule and on change events where the source supports them, then updates access metadata on affected chunks without a full re-index. Ask how long a revoked user can still see content after removal in the source, and whether the design fails closed when the sync is delayed or errors. Ask whether group membership is resolved at query time from the identity provider or cached, and how cached entries expire. A good answer includes a re-test after each change: a scripted set of users and documents whose expected visibility is checked against the live index. Confirm that deleted source files also remove their chunks and embeddings, not only their titles.

How is retrieval tested against a labeled question set?

Retrieval testing starts with a question set that the client owns, written by subject experts, with each question linked to the documents and passages that should answer it. The partner should measure whether the correct source appears in the top results for each question, and report the results per collection and per user role. Ask for the size and make-up of the set, how it covers edge cases such as scanned tables, superseded policies and questions with no answer in the corpus, and how it is versioned. The test set should be kept separate from anything used to tune chunking or reranking, so the scores are not inflated. Ask who maintains the labels after launch and how new documents add new test questions.

How are answer accuracy and citation correctness scored?

Accuracy and citation correctness are scored separately. Accuracy checks whether the answer is supported by the retrieved text and matches the expected answer, typically through human review of a sample plus automated judgments that the client can audit. Citation correctness checks that each cited passage actually contains the claim it supports, and that the link opens the current version of the document. Ask the partner to name the evaluation tooling and where the scores are stored. Langfuse and Arize Phoenix both offer tracing and evaluation features, and Phoenix is licensed under the Elastic License 2.0, which restricts offering it as a hosted service, so confirm the licensing fits the deployment. Ask for the pass criteria agreed before launch and the process for a release that falls below them.

How are retrieval and answer failures logged for review?

Failures should be logged as structured records that link the user query, the retrieved chunks with their source and version, the permission filter applied, the model and prompt version, the answer, and the citations shown. The partner should explain how logs are stored in the client's infrastructure, who can read them, how long they are kept, and how personal data in queries is handled. Ask whether logs cover refusals, empty retrievals and user feedback, and how reviewers triage them into test set additions. For systems that may be high risk, Article 12 of the EU AI Act requires technical capability for automatic event logging over the system's lifetime, and Article 19 requires providers to keep those logs for at least six months unless other law provides otherwise. Ask for a sample record of a logged query so you can judge completeness before signing.

What does a retrieval and accuracy test engagement cost, and what drives it?

DeployOpen does not publish prices, and no supplied figure gives a cost for evaluation work, so ask for a fixed-scope quote built from written deliverables. The main cost drivers are the number of document collections, the size and complexity of the labeled question set, how much expert time the client must give for labeling and review, the number of user roles to test for permissions, and how many evaluation cycles run before launch. Recurring costs include re-running the test set after each model, prompt, or index change, and maintaining labels as documents change. Ask the partner to separate one-time setup from ongoing evaluation, and to state what the client must provide, such as subject matter reviewers and test accounts for each role.

Can our own team run permission and accuracy testing after handover?

Yes, if the platform exposes the data and configuration needed to test, and the client has someone who can own the test set. Open-source components such as Qdrant document API keys, JWT-based per-collection permissions and JSON audit logging of API operations, which give a team concrete points to test. The practical requirement is ownership: a named person must maintain the labeled questions, run the permission test users after every identity change, and review logged failures. Ask the partner what runbooks, scripts and test accounts will be handed over, what training is included, and whether a retainer for continuous testing is needed for the first months. The engagement should document each test so the client can repeat it without the partner.

Why the vector database and embedding model belong in the RFP

The vector store and embedding model decide where document-derived data lives, who can reach it and what it costs to run, so a partner should justify both choices in its response rather than treat them as a default. Ask the partner to tie its pick to your data volume, your permission model and the operations skills your team actually has. If the proposal names Qdrant, check the claims against the Qdrant installation documentation: Qdrant needs block-level storage with a POSIX-compatible file system and cannot run on NFS or S3-style object storage, and SSD or NVMe drives are recommended. Ask for the storage design in the proposal, including where the volumes sit in your cloud account or data center.

The security baseline matters as much as the storage choice. The Qdrant security documentation states that self-deployed instances listen on all network interfaces and have no authentication by default, so a partner must show how it configures API keys, TLS for REST and gRPC, and network restrictions before any document vectors are loaded. Qdrant's JWT-based access control supports per-collection read or write permissions, and its JSON audit logging records authenticated API operations, which is the evidence your security team will ask for. For a production cluster, the distributed deployment guidance recommends at least three nodes so quorum survives a node failure. Ask the partner to state its node count, replication factor and the storage cost that replication adds.

Ask the partner to name the embedding model, its license, the place it runs (your GPUs, a shared inference service, or a managed API) and whether any document text leaves your environment during embedding. Then ask how the choice is re-tested: which evaluation set is used, what triggers a re-embedding of the corpus, and how old vectors are kept comparable with new ones after a model change. Qdrant release v1.19.2 was published on October 5, 2026, so ask the partner which version it will deploy, how it will track upgrades and whether the upgrade plan covers snapshots taken before the change. Confirm all of this in writing, because a vague answer on embeddings usually means the retrieval quality will not be tested before go-live.

Which license limits apply to Dify and Open WebUI

Dify is released under the Dify Open Source License, a modified Apache License 2.0. The modification matters most for vendors and internal platform teams that plan to run Dify for more than one customer or business unit. The license forbids using the source code to operate a multi-tenant environment, where one tenant is one workspace, without written authorization. It also forbids removing or modifying the logo or copyright information in the Dify console. Reviewers should read the full text in the Dify LICENSE file rather than rely on a summary.

  • Multi-tenant restriction: Running one Dify instance with several workspaces for separate customers or subsidiaries needs written authorization from the licensor.
  • Logo and copyright retention: Branding in the console must stay as shipped unless the license position is settled in writing.
  • Community edition limits: The self-hosted Community edition is free but limited to a single workspace, so it suits one internal team.
  • Enterprise edition: The self-hosted Enterprise edition is custom priced and adds SSO, multiple workspaces, advanced security, a commercial license and professional support.
  • Dify Cloud tiers: Cloud plans are listed separately on the pricing page, and they do not change the terms for a self-hosted build.

Ask the partner to confirm in writing which edition they recommend, which party holds the license relationship, and whether the planned workspace count fits the Community edition.

How a partner should scope re-indexing when documents change

Re-indexing keeps the assistant's answers aligned with the current document estate, including removals. The sequence below shows what the partner must write into scope at each step so that changes, deletions and stale answers can be traced and checked.

  1. Detect source changes reliably

    The partner documents how each source connector notices new, edited and deleted files, such as change timestamps, content hashes or a source system's change feed, and which sources only support full rescans. The scope names each connector, the trigger (scheduled run, event or manual), and the refresh frequency the client has agreed. Done means a test run on a sample source shows that an edit, a new file and a deletion each produce a logged change record.

  2. Re-parse and re-chunk changed files

    Only changed files are parsed again, with the parser, OCR settings and chunking rules written down for each file type, including how tables and scanned pages are handled. The partner records the chunk size, overlap and metadata carried into each chunk, such as source path, version, owner and permission tags. Done means a changed file produces a new chunk set with a version identifier, and the previous chunk set is marked for replacement.

  3. Regenerate embeddings for new chunks

    The scope names the embedding model and its version, and states that every chunk from a changed file is embedded again. If the embedding model changes, the partner must state whether the whole corpus is re-embedded, since mixed vector spaces in one collection produce unreliable retrieval. Done means each new chunk has a vector stored with the same metadata, and the count of chunks and vectors matches the parser output.

  4. Update the index and name the vector store

    The partner states which knowledge and vector configuration the platform uses. Dify has its own knowledge base settings and a default vector store (Weaviate) with alternatives, and Open WebUI has its own retrieval configuration with a choice of vector databases. The scope names the vector database, the collection or index structure, and how old chunk versions are replaced atomically so users never see a half-updated document. Done means a query returns the new chunk version and no older version of the same file.

  5. Propagate deletions and erasure requests

    When a source document is removed, or a data subject's erasure request covers it, the scope must state how the deletion reaches the parent record, every chunk, every vector, cached answers and any uploaded copy in platform storage. The partner names who triggers erasure, how long a deletion can take to reach all copies, and how backups and snapshots are handled. Done means a test document is removed and a search for its unique text returns nothing from the index, storage or cache.

  6. Run a post-change retrieval check

    After each refresh, the partner runs a fixed set of test questions tied to the changed documents and compares the retrieved sources and cited passages with expected answers. The scope defines the test set, the pass criteria agreed with the client, and who reviews failures. Done means a dated report lists each test question, the sources retrieved, and any failed items with a decision on whether to rerun the refresh or fix the source.

  7. Detect and log stale answers

    The scope explains how the assistant shows which source version each answer used, how answers that cite a superseded version are flagged, and how users can report outdated content. The partner records refresh timestamps and index versions in the audit log so reviewers can reconstruct which document state produced a given answer. Done means a sample answer can be traced to a source version and a refresh run in the logs.

How partners defend against prompt injection hidden in documents

Documents from wikis, email attachments and uploads can carry text written to steer the model, such as a sentence in a PDF telling the assistant to ignore its instructions or reveal other files. The defense is a set of layered controls, and no single filter stops this class of attack. Ask each partner to show the controls it builds, configures and tests, and to name the ones that remain with your team. A partner that answers with one product name, or with a claim that its model is safe, has not answered the question.

Start with separation. Ask how retrieved text is passed to the model: whether it is placed in a clearly delimited context block, labeled as untrusted data, and kept out of the system prompt. Then ask which input and output guardrails run, where they run and who owns their rules. Guardrails are more dependable when they are enforced at a gateway or guardrail layer between the application and the model, such as the self-hosted AI gateway in this pillar, rather than only inside the chat interface. Ask whether output checks can block answers that leak restricted content or contain links or instructions the policy does not allow. Confirm how each guardrail component is licensed and hosted before you rely on it.

Agents raise the stakes. If the assistant can call tools, send email, open web pages or write to other systems, an injected instruction can trigger an action rather than a bad answer. Ask the partner to list every tool and outbound network path, to restrict each to named functions with least-privilege credentials, and to require human approval for write actions. For Dify, ask how its code sandbox and outbound proxy are configured, and which SSRF settings block internal address ranges. Finally, ask how injection is tested: the partner should maintain a red-team test set of poisoned documents, run it before each release and after each re-index, and share the results. DeployOpen provides AI and agent security testing as a separate service, so you can scope that work independently. Confirm in writing which controls the implementation partner owns and which the testing provider validates.

Red flags that should end a partner conversation

Most weak RAG proposals share the same pattern: a confident answer on one of the hard questions, with no test, document or written boundary behind it. Each card below describes a claim you may hear, why it matters for a self-hosted assistant, and what to request before the conversation continues.

Permissions handled by the model

A partner who says the language model will "only answer what the user is allowed to see" has not designed retrieval filtering. Permissions must be enforced before chunks reach the prompt, using the source system's access groups copied into the index or checked at query time. Ask for the design document showing where the filter runs, how group changes propagate, and how a test user with restricted access is shown to receive no restricted chunks.

Accuracy claimed without a test set

Statements such as "the answers are highly accurate" carry no evidence. Ask for a written evaluation plan: a set of real questions drawn from your documents, expected source passages, graded answers for correctness and citation quality, and the threshold that must be met before go-live. The plan should also state who signs off on results and how failures are logged and retested after each change.

Vector store chosen without storage notes

A partner who names a vector database but cannot describe its storage, security defaults or scaling path is not ready to run it. Qdrant, for example, needs block storage and does not run on NFS or S3, and its self-deployed instances ship without authentication. Ask which store they propose, why, the storage class and sizing, the API key and TLS setup, and the backup and restore method.

License limits waved away

Phrases such as "it is all open source, so there are no limits" hide conditions that matter for commercial use. Dify's license restricts operating a multi-tenant environment without written authorization and restricts logo changes, while Open WebUI's license limits branding changes above 50 users in a rolling 30-day period. Ask for a written license review for each component, and for the partner to name which deployment would need a commercial license.

Re-indexing described as manual

If the answer to "how do new or changed documents reach the index" is "we will run the ingestion script when needed," stale answers will follow. Ask how change detection works, how deleted or superseded files are removed from the vector store, whether a document's old chunks and embeddings are purged, how a full rebuild is scheduled when the embedding model changes, and who monitors failed ingestion jobs.

No written exclusions

A proposal that promises everything and lists no exclusions usually hides scope gaps. Ask for a written list of what is not included, such as scanned-document OCR, source system connector development, prompt injection testing, model hosting, user training or ongoing tuning. Fixed-scope work should show each exclusion next to its deliverables, so the cost of any gap is visible before signing.

How to score partner responses

This table sets out how to score each partner answer on a three-level scale and which evidence to request for each area. Weight the permissions, retrieval testing and written scope rows most heavily, record every unanswered question as a named gap, and compare prices only after each bid has a written scope with named deliverables.

Evaluation areaStrong answer (score 3)Weak answer (score 1)Evidence to request
Source permissionsPermissions are read from the source system at query time, filtered before ranking, and tested with users holding different rightsAccess is set once per collection or copied at ingestion, with no test of revoked rightsPermission model diagram, test cases with expected denials, and a revocation test log
Retrieval and answer accuracyA written test set with expected sources, scored retrieval and groundedness, and results repeated after each changeAccuracy is judged by demo questions or left to users to reportSample test set, metric definitions, baseline results and the regression process
Vector store and embeddingsNamed vector database and embedding model, chosen against sizing and language needs, with a documented reason for eachProduct named without sizing, or the choice depends on a vendor not yet selectedArchitecture note, sizing worksheet, storage class and backup approach for the index
Re-indexing and refreshChange detection by source, incremental re-indexing, deletion of removed content from chunks and embeddings, and a stated refresh scheduleFull re-index on demand only, with no handling of deleted or moved filesRefresh runbook, deletion test results and the index version history
Prompt injection in documentsUntrusted document text is separated from instructions, output is filtered, and tests include injected content in sample filesReliance on a system prompt alone, with no test cases for hostile documentsTest cases, guardrail configuration, and findings from an adversarial test run
Licensing and limitsWritten review of each component license against the intended use, including user counts, multi-tenant use and branding rulesLicense is described as open source without review of usage limitsWritten license matrix covering Dify and Open WebUI terms, with the limits that apply to the planned user count
Operations and loggingLogs of queries, sources cited and access decisions kept in the client's storage, with a retention period agreedLogs are optional, stored in a vendor cloud or not describedLogging design, retention settings and a sample audit record
Written scope and deliverablesNamed deliverables, acceptance criteria, exclusions and a timeline agreed in writing before price is comparedPrice offered on a call or in a slide without deliverablesSigned statement of work draft with deliverables, acceptance tests and assumptions listed

What buyers ask before hiring outside help for a RAG assistant

What drives the cost of a RAG assistant implementation?

The main drivers are the number of document sources, how complex the permission model is, how clean the documents are, and how deeply the answers are evaluated. Each source adds connector work, parsing and a mapping of who may see what. Permissions that follow a simple folder structure cost less to carry into answers than permissions that vary by document, matter, or business unit. Scanned PDFs, inconsistent templates and duplicate policies add cleanup before indexing. Evaluation depth matters as well: a small test set checked by hand costs less than a graded question set with repeated runs after each change. Ask the partner to itemize each of these in the written quote, because the number belongs to that scope, not to a generic estimate.

Which parts of a RAG assistant are one-time and which recur?

The initial build is one-time: platform setup, connectors, ingestion pipelines, permission mapping, integration with the identity system, and the first evaluation round. Recurring work includes re-indexing when documents change, retesting answers after model, prompt or platform updates, applying upgrades to the platform and the vector database, monitoring, and backups. Retainers usually cover the recurring part, and their scope should list response expectations, upgrade cadence and how many re-evaluation runs are included. Also ask who pays for model inference and hosting, since those costs are usually billed by the infrastructure owner rather than the implementation partner. The written quote should separate these lines so the recurring cost is visible before the build starts.

What does the client team need to provide for the engagement?

The client needs to supply access and decisions that only it can make. The most common inputs are:

  • Read access or a service account for the identity system, so group membership can be mapped to source permissions.
  • Named document owners for each source, who confirm which content is current and who may see it.
  • A test question set with expected answers and the source documents that should support them, written by people who know the work.
  • Decision makers for permissions, including rules for restricted material and who approves exceptions.

If these inputs arrive late, the schedule slips, so ask the partner to list them with owners and dates in the scope document.

Can our own engineers build and run a RAG assistant without a partner?

Often yes, if the team already runs containerized services, manages identity integration and has someone who can own answer quality. The open-source platforms covered on this page are documented and can be deployed by an experienced platform team. The harder parts are usually permission carry-over, evaluation and ongoing re-indexing, because they require repeated testing and documented decisions. Ask whether the team can staff those roles for the life of the system, not only the first release. A partner can handle the build, the handover documentation and a retainer for upgrades and retesting, while your team keeps operational control. Confirm the division of responsibilities in writing before choosing either path.

How long is an engagement scoped before work starts?

Most DeployOpen engagements are fixed-scope, and the scope, deliverables and timeline are agreed in writing before work begins. The timeline depends on the number of sources, the identity integration, the state of the documents and the evaluation work agreed in scope. The written scope should name milestones, the client inputs each milestone depends on, and what counts as acceptance. Ask for the milestone list and the dependencies rather than a single date, since a date without dependencies is not a plan. DeployOpen does not publish a price list, so cost and duration come from that written scope.

Does the license of the chosen platform change the cost or scope?

It can. Open WebUI is distributed under the Open WebUI License, which restricts altering or removing its branding in deployments above 50 users in any rolling 30-day period, unless the operator holds an enterprise license or written permission. Dify's license requires a commercial license to operate a multi-tenant service from its source code. If the assistant serves a large internal population or customers, the licensing review should happen before platform selection, and any enterprise license cost should appear as a separate line in the quote. Ask the partner for a written licensing note that matches your user count and deployment model, and have your legal team confirm it.

How should a partner show the assistant is accurate before go-live?

A credible partner should describe a test process that runs before go-live and after each significant change. The process typically includes a question set drawn from real work, expected source documents for each question, scoring of whether answers are correct and cited, and a record of failures with the decision taken on each. Ask whether the evaluation covers permission tests, such as confirming that a user without access to a restricted document never receives its content in an answer. Evaluation depth is a cost driver, so ask how many questions, how many scoring rounds and who signs off the results. The evidence should be kept in a form your auditors and risk team can review.

How DeployOpen scopes, delivers and supports RAG evaluations

DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For RAG knowledge assistant RFP questions, we turn each question into a written scope, test the answers against documented criteria, and hand over the evidence your evaluation team needs.

How we scope

  • Written scope lists the document sources, connectors, file types and user groups in the assistant
  • Permission mapping is documented for each source system and each identity provider involved
  • Evaluation criteria for retrieval and answer accuracy are agreed before any build work starts

How we build

  • Ingestion, chunking, embedding and vector storage are configured on the client's own infrastructure
  • Retrieval tests and answer tests run against a reference question set agreed with the client
  • Prompt injection tests on ingested documents are run and results recorded in a findings log

How we hand over

  • Architecture, configuration and permission design are documented for the client's security and architecture teams
  • Re-indexing, backup and restore procedures are written as runbooks the client's operators can follow
  • Test results, known limits and license obligations for the chosen platform are delivered with the system

How we support

  • Fixed-scope engagements are agreed in writing, with deliverables and timelines set before work begins
  • Ongoing support, platform upgrades and continuous testing are available as a retainer
  • Quotes follow from the written scope, so the client can compare partners on the same deliverables

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.