[{"data":1,"prerenderedAt":2542},["ShallowReactive",2],{"/developers/templates/etl/_readmes/ag2-multiagent-rag-app":3,"navigation-developers":378,"/developers/templates/etl/_readmes/ag2-multiagent-rag":2300,"surr-/developers/templates/etl/_readmes/ag2-multiagent-rag":2539},{"id":4,"title":5,"author":6,"body":7,"description":369,"extension":370,"meta":371,"navigation":372,"path":373,"seo":374,"sitemap":375,"stem":376,"__hash__":377},"content/2.developers/7.templates/ETL/_readmes/ag2-multiagent-rag.md","AG2 Multi-Agent Conversations with Pathway Real-Time RAG",null,{"type":8,"value":9,"toc":359},"minimark",[10,14,32,35,40,86,89,92,106,113,116,124,127,138,141,248,251,293,296,340,343,346,355],[11,12,5],"h1",{"id":13},"ag2-multi-agent-conversations-with-pathway-real-time-rag",[15,16,17,18,25,26,31],"p",{},"This example demonstrates how to combine ",[19,20,24],"a",{"href":21,"rel":22},"https://ag2.ai/",[23],"nofollow","AG2"," (formerly AutoGen)\nmulti-agent conversations with ",[19,27,30],{"href":28,"rel":29},"https://pathway.com/",[23],"Pathway","'s real-time RAG pipeline.",[15,33,34],{},"AG2 is a multi-agent conversation framework with 500K+ monthly PyPI downloads,\n4,300+ GitHub stars, and 400+ contributors.",[36,37,39],"h2",{"id":38},"table-of-contents","Table of Contents",[41,42,43,50,56,62,68,74,80],"ol",{},[44,45,46],"li",{},[19,47,49],{"href":48},"#introduction","Introduction",[44,51,52],{},[19,53,55],{"href":54},"#prerequisites","Prerequisites",[44,57,58],{},[19,59,61],{"href":60},"#architecture","Architecture",[44,63,64],{},[19,65,67],{"href":66},"#setup-and-installation","Setup and Installation",[44,69,70],{},[19,71,73],{"href":72},"#usage","Usage",[44,75,76],{},[19,77,79],{"href":78},"#how-it-works","How It Works",[44,81,82],{},[19,83,85],{"href":84},"#conclusions","Conclusions",[36,87,49],{"id":88},"introduction",[15,90,91],{},"This project combines two powerful frameworks:",[93,94,95,101],"ul",{},[44,96,97,100],{},[98,99,30],"strong",{}," continuously indexes documents in real-time using its streaming engine, serving them through a VectorStoreServer REST API",[44,102,103,105],{},[98,104,24],{}," orchestrates multiple AI agents (Researcher + Analyst) that query Pathway's index as a tool during their conversation",[15,107,108,109,112],{},"The key advantage: Pathway re-indexes documents automatically whenever they change, so AG2 agents always query the ",[98,110,111],{},"latest"," version of the knowledge base — no manual re-indexing required.",[36,114,55],{"id":115},"prerequisites",[93,117,118,121],{},[44,119,120],{},"Python >= 3.10",[44,122,123],{},"OpenAI API key",[36,125,61],{"id":126},"architecture",[128,129,134],"pre",{"className":130,"code":132,"language":133},[131],"language-text","Documents (live folder) --> Pathway VectorStoreServer (real-time indexing)\n                                         |\n                                    REST API /v1/retrieve\n                                         |\nUser Query --> AG2 UserProxy --> GroupChat [Researcher + Analyst]\n                                         |\n                               search_documents tool --> HTTP POST --> Pathway\n                                         |\n                               Grounded, real-time answers with citations\n","text",[135,136,132],"code",{"__ignoreMap":137},"",[36,139,67],{"id":140},"setup-and-installation",[41,142,143,182,222,238],{},[44,144,145,148,149],{},[98,146,147],{},"Clone the Repository",":",[128,150,154],{"className":151,"code":152,"language":153,"meta":137,"style":137},"language-bash shiki shiki-themes material-theme-palenight","git clone https://github.com/pathwaycom/pathway.git\ncd pathway/examples/projects/ag2-multiagent-rag/\n","bash",[135,155,156,172],{"__ignoreMap":137},[157,158,161,165,169],"span",{"class":159,"line":160},"line",1,[157,162,164],{"class":163},"s5Dmg","git",[157,166,168],{"class":167},"sfyAc"," clone",[157,170,171],{"class":167}," https://github.com/pathwaycom/pathway.git\n",[157,173,175,179],{"class":159,"line":174},2,[157,176,178],{"class":177},"sdLwU","cd",[157,180,181],{"class":167}," pathway/examples/projects/ag2-multiagent-rag/\n",[44,183,184,148,187],{},[98,185,186],{},"Install Dependencies",[128,188,190],{"className":151,"code":189,"language":153,"meta":137,"style":137},"pip install -U pathway \"ag2[openai]>=0.11.4,\u003C1.0\" requests python-dotenv\n",[135,191,192],{"__ignoreMap":137},[157,193,194,197,200,203,206,210,213,216,219],{"class":159,"line":160},[157,195,196],{"class":163},"pip",[157,198,199],{"class":167}," install",[157,201,202],{"class":167}," -U",[157,204,205],{"class":167}," pathway",[157,207,209],{"class":208},"sAklC"," \"",[157,211,212],{"class":167},"ag2[openai]>=0.11.4,\u003C1.0",[157,214,215],{"class":208},"\"",[157,217,218],{"class":167}," requests",[157,220,221],{"class":167}," python-dotenv\n",[44,223,224,227,228,231,232],{},[98,225,226],{},"Environment Variables",":\nCreate a ",[135,229,230],{},".env"," file in the project root and add your OpenAI API key:",[128,233,236],{"className":234,"code":235,"language":133},[131],"OPENAI_API_KEY=your_openai_api_key_here\n",[135,237,235],{"__ignoreMap":137},[44,239,240,243,244,247],{},[98,241,242],{},"Add Documents",":\nPlace your documents (TXT, MD, PDF) in the ",[135,245,246],{},"./data/"," directory. A sample document is included for testing.",[36,249,73],{"id":250},"usage",[41,252,253,271,287],{},[44,254,255,148,258],{},[98,256,257],{},"Run the Pipeline",[128,259,261],{"className":151,"code":260,"language":153,"meta":137,"style":137},"python main.py\n",[135,262,263],{"__ignoreMap":137},[157,264,265,268],{"class":159,"line":160},[157,266,267],{"class":163},"python",[157,269,270],{"class":167}," main.py\n",[44,272,273,274],{},"The script will:",[93,275,276,281,284],{},[44,277,278,279],{},"Start a Pathway VectorStoreServer that indexes documents in ",[135,280,246],{},[44,282,283],{},"Launch AG2 agents that query the server for information",[44,285,286],{},"Print the multi-agent conversation with grounded answers",[44,288,289,292],{},[98,290,291],{},"Add documents while running"," — Pathway re-indexes automatically.",[36,294,79],{"id":295},"how-it-works",[93,297,298,310,324,330],{},[44,299,300,302,303,305,306,309],{},[98,301,30],{}," reads documents from ",[135,304,246],{},", chunks them with ",[135,307,308],{},"TokenCountSplitter",", embeds them with OpenAI embeddings, and serves the index via HTTP",[44,311,312,315,316,319,320,323],{},[98,313,314],{},"AG2 Researcher agent"," queries Pathway's ",[135,317,318],{},"/v1/retrieve"," endpoint via the ",[135,321,322],{},"search_documents"," tool to retrieve relevant chunks",[44,325,326,329],{},[98,327,328],{},"AG2 Analyst agent"," synthesizes retrieved information into a comprehensive answer",[44,331,332,333,336,337],{},"The agents communicate via AG2's ",[135,334,335],{},"GroupChat",", coordinated by a ",[135,338,339],{},"GroupChatManager",[36,341,85],{"id":342},"conclusions",[15,344,345],{},"This example shows how Pathway's real-time document indexing complements AG2's multi-agent orchestration. The combination is especially useful for scenarios where documents change frequently and agents need access to the latest information — such as live knowledge bases, continuously updated reports, or streaming data pipelines.",[15,347,348,349,354],{},"You can find more ready-to-run pipelines in our ",[19,350,353],{"href":351,"rel":352},"https://github.com/pathwaycom/pathway/blob/main/examples/projects/ag2-multiagent-rag//developers/templates?tab=ai-pipelines",[23],"templates section",".",[356,357,358],"style",{},"html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}",{"title":137,"searchDepth":174,"depth":174,"links":360},[361,362,363,364,365,366,367,368],{"id":38,"depth":174,"text":39},{"id":88,"depth":174,"text":49},{"id":115,"depth":174,"text":55},{"id":126,"depth":174,"text":61},{"id":140,"depth":174,"text":67},{"id":250,"depth":174,"text":73},{"id":295,"depth":174,"text":79},{"id":342,"depth":174,"text":85},"This example demonstrates how to combine AG2 (formerly AutoGen)\nmulti-agent conversations with Pathway's real-time RAG pipeline.","md",{},true,"/developers/templates/etl/_readmes/ag2-multiagent-rag",{"title":5,"description":369},{"loc":373},"2.developers/7.templates/ETL/_readmes/ag2-multiagent-rag","RN4vwfVSy7ekQgSTOxZh1RFiPlc7s2-wrjgsVk1lTLw",[379],{"title":380,"path":381,"stem":382,"children":383,"page":400},"Developers","/developers","2.developers",[384,1246,1562],{"title":385,"path":386,"stem":387,"children":388,"page":400},"User Guide","/developers/user-guide","2.developers/4.user-guide",[389,443,703,824,902,1019,1151,1167,1225],{"title":49,"meta":390,"icon":391,"path":392,"stem":393,"children":394,"page":400},{"icon":391},"heroicons:book-open","/developers/user-guide/introduction","2.developers/4.user-guide/10.introduction",[395,401,406,411,416,421,426,431,436],{"title":396,"path":397,"stem":398,"meta":399},"Welcome","/developers/user-guide/introduction/welcome","2.developers/4.user-guide/10.introduction/10.welcome",{"heading":400,"toc":400},false,{"title":402,"path":403,"stem":404,"meta":405},"Installation","/developers/user-guide/introduction/installation","2.developers/4.user-guide/10.introduction/20.installation",{"heading":400,"toc":400},{"title":407,"path":408,"stem":409,"meta":410},"Overview","/developers/user-guide/introduction/pathway-overview","2.developers/4.user-guide/10.introduction/30.pathway-overview",{},{"title":412,"path":413,"stem":414,"meta":415},"Starting Examples","/developers/user-guide/introduction/first_realtime_app_with_pathway","2.developers/4.user-guide/10.introduction/40.first_realtime_app_with_pathway",{},{"title":417,"path":418,"stem":419,"meta":420},"Core Concepts","/developers/user-guide/introduction/concepts","2.developers/4.user-guide/10.introduction/50.concepts",{},{"title":422,"path":423,"stem":424,"meta":425},"Why Pathway","/developers/user-guide/introduction/why-pathway","2.developers/4.user-guide/10.introduction/60.why-pathway",{},{"title":427,"path":428,"stem":429,"meta":430},"Licensing Guide","/developers/user-guide/introduction/licensing-guide","2.developers/4.user-guide/10.introduction/65.licensing-guide",{"heading":400,"toc":400},{"title":432,"path":433,"stem":434,"meta":435},"Streaming and Static Modes","/developers/user-guide/introduction/streaming-and-static-modes","2.developers/4.user-guide/10.introduction/70.streaming-and-static-modes",{},{"title":437,"path":438,"stem":439,"meta":440},"Batch Processing in Python","/developers/user-guide/introduction/batch-processing","2.developers/4.user-guide/10.introduction/80.batch-processing",{"thumbnail":441,"thumbnailFit":442},"/assets/content/documentation/pathway-batch.png","contain",{"title":444,"path":445,"stem":446,"children":447,"page":400},"Connect","/developers/user-guide/connect","2.developers/4.user-guide/20.connect",[448,461,466,472,477,482,495,505,510,531],{"title":449,"path":450,"stem":451,"meta":452},"Basic Data Types","/developers/user-guide/connect/datatypes","2.developers/4.user-guide/20.connect/20.datatypes",{"date":453,"tags":454,"keywords":457,"notebook_export_path":460},"2024-01-26",[455,456],"tutorial","table",[458,459],"type","schema","notebooks/tutorials/basic_datatypes.ipynb",{"title":462,"path":463,"stem":464,"meta":465},"Connectors in Pathway","/developers/user-guide/connect/connectors-in-pathway","2.developers/4.user-guide/20.connect/30.connectors-in-pathway",{},{"title":467,"path":468,"stem":469,"meta":470},"Connectors list","/developers/user-guide/connect/pathway-connectors","2.developers/4.user-guide/20.connect/35.pathway-connectors",{"layout":471,"aside":372,"toc":400,"single":372},"default",{"title":473,"path":474,"stem":475,"meta":476},"Defining Schema","/developers/user-guide/connect/schema","2.developers/4.user-guide/20.connect/40.schema",{},{"title":478,"path":479,"stem":480,"meta":481},"Generate Data Streams with the demo Module","/developers/user-guide/connect/artificial-streams","2.developers/4.user-guide/20.connect/50.artificial-streams",{},{"title":483,"path":484,"stem":485,"meta":486},"Automatic Generation of Schema Class","/developers/user-guide/connect/schema-generation","2.developers/4.user-guide/20.connect/60.schema-generation",{"date":487,"thumbnail":488,"tags":490,"keywords":491,"notebook_export_path":494},"2023-11-08",{"src":489},"/assets/content/blog/th-custom-connectors.png",[455,456],[459,458,492,493],"JSON","connectors","notebooks/tutorials/schema-generation.ipynb",{"title":496,"path":497,"stem":498,"meta":499},"Dealing with JSON Data Type","/developers/user-guide/connect/json_type","2.developers/4.user-guide/20.connect/70.json_type",{"date":500,"thumbnail":501,"tags":502,"keywords":503,"notebook_export_path":504},"2023-12-22","/assets/content/blog/th-json.png",[455,456],[492,458,459],"notebooks/tutorials/json_type.ipynb",{"title":506,"path":507,"stem":508,"meta":509},"Switching from Batch to Streaming","/developers/user-guide/connect/switch-from-batch-to-streaming","2.developers/4.user-guide/20.connect/80.switch-from-batch-to-streaming",{},{"title":511,"path":512,"stem":513,"meta":514},"Live Web Scraping","/developers/user-guide/connect/python-web-scraping","2.developers/4.user-guide/20.connect/90.python-web-scraping",{"date":515,"tags":516,"keywords":517,"tech_icons":525,"thumbnail":527,"deployment_tag":528,"docker_github_link":530},"2025-03-13",[455,493],[518,519,520,521,522,523,524],"connector","scraping","WEB","Python","input","streaming","web scraping",[526],"streamline:web","/assets/content/showcases/web_scraping/web-scraping-th.png",[529],"docker","https://github.com/pathwaycom/pathway/tree/main/examples/projects/web-scraping",{"title":532,"path":533,"stem":534,"children":535,"page":400},"Connectors","/developers/user-guide/connect/connectors","2.developers/4.user-guide/20.connect/99.connectors",[536,553,565,577,586,605,616,629,637,649,659,668,680,693],{"title":537,"path":538,"stem":539,"meta":540},"File System Connector","/developers/user-guide/connect/connectors/fs-connector","2.developers/4.user-guide/20.connect/99.connectors/05.fs-connector",{"date":453,"tags":541,"tech_icons":542,"deployment_tag":544,"keywords":546,"notebook_export_path":552},[455,456],[543],"lets-icons:file-fill",[545,529],"jupyter",[518,547,548,549,522,550,551,523],"file system","csv","json","output","static","notebooks/tutorials/fs_connector.ipynb",{"title":554,"path":555,"stem":556,"meta":557},"CSV connectors","/developers/user-guide/connect/connectors/csv_connectors","2.developers/4.user-guide/20.connect/99.connectors/10.csv_connectors",{"date":558,"thumbnail":559,"tags":560,"keywords":561,"tech_icons":563},"2023-01-12","/assets/content/blog/th-csv-connectors.png",[455,493],[518,562,522,550,551,523],"CSV",[564],"mdi:file-csv",{"title":566,"path":567,"stem":568,"meta":569},"Sending alerts to Slack","/developers/user-guide/connect/connectors/slack_send_alerts","2.developers/4.user-guide/20.connect/99.connectors/100.slack_send_alerts",{"date":570,"tags":571,"keywords":572,"tech_icons":575},"2024-02-16",[455,493],[518,573,574,550,523],"Slack","alerts",[576],"mdi:slack",{"title":578,"path":579,"stem":580,"meta":581},"Airbyte connectors","/developers/user-guide/connect/connectors/airbyte-connectors","2.developers/4.user-guide/20.connect/99.connectors/110.airbyte-connectors",{"tags":582,"keywords":583},[455,493],[518,584,585,522,551,523],"Airbyte","cloud",{"title":587,"path":588,"stem":589,"meta":590},"Using Pathway Debezium Connector for MongoDB","/developers/user-guide/connect/connectors/mongodb-debezium","2.developers/4.user-guide/20.connect/99.connectors/115.mongodb-debezium",{"date":591,"tags":592,"keywords":593,"tech_icons":601,"deployment_tag":603,"docker_github_link":604,"hideInConnectorList":372},"2024-10-30",[455,493],[518,594,595,596,597,598,599,600,522,550,523],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[602],"material-symbols-light:database",[529],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/debezium-mongodb-example",{"title":606,"path":607,"stem":608,"meta":609},"JSON Lines connectors","/developers/user-guide/connect/connectors/jsonlines-connector","2.developers/4.user-guide/20.connect/99.connectors/15.jsonlines-connector",{"date":610,"tags":611,"keywords":612,"tech_icons":614},"2024-02-20",[455,493],[518,613,492,522,550,551,523],"JSON Lines",[615],"lets-icons:json",{"title":617,"path":618,"stem":619,"meta":620},"Database connectors","/developers/user-guide/connect/connectors/database-connectors","2.developers/4.user-guide/20.connect/99.connectors/20.database-connectors",{"date":621,"thumbnail":622,"tags":623,"keywords":624,"tech_icons":626,"deployment_tag":627,"docker_github_link":628},"2023-01-19","/assets/content/blog/th-database-connectors.png",[455,493],[518,594,625,596,597,598,599,600,522,550,523],"PostgreSQL",[602],[529],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/debezium-postgres-example",{"title":630,"path":631,"stem":632,"meta":633},"Custom Python connectors","/developers/user-guide/connect/connectors/custom-python-connectors","2.developers/4.user-guide/20.connect/99.connectors/30.custom-python-connectors",{"date":634,"thumbnail":489,"tags":635,"keywords":636},"2023-04-13",[455,493],[518,521,522,523],{"title":638,"path":639,"stem":640,"meta":641},"Kafka connectors","/developers/user-guide/connect/connectors/kafka_connectors","2.developers/4.user-guide/20.connect/99.connectors/30.kafka_connectors",{"date":642,"thumbnail":643,"tags":644,"tech_icons":645,"deployment_tag":647,"keywords":648},"2023-01-15","/assets/content/blog/th-kafka-connectors.png",[455,493],[646],"mdi:apache-kafka",[529],[518,598,600,522,550,523],{"title":650,"path":651,"stem":652,"meta":653},"NATS connectors","/developers/user-guide/connect/connectors/nats-connectors","2.developers/4.user-guide/20.connect/99.connectors/33.nats-connectors",{"date":654,"tags":655,"deployment_tag":656,"keywords":657},"2024-12-06",[455,493],[529],[518,658,600,522,550,523],"NATS",{"title":660,"path":661,"stem":662,"meta":663},"Python output connectors","/developers/user-guide/connect/connectors/python-output-connectors","2.developers/4.user-guide/20.connect/99.connectors/35.python-output-connectors",{"date":664,"thumbnail":665,"tags":666,"keywords":667},"2023-08-31","/assets/content/blog/th-output-connector.png",[455,493],[518,521,550,523],{"title":669,"path":670,"stem":671,"meta":672},"Google Drive connector","/developers/user-guide/connect/connectors/gdrive-connector","2.developers/4.user-guide/20.connect/99.connectors/70.gdrive-connector",{"date":673,"thumbnail":674,"tags":675,"keywords":676,"tech_icons":678},"2023-12-14","/assets/content/blog/th-gdrive-connector.png",[455,493],[518,677,585,522,551,523],"Google Drive",[679],"simple-icons:googledrive",{"title":681,"path":682,"stem":683,"meta":684},"Switching from Kafka to Redpanda","/developers/user-guide/connect/connectors/switching-to-redpanda","2.developers/4.user-guide/20.connect/99.connectors/80.switching-to-redpanda",{"date":685,"thumbnail":686,"tags":687,"keywords":688,"deployment_tag":690,"tech_icons":691,"docker_github_link":692,"hideInConnectorList":372},"2023-03-24","/assets/content/tutorials/redpanda/th-Kafka_vs_Redpanda.png",[455,493],[518,689,598,599,600,522,550,523],"Redpanda",[529],[646],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/best-movies-example/redpanda-version",{"title":694,"path":695,"stem":696,"meta":697},"Custom WebSockets connectors","/developers/user-guide/connect/connectors/websockets-connectors","2.developers/4.user-guide/20.connect/99.connectors/90.websockets-connectors",{"date":698,"tags":699,"keywords":700,"tech_icons":702},"2023-01-24",[455,493],[518,701,521,522,550,523],"WebSockets",[526],{"title":704,"meta":705,"path":706,"stem":707,"children":708,"page":400},"Transform",{},"/developers/user-guide/data-transformation","2.developers/4.user-guide/30.data-transformation",[709,714,728,734,740,753,769,790,806,811],{"title":710,"path":711,"stem":712,"meta":713},"Table Operations Overview","/developers/user-guide/data-transformation/table-operations","2.developers/4.user-guide/30.data-transformation/10.table-operations",{},{"title":715,"path":716,"stem":717,"meta":718},"Asynchronous Transformations","/developers/user-guide/data-transformation/asynchronous-transformations","2.developers/4.user-guide/30.data-transformation/100.asynchronous-transformations",{"date":610,"thumbnail":137,"tags":719,"keywords":721,"notebook_export_path":727},[455,720],"engineering",[267,722,723,724,725,726],"function","asynchronous","transformation","query","AsyncTransformer","notebooks/tutorials/asynctransformer.ipynb",{"title":729,"path":730,"stem":731,"meta":732},"Simple Join","/developers/user-guide/data-transformation/join-manual","2.developers/4.user-guide/30.data-transformation/20.join-manual",{"notebook_export_path":733},"notebooks/tutorials/join_manual.ipynb",{"title":735,"path":736,"stem":737,"meta":738},"Groupby Reduce","/developers/user-guide/data-transformation/groupby-reduce-manual","2.developers/4.user-guide/30.data-transformation/30.groupby-reduce-manual",{"notebook_export_path":739},"notebooks/tutorials/groupby_reduce_manual.ipynb",{"title":741,"path":742,"stem":743,"meta":744},"Writing Stateful Reducers","/developers/user-guide/data-transformation/custom-reducers","2.developers/4.user-guide/30.data-transformation/40.custom-reducers",{"date":745,"thumbnail":501,"tags":746,"keywords":747,"notebook_export_path":752},"2024-01-17",[455],[748,749,750,751],"reducers","aggregate","sumofsquares","median","notebooks/tutorials/custom_reducers.ipynb",{"title":754,"path":755,"stem":756,"meta":757},"Iterative Computations","/developers/user-guide/data-transformation/iterate","2.developers/4.user-guide/30.data-transformation/50.iterate",{"date":758,"thumbnail":137,"tags":759,"keywords":760,"notebook_export_path":768},"2023-12-28",[455,720],[761,762,763,764,765,766,767],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks/tutorials/iterate.ipynb",{"title":770,"path":771,"stem":772,"children":773,"meta":787},"Indexes in Pathway","/developers/user-guide/data-transformation/indexes-in-pathway","2.developers/4.user-guide/30.data-transformation/60.indexes-in-pathway",[774],{"title":770,"path":771,"stem":772,"meta":775},{"date":776,"thumbnail":777,"tags":778,"keywords":779,"notebook_export_path":786},"2023-11-15","/assets/content/blog/th-computing-pagerank.png",[455,720],[780,781,782,783,784,785],"index","indexing","join","asof join","asof_now","KNN","notebooks/tutorials/indexes.ipynb",{"date":776,"thumbnail":777,"tags":788,"keywords":789,"notebook_export_path":786},[455,720],[780,781,782,783,784,785],{"title":791,"path":792,"stem":793,"children":794,"meta":803},"Indexing from 'groupby' and Single-row Tables","/developers/user-guide/data-transformation/indexing-grouped-tables","2.developers/4.user-guide/30.data-transformation/70.indexing-grouped-tables",[795],{"title":791,"path":792,"stem":793,"meta":796},{"date":797,"thumbnail":777,"tags":798,"keywords":799},"2023-03-31",[455,456],[800,801,802],"groupby","ix_ref","single-row table",{"date":797,"thumbnail":777,"tags":804,"keywords":805},[455,456],[800,801,802],{"title":807,"path":808,"stem":809,"meta":810},"SQL API","/developers/user-guide/data-transformation/sql","2.developers/4.user-guide/30.data-transformation/80.sql",{"redirection":372},{"title":812,"path":813,"stem":814,"meta":815},"User-defined Functions","/developers/user-guide/data-transformation/user-defined-functions","2.developers/4.user-guide/30.data-transformation/90.user-defined-functions",{"date":816,"thumbnail":137,"tags":817,"keywords":818,"notebook_export_path":823},"2024-02-21",[455,720],[267,819,722,820,724,821,822],"udf","apply","cache","timeout","notebooks/tutorials/udf.ipynb",{"title":825,"path":826,"stem":827,"children":828,"page":400},"Temporal Data","/developers/user-guide/temporal-data","2.developers/4.user-guide/40.temporal-data",[829,835,840,855,867,879,893],{"title":830,"path":831,"stem":832,"meta":833},"Windowby Reduce","/developers/user-guide/temporal-data/windows-manual","2.developers/4.user-guide/40.temporal-data/10.windows-manual",{"notebook_export_path":834},"notebooks/tutorials/windowby_manual.ipynb",{"title":836,"path":837,"stem":838,"meta":839},"Late Data and Cutoffs","/developers/user-guide/temporal-data/behaviors","2.developers/4.user-guide/40.temporal-data/20.behaviors",{},{"title":841,"path":842,"stem":843,"meta":844},"Controlling Temporal Behavior of Windows","/developers/user-guide/temporal-data/windows_with_behaviors","2.developers/4.user-guide/40.temporal-data/30.windows_with_behaviors",{"date":845,"thumbnail":846,"keywords":847,"notebook_export_path":854},"2024-01-08","assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[848,849,850,851,852,853],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks/tutorials/windows_temporal_behavior.ipynb",{"title":856,"path":857,"stem":858,"meta":859},"ASOF Join","/developers/user-guide/temporal-data/asof-join","2.developers/4.user-guide/40.temporal-data/40.asof-join",{"date":860,"thumbnail":861,"tags":862,"keywords":863,"notebook_export_path":866},"2023-05-24","/assets/content/tutorials/finance_ts_asof_join/asof-join-tutorial-th.png",[455,720],[783,864,865],"stock prices","financial data analysis","notebooks/tutorials/asof_join.ipynb",{"title":868,"path":869,"stem":870,"meta":871},"Interval Join","/developers/user-guide/temporal-data/interval-join","2.developers/4.user-guide/40.temporal-data/50.interval-join",{"date":872,"thumbnail":873,"tags":874,"keywords":875,"notebook_export_path":878},"2023-05-22","assets/content/tutorials/fleet_eta_interval_join/fleet-eta-interval-join-th.png",[455,720],[876,877],"interval join","ETA","notebooks/tutorials/interval_join.ipynb",{"title":880,"path":881,"stem":882,"meta":883},"Window Join","/developers/user-guide/temporal-data/window-join","2.developers/4.user-guide/40.temporal-data/60.window-join",{"date":884,"thumbnail":885,"tags":886,"keywords":887,"notebook_export_path":892},"2023-06-14","/assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[455,720],[888,889,890,891],"window","behavior analysis","clickstream","conversion rate","notebooks/tutorials/window_join.ipynb",{"title":894,"path":895,"stem":896,"meta":897},"Controlling Temporal Behavior of Interval Join","/developers/user-guide/temporal-data/temporal_behavior","2.developers/4.user-guide/40.temporal-data/70.temporal_behavior",{"date":898,"thumbnail":873,"tags":899,"keywords":900,"notebook_export_path":901},"2023-11-28",[455,720],[876,849,850,851,852,853],"notebooks/tutorials/interval_join_temporal_behavior.ipynb",{"title":903,"meta":904,"path":905,"stem":906,"children":907,"page":400},"LLM tooling",{},"/developers/user-guide/llm-xpack","2.developers/4.user-guide/50.llm-xpack",[908,920,929,944,956,968,980,990,1000,1010],{"title":909,"path":910,"stem":911,"meta":912},"Introduction to the LLM xpack","/developers/user-guide/llm-xpack/overview","2.developers/4.user-guide/50.llm-xpack/10.overview",{"date":913,"thumbnail":137,"tags":914,"keywords":916},"2024-02-14",[455,915],"LLM",[915,917,918,919],"GPT","OpenAI","Gemini",{"title":921,"path":922,"stem":923,"meta":924},"Create your own RAG","/developers/user-guide/llm-xpack/llm-app-pathway","2.developers/4.user-guide/50.llm-xpack/20.llm-app-pathway",{"date":925,"thumbnail":137,"tags":926,"keywords":928},"2025-03-28",[455,915,927],"RAG",[915,917,918,781],{"title":930,"path":931,"stem":932,"children":933,"meta":941},"Document Indexing","/developers/user-guide/llm-xpack/docs-indexing","2.developers/4.user-guide/50.llm-xpack/30.docs-indexing",[934],{"title":930,"path":931,"stem":932,"meta":935},{"date":936,"thumbnail":137,"tags":937,"keywords":940},"2025-01-13",[455,781,938,939],"document storage","retrieval",[915,917,918,919],{"date":936,"thumbnail":137,"tags":942,"keywords":943},[455,781,938,939],[915,917,918,919],{"title":945,"path":946,"stem":947,"meta":948},"Pathway MCP Server","/developers/user-guide/llm-xpack/pathway_mcp_server","2.developers/4.user-guide/50.llm-xpack/40.pathway_mcp_server",{"date":949,"thumbnail":137,"tags":950,"keywords":951},"2025-08-01",[455,720],[952,953,954,955],"MCP","MCP server","API","protocol",{"title":957,"path":958,"stem":959,"meta":960},"Claude Desktop","/developers/user-guide/llm-xpack/pathway-mcp-claude-desktop","2.developers/4.user-guide/50.llm-xpack/41.pathway-mcp-claude-desktop",{"date":961,"thumbnail":137,"tags":962,"keywords":964},"2025-08-19",[455,720,963],"claude",[952,957,965,966,967],"real-time data","document store","statistics",{"title":969,"path":970,"stem":971,"meta":972},"Parsers","/developers/user-guide/llm-xpack/parsers","2.developers/4.user-guide/50.llm-xpack/50.parsers",{"date":973,"tags":974,"keywords":975},"2024-06-04",[455,915],[915,976,977,978,979],"unstructured","docling","parsers","ocr",{"title":981,"path":982,"stem":983,"meta":984},"Chunking text","/developers/user-guide/llm-xpack/splitters","2.developers/4.user-guide/50.llm-xpack/60.splitters",{"date":985,"thumbnail":137,"tags":986,"keywords":989},"2025-02-04",[987,988],"splitters","chunking",[978,988],{"title":991,"path":992,"stem":993,"meta":994},"Embedders","/developers/user-guide/llm-xpack/embedders","2.developers/4.user-guide/50.llm-xpack/70.embedders",{"date":985,"thumbnail":137,"tags":995,"keywords":997},[455,996],"embedder",[915,917,918,919,998,999],"LiteLLM","Embedder",{"title":1001,"path":1002,"stem":1003,"meta":1004},"LLM Chats","/developers/user-guide/llm-xpack/llm-chats","2.developers/4.user-guide/50.llm-xpack/80.llm-chats",{"date":1005,"thumbnail":137,"tags":1006,"keywords":1008},"2025-01-30",[455,915,1007,1001],"LLM Wrappers",[915,917,918,919,998,1009],"Wrapper",{"title":1011,"path":1012,"stem":1013,"meta":1014},"Rerankers","/developers/user-guide/llm-xpack/rerankers","2.developers/4.user-guide/50.llm-xpack/90.rerankers",{"date":985,"thumbnail":137,"tags":1015,"keywords":1017},[455,1016],"reranker",[915,1018],"Reranker",{"title":1020,"meta":1021,"path":1022,"stem":1023,"children":1024,"page":400},"Deploy",{},"/developers/user-guide/deployment","2.developers/4.user-guide/60.deployment",[1025,1030,1035,1052,1068,1073,1078,1083,1090,1095,1100,1113,1125,1130,1141],{"title":1026,"path":1027,"stem":1028,"meta":1029},"Cloud Deployment of Pathway","/developers/user-guide/deployment/cloud-deployment","2.developers/4.user-guide/60.deployment/10.cloud-deployment",{},{"title":1031,"path":1032,"stem":1033,"meta":1034},"Deploy to GCP","/developers/user-guide/deployment/gcp-deploy","2.developers/4.user-guide/60.deployment/15.gcp-deploy",{},{"title":1036,"path":1037,"stem":1038,"meta":1039},"Deploy to AWS Cloud","/developers/user-guide/deployment/aws-fargate-deploy","2.developers/4.user-guide/60.deployment/20.aws-fargate-deploy",{"date":1040,"tags":1041,"thumbnail":1044,"keywords":1046,"docker_github_link":1051,"deployButtons":400},"2024-08-16",[1042,1043],"showcase","data-pipeline",{"src":1045},"/assets/content/documentation/aws/aws-fargate-overview-th.png",[1047,1048,1049,600,1050],"AWS","Fargate","cloud deployment","AWS Fargate","https://github.com/pathwaycom/pathway/tree/main/examples/projects/aws-fargate-deploy",{"title":1053,"path":1054,"stem":1055,"meta":1056},"Deploy to Azure","/developers/user-guide/deployment/azure-aci-deploy","2.developers/4.user-guide/60.deployment/25.azure-aci-deploy",{"date":1057,"tags":1058,"thumbnail":1059,"keywords":1061,"docker_github_link":1067,"deployButtons":400},"2024-11-20",[1042,1043],{"src":1060,"contain":372},"/assets/content/documentation/azure/azure-aci-overview-th.png",[1062,1063,1049,600,1064,1065,1066],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https://github.com/pathwaycom/pathway/tree/main/examples/projects/azure-aci-deploy",{"title":1069,"path":1070,"stem":1071,"meta":1072},"Deploy with Render","/developers/user-guide/deployment/render-deploy","2.developers/4.user-guide/60.deployment/30.render-deploy",{},{"title":1074,"path":1075,"stem":1076,"meta":1077},"Deploy to Nebius AI Cloud","/developers/user-guide/deployment/nebius-deploy","2.developers/4.user-guide/60.deployment/32.nebius-deploy",{},{"title":1079,"path":1080,"stem":1081,"meta":1082},"Notebook-to-Docker Conversion","/developers/user-guide/deployment/jupyter-docker","2.developers/4.user-guide/60.deployment/35.jupyter-docker",{},{"title":1084,"path":1085,"stem":1086,"meta":1087},"Tutorial: From Jupyter to Deploy","/developers/user-guide/deployment/from-jupyter-to-deploy","2.developers/4.user-guide/60.deployment/40.from-jupyter-to-deploy",{"date":1088,"project_github_link":1089},"2023-11-29","https://github.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy",{"title":1091,"path":1092,"stem":1093,"meta":1094},"CI/CD","/developers/user-guide/deployment/integration","2.developers/4.user-guide/60.deployment/45.integration",{},{"title":1096,"path":1097,"stem":1098,"meta":1099},"Docker Deployment of Pathway","/developers/user-guide/deployment/docker-deployment","2.developers/4.user-guide/60.deployment/5.docker-deployment",{},{"title":1101,"path":1102,"stem":1103,"meta":1104},"Monitoring Pathway Instance","/developers/user-guide/deployment/pathway-monitoring","2.developers/4.user-guide/60.deployment/50.pathway-monitoring",{"date":1105,"thumbnail":1106,"tags":1107,"keywords":1108},"2024-05-27","/assets/content/blog/th-prometheus.png",[455,720],[1109,1110,1111,1112],"monitoring","OpenTelemetry","Grafana","metrics",{"title":1114,"path":1115,"stem":1116,"meta":1117},"Pathway Web Dashboard","/developers/user-guide/deployment/web-dashboard","2.developers/4.user-guide/60.deployment/52.web-dashboard",{"date":1118,"tags":1119,"keywords":1120},"2026-01-13",[455,720],[1121,1122,1109,1123,1124,1112],"Web Dashboard","UI","graph","charts",{"title":1126,"path":1127,"stem":1128,"meta":1129},"Persistence in Pathway","/developers/user-guide/deployment/persistence","2.developers/4.user-guide/60.deployment/55.persistence",{},{"title":1131,"path":1132,"stem":1133,"meta":1134},"Persistence in Pathway: How to Resume the Interrupted Computation","/developers/user-guide/deployment/persistence_recovery","2.developers/4.user-guide/60.deployment/60.persistence_recovery",{"date":1135,"thumbnail":137,"tags":1136,"keywords":1138},"2023-11-02",[455,720,1137],"dataflow management",[1139,1140],"persistence","recovery",{"title":1142,"path":1143,"stem":1144,"meta":1145},"Persistence in Pathway: How to Add New Data without Full Computation Restart","/developers/user-guide/deployment/persistence_restart_with_new_data","2.developers/4.user-guide/60.deployment/65.persistence_restart_with_new_data",{"date":1146,"thumbnail":137,"tags":1147,"keywords":1148},"2023-11-14",[455,720,1137],[1139,1149,1150],"optimization","restart",{"title":1152,"path":1153,"stem":1154,"children":1155,"page":400},"Migrating","/developers/user-guide/migrating","2.developers/4.user-guide/70.migrating",[1156,1162],{"title":1157,"path":1158,"stem":1159,"meta":1160},"Coming from Pandas","/developers/user-guide/migrating/migrate-from-pandas","2.developers/4.user-guide/70.migrating/10.migrate-from-pandas",{"notebook_export_path":1161},"notebooks/tutorials/from_pandas.ipynb",{"title":1163,"path":1164,"stem":1165,"meta":1166},"Pandas Cheat Sheet","/developers/user-guide/migrating/pandas-cheat-sheet","2.developers/4.user-guide/70.migrating/20.pandas-cheat-sheet",{},{"title":1168,"path":1169,"stem":1170,"children":1171,"page":400},"Advanced","/developers/user-guide/advanced","2.developers/4.user-guide/80.advanced",[1172,1176,1186,1192,1205,1210,1215,1220],{"title":61,"path":1173,"stem":1174,"meta":1175},"/developers/user-guide/advanced/worker-architecture","2.developers/4.user-guide/80.advanced/10.worker-architecture",{},{"title":1177,"path":1178,"stem":1179,"meta":1180},"Setting up Cache in Asynchronous Transformations","/developers/user-guide/advanced/function_calls_caching","2.developers/4.user-guide/80.advanced/20.function_calls_caching",{"date":1181,"thumbnail":137,"tags":1182,"keywords":1183},"2023-11-30",[455,720,1137],[1139,1149,1184,1185],"async_transformer","caching",{"title":1187,"path":1188,"stem":1189,"meta":1190},"Data Model Consistency","/developers/user-guide/advanced/consistency","2.developers/4.user-guide/80.advanced/30.consistency",{"notebook_export_path":1191},"notebooks/tutorials/consistency.ipynb",{"title":1193,"path":1194,"stem":1195,"meta":1196},"Writing declarative over imperative pipelines","/developers/user-guide/advanced/declarative_vs_imperative","2.developers/4.user-guide/80.advanced/40.declarative_vs_imperative",{"date":1197,"thumbnail":137,"tags":1198,"keywords":1199,"notebook_export_path":1204},"2025-11-25",[455,720],[1200,1201,1202,1203,761],"declarative","imperative","ordered","splitting","notebooks/tutorials/declarative_vs_imperative.ipynb",{"title":1206,"path":1207,"stem":1208,"meta":1209},"Best Practices","/developers/user-guide/advanced/best-practices","2.developers/4.user-guide/80.advanced/5.best-practices",{},{"title":1211,"path":1212,"stem":1213,"meta":1214},"How Pathway Connectors Work","/developers/user-guide/advanced/how_pathway_connectors_work","2.developers/4.user-guide/80.advanced/50.how_pathway_connectors_work",{},{"title":1216,"path":1217,"stem":1218,"meta":1219},"Dynamic Worker Scaling","/developers/user-guide/advanced/worker_count_scaling","2.developers/4.user-guide/80.advanced/60.worker_count_scaling",{},{"title":1221,"path":1222,"stem":1223,"meta":1224},"Running on Multiple Machines","/developers/user-guide/advanced/running_on_multiple_machines","2.developers/4.user-guide/80.advanced/70.running_on_multiple_machines",{},{"title":1226,"meta":1227,"path":1228,"stem":1229,"children":1230,"page":400},"Help And Updates",{},"/developers/user-guide/development","2.developers/4.user-guide/90.development",[1231,1236,1241],{"title":1232,"path":1233,"stem":1234,"meta":1235},"Troubleshooting","/developers/user-guide/development/troubleshooting","2.developers/4.user-guide/90.development/10.troubleshooting",{},{"title":1237,"path":1238,"stem":1239,"meta":1240},"Changelog","/developers/user-guide/development/changelog","2.developers/4.user-guide/90.development/20.changelog",{"toc":400},{"title":1242,"path":1243,"stem":1244,"meta":1245},"Get help","/developers/user-guide/development/get-help","2.developers/4.user-guide/90.development/30.get-help",{},{"title":1247,"meta":1248,"path":1249,"stem":1250,"children":1251,"page":400},"API docs",{},"/developers/api-docs","2.developers/5.API-docs",[1252,1257,1262,1268,1273,1278,1283,1351,1356,1361,1366,1374,1552,1557],{"title":1253,"path":1254,"stem":1255,"meta":1256},"Pathway API","/developers/api-docs/pathway","2.developers/5.API-docs/1.pathway",{"sidebar":954},{"title":1258,"path":1259,"stem":1260,"meta":1261},"pw.reducers","/developers/api-docs/reducers","2.developers/5.API-docs/10.reducers",{"sidebar":954},{"title":1263,"path":1264,"stem":1265,"meta":1266},"pw.sql","/developers/api-docs/sql-api","2.developers/5.API-docs/11.SQL-API",{"notebook_export_path":1267},"notebooks/tutorials/sql_api.ipynb",{"title":1269,"path":1270,"stem":1271,"meta":1272},"pw.temporal","/developers/api-docs/temporal","2.developers/5.API-docs/12.temporal",{"sidebar":954},{"title":1274,"path":1275,"stem":1276,"meta":1277},"pw.udfs","/developers/api-docs/udfs","2.developers/5.API-docs/13.udfs",{"sidebar":954},{"title":1279,"path":1280,"stem":1281,"meta":1282},"pw.xpacks.connectors","/developers/api-docs/pathway-xpacks-sharepoint","2.developers/5.API-docs/14.pathway-xpacks-sharepoint",{"sidebar":954},{"title":1284,"path":1285,"stem":1286,"children":1287,"meta":1350},"pw.xpacks.llm","/developers/api-docs/pathway-xpacks-llm","2.developers/5.API-docs/15.pathway-xpacks-llm/index",[1288,1290,1295,1300,1305,1310,1315,1320,1325,1330,1335,1340,1345],{"title":1284,"path":1285,"stem":1286,"meta":1289},{"sidebar":954},{"title":1291,"path":1292,"stem":1293,"meta":1294},"pw.xpacks.llm.llms","/developers/api-docs/pathway-xpacks-llm/llms","2.developers/5.API-docs/15.pathway-xpacks-llm/1.llms",{"sidebar":954},{"title":1296,"path":1297,"stem":1298,"meta":1299},"pw.xpacks.llm.servers","/developers/api-docs/pathway-xpacks-llm/servers","2.developers/5.API-docs/15.pathway-xpacks-llm/10.servers",{"sidebar":954},{"title":1301,"path":1302,"stem":1303,"meta":1304},"pw.xpacks.llm.utils","/developers/api-docs/pathway-xpacks-llm/utils","2.developers/5.API-docs/15.pathway-xpacks-llm/11.utils",{"sidebar":954},{"title":1306,"path":1307,"stem":1308,"meta":1309},"pw.xpacks.llm.mcp_server","/developers/api-docs/pathway-xpacks-llm/mcp_server","2.developers/5.API-docs/15.pathway-xpacks-llm/12.mcp_server",{"sidebar":954},{"title":1311,"path":1312,"stem":1313,"meta":1314},"pw.xpacks.llm.embedders","/developers/api-docs/pathway-xpacks-llm/embedders","2.developers/5.API-docs/15.pathway-xpacks-llm/2.embedders",{"sidebar":954},{"title":1316,"path":1317,"stem":1318,"meta":1319},"pw.xpacks.llm.parsers","/developers/api-docs/pathway-xpacks-llm/parsers","2.developers/5.API-docs/15.pathway-xpacks-llm/3.parsers",{"sidebar":954},{"title":1321,"path":1322,"stem":1323,"meta":1324},"pw.xpacks.llm.splitters","/developers/api-docs/pathway-xpacks-llm/splitters","2.developers/5.API-docs/15.pathway-xpacks-llm/4.splitters",{"sidebar":954},{"title":1326,"path":1327,"stem":1328,"meta":1329},"pw.xpacks.llm.vector_store","/developers/api-docs/pathway-xpacks-llm/vectorstore","2.developers/5.API-docs/15.pathway-xpacks-llm/5.vectorstore",{"sidebar":954},{"title":1331,"path":1332,"stem":1333,"meta":1334},"pw.xpacks.llm.document_store","/developers/api-docs/pathway-xpacks-llm/document_store","2.developers/5.API-docs/15.pathway-xpacks-llm/6.document_store",{"sidebar":954},{"title":1336,"path":1337,"stem":1338,"meta":1339},"pw.xpacks.llm.question_answering","/developers/api-docs/pathway-xpacks-llm/question_answering","2.developers/5.API-docs/15.pathway-xpacks-llm/7.question_answering",{"sidebar":954},{"title":1341,"path":1342,"stem":1343,"meta":1344},"pw.xpacks.llm.prompts","/developers/api-docs/pathway-xpacks-llm/prompts","2.developers/5.API-docs/15.pathway-xpacks-llm/8.prompts",{"sidebar":954},{"title":1346,"path":1347,"stem":1348,"meta":1349},"pw.xpacks.llm.rerankers","/developers/api-docs/pathway-xpacks-llm/rerankers","2.developers/5.API-docs/15.pathway-xpacks-llm/9.rerankers",{"sidebar":954},{"sidebar":954},{"title":1352,"path":1353,"stem":1354,"meta":1355},"pw.Table","/developers/api-docs/pathway-table","2.developers/5.API-docs/2.pathway-table",{"sidebar":954},{"title":1357,"path":1358,"stem":1359,"meta":1360},"pw.debug","/developers/api-docs/debug","2.developers/5.API-docs/4.debug",{"sidebar":954},{"title":1362,"path":1363,"stem":1364,"meta":1365},"pw.demo","/developers/api-docs/pathway-demo","2.developers/5.API-docs/5.pathway-demo",{"sidebar":954},{"title":1367,"path":1368,"stem":1369,"children":1370,"meta":1373},"pw.indexing","/developers/api-docs/indexing","2.developers/5.API-docs/6.indexing",[1371],{"title":1367,"path":1368,"stem":1369,"meta":1372},{"sidebar":954},{"sidebar":954},{"title":1375,"path":1376,"stem":1377,"children":1378,"meta":1551},"pw.io","/developers/api-docs/pathway-io","2.developers/5.API-docs/7.pathway-io/index",[1379,1381,1386,1391,1396,1401,1406,1411,1416,1421,1426,1431,1436,1441,1446,1451,1456,1461,1466,1471,1476,1481,1486,1491,1496,1501,1506,1511,1516,1521,1526,1531,1536,1541,1546],{"title":1375,"path":1376,"stem":1377,"meta":1380},{"sidebar":954},{"title":1382,"path":1383,"stem":1384,"meta":1385},"pw.io.airbyte","/developers/api-docs/pathway-io/airbyte","2.developers/5.API-docs/7.pathway-io/110.airbyte",{"sidebar":954},{"title":1387,"path":1388,"stem":1389,"meta":1390},"pw.io.bigquery","/developers/api-docs/pathway-io/bigquery","2.developers/5.API-docs/7.pathway-io/120.bigquery",{"sidebar":954},{"title":1392,"path":1393,"stem":1394,"meta":1395},"pw.io.csv","/developers/api-docs/pathway-io/csv","2.developers/5.API-docs/7.pathway-io/130.csv",{"sidebar":954},{"title":1397,"path":1398,"stem":1399,"meta":1400},"pw.io.debezium","/developers/api-docs/pathway-io/debezium","2.developers/5.API-docs/7.pathway-io/140.debezium",{"sidebar":954},{"title":1402,"path":1403,"stem":1404,"meta":1405},"pw.io.deltalake","/developers/api-docs/pathway-io/deltalake","2.developers/5.API-docs/7.pathway-io/150.deltalake",{"sidebar":954},{"title":1407,"path":1408,"stem":1409,"meta":1410},"pw.io.dynamodb","/developers/api-docs/pathway-io/dynamodb","2.developers/5.API-docs/7.pathway-io/160.dynamodb",{"sidebar":954},{"title":1412,"path":1413,"stem":1414,"meta":1415},"pw.io.elasticsearch","/developers/api-docs/pathway-io/elasticsearch","2.developers/5.API-docs/7.pathway-io/170.elasticsearch",{"sidebar":954},{"title":1417,"path":1418,"stem":1419,"meta":1420},"pw.io.fs","/developers/api-docs/pathway-io/fs","2.developers/5.API-docs/7.pathway-io/180.fs",{"sidebar":954},{"title":1422,"path":1423,"stem":1424,"meta":1425},"pw.io.gdrive","/developers/api-docs/pathway-io/gdrive","2.developers/5.API-docs/7.pathway-io/190.gdrive",{"sidebar":954},{"title":1427,"path":1428,"stem":1429,"meta":1430},"pw.io.http","/developers/api-docs/pathway-io/http","2.developers/5.API-docs/7.pathway-io/200.http",{"sidebar":954},{"title":1432,"path":1433,"stem":1434,"meta":1435},"pw.io.iceberg","/developers/api-docs/pathway-io/iceberg","2.developers/5.API-docs/7.pathway-io/210.iceberg",{"sidebar":954},{"title":1437,"path":1438,"stem":1439,"meta":1440},"pw.io.jsonlines","/developers/api-docs/pathway-io/jsonlines","2.developers/5.API-docs/7.pathway-io/220.jsonlines",{"sidebar":954},{"title":1442,"path":1443,"stem":1444,"meta":1445},"pw.io.kafka","/developers/api-docs/pathway-io/kafka","2.developers/5.API-docs/7.pathway-io/230.kafka",{"sidebar":954},{"title":1447,"path":1448,"stem":1449,"meta":1450},"pw.io.kinesis","/developers/api-docs/pathway-io/kinesis","2.developers/5.API-docs/7.pathway-io/240.kinesis",{"sidebar":954},{"title":1452,"path":1453,"stem":1454,"meta":1455},"pw.io.leann","/developers/api-docs/pathway-io/leann","2.developers/5.API-docs/7.pathway-io/250.leann",{"sidebar":954},{"title":1457,"path":1458,"stem":1459,"meta":1460},"pw.io.logstash","/developers/api-docs/pathway-io/logstash","2.developers/5.API-docs/7.pathway-io/260.logstash",{"sidebar":954},{"title":1462,"path":1463,"stem":1464,"meta":1465},"pw.io.milvus","/developers/api-docs/pathway-io/milvus","2.developers/5.API-docs/7.pathway-io/270.milvus",{"sidebar":954},{"title":1467,"path":1468,"stem":1469,"meta":1470},"pw.io.minio","/developers/api-docs/pathway-io/minio","2.developers/5.API-docs/7.pathway-io/280.minio",{"sidebar":954},{"title":1472,"path":1473,"stem":1474,"meta":1475},"pw.io.mongodb","/developers/api-docs/pathway-io/mongodb","2.developers/5.API-docs/7.pathway-io/290.mongodb",{"sidebar":954},{"title":1477,"path":1478,"stem":1479,"meta":1480},"pw.io.mssql","/developers/api-docs/pathway-io/mssql","2.developers/5.API-docs/7.pathway-io/300.mssql",{"sidebar":954},{"title":1482,"path":1483,"stem":1484,"meta":1485},"pw.io.mysql","/developers/api-docs/pathway-io/mysql","2.developers/5.API-docs/7.pathway-io/310.mysql",{"sidebar":954},{"title":1487,"path":1488,"stem":1489,"meta":1490},"pw.io.nats","/developers/api-docs/pathway-io/nats","2.developers/5.API-docs/7.pathway-io/320.nats",{"sidebar":954},{"title":1492,"path":1493,"stem":1494,"meta":1495},"pw.io.null","/developers/api-docs/pathway-io/null","2.developers/5.API-docs/7.pathway-io/330.null",{"sidebar":954},{"title":1497,"path":1498,"stem":1499,"meta":1500},"pw.io.mqtt","/developers/api-docs/pathway-io/mqtt","2.developers/5.API-docs/7.pathway-io/340.mqtt",{"sidebar":954},{"title":1502,"path":1503,"stem":1504,"meta":1505},"pw.io.plaintext","/developers/api-docs/pathway-io/plaintext","2.developers/5.API-docs/7.pathway-io/350.plaintext",{"sidebar":954},{"title":1507,"path":1508,"stem":1509,"meta":1510},"pw.io.postgres","/developers/api-docs/pathway-io/postgres","2.developers/5.API-docs/7.pathway-io/360.postgres",{"sidebar":954},{"title":1512,"path":1513,"stem":1514,"meta":1515},"pw.io.pubsub","/developers/api-docs/pathway-io/pubsub","2.developers/5.API-docs/7.pathway-io/370.pubsub",{"sidebar":954},{"title":1517,"path":1518,"stem":1519,"meta":1520},"pw.io.pyfilesystem","/developers/api-docs/pathway-io/pyfilesystem","2.developers/5.API-docs/7.pathway-io/380.pyfilesystem",{"sidebar":954},{"title":1522,"path":1523,"stem":1524,"meta":1525},"pw.io.python","/developers/api-docs/pathway-io/python","2.developers/5.API-docs/7.pathway-io/390.python",{"sidebar":954},{"title":1527,"path":1528,"stem":1529,"meta":1530},"pw.io.questdb","/developers/api-docs/pathway-io/questdb","2.developers/5.API-docs/7.pathway-io/400.questdb",{"sidebar":954},{"title":1532,"path":1533,"stem":1534,"meta":1535},"pw.io.redpanda","/developers/api-docs/pathway-io/redpanda","2.developers/5.API-docs/7.pathway-io/410.redpanda",{"sidebar":954},{"title":1537,"path":1538,"stem":1539,"meta":1540},"pw.io.s3","/developers/api-docs/pathway-io/s3","2.developers/5.API-docs/7.pathway-io/420.s3",{"sidebar":954},{"title":1542,"path":1543,"stem":1544,"meta":1545},"pw.io.slack","/developers/api-docs/pathway-io/slack","2.developers/5.API-docs/7.pathway-io/430.slack",{"sidebar":954},{"title":1547,"path":1548,"stem":1549,"meta":1550},"pw.io.sqlite","/developers/api-docs/pathway-io/sqlite","2.developers/5.API-docs/7.pathway-io/440.sqlite",{"sidebar":954},{"sidebar":954},{"title":1553,"path":1554,"stem":1555,"meta":1556},"pw.ml","/developers/api-docs/ml","2.developers/5.API-docs/8.ML",{"sidebar":954},{"title":1558,"path":1559,"stem":1560,"meta":1561},"pw.persistence","/developers/api-docs/persistence-api","2.developers/5.API-docs/9.persistence-api",{"sidebar":954},{"title":1563,"path":1564,"stem":1565,"children":1566,"meta":2299},"Pathway Templates","/developers/templates","2.developers/7.templates/1.index",[1567,1569,1574,1579,1584,1588,1604,1643,1669,2097],{"title":1563,"path":1564,"stem":1565,"meta":1568},{"navTitle":396,"layout":471,"aside":372,"toc":400,"single":372},{"title":1570,"path":1571,"stem":1572,"meta":1573},"Run a template","/developers/templates/run-a-template","2.developers/7.templates/20.run-a-template",{"heading":400,"toc":400},{"title":1575,"path":1576,"stem":1577,"meta":1578},"Customizing a RAG Template with YAML","/developers/templates/configure-yaml","2.developers/7.templates/30.configure-yaml",{"heading":400},{"title":1580,"path":1581,"stem":1582,"meta":1583},"How to Use Your Own Components in YAML Configuration","/developers/templates/custom-components","2.developers/7.templates/35.custom-components",{"heading":400},{"title":427,"path":1585,"stem":1586,"meta":1587},"/developers/templates/licensing-guide","2.developers/7.templates/38.licensing-guide",{"heading":400,"toc":400},{"title":1589,"meta":1590,"path":1591,"stem":1592,"children":1593,"page":400},"YAML Snippets",{},"/developers/templates/yaml-snippets","2.developers/7.templates/39.yaml-snippets",[1594,1599],{"title":1595,"path":1596,"stem":1597,"meta":1598},"Data Sources Examples","/developers/templates/yaml-snippets/data-sources-examples","2.developers/7.templates/39.yaml-snippets/10.data-sources-examples",{"heading":400,"toc":372},{"title":1600,"path":1601,"stem":1602,"meta":1603},"RAG configuration Examples","/developers/templates/yaml-snippets/rag-configuration-examples","2.developers/7.templates/39.yaml-snippets/20.rag-configuration-examples",{"heading":400,"toc":372},{"title":1605,"path":1606,"stem":1607,"children":1608,"page":400},"Rag Customization","/developers/templates/rag-customization","2.developers/7.templates/40.rag-customization",[1609,1614,1619,1625,1631,1637],{"title":1610,"path":1611,"stem":1612,"meta":1613},"REST API","/developers/templates/rag-customization/rest-api","2.developers/7.templates/40.rag-customization/10.REST-API",{"heading":400,"toc":400},{"title":1615,"path":1616,"stem":1617,"meta":1618},"Customizing prompt","/developers/templates/rag-customization/custom-prompt","2.developers/7.templates/40.rag-customization/20.custom-prompt",{"heading":400},{"title":969,"path":1620,"stem":1621,"meta":1622},"/developers/templates/rag-customization/parsers","2.developers/7.templates/40.rag-customization/30.parsers",{"date":973,"tags":1623,"keywords":1624},[455,915],[915,976,977,978,979],{"title":981,"path":1626,"stem":1627,"meta":1628},"/developers/templates/rag-customization/splitters","2.developers/7.templates/40.rag-customization/40.splitters",{"date":985,"thumbnail":137,"tags":1629,"keywords":1630},[987,988],[978,988],{"title":991,"path":1632,"stem":1633,"meta":1634},"/developers/templates/rag-customization/embedders","2.developers/7.templates/40.rag-customization/50.embedders",{"date":985,"thumbnail":137,"tags":1635,"keywords":1636},[455,996],[915,917,918,919,998,999],{"title":1001,"path":1638,"stem":1639,"meta":1640},"/developers/templates/rag-customization/llm-chats","2.developers/7.templates/40.rag-customization/60.llm-chats",{"date":1005,"thumbnail":137,"tags":1641,"keywords":1642},[455,915,1007,1001],[915,917,918,919,998,1009],{"title":1020,"path":1644,"stem":1645,"children":1646,"page":400},"/developers/templates/deploy","2.developers/7.templates/60.deploy",[1647,1651,1655,1662],{"title":1026,"path":1648,"stem":1649,"meta":1650},"/developers/templates/deploy/cloud-deployment","2.developers/7.templates/60.deploy/10.cloud-deployment",{},{"title":1031,"path":1652,"stem":1653,"meta":1654},"/developers/templates/deploy/gcp-deploy","2.developers/7.templates/60.deploy/15.gcp-deploy",{},{"title":1036,"path":1656,"stem":1657,"meta":1658},"/developers/templates/deploy/aws-fargate-deploy","2.developers/7.templates/60.deploy/20.aws-fargate-deploy",{"date":1040,"tags":1659,"thumbnail":1660,"keywords":1661,"docker_github_link":1051,"deployButtons":400},[1042,1043],{"src":1045},[1047,1048,1049,600,1050],{"title":1053,"path":1663,"stem":1664,"meta":1665},"/developers/templates/deploy/azure-aci-deploy","2.developers/7.templates/60.deploy/25.azure-aci-deploy",{"date":1057,"tags":1666,"thumbnail":1667,"keywords":1668,"docker_github_link":1067,"deployButtons":400},[1042,1043],{"src":1060,"contain":372},[1062,1063,1049,600,1064,1065,1066],{"title":1670,"meta":1671,"path":1672,"stem":1673,"children":1674,"page":400},"ETL Templates",{},"/developers/templates/etl","2.developers/7.templates/ETL",[1675,1689,1705,1724,1744,1755,1769,1780,1790,1805,1820,1834,1848,1866,1882,1896,1912,1928,1940,1953,1963,1975,1987,2001],{"title":1676,"path":1677,"stem":1678,"meta":1679},"EL Pipeline: Move your data around with Pathway","/developers/templates/etl/el-pipeline","2.developers/7.templates/ETL/10.el-pipeline",{"layout":1680,"date":1681,"tags":1682,"thumbnail":1683,"keywords":1685,"popular":372},"template","2025-05-22",[1042,1043],{"src":1684,"contain":372},"/assets/content/showcases/el-template/el-template-thumbnail.png",[1686,1687,1688,598,625,600],"ETL","EL","YAML",{"title":1690,"path":1691,"stem":1692,"meta":1693},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","/developers/templates/etl/suspicious_activity_tumbling_window","2.developers/7.templates/ETL/10.suspicious_activity_tumbling_window",{"notebook_export_path":1694,"aside":372,"date":1695,"thumbnail":1696,"tags":1699,"keywords":1701,"layout":1680},"notebooks/tutorials/suspicious_user_activity.ipynb","2023-05-30",{"src":1697,"provider":1698},"/assets/blog/thumbnails/th-shield.png","s3",[455,1700],"machine-learning",[888,1702,1703,1704],"tumbling","alert","notebook",{"title":1706,"path":1707,"stem":1708,"meta":1709},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","/developers/templates/etl/gaussian_filtering_python","2.developers/7.templates/ETL/100.gaussian_filtering_python",{"notebook_export_path":1710,"aside":372,"date":1711,"layout":1680,"thumbnail":1712,"tags":1714,"related":1716,"keywords":1719},"notebooks/tutorials/gaussian-filtering-python.ipynb","2023-10-17",{"src":1713},"/assets/content/tutorials/time_series/thumbnail-gaussian.png",[455,1715],"Time Series",[1717,1718],"/blog/signal-processing","/developers/templates/etl/upsampling",[1720,1721,853,1722,1723,888,1704],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":1725,"path":1726,"stem":1727,"meta":1728},"Computing the Option Greeks using Pathway and Databento","/developers/templates/etl/option-greeks","2.developers/7.templates/ETL/105.option-greeks",{"thumbnail":1729,"date":1731,"tags":1732,"keywords":1733,"notebook_export_path":1742,"docker_github_link":1743,"aside":372,"layout":1680},{"src":1730,"contain":372},"/assets/content/showcases/option-greeks/option-greeks.png","2024-08-06",[455,1043],[1734,1735,1736,1737,1738,1739,1740,1741,1704],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks/tutorials/option-greeks.ipynb","https://github.com/pathwaycom/pathway/tree/main/examples/projects/option-greeks",{"title":1745,"path":1746,"stem":1747,"meta":1748},"Automating reconciliation of messy financial transaction logs using Pathway's real-time fuzzy join","/developers/templates/etl/fuzzy_join_chapter1","2.developers/7.templates/ETL/11.fuzzy_join_chapter1",{"notebook_export_path":1749,"aside":372,"date":1750,"tags":1751,"keywords":1752,"layout":1680},"notebooks/showcases/fuzzy_join_part1.ipynb","2022-10-18",[455,1043],[1753,1754,976,1704],"Fuzzy join","reconciliation",{"title":1756,"path":1718,"stem":1757,"meta":1758},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers/7.templates/ETL/110.upsampling",{"notebook_export_path":1759,"aside":372,"date":1760,"layout":1680,"thumbnail":1761,"tags":1763,"related":1764,"popular":372,"keywords":1765},"notebooks/tutorials/upsampling.ipynb","2023-10-18",{"src":1762},"/assets/content/tutorials/time_series/thumbnail-time-series.png",[455,1715],[1717,1707],[1720,1766,853,1767,1768,1723,888,1704],"upsampling","resampling","interpolation",{"title":1770,"path":1771,"stem":1772,"meta":1773},"Interaction with a Feedback Loop.","/developers/templates/etl/fuzzy_join_chapter2","2.developers/7.templates/ETL/12.fuzzy_join_chapter2",{"notebook_export_path":1774,"aside":372,"date":1775,"thumbnail":1776,"tags":1778,"keywords":1779,"layout":1680},"notebooks/showcases/fuzzy_join_part2.ipynb","2022-10-19",{"src":1777,"contain":372},"/assets/content/showcases/fuzzy_join/reconciliation_chapter3_trim.png",[455,1043],[1753,1754,976,1704],{"title":1781,"path":1782,"stem":1783,"meta":1784},"Smart real-time monitoring application with alert deduplication","/developers/templates/etl/alerting-significant-changes","2.developers/7.templates/ETL/130.alerting-significant-changes",{"notebook_export_path":1785,"aside":372,"date":1786,"tags":1787,"keywords":1788,"layout":1680},"notebooks/tutorials/alert-deduplication.ipynb","2023-11-16",[455,1043],[1703,1789,1109,1704],"deduplication",{"title":1791,"path":1792,"stem":1793,"meta":1794},"Kafka ETL: Processing event streams in Python","/developers/templates/etl/kafka-etl","2.developers/7.templates/ETL/140.kafka-etl",{"layout":1680,"date":1795,"tags":1796,"thumbnail":1797,"keywords":1799,"docker_github_link":1804,"popular":372},"2024-02-15",[1042,1043],{"src":1798,"contain":372},"/assets/content/showcases/ETL-Kafka/ETL-Kafka.png",[1686,598,1800,1801,1802,1803,600],"datetime","time zone","timezone","concat_reindex","https://github.com/pathwaycom/pathway/tree/main/examples/projects/kafka-ETL",{"title":1806,"path":1807,"stem":1808,"meta":1809},"Streaming ETL pipelines in Python with Airbyte and Pathway","/developers/templates/etl/etl-python-airbyte","2.developers/7.templates/ETL/150.etl-python-airbyte",{"layout":1680,"date":1810,"tags":1811,"thumbnail":1812,"keywords":1814},"2024-02-28",[1042,1043],{"src":1813},"/assets/content/showcases/airbyte/airbyte-diagram-th.png",[1815,1816,1817,1818,1819],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":1821,"path":1822,"stem":1823,"meta":1824},"Delta Lake ETL with Pathway for Spark Analytics","/developers/templates/etl/delta_lake_etl","2.developers/7.templates/ETL/175.delta_lake_etl",{"layout":1680,"date":1825,"tags":1826,"thumbnail":1827,"keywords":1829,"docker_github_link":1833},"2024-07-23",[1042,1043],{"src":1828,"contain":372},"/assets/content/showcases/deltalake/delta_lake_diagram_th.png",[1830,1831,1832,1818,1819,600],"delta lake etl","spark delta lake","spark etl","https://github.com/pathwaycom/pathway/tree/main/examples/projects/spark-data-preparation",{"title":1835,"path":1836,"stem":1837,"meta":1838},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","/developers/templates/etl/kafka-alternative","2.developers/7.templates/ETL/180.kafka-alternative",{"layout":1680,"thumbnail":1839,"date":1841,"tags":1842,"keywords":1843},{"src":1840,"contain":372},"/assets/content/showcases/kafka-alternatives/kafka-alternatives-thumbnail.png","2024-08-27",[1042,1043],[1686,598,30,1844,1845,1802,1846,1847],"MinIO","S3","Kafka-alternatives","Delta tables",{"title":1849,"path":1850,"stem":1851,"meta":1852},"Jupyter / Colab: visualizing and transforming live data streams in Python notebooks with Pathway","/developers/templates/etl/live_data_jupyter","2.developers/7.templates/ETL/2.live_data_jupyter",{"aside":372,"date":1088,"tags":1853,"keywords":1854,"notebook_export_path":1864,"docker_github_link":1865,"popular":372,"layout":1680},[455,1043,1042],[1855,1856,1857,1858,1859,1860,1861,1862,1863,1704,600],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks/showcases/live-data-jupyter.ipynb","https://github.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy/part4_deployment",{"title":1867,"path":1868,"stem":1869,"meta":1870},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway","/developers/templates/etl/twitter","2.developers/7.templates/ETL/2.twitter",{"aside":372,"layout":1680,"date":1871,"thumbnail":1872,"tags":1874,"keywords":1875,"docker_github_link":1881},"2022-10-31",{"src":1873},"/assets/content/blog/th-twitter.png",[455,1700,1042],[1876,1877,1878,1879,1880,976,600],"Twitter","tweets","sentiment analysis","geolocation","influence","https://github.com/pathwaycom/pathway/tree/main/examples/projects/twitter",{"title":1883,"path":1884,"stem":1885,"meta":1886},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","/developers/templates/etl/event_stream_processing_time_between_occurrences","2.developers/7.templates/ETL/20.event_stream_processing_time_between_occurrences",{"aside":372,"date":1887,"layout":1680,"thumbnail":1888,"tags":1890,"keywords":1891},"2022-11-01",{"src":1889},"/assets/content/blog/th-time-between-events-in-a-multi-topic-event-stream.png",[455,1043],[1892,1893,597,1894,1895],"event stream","multi-topic","ordering","sort",{"title":1897,"path":1898,"stem":1899,"meta":1900},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","/developers/templates/etl/lsh_chapter1","2.developers/7.templates/ETL/3.lsh_chapter1",{"notebook_export_path":1901,"aside":372,"date":1902,"thumbnail":1903,"tags":1905,"keywords":1906,"layout":1680},"notebooks/showcases/lsh.ipynb","2022-10-25",{"src":1904},"/assets/content/blog/th-realtime-classification.png",[455,1700],[1907,785,1908,780,1909,1910,1911,976,1704],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":1913,"path":1914,"stem":1915,"meta":1916},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","/developers/templates/etl/user_pairs_fuzzy_join","2.developers/7.templates/ETL/30.user_pairs_fuzzy_join",{"aside":372,"date":1917,"thumbnail":1918,"tags":1920,"keywords":1921,"layout":1680},"2023-01-09",{"src":1919,"provider":1698},"/assets/blog/thumbnails/th-mining-hidden-user-pair-activity-with-fuzzy-join.png",[455,1043],[1922,1703,1923,1924,1925,1926,1927],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":1929,"path":1930,"stem":1931,"meta":1932},"Pathway Logistics Application: Streamlined Insights for Real-Time Asset Management","/developers/templates/etl/logistics","2.developers/7.templates/ETL/4.logistics",{"aside":372,"layout":1680,"date":1871,"thumbnail":1933,"tags":1935,"enterprise":372,"keywords":1936},{"src":1934},"/assets/content/blog/th-logictics-app.png",[455,1700],[1937,1938,1939],"Logistics","IoT","Dashboard",{"title":1941,"path":1942,"stem":1943,"meta":1944},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway","/developers/templates/etl/bellman_ford","2.developers/7.templates/ETL/40.bellman_ford",{"aside":372,"date":1945,"layout":1680,"thumbnail":1946,"tags":1948,"notebook_export_path":1949,"keywords":1950},"2022-11-03",{"src":1947,"provider":1698},"/assets/blog/thumbnails/th-bellman-ford.png",[455,1700],"notebooks/tutorials/bellman_ford.ipynb",[761,1951,1952,1123,1704],"fixed-point","shortest-path",{"title":1954,"path":1955,"stem":1956,"meta":1957},"Linear regression on a Kafka stream","/developers/templates/etl/linear_regression_with_kafka","2.developers/7.templates/ETL/5.linear_regression_with_kafka",{"aside":372,"layout":1680,"date":1958,"tags":1959,"keywords":1960,"docker_github_link":1962},"2022-12-23",[455,1043],[1961,598,529],"linear regression","https://github.com/pathwaycom/pathway/tree/main/examples/projects/kafka-linear-regression",{"title":1964,"path":1965,"stem":1966,"meta":1967},"Real-Time PageRank on Dynamic Graphs with Pathway","/developers/templates/etl/pagerank","2.developers/7.templates/ETL/50.pagerank",{"notebook_export_path":1968,"aside":372,"date":1969,"thumbnail":1970,"tags":1972,"keywords":1973,"layout":1680},"notebooks/tutorials/pagerank.ipynb","2022-11-07",{"src":1971,"provider":1698},"/assets/blog/thumbnails/th-computing-pagerank.png",[455,1700],[1974,1123,1704],"pagerank",{"title":1976,"path":1977,"stem":1978,"meta":1979},"Sensor Fusion in real-time: combining time series data with Pathway","/developers/templates/etl/combining_time_series","2.developers/7.templates/ETL/65.combining_time_series",{"aside":372,"date":1980,"thumbnail":1981,"tags":1982,"keywords":1983,"notebook_export_path":1986,"layout":1680},"2023-04-28",{"src":1762},[1715],[1984,1985,1768,493,1704],"time series","multiple data sources","notebooks/tutorials/combining-time-series.ipynb",{"title":1988,"path":1989,"stem":1990,"meta":1991},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","/developers/templates/etl/realtime-log-monitoring","2.developers/7.templates/ETL/7.realtime-log-monitoring",{"aside":372,"layout":1680,"date":1992,"thumbnail":1993,"tags":1995,"keywords":1996,"docker_github_link":2000},"2023-02-27",{"src":1994,"contain":372},"/assets/content/tutorials/realtime_log_monitoring/meme.jpg",[455,1043],[1997,1703,598,1998,573,1999,600],"log monitoring","Filebeat","ElasticSearch","https://github.com/pathwaycom/pathway/tree/main/examples/projects/realtime-log-monitoring/filebeat-pathway-slack",{"title":2002,"path":2003,"stem":2004,"children":2005,"page":400},"Readmes","/developers/templates/etl/_readmes","2.developers/7.templates/ETL/_readmes",[2006,2008,2013,2018,2023,2028,2033,2038,2043,2048,2053,2057,2062,2067,2072,2077,2082,2087,2092],{"title":5,"path":373,"stem":376,"meta":2007},{},{"title":2009,"path":2010,"stem":2011,"meta":2012},"Azure ACI Deployment Example","/developers/templates/etl/_readmes/azure-aci-deploy","2.developers/7.templates/ETL/_readmes/azure-aci-deploy",{},{"title":2014,"path":2015,"stem":2016,"meta":2017},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","/developers/templates/etl/_readmes/benchmarks","2.developers/7.templates/ETL/_readmes/benchmarks",{},{"title":2019,"path":2020,"stem":2021,"meta":2022},"Best-rated movies examples","/developers/templates/etl/_readmes/best-movies-example","2.developers/7.templates/ETL/_readmes/best-movies-example",{},{"title":2024,"path":2025,"stem":2026,"meta":2027},"Make your LLM app sane again: Forgetting incorrect data in real time","/developers/templates/etl/_readmes/conf42","2.developers/7.templates/ETL/_readmes/conf42",{},{"title":2029,"path":2030,"stem":2031,"meta":2032},"Custom python connector example","/developers/templates/etl/_readmes/custom-python-connector-twitter","2.developers/7.templates/ETL/_readmes/custom-python-connector-twitter",{},{"title":2034,"path":2035,"stem":2036,"meta":2037},"Realtime monitoring of logs","/developers/templates/etl/_readmes/filebeat-pathway-slack","2.developers/7.templates/ETL/_readmes/filebeat-pathway-slack",{},{"title":2039,"path":2040,"stem":2041,"meta":2042},"Tutorial: From interactive data exploration to deployment","/developers/templates/etl/_readmes/from_jupyter_to_deploy","2.developers/7.templates/ETL/_readmes/from_jupyter_to_deploy",{},{"title":2044,"path":2045,"stem":2046,"meta":2047},"ETL with Kafka in/Kafka out","/developers/templates/etl/_readmes/kafka-etl","2.developers/7.templates/ETL/_readmes/kafka-ETL",{},{"title":2049,"path":2050,"stem":2051,"meta":2052},"Best-rated movies example - Kafka version","/developers/templates/etl/_readmes/kafka-version","2.developers/7.templates/ETL/_readmes/kafka-version",{},{"title":2034,"path":2054,"stem":2055,"meta":2056},"/developers/templates/etl/_readmes/logstash-pathway-elastic","2.developers/7.templates/ETL/_readmes/logstash-pathway-elastic",{},{"title":2058,"path":2059,"stem":2060,"meta":2061},"Pathway Monitoring using OpenTelemetry Collector and Grafana Cloud","/developers/templates/etl/_readmes/monitoring","2.developers/7.templates/ETL/_readmes/monitoring",{},{"title":2063,"path":2064,"stem":2065,"meta":2066},"Computing Option Greeks with Pathway and Databento.","/developers/templates/etl/_readmes/option-greeks","2.developers/7.templates/ETL/_readmes/option-greeks",{},{"title":2068,"path":2069,"stem":2070,"meta":2071},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway","/developers/templates/etl/_readmes/question-answering-rag","2.developers/7.templates/ETL/_readmes/question-answering-rag",{},{"title":2073,"path":2074,"stem":2075,"meta":2076},"Best-rated movies example - Redpanda version","/developers/templates/etl/_readmes/redpanda-version","2.developers/7.templates/ETL/_readmes/redpanda-version",{},{"title":2078,"path":2079,"stem":2080,"meta":2081},"Sample Pathway program for SharePoint connection testing","/developers/templates/etl/_readmes/sharepoint-test","2.developers/7.templates/ETL/_readmes/sharepoint-test",{},{"title":2083,"path":2084,"stem":2085,"meta":2086},"Data Preparation for Spark Analytics","/developers/templates/etl/_readmes/spark-data-preparation","2.developers/7.templates/ETL/_readmes/spark-data-preparation",{},{"title":2088,"path":2089,"stem":2090,"meta":2091},"Realtime Twitter Analysis App with Pathway","/developers/templates/etl/_readmes/twitter","2.developers/7.templates/ETL/_readmes/twitter",{},{"title":2093,"path":2094,"stem":2095,"meta":2096},"Web Scraping with Pathway","/developers/templates/etl/_readmes/web-scraping","2.developers/7.templates/ETL/_readmes/web-scraping",{},{"title":2098,"meta":2099,"path":2100,"stem":2101,"children":2102,"page":400},"LLM-RAG Templates",{},"/developers/templates/rag","2.developers/7.templates/rag",[2103,2116,2131,2147,2160,2178,2188,2203,2213,2223,2234,2247],{"title":2104,"path":2105,"stem":2106,"meta":2107},"Question-Answering RAG App","/developers/templates/rag/demo-question-answering","2.developers/7.templates/rag/1000.demo-question-answering",{"redirection":2108,"thumbnail":2109,"layout":1680,"tags":2111,"date":973,"keywords":2113,"docker_github_link":2108,"popular":372},"https://github.com/pathwaycom/llm-app/tree/main/templates/question_answering_rag",{"src":2110,"provider":1698},"/assets/blog/thumbnails/qna-th.png",[1042,2112],"ai-pipelines",[915,927,917,918,2114,781,529,2115],"vector store","yaml",{"title":2117,"path":2118,"stem":2119,"meta":2120},"Adaptive RAG App","/developers/templates/rag/template-adaptive-rag","2.developers/7.templates/rag/1001.template-adaptive-rag",{"thumbnail":2121,"tags":2123,"date":2124,"layout":1680,"keywords":2125,"docker_github_link":2130},{"src":2122,"contain":372},"/assets/content/blog/adaptive-rag-plots/visual-abstract.png",[1042,2112],"2024-03-29",[915,927,2126,2127,2128,2129,529,2115],"Adaptive RAG","prompt engineering","prompt","explainability","https://github.com/pathwaycom/llm-app/tree/main/templates/adaptive_rag",{"title":2132,"path":2133,"stem":2134,"meta":2135},"Private RAG App with Mistral and Ollama","/developers/templates/rag/template-private-rag","2.developers/7.templates/rag/1002.template-private-rag",{"tags":2136,"date":2137,"thumbnail":2138,"layout":1680,"keywords":2140,"docker_github_link":2146},[1042,2112],"2024-04-22",{"src":2139,"contain":372},"/assets/content/blog/local-adaptive-rag/local_adaptive.png",[915,927,2126,2127,2129,2141,2142,2143,2144,2145,529,2115],"mistral","ollama","private rag","local rag","ollama rag","https://github.com/pathwaycom/llm-app/tree/main/templates/private_rag",{"title":2148,"path":2149,"stem":2150,"meta":2151},"Multimodal RAG pipeline with GPT4o","/developers/templates/rag/template-multimodal-rag","2.developers/7.templates/rag/1003.template-multimodal-rag",{"tags":2152,"date":2153,"thumbnail":2154,"layout":1680,"keywords":2156,"docker_github_link":2159,"popular":372},[1042,2112],"2024-01-01",{"src":2155,"contain":372},"/assets/content/showcases/multimodal-RAG/multimodalRAG-blog-banner.png",[915,927,917,918,2157,2158,976,529,2115],"GPT-4o","multimodal RAG","https://github.com/pathwaycom/llm-app/tree/main/templates/multimodal_rag",{"title":2161,"path":2162,"stem":2163,"children":2164,"meta":2174},"Live Document Indexing (Vector Store / Retriever)","/developers/templates/rag/template-demo-document-indexing","2.developers/7.templates/rag/1008.template-demo-document-indexing",[2165],{"title":2161,"path":2162,"stem":2163,"meta":2166},{"thumbnail":2167,"tags":2169,"date":2153,"layout":1680,"keywords":2170,"docker_github_link":2173},{"src":2168,"provider":1698},"/assets/blog/thumbnails/live-document-indexing-th.png",[1042,2112],[915,927,917,918,2114,781,2171,677,2172,529,2115],"SharePoint","Gdrive","https://github.com/pathwaycom/llm-app/tree/main/templates/document_indexing",{"thumbnail":2175,"tags":2176,"date":2153,"layout":1680,"keywords":2177,"docker_github_link":2173},{"src":2168,"provider":1698},[1042,2112],[915,927,917,918,2114,781,2171,677,2172,529,2115],{"title":2179,"path":2180,"stem":2181,"meta":2182},"Alerting when answers change on Google Drive","/developers/templates/rag/drive-alert","2.developers/7.templates/rag/1009.drive-alert",{"tags":2183,"date":2184,"layout":1680,"keywords":2185,"docker_github_link":2187,"hide":372},[1042,2112],"2024-11-07",[915,927,917,918,2186,781,677,2172,529],"slack","https://github.com/pathwaycom/llm-app/tree/main/templates/drive_alert",{"title":2189,"path":2190,"stem":2191,"meta":2192},"Slides AI Search App","/developers/templates/rag/template-slides-search","2.developers/7.templates/rag/1010.template-slides-search",{"thumbnail":2193,"tags":2195,"date":2196,"layout":1680,"keywords":2197,"docker_github_link":2202},{"src":2194,"provider":1698},"/assets/blog/thumbnails/slides-search-th.png",[1042,2112],"2024-11-14",[915,927,917,918,677,2198,529,2115,2199,2200,2201],"slides","multimodal","VLM","image-to-text","https://github.com/pathwaycom/llm-app/tree/main/templates/slides_ai_search",{"title":2204,"path":2205,"stem":2206,"meta":2207},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","/developers/templates/rag/adaptive-rag","2.developers/7.templates/rag/1015.adaptive-rag",{"aside":372,"thumbnail":2208,"tags":2209,"date":2210,"notebook_export_path":2211,"keywords":2212,"run_template":2118,"hide":372},{"src":2122,"contain":372},[1042,2112],"2024-03-28","notebooks/showcases/adaptive_rag_question_answering.ipynb",[915,927,2126,2127,2128,2129,1704,600],{"title":2214,"path":2215,"stem":2216,"meta":2217},"Multimodal RAG for PDFs with Text, Images, and Charts","/developers/templates/rag/multimodal-rag","2.developers/7.templates/rag/120.multimodal-rag",{"aside":372,"thumbnail":2218,"date":2219,"tags":2220,"keywords":2221,"notebook_export_path":2222,"run_template":2149,"popular":372,"hide":372},{"src":2155,"contain":372},"2024-06-20",[1042,2112],[915,927,917,918,2157,2158,976,1704,529],"notebooks/showcases/multimodal-rag.ipynb",{"title":2224,"path":2225,"stem":2226,"meta":2227},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway","/developers/templates/rag/private-rag-ollama-mistral","2.developers/7.templates/rag/161.private-rag-ollama-mistral",{"aside":372,"thumbnail":2228,"tags":2229,"date":2230,"related":2231,"notebook_export_path":2232,"keywords":2233,"run_template":2133,"hide":372},{"src":2139,"contain":372},[1042,2112],"2024-04-23",[2205,2105],"notebooks/showcases/mistral_adaptive_rag_question_answering.ipynb",[915,927,2126,2127,2129,2141,2142,2143,2144,2145,1704,529],{"title":2235,"path":2236,"stem":2237,"meta":2238},"Pathway + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","/developers/templates/rag/unstructured-to-structured","2.developers/7.templates/rag/5.unstructured-to-structured",{"aside":372,"layout":1680,"date":898,"thumbnail":2239,"tags":2241,"keywords":2242,"docker_github_link":2246},{"src":2240,"contain":372},"/assets/content/showcases/llm-app/architecture_unst_to_st.png",[1042,2112],[915,2243,976,625,917,2244,2245,492,976,600],"SQL","Entity extraction","Document parsing","https://github.com/pathwaycom/llm-app/tree/main/templates/unstructured_to_sql_on_the_fly",{"title":2002,"path":2248,"stem":2249,"children":2250,"page":400},"/developers/templates/rag/_readmes","2.developers/7.templates/rag/_readmes",[2251,2256,2264,2269,2274,2279,2284,2289,2294],{"title":2252,"path":2253,"stem":2254,"meta":2255},"AdaptiveRag","/developers/templates/rag/_readmes/adaptive_rag","2.developers/7.templates/rag/_readmes/adaptive_rag",{},{"title":2257,"path":2258,"stem":2259,"children":2260,"meta":2263},"DocumentIndexing","/developers/templates/rag/_readmes/document_indexing","2.developers/7.templates/rag/_readmes/document_indexing",[2261],{"title":2257,"path":2258,"stem":2259,"meta":2262},{},{},{"title":2265,"path":2266,"stem":2267,"meta":2268},"DocumentStoreMcpServer","/developers/templates/rag/_readmes/document_store_mcp_server","2.developers/7.templates/rag/_readmes/document_store_mcp_server",{},{"title":2270,"path":2271,"stem":2272,"meta":2273},"Pathway + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","/developers/templates/rag/_readmes/drive_alert","2.developers/7.templates/rag/_readmes/drive_alert",{},{"title":2275,"path":2276,"stem":2277,"meta":2278},"MultimodalRag","/developers/templates/rag/_readmes/multimodal_rag","2.developers/7.templates/rag/_readmes/multimodal_rag",{},{"title":2280,"path":2281,"stem":2282,"meta":2283},"PrivateRag","/developers/templates/rag/_readmes/private_rag","2.developers/7.templates/rag/_readmes/private_rag",{},{"title":2285,"path":2286,"stem":2287,"meta":2288},"QuestionAnsweringRag","/developers/templates/rag/_readmes/question_answering_rag","2.developers/7.templates/rag/_readmes/question_answering_rag",{},{"title":2290,"path":2291,"stem":2292,"meta":2293},"SlidesAiSearch","/developers/templates/rag/_readmes/slides_ai_search","2.developers/7.templates/rag/_readmes/slides_ai_search",{},{"title":2295,"path":2296,"stem":2297,"meta":2298},"UnstructuredToSqlOnTheFly","/developers/templates/rag/_readmes/unstructured_to_sql_on_the_fly","2.developers/7.templates/rag/_readmes/unstructured_to_sql_on_the_fly",{},{"navTitle":396,"layout":471,"aside":372,"toc":400,"single":372},{"id":4,"title":5,"author":6,"body":2301,"description":369,"extension":370,"meta":2536,"navigation":372,"path":373,"seo":2537,"sitemap":2538,"stem":376,"__hash__":377},{"type":8,"value":2302,"toc":2526},[2303,2305,2313,2315,2317,2347,2349,2351,2361,2365,2367,2373,2375,2380,2382,2451,2453,2485,2487,2515,2517,2519,2524],[11,2304,5],{"id":13},[15,2306,17,2307,25,2310,31],{},[19,2308,24],{"href":21,"rel":2309},[23],[19,2311,30],{"href":28,"rel":2312},[23],[15,2314,34],{},[36,2316,39],{"id":38},[41,2318,2319,2323,2327,2331,2335,2339,2343],{},[44,2320,2321],{},[19,2322,49],{"href":48},[44,2324,2325],{},[19,2326,55],{"href":54},[44,2328,2329],{},[19,2330,61],{"href":60},[44,2332,2333],{},[19,2334,67],{"href":66},[44,2336,2337],{},[19,2338,73],{"href":72},[44,2340,2341],{},[19,2342,79],{"href":78},[44,2344,2345],{},[19,2346,85],{"href":84},[36,2348,49],{"id":88},[15,2350,91],{},[93,2352,2353,2357],{},[44,2354,2355,100],{},[98,2356,30],{},[44,2358,2359,105],{},[98,2360,24],{},[15,2362,108,2363,112],{},[98,2364,111],{},[36,2366,55],{"id":115},[93,2368,2369,2371],{},[44,2370,120],{},[44,2372,123],{},[36,2374,61],{"id":126},[128,2376,2378],{"className":2377,"code":132,"language":133},[131],[135,2379,132],{"__ignoreMap":137},[36,2381,67],{"id":140},[41,2383,2384,2406,2434,2445],{},[44,2385,2386,148,2388],{},[98,2387,147],{},[128,2389,2390],{"className":151,"code":152,"language":153,"meta":137,"style":137},[135,2391,2392,2400],{"__ignoreMap":137},[157,2393,2394,2396,2398],{"class":159,"line":160},[157,2395,164],{"class":163},[157,2397,168],{"class":167},[157,2399,171],{"class":167},[157,2401,2402,2404],{"class":159,"line":174},[157,2403,178],{"class":177},[157,2405,181],{"class":167},[44,2407,2408,148,2410],{},[98,2409,186],{},[128,2411,2412],{"className":151,"code":189,"language":153,"meta":137,"style":137},[135,2413,2414],{"__ignoreMap":137},[157,2415,2416,2418,2420,2422,2424,2426,2428,2430,2432],{"class":159,"line":160},[157,2417,196],{"class":163},[157,2419,199],{"class":167},[157,2421,202],{"class":167},[157,2423,205],{"class":167},[157,2425,209],{"class":208},[157,2427,212],{"class":167},[157,2429,215],{"class":208},[157,2431,218],{"class":167},[157,2433,221],{"class":167},[44,2435,2436,227,2438,231,2440],{},[98,2437,226],{},[135,2439,230],{},[128,2441,2443],{"className":2442,"code":235,"language":133},[131],[135,2444,235],{"__ignoreMap":137},[44,2446,2447,243,2449,247],{},[98,2448,242],{},[135,2450,246],{},[36,2452,73],{"id":250},[41,2454,2455,2469,2481],{},[44,2456,2457,148,2459],{},[98,2458,257],{},[128,2460,2461],{"className":151,"code":260,"language":153,"meta":137,"style":137},[135,2462,2463],{"__ignoreMap":137},[157,2464,2465,2467],{"class":159,"line":160},[157,2466,267],{"class":163},[157,2468,270],{"class":167},[44,2470,273,2471],{},[93,2472,2473,2477,2479],{},[44,2474,278,2475],{},[135,2476,246],{},[44,2478,283],{},[44,2480,286],{},[44,2482,2483,292],{},[98,2484,291],{},[36,2486,79],{"id":295},[93,2488,2489,2497,2505,2509],{},[44,2490,2491,302,2493,305,2495,309],{},[98,2492,30],{},[135,2494,246],{},[135,2496,308],{},[44,2498,2499,315,2501,319,2503,323],{},[98,2500,314],{},[135,2502,318],{},[135,2504,322],{},[44,2506,2507,329],{},[98,2508,328],{},[44,2510,332,2511,336,2513],{},[135,2512,335],{},[135,2514,339],{},[36,2516,85],{"id":342},[15,2518,345],{},[15,2520,348,2521,354],{},[19,2522,353],{"href":351,"rel":2523},[23],[356,2525,358],{},{"title":137,"searchDepth":174,"depth":174,"links":2527},[2528,2529,2530,2531,2532,2533,2534,2535],{"id":38,"depth":174,"text":39},{"id":88,"depth":174,"text":49},{"id":115,"depth":174,"text":55},{"id":126,"depth":174,"text":61},{"id":140,"depth":174,"text":67},{"id":250,"depth":174,"text":73},{"id":295,"depth":174,"text":79},{"id":342,"depth":174,"text":85},{},{"title":5,"description":369},{"loc":373},[2540,2541],{"title":1988,"path":1989,"stem":1990,"children":-1},{"title":2009,"path":2010,"stem":2011,"children":-1},1775665299436]