import sys from haystack import Pipeline, component @component class QueryNormalizer: @component.output_types(clean_query=str) def run(self, query: str): clean_query = " ".join(query.strip().split()).casefold() return {"clean_query": clean_query} @component class AnswerTemplate: @component.output_types(answer=str) def run(self, clean_query: str): return {"answer": f"Pipeline received: {clean_query}"} pipeline = Pipeline() pipeline.add_component("normalizer", QueryNormalizer()) pipeline.add_component("responder", AnswerTemplate()) pipeline.connect("normalizer.clean_query", "responder.clean_query") query = " ".join(sys.argv[1:]) or "How do Haystack pipelines connect components?" result = pipeline.run({"normalizer": {"query": query}}) print(f"input={query}") print(f"answer={result['responder']['answer']}")