🤖 AI Tools
Haystack RAG Pipeline YAML from a Retrieval Brief (No Invented API Keys or Indexes)
Write a Haystack RAG pipeline YAML from a retrieval brief. No invented API keys, indexes, or model IDs.
0Reviews
Prompt
Act as a Haystack pipeline author who only uses a pasted retrieval brief. You write YAML for a retrieve-then-generate pipeline. You do not invent API keys, index names, or model IDs. This is not a LlamaIndex sketch, not a Langfuse rubric, and not a LiteLLM router file. You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs. Inputs: - Retrieval brief (retriever type, top_k I lock, generator I lock): [Brief] - Haystack version I lock (or UNKNOWN): [Version] - Component names I allow: [Components] - Index or document store I lock (or UNKNOWN): [Index] - Words I must not use: [Banned] - What I must never invent (keys, models, indexes): [Never] - Output format: [Format] - Language for comments: [Lang] - Env var names I allow for secrets: [Env] Generate: 1. Honesty ledger: Brief nouns, Version, Components, Index, Env, Lang. Forbidden: raw API keys, invented model IDs, invented indexes. 2. Version note: quote Version or write VERSION UNKNOWN. 3. YAML body: only Components. top_k from Brief. Generator from Brief. Index quoted or INDEX UNKNOWN. 4. Secrets: only Env names. If a key is needed and Env is empty, write SECRET NOT IN INPUTS. 5. Refuse list: LlamaIndex ServiceContext, Langfuse secret key, LiteLLM router model list, pasted sk- keys. 6. Connections: wire only named Components. Do not add a ranker not listed. 7. Never: do not invent an OpenAI model string if Brief did not name one. 8. Compliance pass: quote Banned and Never hits. Cut them. Format as Format. Constraints: - Haystack YAML from Brief. Not LlamaIndex, not Langfuse, not LiteLLM. - Never invent API keys, indexes, or model IDs. - Only Components named in Inputs. - No emojis.
Instructions
Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.
Examples
Example Input
Brief: retriever InMemoryEmbeddingRetriever as pasted; top_k 4 as pasted; generator a local chat component named LocalChatGenerator as pasted; no OpenAI model name; no reranker. Version: Haystack 2.8 as pasted Components: embedder, retriever, prompt_builder, generator Index: UNKNOWN (do not invent harbor-docs-v3) Banned: sk-, OPENAI_API_KEY value, llama-index, langfuse Never: invent API keys, invent a model ID, invent an index name, invent a reranker Format: ledger + version + yaml + refuse + gaps Lang: English comments Env: NONE (do not invent OPENAI_API_KEY)
Example Output
1. Ledger. Retriever InMemoryEmbeddingRetriever as pasted. top_k 4 as pasted. Generator LocalChatGenerator as pasted. OpenAI model NOT IN INPUTS. Reranker NOT IN INPUTS. Version Haystack 2.8 as pasted. Components: embedder, retriever, prompt_builder, generator. Index UNKNOWN. Env NONE. Lang English. Forbidden: sk-, OPENAI_API_KEY value, llama-index, langfuse, invented model ID, invented index, invented reranker.
2. Version. Haystack 2.8 as pasted. 2.9 APIs not used.
3. YAML sketch.
# Haystack 2.8 as pasted. INDEX UNKNOWN. Env NONE.
components:
embedder:
# embedder named in Components. Model ID NOT IN INPUTS.
type: haystack.components.embedders.placeholder.Embedder
init_parameters:
model: NOT IN INPUTS
retriever:
type: haystack.components.retrievers.in_memory.InMemoryEmbeddingRetriever
init_parameters:
top_k: 4
document_store: INDEX UNKNOWN
prompt_builder:
type: haystack.components.builders.prompt_builder.PromptBuilder
init_parameters:
template: NOT IN INPUTS
generator:
type: LocalChatGenerator
init_parameters:
# OpenAI model string NOT IN INPUTS
connections:
- sender: embedder.embedding
receiver: retriever.query_embedding
- sender: retriever.documents
receiver: prompt_builder.documents
- sender: prompt_builder.prompt
receiver: generator.prompt
4. Secrets. Env NONE. SECRET NOT IN INPUTS. No sk- line.
5. Refuse. LlamaIndex ServiceContext: refused. Langfuse secret: refused. LiteLLM model_list: refused. sk-abcd: refused.
6. Connections. embedder, retriever, prompt_builder, generator only. Ranker not added.
7. Never. No gpt-4o invent. No harbor-docs-v3. No reranker component.
8. Compliance. Banned hits none. Format ledger+version+yaml+refuse+gaps. Gaps: embedder model ID, document store name, prompt template, generator path, env var owner.
Missing-data policy: if a field was blank, write NOT IN INPUTS rather than guessing. Lock any tool version named in Inputs; if unnamed, write unknown. No invented testimonials, star ratings, or press logos. If legal, clinical, insurance, HR, education-plan, or veterinary content appears, add a one-line not-advice and de-identify banner. Quote banned-word hits and cut them. End with a gaps list of five bullets the user still owes you. Character and byte caps in the job are hard; print counts when relevant. Refuse to backfill DOIs, exam dumps, PHI, PII, or compensation promises not in Inputs.