Retrieval-Augmented Generation (RAG) рдХреЗ рджреМрд░ рдореЗрдВ, LangChain рдЬреИрд╕реЗ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реБрдПред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рджреБрдирд┐рдпрд╛ Agentic AI рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реА рд╣реИ, Haystack AI рдЬреИрд╕реЗ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдЕрдкрдиреА рд▓рдЪреАрд▓реЗрдкрди, рдореЙрдбреНрдпреБрд▓реИрд░рд┐рдЯреА, рдФрд░ рд╡рд┐рд╡рд┐рдз рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рдореБрдЦрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Haystack AI рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреА рдкрдбрд╝рддрд╛рд▓ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдХрдИ рдЯреВрд▓реНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ AI рдПрдЬреЗрдВрдЯрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред рдПрдЬреЗрдВрдЯрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рднрд╛рд╖рд╛ рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рддрдГ рдЯреВрд▓реНрд╕ рдФрд░ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рдЗрдирд╡реЛрдХ рдХрд░ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ Agentic AI рдФрд░ Agentic RAG рдкрд░ рд╣рдорд╛рд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЕрд╡рд╢реНрдп рджреЗрдЦреЗрдВред┬а
рд╣рдо рдЕрдкрдиреЗ рдкрд╛рдардХреЛрдВ рдХреЛ AI рдХреА рддрд╛рдЬрд╝рд╛ рдЦрдмрд░реЛрдВ рд╕реЗ рдЕрдкрдбреЗрдЯ рд░рдЦрддреЗ рд╣реИрдВ The Median рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗтАФрдпрд╣ рд╣рдорд╛рд░рд╛ рдирд┐рдГрд╢реБрд▓реНрдХ рд╢реБрдХреНрд░рд╡рд╛рд░ рдиреНрдпреВрдЬрд╝рд▓реЗрдЯрд░ рд╣реИ рдЬреЛ рд╣рдлреНрддреЗ рдХреА рдкреНрд░рдореБрдЦ рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓рддрд╛ рд╕реЗ рд╕рдордЭрд╛рддрд╛ рд╣реИред рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░реЗрдВ рдФрд░ рд╣рд░ рд╕рдкреНрддрд╛рд╣ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рд░рд╣реЗрдВ:
Haystack AI рдХреНрдпрд╛ рд╣реИ?
Haystack рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕реЗ Large Language Models (LLMs) рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп, рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ RAG рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕, рдПрдЬреЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛ, рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рд╕рд░реНрдЪ рд╕рд┐рд╕реНрдЯрдо, рдФрд░ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реНрд╡рд╛рдпрддреНрдд AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреИрд╕реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
Haystack рдХреА рдореЙрдбреНрдпреБрд▓рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ OpenAI, Hugging Face Transformers, Chroma, MCP рдЯреВрд▓реНрд╕, Elasticsearch, рдФрд░ рдЕрдиреНрдп рдЕрдЧреНрд░рдгреА AI рддрдХрдиреАрдХреЛрдВ рдФрд░ рдЯреВрд▓реНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рджреЗрддреА рд╣реИред┬а
рдпрд╣ Langchain рд╕реЗ рд╕рд░рд▓ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдПрдЬреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓реНрд╕ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореВрд▓ рд░реВрдк рд╕реЗ, Haystack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рд╕рдВрд░рдЪрд┐рдд рд╣реИ, рдЬреЛ LLM рдкреНрд░рджрд╛рддрд╛рдУрдВ, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕, рдЯреВрд▓реНрд╕, рдПрдЬреЗрдВрдЯреНрд╕, рдФрд░ рд╕рдореГрджреНрдз рдЗрдВрдЯреЗрдЧреНрд░реЗрд╢рдВрд╕ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдВрдб-рдЯреВ-рдПрдВрдб AI рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдФрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд: Haystack Concepts Overview
Haystack рдХреЗ рдкреНрд░рдореБрдЦ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Haystack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдордЬрд╝рдмреВрдд RAG рд╡рд░реНрдХрдлрд╝реНрд▓реЛ , рдПрдЬреЗрдВрдЯрд┐рдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕, рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдЙрдиреНрдирдд AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
1. рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕
Haystack рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВтАФрдЬреИрд╕реЗ рд░рд┐рдЯреНрд░реАрд╡рд▓, рдЬрдирд░реЗрд╢рди, рдпрд╛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реЗрдЬтАФрдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпреЗ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ Python рдХреНрд▓рд╛рд╕реЗрд╕ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЗрдердбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ run() рдореЗрдердб рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ API рдХрд╕реНрдЯрдо рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА APIs рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред┬а
2. рдЬрдирд░реЗрдЯрд░реНрд╕
рдЬрдирд░реЗрдЯрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдмреИрдХрдПрдВрдб рдореЗрдВ, рдпреЗ рдЬрдирд░реЗрдЯрд░реНрд╕ LLM рдкреНрд░рджрд╛рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЧрдП APIs рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдврд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрдирд░реЗрдЯрд░реНрд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
1. рдЪреИрдЯ рдЬрдирд░реЗрдЯрд░реНрд╕: рдпреЗ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдиреЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╢реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдХреЗ рдЪреИрдЯ рдХрдореНрдкреНрд▓реАрд╢рди рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред
2. рдиреЙрди-рдЪреИрдЯ рдЬрдирд░реЗрдЯрд░реНрд╕: рдпреЗ рд╕рд░рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдЬрдирд░реЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ, рдЬреИрд╕реЗ рдЕрдиреБрд╡рд╛рдж рдпрд╛ рд╕рд╛рд░-рд╕рдВрдХреНрд╖реЗрдкрдг, рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
3. рд░рд┐рдЯреНрд░реАрд╡рд░реНрд╕
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдХрд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрджреНрд╡рд┐рддреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Elasticsearch рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рд░рд┐рдЯреНрд░реАрд╡рд░ рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░тАФрджреЛрдиреЛрдВ рдкреИрдХреЗрдЬ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
4. рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕
Haystack рдореЗрдВ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП write_documents () рдФрд░ delete_documents () рдЬреИрд╕реА рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рдпрд╛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП DocumentWriter рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
5. рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕
рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рд░рд▓ рдФрд░ рдореЙрдбреНрдпреБрд▓рд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВред рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдореЗрдВ рдЗрдирдкреБрдЯреНрд╕ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рд╣реЛрддреА рд╣реИред
рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрддреА рд╣реИрдВ:
Document рдХреНрд▓рд╛рд╕: рдЗрд╕рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ, рдореЗрдЯрд╛рдбреЗрдЯрд╛, рдЯреЗрдмрд▓реНрд╕ рдпрд╛ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Answer рдХреНрд▓рд╛рд╕: рдЗрд╕рдореЗрдВ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрддреНрддрд░, рдореВрд▓ рдХреНрд╡реЗрд░реА, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
6. рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕
рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдФрд░ рдЗрдВрдЯреЗрдЧреНрд░реЗрд╢рдВрд╕ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрдмрд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдмрдирд╛рддреА рд╣реИрдВред рдпреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдлрд╝реНрд▓реЛ, рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕, рд▓реВрдкреНрд╕, рд╕рд╛рде рд╣реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдФрд░ рдХреНрд╡реЗрд░реАрдВрдЧ рд╕реНрдЯреЗрдкреНрд╕ рдЬреИрд╕реА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВред рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЛ YAML рдпрд╛ TOML рдЬреИрд╕реЗ рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рд╕реЗрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдпрд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
7. рдПрдЬреЗрдВрдЯреНрд╕
AI рдПрдЬреЗрдВрдЯреНрд╕ рд╕реНрд╡рд╛рдпрддреНрдд рд╕рд┐рд╕реНрдЯрдо рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддреЗ рд╣реИрдВред рдЖрдк рдХрд┐рд╕реА API рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓реНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдЬреЗрдВрдЯ рдХреЛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред рдПрдЬреЗрдВрдЯ рдХреНрд╡реЗрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
Haystack AI рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо Haystack рдХреЗ рдкреНрд░рдореБрдЦ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдПрдХ AI рдПрдЬреЗрдВрдЯрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рдПрдВрдЧреЗ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд╡реЗрд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ RAG рдФрд░ рд╡реЗрдм рдПрдХреНрд╕реЗрд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред┬а
1. рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗрдЯрдЕрдк
рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдХреЛрдбрд┐рдВрдЧ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрди Python рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗ: Haystack, OpenAI, Tavil, рдФрд░ itertoolsред рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
Haystack: LLM-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдФрд░ рдПрдЬреЗрдВрдЯреНрд╕ рдмрдирд╛рдирд╛ред
Tavil: APIs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЗрдм рд╕рд░реНрдЪ рдлрд╝рдВрдХреНрд╢рдиреИрд▓рд┐рдЯреА рддрдХ рдкрд╣реБрдБрдЪред
OpenAI: LLMs рдФрд░ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдореЙрдбрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
itertools: Python рдореЗрдВ рдПрдбрд╡рд╛рдВрд╕реНрдб рдЗрдЯрд░реЗрд╢рди рдЯреВрд▓реНрд╕ рдФрд░ рдХреБрд╢рд▓ рд▓реВрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред
! pip install -qU \
"haystack-ai[agentst]" \
tavily-python \
openai \
more_itertoolsрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
OpenAI рдФрд░ Tavily рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреА API keys рдХреЛ environment variables рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Environment рдЯреИрдм рдореЗрдВ рдЬрд╛рдПрдБ рдФрд░ Environment Variables рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВред┬а
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЙрдиреНрд╣реЗрдВ Python рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import os
os. environ[ "OPENAI_API_KEY" ] = "sk-..."
os. environ[ "TAVILY_API_KEY" ] = "tvly-..." рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
2. рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рд╣рдо Haystack рдХреЗ Document рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рдмрдирд╛рдПрдБрдЧреЗред рдЗрд╕ рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рдореЗрдВ рдЗрд╕реНрд▓рд╛рдорд╛рдмрд╛рдж рд╢рд╣рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред
from haystack. dataclasses import Document
from typing import List, Any, Dict
docs: List[ Document] = [
Document( content= "Islamabad experiences a humid subtropical climate with hot summers and mild winters." ) ,
Document( content= "Peak tourist season in Islamabad is during spring (March to May) and autumn (September to November) due to pleasant weather." ) ,
Document( content= "Faisal Mosque, one of the largest mosques in the world, is an iconic landmark in Islamabad designed by Turkish architect Vedat Dalokay." ) ,
Document( content= "Islamabad was purpose-built as the capital of Pakistan in the 1960s, designed by Greek architect Constantinos Apostolos Doxiadis." ) ,
Document( content= "The city is known for its well-planned infrastructure, wide roads, and green spaces, making it one of the most organized cities in Pakistan." ) ,
] рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
3. рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдирд╛
рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдЯреЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрд╢рд▓ рд░рд┐рдЯреНрд░реАрд╡рд▓ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред┬а
рдпрд╣рд╛рдБ рд╣рдо рдпрд╣ рдХрд░реЗрдВрдЧреЗ:
рдЗрди-рдореЗрдореЛрд░реА рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдмрдирд╛рдПрдБрдЧреЗред
OpenAI рдПрдореНрдмреЗрдбрд░ рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд░рд╛рдЗрдЯрд░ рдЬреИрд╕реЗ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде Haystack рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдПрдБрдЧреЗред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓рдХрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗред
from haystack. document_stores. in_memory import InMemoryDocumentStore
from haystack. components. embedders import OpenAIDocumentEmbedder
from haystack. components. writers import DocumentWriter
from haystack import Pipeline, component
document_store = InMemoryDocumentStore( embedding_similarity_function= "cosine" )
indexing_pipeline = Pipeline( )
indexing_pipeline. add_component( "embedder" , OpenAIDocumentEmbedder( model= "text-embedding-3-small" ) )
indexing_pipeline. add_component( "writer" , DocumentWriter( document_store= document_store) )
indexing_pipeline. connect( "embedder" , "writer" )
indexing_pipeline. run( { "embedder" : { "documents" : docs} } ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:
Calculating embeddings: 1it [ 00:00, 1 .34it/s]
{ 'embedder' : { 'meta' : { 'model' : 'text-embedding-3-small' ,
'usage' : { 'prompt_tokens' : 128 , 'total_tokens' : 128 } } } ,
'writer' : { 'documents_written' : 5 } } рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
4. RAG рдЯреВрд▓ рдмрдирд╛рдирд╛
рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рднрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдХрд╕реНрдЯрдо RAG рд╕рд░реНрдЪ рдЯреВрд▓ рдмрдирд╛рдПрдБрдЧреЗред┬а
рдпрд╣ рдЯреВрд▓ рдпрд╣ рдХрд░реЗрдЧрд╛:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓реЗрдЧрд╛ред
рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдорд╛рдирддрд╛-рдЖрдзрд╛рд░рд┐рдд рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред
рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
from haystack. tools import ComponentTool
from haystack. components. embedders import OpenAIDocumentEmbedder, OpenAITextEmbedder
from haystack. components. retrievers. in_memory import InMemoryEmbeddingRetriever
@component ( )
class RagSearcher :
"""Query тАС> topтАСk docs from the private store"""
def __init__ ( self, document_store, top_k: int = 3 ) :
self. text_embedder = OpenAITextEmbedder( model= "text-embedding-3-small" )
self. retriever = InMemoryEmbeddingRetriever( document_store= document_store, top_k= top_k)
@component. output_types ( documents= List[ Document] )
def run ( self, text: str ) - > Dict[ str , Any] :
emb_out = self. text_embedder. run( text= text)
docs_out = self. retriever. run( query_embedding= emb_out[ "embedding" ] )
return { "documents" : docs_out[ "documents" ] }
rag_tool = ComponentTool(
component= RagSearcher( document_store) ,
name= "rag_search" ,
description= "Semantic search over the Islamabad knowledge base."
) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
5. рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдмрдирд╛рдирд╛
рдХреНрдпреЛрдВрдХрд┐ Tavily рдХреЗ рдиреИрдЯрд┐рд╡ Haystack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо Tavily API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрд╕реНрдЯрдо рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдмрдирд╛рдПрдБрдЧреЗред рдпрд╣ рдЯреВрд▓ рд▓рд╛рдЗрд╡ рд╡реЗрдм рд╕рд░реНрдЪ рдкрд░рд┐рдгрд╛рдо рд▓рд╛рдПрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ Document рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдПрдЧрд╛ред
import os
import requests
from haystack import component
from haystack. dataclasses import Document
from typing import List
@component
class TavilyWebSearch :
def __init__ ( self, api_key: str , top_k: int = 3 ) :
self. api_key = api_key
self. top_k = top_k
def run ( self, query: str ) :
resp = requests. post(
"https://api.tavily.com/search" ,
json= {
"api_key" : self. api_key,
"query" : query,
"max_results" : self. top_k,
"include_answer" : True ,
} ,
timeout= 15 ,
)
resp. raise_for_status( )
data = resp. json( )
docs: List[ Document] = [ ]
if answer := data. get( "answer" ) :
docs. append( Document( content= answer, meta= { "source" : "tavily:direct_answer" } ) )
for hit in data. get( "results" , [ ] ) :
docs. append(
Document(
content= hit[ "content" ] ,
meta= {
"title" : hit[ "title" ] ,
"url" : hit[ "url" ] ,
} ,
)
)
return { "documents" : docs}
web_tool = ComponentTool(
component= TavilyWebSearch( api_key= os. environ[ "TAVILY_API_KEY" ] , top_k= 3 ) ,
name= "web_search" ,
description= "Live web search via Tavily ."
) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
6. рдПрдХ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдирд╛
рд╣рдо OpenAI рдлрдВрдХреНрд╢рдВрд╕ рдФрд░ рдирд╡реАрдирддрдо gpt-4.1-mini рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рдПрдБрдЧреЗред рдкрд╣рд▓реЗ, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдПрдЬреЗрдВрдЯ рдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЬрдирд░реЗрдЯрд░, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдФрд░ рдЯреВрд▓реНрд╕ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдБрдЧреЗред
рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдЬреЗрдВрдЯ рдкрд╣рд▓реЗ RAG рд╕рд░реНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдирдХрд╛рд░реА рдЬрд╛рдБрдЪреЗрдЧрд╛ред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рд╢реНрди рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░, рдореМрд╕рдо рдпрд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдиреНрдпреВрдЬрд╝ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдПрдЬреЗрдВрдЯ рд╕реАрдзреЗ рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
from haystack. components. generators. chat import OpenAIChatGenerator
from haystack. components. agents import Agent
generator = OpenAIChatGenerator( model= "gpt-4.1-mini" )
system_prompt = """
You are a helpful assistant.
- Use rag_search first to retrieve information from the knowledge base.
- Use web_search only when the query requires fresh, real-time, or external information (e.g., weather, breaking news).
"""
agent = Agent(
chat_generator= generator,
system_prompt= system_prompt,
tools= [ rag_tool, web_tool] ,
) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
7. RAG рдЯреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рд╣рдо рдЗрд╕реНрд▓рд╛рдорд╛рдмрд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВрдЧреЗ рддрд╛рдХрд┐ RAG рдЯреВрд▓ рдХреЛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирд╡реЛрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
from haystack. dataclasses import ChatMessage
msg = ChatMessage. from_user( "What is the peak tourist season in Islamabad?" )
resp = agent. run( messages= [ msg] )
print ( resp[ "messages" ] [ - 1 ] . text) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрджрд░реНрднрд┐рдд рдЙрддреНрддрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП RAG рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реБрдЖ рд╣реИ?
The peak tourist season in Islamabad is during spring ( March to May) and autumn ( September to November) .рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
8. рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЯреВрд▓реНрд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди-рд╕реЗ рдЯреВрд▓реНрд╕ рдЗрдирд╡реЛрдХ рд╣реБрдП, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдБрдЧреЗ рдЬреЛ рдЯреВрд▓реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓реЗрдЧрд╛ред
def tools_used ( run_output: dict ) - > list [ str ] :
seen, ordered = set ( ) , [ ]
for msg in run_output[ "messages" ] :
for call in msg. tool_calls:
if call. tool_name not in seen:
ordered. append( call. tool_name)
seen. add( call. tool_name)
return ordered
print ( "Tools invoked тЖТ" , tools_used( resp) ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдПрдЬреЗрдВрдЯ рдиреЗ рдХреЗрд╡рд▓ rag_search рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ред
Tools invoked тЖТ [ 'rag_search' ] рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
9. рд╡реЗрдм рдЯреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рдЕрдм рд╣рдо рдЗрд╕реНрд▓рд╛рдорд╛рдмрд╛рдж рдХреЗ рдореМрд╕рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗрдВрдЧреЗред RAG рдЯреВрд▓ рдХреЛ рдЗрдирд╡реЛрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
msg = ChatMessage. from_user( "What is the temperature in Islamabad now?" )
resp = agent. run( messages= [ msg] )
print ( resp[ "messages" ] [ - 1 ] . text)
print ( "Tools invoked тЖТ" , tools_used( resp) ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЙрддреНрддрд░ рдХрд╛рдлреА рд╕рдЯреАрдХ рд╣реИ, рдФрд░ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
The current temperature in Islamabad is 31 ┬░C with a real-feel temperature of 32 ┬░C.
Tools invoked тЖТ [ 'web_search' ] рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрджрд┐ рдЖрдкрдХреЛ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ Datalab Notebook рджреЗрдЦреЗрдВ: Haystack AI Tutorial тАФ DataLab .
Haystack рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ
рд╣рдордиреЗ Haystack AI рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рдХрд╡рд░ рдХрд░ рд▓реА рд╣реИрдВред рдЖрдкрдХреА рд╕реАрдЦрдиреЗ рдХреА рдЕрдЧрд▓реА рдХрдбрд╝реА рдПрдХ рдкреВрд░реНрдгрддрдГ рдХрд╛рд░реНрдпрд╢реАрд▓ AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрдбрд╝рддрд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдорд▓реНрдЯреАрдореЙрдбрд▓ AI: рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдЗрдореЗрдЬ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдФрд░ рдПрдХреАрдХреГрдд рдХрд░реЗрдВтАФрдЬреИрд╕реЗ рдЗрдореЗрдЬ рдХреИрдкреНрд╢рдирд┐рдВрдЧ, рдСрдбрд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдЗрдореЗрдЬ рдЬрдирд░реЗрд╢рдиред
рдХрдиреНрд╡рд░реНрд╕реЗрд╢рдирд▓ AI: рдорд▓реНрдЯреА-рдЯрд░реНрди, рдбрд╛рдпрдиреЗрдорд┐рдХ рдЪреИрдЯрдмреЙрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЪреИрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬреЛ рд╕рд╛рд░реНрдердХ рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХреЗрдВред
рдПрдЬреЗрдВрдЯрд┐рдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕: рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рднрд╛рд╖рд╛ рдореЙрдбрд▓реЛрдВ рдХреЛ рдЯреВрд▓реНрд╕ рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдмрд╛рд╣рд░реА рдХреНрд╖рдорддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдПрдБред
рдПрдбрд╡рд╛рдВрд╕реНрдб RAG: рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд░рд┐рдЯреНрд░реАрд╡рд▓ рдХреЛ LLM-рдЖрдзрд╛рд░рд┐рдд рдЬрдирд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдХрд░ рд╡рд┐рд╡рд┐рдз рд░рд┐рдЯреНрд░реАрд╡рд▓ рдФрд░ рдЬрдирд░реЗрд╢рди рд░рдгрдиреАрддрд┐рдпрд╛рдБ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
MCP рдЯреВрд▓реНрд╕ рдЗрдВрдЯреЗрдЧреНрд░реЗрд╢рди: Model Context Protocol рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ LLMs рдХреЛ рдмрд╛рд╣рд░реА рдЯреВрд▓реНрд╕, APIs рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕рд╣рдЬрддрд╛ рд╕реЗ рдЬреЛрдбрд╝реЗрдВред
рдореЙрдбрд▓ рдЗрд╡реИрд▓реНрдпреВрдПрд╢рди: рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХрд╛ рд╕рдЯреАрдХрддрд╛, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВред
рдорд▓реНрдЯреА-рдПрдЬреЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди: рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдБ рдЬрд╣рд╛рдБ рдХрдИ рдПрдЬреЗрдВрдЯреНрд╕ рдорд┐рд▓рдХрд░ рдЬрдЯрд┐рд▓, рдмрд╣реБ-рдЪрд░рдгреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░реЗрдВред
рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░
рдХрдИ LLM рдлрд╝реНрд░реЗрдорд╡рд░реНрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ Haystack рд╕рдмрд╕реЗ рд╕рд╣рдЬ рдФрд░ рд▓рдЪреАрд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ, рдХрдо рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИред┬а
рдЗрд╕рдХреЗ рдкреНрд░рдореБрдЦ рдЖрдХрд░реНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИтАФрдЕрдкрдиреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдмреЗрд╣рдж рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдирд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЕрдиреБрдХреВрд▓ рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдЬреЗрдВрдЯреНрд╕ рдФрд░ рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдЗрдирд╡реЛрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЯреВрд▓реНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдФрд░ рдХреНрд░рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдордЭ рдорд┐рд▓реАред┬а
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ IDs рдЬреИрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдЦрд╛рдП рдЬрд╛ рд╕рдХреЗрдВ, рдЬреЛ рдЖрдкрдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк AI рдПрдЬреЗрдВрдЯреНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрди рджреЗрдЦреЗрдВ:┬а
Retrieval-Augmented Generation (RAG) рдХреЗ рджреМрд░ рдореЗрдВ, LangChain рдЬреИрд╕реЗ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реБрдПред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рджреБрдирд┐рдпрд╛ Agentic AI рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реА рд╣реИ, Haystack AI рдЬреИрд╕реЗ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдЕрдкрдиреА рд▓рдЪреАрд▓реЗрдкрди, рдореЙрдбреНрдпреБрд▓реИрд░рд┐рдЯреА, рдФрд░ рд╡рд┐рд╡рд┐рдз рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рдореБрдЦрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Haystack AI рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреА рдкрдбрд╝рддрд╛рд▓ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдХрдИ рдЯреВрд▓реНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ AI рдПрдЬреЗрдВрдЯрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред рдПрдЬреЗрдВрдЯрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рднрд╛рд╖рд╛ рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рддрдГ рдЯреВрд▓реНрд╕ рдФрд░ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рдЗрдирд╡реЛрдХ рдХрд░ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ Agentic AI рдФрд░ Agentic RAG рдкрд░ рд╣рдорд╛рд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЕрд╡рд╢реНрдп рджреЗрдЦреЗрдВред┬а
рд╣рдо рдЕрдкрдиреЗ рдкрд╛рдардХреЛрдВ рдХреЛ AI рдХреА рддрд╛рдЬрд╝рд╛ рдЦрдмрд░реЛрдВ рд╕реЗ рдЕрдкрдбреЗрдЯ рд░рдЦрддреЗ рд╣реИрдВ The Median рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗтАФрдпрд╣ рд╣рдорд╛рд░рд╛ рдирд┐рдГрд╢реБрд▓реНрдХ рд╢реБрдХреНрд░рд╡рд╛рд░ рдиреНрдпреВрдЬрд╝рд▓реЗрдЯрд░ рд╣реИ рдЬреЛ рд╣рдлреНрддреЗ рдХреА рдкреНрд░рдореБрдЦ рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓рддрд╛ рд╕реЗ рд╕рдордЭрд╛рддрд╛ рд╣реИред рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░реЗрдВ рдФрд░ рд╣рд░ рд╕рдкреНрддрд╛рд╣ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рд░рд╣реЗрдВ:
Haystack AI рдХреНрдпрд╛ рд╣реИ?
Haystack рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕реЗ Large Language Models (LLMs) рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп, рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ RAG рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕, рдПрдЬреЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛ, рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рд╕рд░реНрдЪ рд╕рд┐рд╕реНрдЯрдо, рдФрд░ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реНрд╡рд╛рдпрддреНрдд AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреИрд╕реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
Haystack рдХреА рдореЙрдбреНрдпреБрд▓рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ OpenAI, Hugging Face Transformers, Chroma, MCP рдЯреВрд▓реНрд╕, Elasticsearch, рдФрд░ рдЕрдиреНрдп рдЕрдЧреНрд░рдгреА AI рддрдХрдиреАрдХреЛрдВ рдФрд░ рдЯреВрд▓реНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рджреЗрддреА рд╣реИред┬а
рдпрд╣ Langchain рд╕реЗ рд╕рд░рд▓ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдПрдЬреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓реНрд╕ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореВрд▓ рд░реВрдк рд╕реЗ, Haystack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рд╕рдВрд░рдЪрд┐рдд рд╣реИ, рдЬреЛ LLM рдкреНрд░рджрд╛рддрд╛рдУрдВ, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕, рдЯреВрд▓реНрд╕, рдПрдЬреЗрдВрдЯреНрд╕, рдФрд░ рд╕рдореГрджреНрдз рдЗрдВрдЯреЗрдЧреНрд░реЗрд╢рдВрд╕ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдВрдб-рдЯреВ-рдПрдВрдб AI рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдФрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд: Haystack Concepts Overview
Haystack рдХреЗ рдкреНрд░рдореБрдЦ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Haystack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдордЬрд╝рдмреВрдд RAG рд╡рд░реНрдХрдлрд╝реНрд▓реЛ, рдПрдЬреЗрдВрдЯрд┐рдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕, рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдЙрдиреНрдирдд AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
1. рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕
Haystack рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВтАФрдЬреИрд╕реЗ рд░рд┐рдЯреНрд░реАрд╡рд▓, рдЬрдирд░реЗрд╢рди, рдпрд╛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реЗрдЬтАФрдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпреЗ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ Python рдХреНрд▓рд╛рд╕реЗрд╕ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЗрдердбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
run()рдореЗрдердб рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬ардХреЙрдореНрдкреЛрдиреЗрдВрдЯ API рдХрд╕реНрдЯрдо рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА APIs рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред┬а
2. рдЬрдирд░реЗрдЯрд░реНрд╕
рдЬрдирд░реЗрдЯрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдмреИрдХрдПрдВрдб рдореЗрдВ, рдпреЗ рдЬрдирд░реЗрдЯрд░реНрд╕ LLM рдкреНрд░рджрд╛рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЧрдП APIs рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдврд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрдирд░реЗрдЯрд░реНрд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
1. рдЪреИрдЯ рдЬрдирд░реЗрдЯрд░реНрд╕: рдпреЗ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдиреЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╢реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдХреЗ рдЪреИрдЯ рдХрдореНрдкреНрд▓реАрд╢рди рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред
2. рдиреЙрди-рдЪреИрдЯ рдЬрдирд░реЗрдЯрд░реНрд╕: рдпреЗ рд╕рд░рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдЬрдирд░реЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ, рдЬреИрд╕реЗ рдЕрдиреБрд╡рд╛рдж рдпрд╛ рд╕рд╛рд░-рд╕рдВрдХреНрд╖реЗрдкрдг, рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
3. рд░рд┐рдЯреНрд░реАрд╡рд░реНрд╕
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдХрд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрджреНрд╡рд┐рддреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Elasticsearch рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рд░рд┐рдЯреНрд░реАрд╡рд░ рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░тАФрджреЛрдиреЛрдВ рдкреИрдХреЗрдЬ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
4. рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕
Haystack рдореЗрдВ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП
write_documents ()рдФрд░delete_documents ()рдЬреИрд╕реА рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рдпрд╛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдПDocumentWriterрдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред5. рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕
рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рд░рд▓ рдФрд░ рдореЙрдбреНрдпреБрд▓рд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВред рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдореЗрдВ рдЗрдирдкреБрдЯреНрд╕ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рд╣реЛрддреА рд╣реИред
рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрддреА рд╣реИрдВ:
6. рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕
рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реНрд╕ рдФрд░ рдЗрдВрдЯреЗрдЧреНрд░реЗрд╢рдВрд╕ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрдмрд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдмрдирд╛рддреА рд╣реИрдВред рдпреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдлрд╝реНрд▓реЛ, рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕, рд▓реВрдкреНрд╕, рд╕рд╛рде рд╣реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдФрд░ рдХреНрд╡реЗрд░реАрдВрдЧ рд╕реНрдЯреЗрдкреНрд╕ рдЬреИрд╕реА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВред рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЛ YAML рдпрд╛ TOML рдЬреИрд╕реЗ рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рд╕реЗрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдпрд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
7. рдПрдЬреЗрдВрдЯреНрд╕
AI рдПрдЬреЗрдВрдЯреНрд╕ рд╕реНрд╡рд╛рдпрддреНрдд рд╕рд┐рд╕реНрдЯрдо рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддреЗ рд╣реИрдВред рдЖрдк рдХрд┐рд╕реА API рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓реНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдЬреЗрдВрдЯ рдХреЛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред рдПрдЬреЗрдВрдЯ рдХреНрд╡реЗрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
Haystack AI рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо Haystack рдХреЗ рдкреНрд░рдореБрдЦ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдПрдХ AI рдПрдЬреЗрдВрдЯрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рдПрдВрдЧреЗ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд╡реЗрд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ RAG рдФрд░ рд╡реЗрдм рдПрдХреНрд╕реЗрд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред┬а
1. рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗрдЯрдЕрдк
рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдХреЛрдбрд┐рдВрдЧ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрди Python рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗ: Haystack, OpenAI, Tavil, рдФрд░ itertoolsред рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
OpenAI рдФрд░ Tavily рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреА API keys рдХреЛ environment variables рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Environment рдЯреИрдм рдореЗрдВ рдЬрд╛рдПрдБ рдФрд░ Environment Variables рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВред┬а
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЙрдиреНрд╣реЗрдВ Python рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
2. рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рд╣рдо Haystack рдХреЗ Document рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рдмрдирд╛рдПрдБрдЧреЗред рдЗрд╕ рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рдореЗрдВ рдЗрд╕реНрд▓рд╛рдорд╛рдмрд╛рдж рд╢рд╣рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред
3. рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдирд╛
рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдЯреЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрд╢рд▓ рд░рд┐рдЯреНрд░реАрд╡рд▓ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред┬а
рдпрд╣рд╛рдБ рд╣рдо рдпрд╣ рдХрд░реЗрдВрдЧреЗ:
рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:
4. RAG рдЯреВрд▓ рдмрдирд╛рдирд╛
рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рднрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдХрд╕реНрдЯрдо RAG рд╕рд░реНрдЪ рдЯреВрд▓ рдмрдирд╛рдПрдБрдЧреЗред┬а
рдпрд╣ рдЯреВрд▓ рдпрд╣ рдХрд░реЗрдЧрд╛:
5. рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдмрдирд╛рдирд╛
рдХреНрдпреЛрдВрдХрд┐ Tavily рдХреЗ рдиреИрдЯрд┐рд╡ Haystack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо Tavily API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрд╕реНрдЯрдо рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдмрдирд╛рдПрдБрдЧреЗред рдпрд╣ рдЯреВрд▓ рд▓рд╛рдЗрд╡ рд╡реЗрдм рд╕рд░реНрдЪ рдкрд░рд┐рдгрд╛рдо рд▓рд╛рдПрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ
DocumentрдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдПрдЧрд╛ред6. рдПрдХ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдирд╛
рд╣рдо OpenAI рдлрдВрдХреНрд╢рдВрд╕ рдФрд░ рдирд╡реАрдирддрдо
gpt-4.1-miniрдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рдПрдБрдЧреЗред рдкрд╣рд▓реЗ, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдПрдЬреЗрдВрдЯ рдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЬрдирд░реЗрдЯрд░, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдФрд░ рдЯреВрд▓реНрд╕ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдБрдЧреЗредрд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдЬреЗрдВрдЯ рдкрд╣рд▓реЗ RAG рд╕рд░реНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдирдХрд╛рд░реА рдЬрд╛рдБрдЪреЗрдЧрд╛ред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рд╢реНрди рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░, рдореМрд╕рдо рдпрд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдиреНрдпреВрдЬрд╝ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдПрдЬреЗрдВрдЯ рд╕реАрдзреЗ рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
7. RAG рдЯреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рд╣рдо рдЗрд╕реНрд▓рд╛рдорд╛рдмрд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВрдЧреЗ рддрд╛рдХрд┐ RAG рдЯреВрд▓ рдХреЛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирд╡реЛрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╣рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрджрд░реНрднрд┐рдд рдЙрддреНрддрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП RAG рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реБрдЖ рд╣реИ?
8. рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЯреВрд▓реНрд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди-рд╕реЗ рдЯреВрд▓реНрд╕ рдЗрдирд╡реЛрдХ рд╣реБрдП, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдБрдЧреЗ рдЬреЛ рдЯреВрд▓реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓реЗрдЧрд╛ред
рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдПрдЬреЗрдВрдЯ рдиреЗ рдХреЗрд╡рд▓
rag_searchрдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ред9. рд╡реЗрдм рдЯреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рдЕрдм рд╣рдо рдЗрд╕реНрд▓рд╛рдорд╛рдмрд╛рдж рдХреЗ рдореМрд╕рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗрдВрдЧреЗред RAG рдЯреВрд▓ рдХреЛ рдЗрдирд╡реЛрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдЙрддреНрддрд░ рдХрд╛рдлреА рд╕рдЯреАрдХ рд╣реИ, рдФрд░ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд░реНрдЪ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ Datalab Notebook рджреЗрдЦреЗрдВ: Haystack AI Tutorial тАФ DataLab.
Haystack рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ
рд╣рдордиреЗ Haystack AI рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рдХрд╡рд░ рдХрд░ рд▓реА рд╣реИрдВред рдЖрдкрдХреА рд╕реАрдЦрдиреЗ рдХреА рдЕрдЧрд▓реА рдХрдбрд╝реА рдПрдХ рдкреВрд░реНрдгрддрдГ рдХрд╛рд░реНрдпрд╢реАрд▓ AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрдбрд╝рддрд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░
рдХрдИ LLM рдлрд╝реНрд░реЗрдорд╡рд░реНрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ Haystack рд╕рдмрд╕реЗ рд╕рд╣рдЬ рдФрд░ рд▓рдЪреАрд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ, рдХрдо рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИред┬а
рдЗрд╕рдХреЗ рдкреНрд░рдореБрдЦ рдЖрдХрд░реНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИтАФрдЕрдкрдиреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдмреЗрд╣рдж рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдирд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЕрдиреБрдХреВрд▓ рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдЬреЗрдВрдЯреНрд╕ рдФрд░ рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдЗрдирд╡реЛрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЯреВрд▓реНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдФрд░ рдХреНрд░рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдордЭ рдорд┐рд▓реАред┬а
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ IDs рдЬреИрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдЦрд╛рдП рдЬрд╛ рд╕рдХреЗрдВ, рдЬреЛ рдЖрдкрдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк AI рдПрдЬреЗрдВрдЯреНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрди рджреЗрдЦреЗрдВ:┬а