[{"data":1,"prerenderedAt":4146},["ShallowReactive",2],{"\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst-realtime-app-app":3,"navigation-developers":1280,"\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst-realtime-app":3225,"surr-\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst-realtime-app":4143},{"id":4,"title":5,"author":6,"body":7,"description":1272,"extension":1273,"meta":1274,"navigation":118,"path":1275,"seo":1276,"sitemap":1277,"stem":1278,"__hash__":1279},"content\u002F2.developers\u002F4.user-guide\u002F10.introduction\u002F40.first-realtime-app.md","Starting Examples",null,{"type":8,"value":9,"toc":1264},"minimark",[10,15,19,22,33,36,41,52,59,63,66,76,79,84,87,985,990,994,1017,1024,1048,1063,1070,1075,1078,1084,1087,1093,1096,1102,1111,1132,1142,1145,1151,1157,1160,1166,1177,1187,1191,1253,1260],[11,12,14],"h1",{"id":13},"pathway-in-minutes-quick-etl-examples","Pathway in Minutes: Quick ETL Examples",[16,17,18],"p",{},"In this article, you will learn how to start your journey with the Pathway Live Data Framework and build a simple ETL pipeline.",[16,20,21],{},"First, you need to make sure the framework is installed. Install it with a single pip command",[23,24,29],"pre",{"className":25,"code":27,"language":28},[26],"language-text","pip install pathway\n","text",[30,31,27],"code",{"__ignoreMap":32},"",[16,34,35],{},"on a Python 3.10+ installation, and you are ready to roll!",[37,38,40],"h2",{"id":39},"a-simple-sum-example","A simple sum example",[16,42,43,44,51],{},"Let's start with a simple sum over positive values stored in CSV files, and written to a ",[45,46,50],"a",{"href":47,"rel":48},"https:\u002F\u002Fjsonlines.org\u002F",[49],"nofollow","JSON Lines"," file:",[53,54],"article-img",{"alt":55,"className":56,"src":58},"Pathway code example.",[57],"mx-auto","\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fpathway-introduction.svg",[37,60,62],{"id":61},"join-and-filter-etl-example","Join and filter ETL example",[16,64,65],{},"This example takes two data sources:",[67,68,69,73],"ol",{},[70,71,72],"li",{},"live measurements from a Kafka topic",[70,74,75],{},"thresholds from local CSV files.",[16,77,78],{},"The aim is to combine the data from those two data sources and find the live measurements that are above the threshold.",[80,81,83],"h3",{"id":82},"source-code","Source Code",[16,85,86],{},"This is how you can do the whole pipeline in Pathway:",[23,88,92],{"className":89,"code":90,"language":91,"meta":32,"style":32},"language-python shiki shiki-themes material-theme-palenight","import pathway as pw\n\n# Declare the Schema of your tables using pw.Schema.\n# There are two input tables: (1) measurements which is \n# live stream and (2) threshold which is a CSV that might be modified over time.\n# Both have two columns: a name (str) and a float.\nclass MeasurementSchema(pw.Schema):\n    name: str\n    value: float\n\n\nclass ThresholdSchema(pw.Schema):\n    name: str\n    threshold: float\n\n\n# Define Kafka configuration to connect to your Kafka instance\nrdkafka_settings = {\n    \"bootstrap.servers\": \"server-address:9092\",\n    \"security.protocol\": \"sasl_ssl\",\n    \"sasl.mechanism\": \"SCRAM-SHA-256\",\n    \"group.id\": \"$GROUP_NAME\",\n    \"session.timeout.ms\": \"6000\",\n    \"sasl.username\": \"username\",\n    \"sasl.password\": \"********\",\n}\n\n# Accessing the measurements using the Kafka Connector\nmeasurements_table = pw.io.kafka.read(\n    rdkafka_settings,\n    topic=\"topic\",\n    schema=MeasurementSchema,\n    format=\"json\",\n    autocommit_duration_ms=1000\n)\n\n# Accessing the threshold data stored in CSV files\nthresholds_table = pw.io.csv(\n    '.\u002Fthreshold-data\u002F',\n    schema=ThresholdSchema,\n)\n\n# Joining tables on the column name\njoined_table = (\n    # The left table is measurements_table (referred as pw.left)\n    measurements_table\n    .join(\n        # The right table is thresholds_table (referred as pw.right)\n        thresholds_table,\n        # The join is done on the column name of each table \n        pw.left.name==pw.right.name,\n    )\n    # The columns of the joined table are chosen using select\n    .select(\n        # All the columns of measurements are kept\n        *pw.left,\n        # The threshold column of the threshold table is kept\n        pw.right.threshold\n    )\n)\n\nalerts_table = (\n    joined_values\n    # Filtering value strictly higher than the threshold.\n    .filter(pw.this.value > pw.this.threshold)\n    # Only name and value fields are kept\n    .select(pw.this.name, pw.this.value)\n)\n\n# Sending the results to another Kafka topic, on the same Kafka instance\npw.io.kafka.write(\n    alerts_table, rdkafka_settings, topic_name=\"alerts_topic\", format=\"json\"\n)\n\n# Launching Pathway computation.\npw.run()\n","python",[30,93,94,113,120,127,133,139,145,172,184,195,200,205,223,232,242,247,252,258,270,296,317,338,359,380,401,422,428,433,439,470,478,496,509,526,538,544,549,555,576,590,602,607,612,618,629,635,641,652,658,666,672,704,710,716,726,732,746,752,766,771,776,781,791,797,803,841,847,881,886,891,897,917,956,961,966,972],{"__ignoreMap":32},[95,96,99,103,107,110],"span",{"class":97,"line":98},"line",1,[95,100,102],{"class":101},"s6cf3","import",[95,104,106],{"class":105},"s0W1g"," pathway ",[95,108,109],{"class":101},"as",[95,111,112],{"class":105}," pw\n",[95,114,116],{"class":97,"line":115},2,[95,117,119],{"emptyLinePlaceholder":118},true,"\n",[95,121,123],{"class":97,"line":122},3,[95,124,126],{"class":125},"saEQR","# Declare the Schema of your tables using pw.Schema.\n",[95,128,130],{"class":97,"line":129},4,[95,131,132],{"class":125},"# There are two input tables: (1) measurements which is \n",[95,134,136],{"class":97,"line":135},5,[95,137,138],{"class":125},"# live stream and (2) threshold which is a CSV that might be modified over time.\n",[95,140,142],{"class":97,"line":141},6,[95,143,144],{"class":125},"# Both have two columns: a name (str) and a float.\n",[95,146,148,152,156,160,163,166,169],{"class":97,"line":147},7,[95,149,151],{"class":150},"sJ14y","class",[95,153,155],{"class":154},"s5Dmg"," MeasurementSchema",[95,157,159],{"class":158},"sAklC","(",[95,161,162],{"class":154},"pw",[95,164,165],{"class":158},".",[95,167,168],{"class":154},"Schema",[95,170,171],{"class":158},"):\n",[95,173,175,178,181],{"class":97,"line":174},8,[95,176,177],{"class":105},"    name",[95,179,180],{"class":158},":",[95,182,183],{"class":154}," str\n",[95,185,187,190,192],{"class":97,"line":186},9,[95,188,189],{"class":105},"    value",[95,191,180],{"class":158},[95,193,194],{"class":154}," float\n",[95,196,198],{"class":97,"line":197},10,[95,199,119],{"emptyLinePlaceholder":118},[95,201,203],{"class":97,"line":202},11,[95,204,119],{"emptyLinePlaceholder":118},[95,206,208,210,213,215,217,219,221],{"class":97,"line":207},12,[95,209,151],{"class":150},[95,211,212],{"class":154}," ThresholdSchema",[95,214,159],{"class":158},[95,216,162],{"class":154},[95,218,165],{"class":158},[95,220,168],{"class":154},[95,222,171],{"class":158},[95,224,226,228,230],{"class":97,"line":225},13,[95,227,177],{"class":105},[95,229,180],{"class":158},[95,231,183],{"class":154},[95,233,235,238,240],{"class":97,"line":234},14,[95,236,237],{"class":105},"    threshold",[95,239,180],{"class":158},[95,241,194],{"class":154},[95,243,245],{"class":97,"line":244},15,[95,246,119],{"emptyLinePlaceholder":118},[95,248,250],{"class":97,"line":249},16,[95,251,119],{"emptyLinePlaceholder":118},[95,253,255],{"class":97,"line":254},17,[95,256,257],{"class":125},"# Define Kafka configuration to connect to your Kafka instance\n",[95,259,261,264,267],{"class":97,"line":260},18,[95,262,263],{"class":105},"rdkafka_settings ",[95,265,266],{"class":158},"=",[95,268,269],{"class":158}," {\n",[95,271,273,276,280,283,285,288,291,293],{"class":97,"line":272},19,[95,274,275],{"class":158},"    \"",[95,277,279],{"class":278},"sfyAc","bootstrap.servers",[95,281,282],{"class":158},"\"",[95,284,180],{"class":158},[95,286,287],{"class":158}," \"",[95,289,290],{"class":278},"server-address:9092",[95,292,282],{"class":158},[95,294,295],{"class":158},",\n",[95,297,299,301,304,306,308,310,313,315],{"class":97,"line":298},20,[95,300,275],{"class":158},[95,302,303],{"class":278},"security.protocol",[95,305,282],{"class":158},[95,307,180],{"class":158},[95,309,287],{"class":158},[95,311,312],{"class":278},"sasl_ssl",[95,314,282],{"class":158},[95,316,295],{"class":158},[95,318,320,322,325,327,329,331,334,336],{"class":97,"line":319},21,[95,321,275],{"class":158},[95,323,324],{"class":278},"sasl.mechanism",[95,326,282],{"class":158},[95,328,180],{"class":158},[95,330,287],{"class":158},[95,332,333],{"class":278},"SCRAM-SHA-256",[95,335,282],{"class":158},[95,337,295],{"class":158},[95,339,341,343,346,348,350,352,355,357],{"class":97,"line":340},22,[95,342,275],{"class":158},[95,344,345],{"class":278},"group.id",[95,347,282],{"class":158},[95,349,180],{"class":158},[95,351,287],{"class":158},[95,353,354],{"class":278},"$GROUP_NAME",[95,356,282],{"class":158},[95,358,295],{"class":158},[95,360,362,364,367,369,371,373,376,378],{"class":97,"line":361},23,[95,363,275],{"class":158},[95,365,366],{"class":278},"session.timeout.ms",[95,368,282],{"class":158},[95,370,180],{"class":158},[95,372,287],{"class":158},[95,374,375],{"class":278},"6000",[95,377,282],{"class":158},[95,379,295],{"class":158},[95,381,383,385,388,390,392,394,397,399],{"class":97,"line":382},24,[95,384,275],{"class":158},[95,386,387],{"class":278},"sasl.username",[95,389,282],{"class":158},[95,391,180],{"class":158},[95,393,287],{"class":158},[95,395,396],{"class":278},"username",[95,398,282],{"class":158},[95,400,295],{"class":158},[95,402,404,406,409,411,413,415,418,420],{"class":97,"line":403},25,[95,405,275],{"class":158},[95,407,408],{"class":278},"sasl.password",[95,410,282],{"class":158},[95,412,180],{"class":158},[95,414,287],{"class":158},[95,416,417],{"class":278},"********",[95,419,282],{"class":158},[95,421,295],{"class":158},[95,423,425],{"class":97,"line":424},26,[95,426,427],{"class":158},"}\n",[95,429,431],{"class":97,"line":430},27,[95,432,119],{"emptyLinePlaceholder":118},[95,434,436],{"class":97,"line":435},28,[95,437,438],{"class":125},"# Accessing the measurements using the Kafka Connector\n",[95,440,442,445,447,450,452,456,458,461,463,467],{"class":97,"line":441},29,[95,443,444],{"class":105},"measurements_table ",[95,446,266],{"class":158},[95,448,449],{"class":105}," pw",[95,451,165],{"class":158},[95,453,455],{"class":454},"s-wAU","io",[95,457,165],{"class":158},[95,459,460],{"class":454},"kafka",[95,462,165],{"class":158},[95,464,466],{"class":465},"sdLwU","read",[95,468,469],{"class":158},"(\n",[95,471,473,476],{"class":97,"line":472},30,[95,474,475],{"class":465},"    rdkafka_settings",[95,477,295],{"class":158},[95,479,481,485,487,489,492,494],{"class":97,"line":480},31,[95,482,484],{"class":483},"s7ZW3","    topic",[95,486,266],{"class":158},[95,488,282],{"class":158},[95,490,491],{"class":278},"topic",[95,493,282],{"class":158},[95,495,295],{"class":158},[95,497,499,502,504,507],{"class":97,"line":498},32,[95,500,501],{"class":483},"    schema",[95,503,266],{"class":158},[95,505,506],{"class":465},"MeasurementSchema",[95,508,295],{"class":158},[95,510,512,515,517,519,522,524],{"class":97,"line":511},33,[95,513,514],{"class":483},"    format",[95,516,266],{"class":158},[95,518,282],{"class":158},[95,520,521],{"class":278},"json",[95,523,282],{"class":158},[95,525,295],{"class":158},[95,527,529,532,534],{"class":97,"line":528},34,[95,530,531],{"class":483},"    autocommit_duration_ms",[95,533,266],{"class":158},[95,535,537],{"class":536},"sx098","1000\n",[95,539,541],{"class":97,"line":540},35,[95,542,543],{"class":158},")\n",[95,545,547],{"class":97,"line":546},36,[95,548,119],{"emptyLinePlaceholder":118},[95,550,552],{"class":97,"line":551},37,[95,553,554],{"class":125},"# Accessing the threshold data stored in CSV files\n",[95,556,558,561,563,565,567,569,571,574],{"class":97,"line":557},38,[95,559,560],{"class":105},"thresholds_table ",[95,562,266],{"class":158},[95,564,449],{"class":105},[95,566,165],{"class":158},[95,568,455],{"class":454},[95,570,165],{"class":158},[95,572,573],{"class":465},"csv",[95,575,469],{"class":158},[95,577,579,582,585,588],{"class":97,"line":578},39,[95,580,581],{"class":158},"    '",[95,583,584],{"class":278},".\u002Fthreshold-data\u002F",[95,586,587],{"class":158},"'",[95,589,295],{"class":158},[95,591,593,595,597,600],{"class":97,"line":592},40,[95,594,501],{"class":483},[95,596,266],{"class":158},[95,598,599],{"class":465},"ThresholdSchema",[95,601,295],{"class":158},[95,603,605],{"class":97,"line":604},41,[95,606,543],{"class":158},[95,608,610],{"class":97,"line":609},42,[95,611,119],{"emptyLinePlaceholder":118},[95,613,615],{"class":97,"line":614},43,[95,616,617],{"class":125},"# Joining tables on the column name\n",[95,619,621,624,626],{"class":97,"line":620},44,[95,622,623],{"class":105},"joined_table ",[95,625,266],{"class":158},[95,627,628],{"class":158}," (\n",[95,630,632],{"class":97,"line":631},45,[95,633,634],{"class":125},"    # The left table is measurements_table (referred as pw.left)\n",[95,636,638],{"class":97,"line":637},46,[95,639,640],{"class":105},"    measurements_table\n",[95,642,644,647,650],{"class":97,"line":643},47,[95,645,646],{"class":158},"    .",[95,648,649],{"class":465},"join",[95,651,469],{"class":158},[95,653,655],{"class":97,"line":654},48,[95,656,657],{"class":125},"        # The right table is thresholds_table (referred as pw.right)\n",[95,659,661,664],{"class":97,"line":660},49,[95,662,663],{"class":465},"        thresholds_table",[95,665,295],{"class":158},[95,667,669],{"class":97,"line":668},50,[95,670,671],{"class":125},"        # The join is done on the column name of each table \n",[95,673,675,678,680,683,685,688,691,693,695,698,700,702],{"class":97,"line":674},51,[95,676,677],{"class":465},"        pw",[95,679,165],{"class":158},[95,681,682],{"class":454},"left",[95,684,165],{"class":158},[95,686,687],{"class":454},"name",[95,689,690],{"class":158},"==",[95,692,162],{"class":465},[95,694,165],{"class":158},[95,696,697],{"class":454},"right",[95,699,165],{"class":158},[95,701,687],{"class":454},[95,703,295],{"class":158},[95,705,707],{"class":97,"line":706},52,[95,708,709],{"class":158},"    )\n",[95,711,713],{"class":97,"line":712},53,[95,714,715],{"class":125},"    # The columns of the joined table are chosen using select\n",[95,717,719,721,724],{"class":97,"line":718},54,[95,720,646],{"class":158},[95,722,723],{"class":465},"select",[95,725,469],{"class":158},[95,727,729],{"class":97,"line":728},55,[95,730,731],{"class":125},"        # All the columns of measurements are kept\n",[95,733,735,738,740,742,744],{"class":97,"line":734},56,[95,736,737],{"class":158},"        *",[95,739,162],{"class":465},[95,741,165],{"class":158},[95,743,682],{"class":454},[95,745,295],{"class":158},[95,747,749],{"class":97,"line":748},57,[95,750,751],{"class":125},"        # The threshold column of the threshold table is kept\n",[95,753,755,757,759,761,763],{"class":97,"line":754},58,[95,756,677],{"class":465},[95,758,165],{"class":158},[95,760,697],{"class":454},[95,762,165],{"class":158},[95,764,765],{"class":454},"threshold\n",[95,767,769],{"class":97,"line":768},59,[95,770,709],{"class":158},[95,772,774],{"class":97,"line":773},60,[95,775,543],{"class":158},[95,777,779],{"class":97,"line":778},61,[95,780,119],{"emptyLinePlaceholder":118},[95,782,784,787,789],{"class":97,"line":783},62,[95,785,786],{"class":105},"alerts_table ",[95,788,266],{"class":158},[95,790,628],{"class":158},[95,792,794],{"class":97,"line":793},63,[95,795,796],{"class":105},"    joined_values\n",[95,798,800],{"class":97,"line":799},64,[95,801,802],{"class":125},"    # Filtering value strictly higher than the threshold.\n",[95,804,806,808,811,813,815,817,820,822,825,828,830,832,834,836,839],{"class":97,"line":805},65,[95,807,646],{"class":158},[95,809,810],{"class":465},"filter",[95,812,159],{"class":158},[95,814,162],{"class":465},[95,816,165],{"class":158},[95,818,819],{"class":454},"this",[95,821,165],{"class":158},[95,823,824],{"class":454},"value",[95,826,827],{"class":158}," >",[95,829,449],{"class":465},[95,831,165],{"class":158},[95,833,819],{"class":454},[95,835,165],{"class":158},[95,837,838],{"class":454},"threshold",[95,840,543],{"class":158},[95,842,844],{"class":97,"line":843},66,[95,845,846],{"class":125},"    # Only name and value fields are kept\n",[95,848,850,852,854,856,858,860,862,864,866,869,871,873,875,877,879],{"class":97,"line":849},67,[95,851,646],{"class":158},[95,853,723],{"class":465},[95,855,159],{"class":158},[95,857,162],{"class":465},[95,859,165],{"class":158},[95,861,819],{"class":454},[95,863,165],{"class":158},[95,865,687],{"class":454},[95,867,868],{"class":158},",",[95,870,449],{"class":465},[95,872,165],{"class":158},[95,874,819],{"class":454},[95,876,165],{"class":158},[95,878,824],{"class":454},[95,880,543],{"class":158},[95,882,884],{"class":97,"line":883},68,[95,885,543],{"class":158},[95,887,889],{"class":97,"line":888},69,[95,890,119],{"emptyLinePlaceholder":118},[95,892,894],{"class":97,"line":893},70,[95,895,896],{"class":125},"# Sending the results to another Kafka topic, on the same Kafka instance\n",[95,898,900,902,904,906,908,910,912,915],{"class":97,"line":899},71,[95,901,162],{"class":105},[95,903,165],{"class":158},[95,905,455],{"class":454},[95,907,165],{"class":158},[95,909,460],{"class":454},[95,911,165],{"class":158},[95,913,914],{"class":465},"write",[95,916,469],{"class":158},[95,918,920,923,925,928,930,933,935,937,940,942,944,947,949,951,953],{"class":97,"line":919},72,[95,921,922],{"class":465},"    alerts_table",[95,924,868],{"class":158},[95,926,927],{"class":465}," rdkafka_settings",[95,929,868],{"class":158},[95,931,932],{"class":483}," topic_name",[95,934,266],{"class":158},[95,936,282],{"class":158},[95,938,939],{"class":278},"alerts_topic",[95,941,282],{"class":158},[95,943,868],{"class":158},[95,945,946],{"class":483}," format",[95,948,266],{"class":158},[95,950,282],{"class":158},[95,952,521],{"class":278},[95,954,955],{"class":158},"\"\n",[95,957,959],{"class":97,"line":958},73,[95,960,543],{"class":158},[95,962,964],{"class":97,"line":963},74,[95,965,119],{"emptyLinePlaceholder":118},[95,967,969],{"class":97,"line":968},75,[95,970,971],{"class":125},"# Launching Pathway computation.\n",[95,973,975,977,979,982],{"class":97,"line":974},76,[95,976,162],{"class":105},[95,978,165],{"class":158},[95,980,981],{"class":465},"run",[95,983,984],{"class":158},"()\n",[53,986],{"alt":987,"className":988,"src":989},"Pathway Live Data Framework ETL example pipeline",[57],"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fstarting-example.svg",[80,991,993],{"id":992},"more-details","More details",[16,995,996,997,1001,1002,1005,1006,1009,1010,1016],{},"This example connects to two data sources using ",[45,998,1000],{"href":999},"\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Flive-data-framework-connectors","input connectors",".\nEach connector connects to a data source and the input data stream is represented in a table, ",[30,1003,1004],{},"measurements_table"," and ",[30,1007,1008],{},"thresholds_table"," in this case.\nYou can specify the schema of the data using ",[45,1011,1013],{"href":1012},"\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema",[30,1014,1015],{},"pw.Schema",". You can use the same schema for several tables.",[16,1018,1019,1020,165],{},"Now that you have data, you can process it as you want!\nJoins, temporal windows, filtering...\nYou can have a glimpse of the available operations in our ",[45,1021,1023],{"href":1022},"\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Ftable-operations","basic operations guide",[16,1025,1026,1027,1030,1031,1033,1034,1036,1037,1005,1040,1043,1044],{},"With ",[30,1028,1029],{},"pw.run()",", the computation is launched.\nEach update in the input data streams will automatically trigger the update of the whole pipeline.\nWhen new input is received in either ",[30,1032,1004],{}," or ",[30,1035,1008],{},", the tables ",[30,1038,1039],{},"joined_table",[30,1041,1042],{},"alerts_table"," are updated and the changes are forwarded to the Kafka topic using the Kafka output connector.\nThe Pathway Live Data Framework will poll for new updates until the process is terminated: the computation runs forever until the process gets killed.\n",[1045,1046,1047],"strong",{},"This is the normal behavior of the framework.",[16,1049,1050,1051,1055,1056,165],{},"If you want to test your pipeline on static and finite data, Pathway Live Data Framework also provides a ",[45,1052,1054],{"href":1053},"\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fstreaming-and-static-modes","static mode"," and a ",[45,1057,1059,1062],{"href":1058},"\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fartificial-streams",[30,1060,1061],{},"demo"," module",[16,1064,1065,1066,165],{},"You can learn more about the core concepts in our ",[45,1067,1069],{"href":1068},"\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fconcepts","dedicated article",[1071,1072,1074],"h4",{"id":1073},"understanding-the-output","Understanding the output",[16,1076,1077],{},"Suppose that the following input data has been received on the Kafka topic:",[23,1079,1082],{"className":1080,"code":1081,"language":28},[26],"{\"name\": \"A\", \"value\":8}\n{\"name\": \"B\", \"value\":10}\n",[30,1083,1081],{"__ignoreMap":32},[16,1085,1086],{},"And the threshold values are:",[23,1088,1091],{"className":1089,"code":1090,"language":28},[26],"name, threshold\n\"A\", 9\n\"B\", 9\n",[30,1092,1090],{"__ignoreMap":32},[16,1094,1095],{},"Then the output is:",[23,1097,1100],{"className":1098,"code":1099,"language":28},[26],"{\"name\": \"B\", \"value\":10, \"time\":1, \"diff\":1}\n",[30,1101,1099],{"__ignoreMap":32},[16,1103,1104,1105,1005,1108,180],{},"The output contains two more fields: ",[30,1106,1107],{},"time",[30,1109,1110],{},"diff",[1112,1113,1114,1119],"ul",{},[70,1115,1116,1118],{},[30,1117,1107],{}," represents the time at which the update happened. In practice, the time is a regular timestamp.",[70,1120,1121,1123,1124,1127,1128,1131],{},[30,1122,1110],{}," informs whether the row should be an insertion (",[30,1125,1126],{},"diff = 1",") or a deletion (",[30,1129,1130],{},"diff = -1","). An update is represented by two rows: one to remove the old value, one to add the new values. Those two rows have the same time to ensure the atomicity of the operation.",[16,1133,1134,1135,1137,1138,1141],{},"In this case, we assume the first values were computed at time 1.\nThe value ",[30,1136,1110],{}," is equal to ",[30,1139,1140],{},"1"," as it is an insertion.",[16,1143,1144],{},"Suppose now that the thresholds have changed, the file got an update and now looks like that:",[23,1146,1149],{"className":1147,"code":1148,"language":28},[26],"name, threshold\n\"A\", 7\n\"B\", 11\n",[30,1150,1148],{"__ignoreMap":32},[16,1152,1153,1154,1156],{},"Connector will automatically detect any new files or modifications within ",[30,1155,584],{}," and update the tables accordingly.",[16,1158,1159],{},"That will trigger the reexecution of join and filter giving this output:",[23,1161,1164],{"className":1162,"code":1163,"language":28},[26],"{\"name\": \"B\", \"value\":10, \"time\":1, \"diff\":1}\n{\"name\": \"B\", \"value\":10, \"time\":2, \"diff\":-1}\n{\"name\": \"A\", \"value\":8, \"time\":2, \"diff\":1}\n",[30,1165,1163],{"__ignoreMap":32},[16,1167,1168,1169,1172,1173,1176],{},"There are two more lines: the old alert is removed (",[30,1170,1171],{},"diff=-1",") and a new one is inserted for the other event (",[30,1174,1175],{},"diff=1",").\nOld values are still kept as the output is a log of insertion and suppression allowing to have exhaustive information about what happened to our data.",[16,1178,1179,1180,1005,1183,1186],{},"Keep in mind that some output connectors to external data storage system might take these ",[30,1181,1182],{},"-1",[30,1184,1185],{},"+1"," rows, link them by time, and represent as update operation (like in case of SQL database).",[37,1188,1190],{"id":1189},"other-examples","Other examples",[1192,1193,1200,1230],"container",{"className":1194},[1195,1196,1197,1198,1199],"flex","gap-8","items-center","w-full","justify-center",[1201,1202,1204],"flat-tile",{"title":1203},"Real-time processing over data streams",[1112,1205,1206,1212,1218,1224],{},[70,1207,1208],{},[45,1209,1211],{"href":1210},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-etl","Real-time ETL.",[70,1213,1214],{},[45,1215,1217],{"href":1216},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Frealtime-log-monitoring","Event-driven pipelines with alerting.",[70,1219,1220],{},[45,1221,1223],{"href":1222},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flinear_regression_with_kafka","Realtime analytics.",[70,1225,1226],{},[45,1227,1229],{"href":1228},"\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fswitch-from-batch-to-streaming","Switch from batch to streaming.",[1201,1231,1233],{"title":1232},"Live Data AI Pipelines",[1112,1234,1235,1241,1247],{},[70,1236,1237],{},[45,1238,1240],{"href":1239},"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fdocs-indexing","Data indexing pipeline and RAG.",[70,1242,1243],{},[45,1244,1246],{"href":1245},"\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fmultimodal-rag","Multimodal RAG.",[70,1248,1249],{},[45,1250,1252],{"href":1251},"\u002Fdevelopers\u002Ftemplates\u002Frag\u002Funstructured-to-structured","Unstructured data to SQL on-the-fly.",[16,1254,1255,1256,165],{},"Looking for more? Check out our ",[45,1257,1259],{"href":1258},"\u002Fdevelopers\u002Ftemplates","showcase catalog",[1261,1262,1263],"style",{},"html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .s0W1g, html code.shiki .s0W1g{--shiki-default:#BABED8}html pre.shiki code .saEQR, html code.shiki .saEQR{--shiki-default:#676E95;--shiki-default-font-style:italic}html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html pre.shiki code .s7ZW3, html code.shiki .s7ZW3{--shiki-default:#BABED8;--shiki-default-font-style:italic}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}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);}",{"title":32,"searchDepth":115,"depth":115,"links":1265},[1266,1267,1271],{"id":39,"depth":115,"text":40},{"id":61,"depth":115,"text":62,"children":1268},[1269,1270],{"id":82,"depth":122,"text":83},{"id":992,"depth":122,"text":993},{"id":1189,"depth":115,"text":1190},"A step-by-step guide to build a real-time pipeline with Pathway Live Data Framework","md",{},"\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst-realtime-app",{"title":5,"description":1272},{"loc":1275},"2.developers\u002F4.user-guide\u002F10.introduction\u002F40.first-realtime-app","fQTEnHawTRXAHBBCT5bofEKTinXnJjgyGWXUvp9XtP4",[1281],{"title":1282,"path":1283,"stem":1284,"children":1285,"page":1303},"Developers","\u002Fdevelopers","2.developers",[1286,2158,2484],{"title":1287,"path":1288,"stem":1289,"children":1290,"page":1303},"User Guide","\u002Fdevelopers\u002Fuser-guide","2.developers\u002F4.user-guide",[1291,1341,1608,1727,1805,1930,2062,2078,2137],{"title":1292,"meta":1293,"icon":1294,"path":1295,"stem":1296,"children":1297,"page":1303},"Introduction",{"icon":1294},"heroicons:book-open","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction","2.developers\u002F4.user-guide\u002F10.introduction",[1298,1304,1309,1314,1316,1320,1325,1330,1334],{"title":1299,"path":1300,"stem":1301,"meta":1302},"Welcome","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwelcome","2.developers\u002F4.user-guide\u002F10.introduction\u002F10.welcome",{"heading":1303,"toc":1303},false,{"title":1305,"path":1306,"stem":1307,"meta":1308},"Installation","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Finstallation","2.developers\u002F4.user-guide\u002F10.introduction\u002F20.installation",{"heading":1303,"toc":1303},{"title":1310,"path":1311,"stem":1312,"meta":1313},"Overview","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flive-data-framework-overview","2.developers\u002F4.user-guide\u002F10.introduction\u002F30.live-data-framework-overview",{},{"title":5,"path":1275,"stem":1278,"meta":1315},{},{"title":1317,"path":1068,"stem":1318,"meta":1319},"Core Concepts","2.developers\u002F4.user-guide\u002F10.introduction\u002F50.concepts",{},{"title":1321,"path":1322,"stem":1323,"meta":1324},"Why Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwhy-live-data-framework","2.developers\u002F4.user-guide\u002F10.introduction\u002F60.why-live-data-framework",{},{"title":1326,"path":1327,"stem":1328,"meta":1329},"Licensing Guide","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flicensing-guide","2.developers\u002F4.user-guide\u002F10.introduction\u002F65.licensing-guide",{"heading":1303,"toc":1303},{"title":1331,"path":1053,"stem":1332,"meta":1333},"Streaming and Static Modes","2.developers\u002F4.user-guide\u002F10.introduction\u002F70.streaming-and-static-modes",{},{"title":1335,"path":1336,"stem":1337,"meta":1338},"Batch Processing in Python","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fbatch-processing","2.developers\u002F4.user-guide\u002F10.introduction\u002F80.batch-processing",{"thumbnail":1339,"thumbnailFit":1340},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fpathway-batch.png","contain",{"title":1342,"path":1343,"stem":1344,"children":1345,"page":1303},"Connect","\u002Fdevelopers\u002Fuser-guide\u002Fconnect","2.developers\u002F4.user-guide\u002F20.connect",[1346,1359,1364,1369,1373,1377,1390,1400,1404,1425],{"title":1347,"path":1348,"stem":1349,"meta":1350},"Basic Data Types","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fdatatypes","2.developers\u002F4.user-guide\u002F20.connect\u002F20.datatypes",{"date":1351,"tags":1352,"keywords":1355,"notebook_export_path":1358},"2024-01-26",[1353,1354],"tutorial","table",[1356,1357],"type","schema","notebooks\u002Ftutorials\u002Fbasic_datatypes.ipynb",{"title":1360,"path":1361,"stem":1362,"meta":1363},"Connectors in Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors-overview","2.developers\u002F4.user-guide\u002F20.connect\u002F30.connectors-overview",{},{"title":1365,"path":999,"stem":1366,"meta":1367},"Connectors list","2.developers\u002F4.user-guide\u002F20.connect\u002F35.live-data-framework-connectors",{"layout":1368,"aside":118,"toc":1303,"single":118},"default",{"title":1370,"path":1012,"stem":1371,"meta":1372},"Defining Schema","2.developers\u002F4.user-guide\u002F20.connect\u002F40.schema",{},{"title":1374,"path":1058,"stem":1375,"meta":1376},"Generate Data Streams with the demo Module","2.developers\u002F4.user-guide\u002F20.connect\u002F50.artificial-streams",{},{"title":1378,"path":1379,"stem":1380,"meta":1381},"Automatic Generation of Schema Class","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema-generation","2.developers\u002F4.user-guide\u002F20.connect\u002F60.schema-generation",{"date":1382,"thumbnail":1383,"tags":1385,"keywords":1386,"notebook_export_path":1389},"2023-11-08",{"src":1384},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-custom-connectors.png",[1353,1354],[1357,1356,1387,1388],"JSON","connectors","notebooks\u002Ftutorials\u002Fschema-generation.ipynb",{"title":1391,"path":1392,"stem":1393,"meta":1394},"Dealing with JSON Data Type","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fjson_type","2.developers\u002F4.user-guide\u002F20.connect\u002F70.json_type",{"date":1395,"thumbnail":1396,"tags":1397,"keywords":1398,"notebook_export_path":1399},"2023-12-22","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-json.png",[1353,1354],[1387,1356,1357],"notebooks\u002Ftutorials\u002Fjson_type.ipynb",{"title":1401,"path":1228,"stem":1402,"meta":1403},"Switching from Batch to Streaming","2.developers\u002F4.user-guide\u002F20.connect\u002F80.switch-from-batch-to-streaming",{},{"title":1405,"path":1406,"stem":1407,"meta":1408},"Live Web Scraping","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fpython-web-scraping","2.developers\u002F4.user-guide\u002F20.connect\u002F90.python-web-scraping",{"date":1409,"tags":1410,"keywords":1411,"tech_icons":1419,"thumbnail":1421,"deployment_tag":1422,"docker_github_link":1424},"2025-03-13",[1353,1388],[1412,1413,1414,1415,1416,1417,1418],"connector","scraping","WEB","Python","input","streaming","web scraping",[1420],"streamline:web","\u002Fassets\u002Fcontent\u002Fshowcases\u002Fweb_scraping\u002Fweb-scraping-th.png",[1423],"docker","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fweb-scraping",{"title":1426,"path":1427,"stem":1428,"children":1429,"page":1303},"Connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors",[1430,1445,1457,1469,1478,1497,1507,1520,1534,1542,1554,1564,1573,1585,1598],{"title":1431,"path":1432,"stem":1433,"meta":1434},"File System Connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Ffs-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F05.fs-connector",{"date":1351,"tags":1435,"tech_icons":1436,"deployment_tag":1438,"keywords":1440,"notebook_export_path":1444},[1353,1354],[1437],"lets-icons:file-fill",[1439,1423],"jupyter",[1412,1441,573,521,1416,1442,1443,1417],"file system","output","static","notebooks\u002Ftutorials\u002Ffs_connector.ipynb",{"title":1446,"path":1447,"stem":1448,"meta":1449},"CSV connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcsv_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F10.csv_connectors",{"date":1450,"thumbnail":1451,"tags":1452,"keywords":1453,"tech_icons":1455},"2023-01-12","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-csv-connectors.png",[1353,1388],[1412,1454,1416,1442,1443,1417],"CSV",[1456],"mdi:file-csv",{"title":1458,"path":1459,"stem":1460,"meta":1461},"Sending alerts to Slack","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fslack_send_alerts","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F100.slack_send_alerts",{"date":1462,"tags":1463,"keywords":1464,"tech_icons":1467},"2024-02-16",[1353,1388],[1412,1465,1466,1442,1417],"Slack","alerts",[1468],"mdi:slack",{"title":1470,"path":1471,"stem":1472,"meta":1473},"Airbyte connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fairbyte-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F110.airbyte-connectors",{"tags":1474,"keywords":1475},[1353,1388],[1412,1476,1477,1416,1443,1417],"Airbyte","cloud",{"title":1479,"path":1480,"stem":1481,"meta":1482},"Using Pathway Debezium Connector for MongoDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fmongodb-debezium","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F115.mongodb-debezium",{"date":1483,"tags":1484,"keywords":1485,"tech_icons":1493,"deployment_tag":1495,"docker_github_link":1496,"hideInConnectorList":118},"2024-10-30",[1353,1388],[1412,1486,1487,1488,1489,1490,1491,1492,1416,1442,1417],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[1494],"material-symbols-light:database",[1423],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-mongodb-example",{"title":1498,"path":1499,"stem":1500,"meta":1501},"JSON Lines connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fjsonlines-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F15.jsonlines-connector",{"date":1502,"tags":1503,"keywords":1504,"tech_icons":1505},"2024-02-20",[1353,1388],[1412,50,1387,1416,1442,1443,1417],[1506],"lets-icons:json",{"title":1508,"path":1509,"stem":1510,"meta":1511},"Database connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fdatabase-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F20.database-connectors",{"date":1512,"thumbnail":1513,"tags":1514,"keywords":1515,"tech_icons":1517,"deployment_tag":1518,"docker_github_link":1519},"2023-01-19","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-database-connectors.png",[1353,1388],[1412,1486,1516,1488,1489,1490,1491,1492,1416,1442,1417],"PostgreSQL",[1494],[1423],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-postgres-example",{"title":1521,"path":1522,"stem":1523,"meta":1524},"Connecting Pathway to NeonDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fneondb-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F23.neondb-connector",{"date":1525,"tags":1526,"keywords":1527,"tech_icons":1533,"hideInConnectorList":118},"2026-06-03",[1353,1388],[1412,1486,1528,1529,1516,1530,1488,1531,1532,1416,1442,1417],"NeonDB","Neon","serverless","logical replication","SSL",[1494],{"title":1535,"path":1536,"stem":1537,"meta":1538},"Custom Python connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcustom-python-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.custom-python-connectors",{"date":1539,"thumbnail":1384,"tags":1540,"keywords":1541},"2023-04-13",[1353,1388],[1412,1415,1416,1417],{"title":1543,"path":1544,"stem":1545,"meta":1546},"Kafka connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fkafka_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.kafka_connectors",{"date":1547,"thumbnail":1548,"tags":1549,"tech_icons":1550,"deployment_tag":1552,"keywords":1553},"2023-01-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-kafka-connectors.png",[1353,1388],[1551],"mdi:apache-kafka",[1423],[1412,1490,1492,1416,1442,1417],{"title":1555,"path":1556,"stem":1557,"meta":1558},"NATS connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fnats-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F33.nats-connectors",{"date":1559,"tags":1560,"deployment_tag":1561,"keywords":1562},"2024-12-06",[1353,1388],[1423],[1412,1563,1492,1416,1442,1417],"NATS",{"title":1565,"path":1566,"stem":1567,"meta":1568},"Python output connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fpython-output-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F35.python-output-connectors",{"date":1569,"thumbnail":1570,"tags":1571,"keywords":1572},"2023-08-31","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-output-connector.png",[1353,1388],[1412,1415,1442,1417],{"title":1574,"path":1575,"stem":1576,"meta":1577},"Google Drive connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fgdrive-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F70.gdrive-connector",{"date":1578,"thumbnail":1579,"tags":1580,"keywords":1581,"tech_icons":1583},"2023-12-14","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-gdrive-connector.png",[1353,1388],[1412,1582,1477,1416,1443,1417],"Google Drive",[1584],"simple-icons:googledrive",{"title":1586,"path":1587,"stem":1588,"meta":1589},"Switching from Kafka to Redpanda","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fswitching-to-redpanda","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F80.switching-to-redpanda",{"date":1590,"thumbnail":1591,"tags":1592,"keywords":1593,"deployment_tag":1595,"tech_icons":1596,"docker_github_link":1597,"hideInConnectorList":118},"2023-03-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fredpanda\u002Fth-Kafka_vs_Redpanda.png",[1353,1388],[1412,1594,1490,1491,1492,1416,1442,1417],"Redpanda",[1423],[1551],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fbest-movies-example\u002Fredpanda-version",{"title":1599,"path":1600,"stem":1601,"meta":1602},"Custom WebSockets connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fwebsockets-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F90.websockets-connectors",{"date":1603,"tags":1604,"keywords":1605,"tech_icons":1607},"2023-01-24",[1353,1388],[1412,1606,1415,1416,1442,1417],"WebSockets",[1420],{"title":1609,"meta":1610,"path":1611,"stem":1612,"children":1613,"page":1303},"Transform",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation","2.developers\u002F4.user-guide\u002F30.data-transformation",[1614,1618,1632,1638,1644,1657,1673,1693,1709,1714],{"title":1615,"path":1022,"stem":1616,"meta":1617},"Table Operations Overview","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F10.table-operations",{},{"title":1619,"path":1620,"stem":1621,"meta":1622},"Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fasynchronous-transformations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F100.asynchronous-transformations",{"date":1502,"thumbnail":32,"tags":1623,"keywords":1625,"notebook_export_path":1631},[1353,1624],"engineering",[91,1626,1627,1628,1629,1630],"function","asynchronous","transformation","query","AsyncTransformer","notebooks\u002Ftutorials\u002Fasynctransformer.ipynb",{"title":1633,"path":1634,"stem":1635,"meta":1636},"Simple Join","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fjoin-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F20.join-manual",{"notebook_export_path":1637},"notebooks\u002Ftutorials\u002Fjoin_manual.ipynb",{"title":1639,"path":1640,"stem":1641,"meta":1642},"Groupby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fgroupby-reduce-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F30.groupby-reduce-manual",{"notebook_export_path":1643},"notebooks\u002Ftutorials\u002Fgroupby_reduce_manual.ipynb",{"title":1645,"path":1646,"stem":1647,"meta":1648},"Writing Stateful Reducers","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fcustom-reducers","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F40.custom-reducers",{"date":1649,"thumbnail":1396,"tags":1650,"keywords":1651,"notebook_export_path":1656},"2024-01-17",[1353],[1652,1653,1654,1655],"reducers","aggregate","sumofsquares","median","notebooks\u002Ftutorials\u002Fcustom_reducers.ipynb",{"title":1658,"path":1659,"stem":1660,"meta":1661},"Iterative Computations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fiterate","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F50.iterate",{"date":1662,"thumbnail":32,"tags":1663,"keywords":1664,"notebook_export_path":1672},"2023-12-28",[1353,1624],[1665,1666,1667,1668,1669,1670,1671],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks\u002Ftutorials\u002Fiterate.ipynb",{"title":1674,"path":1675,"stem":1676,"children":1677,"meta":1690},"Indexes in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexes","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F60.indexes",[1678],{"title":1674,"path":1675,"stem":1676,"meta":1679},{"date":1680,"thumbnail":1681,"tags":1682,"keywords":1683,"notebook_export_path":1689},"2023-11-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-computing-pagerank.png",[1353,1624],[1684,1685,649,1686,1687,1688],"index","indexing","asof join","asof_now","KNN","notebooks\u002Ftutorials\u002Findexes.ipynb",{"date":1680,"thumbnail":1681,"tags":1691,"keywords":1692,"notebook_export_path":1689},[1353,1624],[1684,1685,649,1686,1687,1688],{"title":1694,"path":1695,"stem":1696,"children":1697,"meta":1706},"Indexing from 'groupby' and Single-row Tables","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexing-grouped-tables","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F70.indexing-grouped-tables",[1698],{"title":1694,"path":1695,"stem":1696,"meta":1699},{"date":1700,"thumbnail":1681,"tags":1701,"keywords":1702},"2023-03-31",[1353,1354],[1703,1704,1705],"groupby","ix_ref","single-row table",{"date":1700,"thumbnail":1681,"tags":1707,"keywords":1708},[1353,1354],[1703,1704,1705],{"title":1710,"path":1711,"stem":1712,"meta":1713},"SQL API","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fsql","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F80.sql",{"redirection":118},{"title":1715,"path":1716,"stem":1717,"meta":1718},"User-defined Functions","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fuser-defined-functions","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F90.user-defined-functions",{"date":1719,"thumbnail":32,"tags":1720,"keywords":1721,"notebook_export_path":1726},"2024-02-21",[1353,1624],[91,1722,1626,1723,1628,1724,1725],"udf","apply","cache","timeout","notebooks\u002Ftutorials\u002Fudf.ipynb",{"title":1728,"path":1729,"stem":1730,"children":1731,"page":1303},"Temporal Data","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data","2.developers\u002F4.user-guide\u002F40.temporal-data",[1732,1738,1743,1758,1770,1782,1796],{"title":1733,"path":1734,"stem":1735,"meta":1736},"Windowby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows-manual","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F10.windows-manual",{"notebook_export_path":1737},"notebooks\u002Ftutorials\u002Fwindowby_manual.ipynb",{"title":1739,"path":1740,"stem":1741,"meta":1742},"Late Data and Cutoffs","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fbehaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F20.behaviors",{},{"title":1744,"path":1745,"stem":1746,"meta":1747},"Controlling Temporal Behavior of Windows","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows_with_behaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F30.windows_with_behaviors",{"date":1748,"thumbnail":1749,"keywords":1750,"notebook_export_path":1757},"2024-01-08","assets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[1751,1752,1753,1754,1755,1756],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks\u002Ftutorials\u002Fwindows_temporal_behavior.ipynb",{"title":1759,"path":1760,"stem":1761,"meta":1762},"ASOF Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fasof-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F40.asof-join",{"date":1763,"thumbnail":1764,"tags":1765,"keywords":1766,"notebook_export_path":1769},"2023-05-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Ffinance_ts_asof_join\u002Fasof-join-tutorial-th.png",[1353,1624],[1686,1767,1768],"stock prices","financial data analysis","notebooks\u002Ftutorials\u002Fasof_join.ipynb",{"title":1771,"path":1772,"stem":1773,"meta":1774},"Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Finterval-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F50.interval-join",{"date":1775,"thumbnail":1776,"tags":1777,"keywords":1778,"notebook_export_path":1781},"2023-05-22","assets\u002Fcontent\u002Ftutorials\u002Ffleet_eta_interval_join\u002Ffleet-eta-interval-join-th.png",[1353,1624],[1779,1780],"interval join","ETA","notebooks\u002Ftutorials\u002Finterval_join.ipynb",{"title":1783,"path":1784,"stem":1785,"meta":1786},"Window Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindow-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F60.window-join",{"date":1787,"thumbnail":1788,"tags":1789,"keywords":1790,"notebook_export_path":1795},"2023-06-14","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[1353,1624],[1791,1792,1793,1794],"window","behavior analysis","clickstream","conversion rate","notebooks\u002Ftutorials\u002Fwindow_join.ipynb",{"title":1797,"path":1798,"stem":1799,"meta":1800},"Controlling Temporal Behavior of Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Ftemporal_behavior","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F70.temporal_behavior",{"date":1801,"thumbnail":1776,"tags":1802,"keywords":1803,"notebook_export_path":1804},"2023-11-28",[1353,1624],[1779,1752,1753,1754,1755,1756],"notebooks\u002Ftutorials\u002Finterval_join_temporal_behavior.ipynb",{"title":1806,"meta":1807,"path":1808,"stem":1809,"children":1810,"page":1303},"LLM tooling",{},"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack","2.developers\u002F4.user-guide\u002F50.llm-xpack",[1811,1823,1832,1841,1855,1867,1879,1891,1901,1911,1921],{"title":1812,"path":1813,"stem":1814,"meta":1815},"Introduction to the LLM xpack","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Foverview","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F10.overview",{"date":1816,"thumbnail":32,"tags":1817,"keywords":1819},"2024-02-14",[1353,1818],"LLM",[1818,1820,1821,1822],"GPT","OpenAI","Gemini",{"title":1824,"path":1825,"stem":1826,"meta":1827},"Create your own RAG","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-app","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F20.llm-app",{"date":1828,"thumbnail":32,"tags":1829,"keywords":1831},"2025-03-28",[1353,1818,1830],"RAG",[1818,1820,1821,1685],{"title":1833,"path":1834,"stem":1835,"meta":1836},"Pathway Live Data Framework as a Vector Store","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-vector-store","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F25.live-data-framework-vector-store",{"date":1837,"thumbnail":32,"tags":1838,"keywords":1839},"2025-05-07",[1353,1818,1830],[1818,1820,1821,1685,1840],"Vector Store",{"title":1842,"path":1239,"stem":1843,"children":1844,"meta":1852},"Document Indexing","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F30.docs-indexing",[1845],{"title":1842,"path":1239,"stem":1843,"meta":1846},{"date":1847,"thumbnail":32,"tags":1848,"keywords":1851},"2025-01-13",[1353,1685,1849,1850],"document storage","retrieval",[1818,1820,1821,1822],{"date":1847,"thumbnail":32,"tags":1853,"keywords":1854},[1353,1685,1849,1850],[1818,1820,1821,1822],{"title":1856,"path":1857,"stem":1858,"meta":1859},"Pathway Live Data Framework MCP Server","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-server","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F40.live-data-framework-mcp-server",{"date":1860,"thumbnail":32,"tags":1861,"keywords":1862},"2025-08-01",[1353,1624],[1863,1864,1865,1866],"MCP","MCP server","API","protocol",{"title":1868,"path":1869,"stem":1870,"meta":1871},"Claude Desktop","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-claude-desktop","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F41.live-data-framework-mcp-claude-desktop",{"date":1872,"thumbnail":32,"tags":1873,"keywords":1875},"2025-08-19",[1353,1624,1874],"claude",[1863,1868,1876,1877,1878],"real-time data","document store","statistics",{"title":1880,"path":1881,"stem":1882,"meta":1883},"Parsers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fparsers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F50.parsers",{"date":1884,"tags":1885,"keywords":1886},"2024-06-04",[1353,1818],[1818,1887,1888,1889,1890],"unstructured","docling","parsers","ocr",{"title":1892,"path":1893,"stem":1894,"meta":1895},"Chunking text","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fsplitters","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F60.splitters",{"date":1896,"thumbnail":32,"tags":1897,"keywords":1900},"2025-02-04",[1898,1899],"splitters","chunking",[1889,1899],{"title":1902,"path":1903,"stem":1904,"meta":1905},"Embedders","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fembedders","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F70.embedders",{"date":1896,"thumbnail":32,"tags":1906,"keywords":1908},[1353,1907],"embedder",[1818,1820,1821,1822,1909,1910],"LiteLLM","Embedder",{"title":1912,"path":1913,"stem":1914,"meta":1915},"LLM Chats","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-chats","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F80.llm-chats",{"date":1916,"thumbnail":32,"tags":1917,"keywords":1919},"2025-01-30",[1353,1818,1918,1912],"LLM Wrappers",[1818,1820,1821,1822,1909,1920],"Wrapper",{"title":1922,"path":1923,"stem":1924,"meta":1925},"Rerankers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Frerankers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F90.rerankers",{"date":1896,"thumbnail":32,"tags":1926,"keywords":1928},[1353,1927],"reranker",[1818,1929],"Reranker",{"title":1931,"meta":1932,"path":1933,"stem":1934,"children":1935,"page":1303},"Deploy",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdeployment","2.developers\u002F4.user-guide\u002F60.deployment",[1936,1941,1946,1963,1979,1984,1989,1994,2001,2006,2011,2024,2036,2041,2052],{"title":1937,"path":1938,"stem":1939,"meta":1940},"Cloud Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fcloud-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F10.cloud-deployment",{},{"title":1942,"path":1943,"stem":1944,"meta":1945},"Deploy to GCP","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fgcp-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F15.gcp-deploy",{},{"title":1947,"path":1948,"stem":1949,"meta":1950},"Deploy to AWS Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Faws-fargate-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F20.aws-fargate-deploy",{"date":1951,"tags":1952,"thumbnail":1955,"keywords":1957,"docker_github_link":1962,"deployButtons":1303},"2024-08-16",[1953,1954],"showcase","data-pipeline",{"src":1956},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Faws\u002Faws-fargate-overview-th.png",[1958,1959,1960,1492,1961],"AWS","Fargate","cloud deployment","AWS Fargate","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Faws-fargate-deploy",{"title":1964,"path":1965,"stem":1966,"meta":1967},"Deploy to Azure","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fazure-aci-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F25.azure-aci-deploy",{"date":1968,"tags":1969,"thumbnail":1970,"keywords":1972,"docker_github_link":1978,"deployButtons":1303},"2024-11-20",[1953,1954],{"src":1971,"contain":118},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fazure\u002Fazure-aci-overview-th.png",[1973,1974,1960,1492,1975,1976,1977],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fazure-aci-deploy",{"title":1980,"path":1981,"stem":1982,"meta":1983},"Deploy with Render","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Frender-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F30.render-deploy",{},{"title":1985,"path":1986,"stem":1987,"meta":1988},"Deploy to Nebius AI Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fnebius-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F32.nebius-deploy",{},{"title":1990,"path":1991,"stem":1992,"meta":1993},"Notebook-to-Docker Conversion","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fjupyter-docker","2.developers\u002F4.user-guide\u002F60.deployment\u002F35.jupyter-docker",{},{"title":1995,"path":1996,"stem":1997,"meta":1998},"Tutorial: From Jupyter to Deploy","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Ffrom-jupyter-to-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F40.from-jupyter-to-deploy",{"date":1999,"project_github_link":2000},"2023-11-29","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy",{"title":2002,"path":2003,"stem":2004,"meta":2005},"CI\u002FCD","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fintegration","2.developers\u002F4.user-guide\u002F60.deployment\u002F45.integration",{},{"title":2007,"path":2008,"stem":2009,"meta":2010},"Docker Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fdocker-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F5.docker-deployment",{},{"title":2012,"path":2013,"stem":2014,"meta":2015},"Monitoring a Pathway Live Data Framework Instance","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Flive-data-framework-monitoring","2.developers\u002F4.user-guide\u002F60.deployment\u002F50.live-data-framework-monitoring",{"date":2016,"thumbnail":2017,"tags":2018,"keywords":2019},"2024-05-27","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-prometheus.png",[1353,1624],[2020,2021,2022,2023],"monitoring","OpenTelemetry","Grafana","metrics",{"title":2025,"path":2026,"stem":2027,"meta":2028},"Pathway Live Data Framework Web Dashboard","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fweb-dashboard","2.developers\u002F4.user-guide\u002F60.deployment\u002F52.web-dashboard",{"date":2029,"tags":2030,"keywords":2031},"2026-01-13",[1353,1624],[2032,2033,2020,2034,2035,2023],"Web Dashboard","UI","graph","charts",{"title":2037,"path":2038,"stem":2039,"meta":2040},"Persistence in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence","2.developers\u002F4.user-guide\u002F60.deployment\u002F55.persistence",{},{"title":2042,"path":2043,"stem":2044,"meta":2045},"Persistence in Pathway Live Data Framework: How to Resume the Interrupted Computation","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_recovery","2.developers\u002F4.user-guide\u002F60.deployment\u002F60.persistence_recovery",{"date":2046,"thumbnail":32,"tags":2047,"keywords":2049},"2023-11-02",[1353,1624,2048],"dataflow management",[2050,2051],"persistence","recovery",{"title":2053,"path":2054,"stem":2055,"meta":2056},"Persistence in Pathway Live Data Framework: How to Add New Data without Full Computation Restart","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_restart_with_new_data","2.developers\u002F4.user-guide\u002F60.deployment\u002F65.persistence_restart_with_new_data",{"date":2057,"thumbnail":32,"tags":2058,"keywords":2059},"2023-11-14",[1353,1624,2048],[2050,2060,2061],"optimization","restart",{"title":2063,"path":2064,"stem":2065,"children":2066,"page":1303},"Migrating","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating","2.developers\u002F4.user-guide\u002F70.migrating",[2067,2073],{"title":2068,"path":2069,"stem":2070,"meta":2071},"Coming from Pandas","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fmigrate-from-pandas","2.developers\u002F4.user-guide\u002F70.migrating\u002F10.migrate-from-pandas",{"notebook_export_path":2072},"notebooks\u002Ftutorials\u002Ffrom_pandas.ipynb",{"title":2074,"path":2075,"stem":2076,"meta":2077},"Pandas Cheat Sheet","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fpandas-cheat-sheet","2.developers\u002F4.user-guide\u002F70.migrating\u002F20.pandas-cheat-sheet",{},{"title":2079,"path":2080,"stem":2081,"children":2082,"page":1303},"Advanced","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced","2.developers\u002F4.user-guide\u002F80.advanced",[2083,2088,2098,2104,2117,2122,2127,2132],{"title":2084,"path":2085,"stem":2086,"meta":2087},"Architecture","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker-architecture","2.developers\u002F4.user-guide\u002F80.advanced\u002F10.worker-architecture",{},{"title":2089,"path":2090,"stem":2091,"meta":2092},"Setting up Cache in Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Ffunction_calls_caching","2.developers\u002F4.user-guide\u002F80.advanced\u002F20.function_calls_caching",{"date":2093,"thumbnail":32,"tags":2094,"keywords":2095},"2023-11-30",[1353,1624,2048],[2050,2060,2096,2097],"async_transformer","caching",{"title":2099,"path":2100,"stem":2101,"meta":2102},"Data Model Consistency","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fconsistency","2.developers\u002F4.user-guide\u002F80.advanced\u002F30.consistency",{"notebook_export_path":2103},"notebooks\u002Ftutorials\u002Fconsistency.ipynb",{"title":2105,"path":2106,"stem":2107,"meta":2108},"Writing declarative over imperative pipelines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fdeclarative_vs_imperative","2.developers\u002F4.user-guide\u002F80.advanced\u002F40.declarative_vs_imperative",{"date":2109,"thumbnail":32,"tags":2110,"keywords":2111,"notebook_export_path":2116},"2025-11-25",[1353,1624],[2112,2113,2114,2115,1665],"declarative","imperative","ordered","splitting","notebooks\u002Ftutorials\u002Fdeclarative_vs_imperative.ipynb",{"title":2118,"path":2119,"stem":2120,"meta":2121},"Best Practices","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fbest-practices","2.developers\u002F4.user-guide\u002F80.advanced\u002F5.best-practices",{},{"title":2123,"path":2124,"stem":2125,"meta":2126},"How Pathway Live Data Framework Connectors Work","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fhow-live-data-framework-connectors-work","2.developers\u002F4.user-guide\u002F80.advanced\u002F50.how-live-data-framework-connectors-work",{},{"title":2128,"path":2129,"stem":2130,"meta":2131},"Dynamic Worker Scaling","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker_count_scaling","2.developers\u002F4.user-guide\u002F80.advanced\u002F60.worker_count_scaling",{},{"title":2133,"path":2134,"stem":2135,"meta":2136},"Running on Multiple Machines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Frunning_on_multiple_machines","2.developers\u002F4.user-guide\u002F80.advanced\u002F70.running_on_multiple_machines",{},{"title":2138,"meta":2139,"path":2140,"stem":2141,"children":2142,"page":1303},"Help And Updates",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment","2.developers\u002F4.user-guide\u002F90.development",[2143,2148,2153],{"title":2144,"path":2145,"stem":2146,"meta":2147},"Troubleshooting","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Ftroubleshooting","2.developers\u002F4.user-guide\u002F90.development\u002F10.troubleshooting",{},{"title":2149,"path":2150,"stem":2151,"meta":2152},"Changelog","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fchangelog","2.developers\u002F4.user-guide\u002F90.development\u002F20.changelog",{"toc":1303},{"title":2154,"path":2155,"stem":2156,"meta":2157},"Get help","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fget-help","2.developers\u002F4.user-guide\u002F90.development\u002F30.get-help",{},{"title":2159,"meta":2160,"path":2161,"stem":2162,"children":2163,"page":1303},"API docs",{},"\u002Fdevelopers\u002Fapi-docs","2.developers\u002F5.API-docs",[2164,2169,2174,2180,2185,2190,2195,2263,2268,2273,2278,2286,2474,2479],{"title":2165,"path":2166,"stem":2167,"meta":2168},"Pathway Live Data Framework API","\u002Fdevelopers\u002Fapi-docs\u002Fpathway","2.developers\u002F5.API-docs\u002F1.pathway",{"sidebar":1865},{"title":2170,"path":2171,"stem":2172,"meta":2173},"pw.reducers","\u002Fdevelopers\u002Fapi-docs\u002Freducers","2.developers\u002F5.API-docs\u002F10.reducers",{"sidebar":1865},{"title":2175,"path":2176,"stem":2177,"meta":2178},"pw.sql","\u002Fdevelopers\u002Fapi-docs\u002Fsql-api","2.developers\u002F5.API-docs\u002F11.SQL-API",{"notebook_export_path":2179},"notebooks\u002Ftutorials\u002Fsql_api.ipynb",{"title":2181,"path":2182,"stem":2183,"meta":2184},"pw.temporal","\u002Fdevelopers\u002Fapi-docs\u002Ftemporal","2.developers\u002F5.API-docs\u002F12.temporal",{"sidebar":1865},{"title":2186,"path":2187,"stem":2188,"meta":2189},"pw.udfs","\u002Fdevelopers\u002Fapi-docs\u002Fudfs","2.developers\u002F5.API-docs\u002F13.udfs",{"sidebar":1865},{"title":2191,"path":2192,"stem":2193,"meta":2194},"pw.xpacks.connectors","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-sharepoint","2.developers\u002F5.API-docs\u002F14.pathway-xpacks-sharepoint",{"sidebar":1865},{"title":2196,"path":2197,"stem":2198,"children":2199,"meta":2262},"pw.xpacks.llm","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002Findex",[2200,2202,2207,2212,2217,2222,2227,2232,2237,2242,2247,2252,2257],{"title":2196,"path":2197,"stem":2198,"meta":2201},{"sidebar":1865},{"title":2203,"path":2204,"stem":2205,"meta":2206},"pw.xpacks.llm.llms","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fllms","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F1.llms",{"sidebar":1865},{"title":2208,"path":2209,"stem":2210,"meta":2211},"pw.xpacks.llm.servers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fservers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F10.servers",{"sidebar":1865},{"title":2213,"path":2214,"stem":2215,"meta":2216},"pw.xpacks.llm.utils","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Futils","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F11.utils",{"sidebar":1865},{"title":2218,"path":2219,"stem":2220,"meta":2221},"pw.xpacks.llm.mcp_server","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fmcp_server","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F12.mcp_server",{"sidebar":1865},{"title":2223,"path":2224,"stem":2225,"meta":2226},"pw.xpacks.llm.embedders","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fembedders","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F2.embedders",{"sidebar":1865},{"title":2228,"path":2229,"stem":2230,"meta":2231},"pw.xpacks.llm.parsers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fparsers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F3.parsers",{"sidebar":1865},{"title":2233,"path":2234,"stem":2235,"meta":2236},"pw.xpacks.llm.splitters","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fsplitters","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F4.splitters",{"sidebar":1865},{"title":2238,"path":2239,"stem":2240,"meta":2241},"pw.xpacks.llm.vector_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fvectorstore","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F5.vectorstore",{"sidebar":1865},{"title":2243,"path":2244,"stem":2245,"meta":2246},"pw.xpacks.llm.document_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fdocument_store","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F6.document_store",{"sidebar":1865},{"title":2248,"path":2249,"stem":2250,"meta":2251},"pw.xpacks.llm.question_answering","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fquestion_answering","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F7.question_answering",{"sidebar":1865},{"title":2253,"path":2254,"stem":2255,"meta":2256},"pw.xpacks.llm.prompts","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fprompts","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F8.prompts",{"sidebar":1865},{"title":2258,"path":2259,"stem":2260,"meta":2261},"pw.xpacks.llm.rerankers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Frerankers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F9.rerankers",{"sidebar":1865},{"sidebar":1865},{"title":2264,"path":2265,"stem":2266,"meta":2267},"pw.Table","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-table","2.developers\u002F5.API-docs\u002F2.pathway-table",{"sidebar":1865},{"title":2269,"path":2270,"stem":2271,"meta":2272},"pw.debug","\u002Fdevelopers\u002Fapi-docs\u002Fdebug","2.developers\u002F5.API-docs\u002F4.debug",{"sidebar":1865},{"title":2274,"path":2275,"stem":2276,"meta":2277},"pw.demo","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-demo","2.developers\u002F5.API-docs\u002F5.pathway-demo",{"sidebar":1865},{"title":2279,"path":2280,"stem":2281,"children":2282,"meta":2285},"pw.indexing","\u002Fdevelopers\u002Fapi-docs\u002Findexing","2.developers\u002F5.API-docs\u002F6.indexing",[2283],{"title":2279,"path":2280,"stem":2281,"meta":2284},{"sidebar":1865},{"sidebar":1865},{"title":2287,"path":2288,"stem":2289,"children":2290,"meta":2473},"pw.io","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io","2.developers\u002F5.API-docs\u002F7.pathway-io\u002Findex",[2291,2293,2298,2303,2308,2313,2318,2323,2328,2333,2338,2343,2348,2353,2358,2363,2368,2373,2378,2383,2388,2393,2398,2403,2408,2413,2418,2423,2428,2433,2438,2443,2448,2453,2458,2463,2468],{"title":2287,"path":2288,"stem":2289,"meta":2292},{"sidebar":1865},{"title":2294,"path":2295,"stem":2296,"meta":2297},"pw.io.airbyte","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fairbyte","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F110.airbyte",{"sidebar":1865},{"title":2299,"path":2300,"stem":2301,"meta":2302},"pw.io.bigquery","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fbigquery","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F120.bigquery",{"sidebar":1865},{"title":2304,"path":2305,"stem":2306,"meta":2307},"pw.io.clickhouse","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F130.clickhouse",{"sidebar":1865},{"title":2309,"path":2310,"stem":2311,"meta":2312},"pw.io.csv","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fcsv","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F140.csv",{"sidebar":1865},{"title":2314,"path":2315,"stem":2316,"meta":2317},"pw.io.debezium","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdebezium","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F150.debezium",{"sidebar":1865},{"title":2319,"path":2320,"stem":2321,"meta":2322},"pw.io.deltalake","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdeltalake","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F160.deltalake",{"sidebar":1865},{"title":2324,"path":2325,"stem":2326,"meta":2327},"pw.io.dynamodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdynamodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F170.dynamodb",{"sidebar":1865},{"title":2329,"path":2330,"stem":2331,"meta":2332},"pw.io.elasticsearch","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Felasticsearch","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F180.elasticsearch",{"sidebar":1865},{"title":2334,"path":2335,"stem":2336,"meta":2337},"pw.io.fs","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ffs","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F190.fs",{"sidebar":1865},{"title":2339,"path":2340,"stem":2341,"meta":2342},"pw.io.gdrive","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fgdrive","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F200.gdrive",{"sidebar":1865},{"title":2344,"path":2345,"stem":2346,"meta":2347},"pw.io.http","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fhttp","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F210.http",{"sidebar":1865},{"title":2349,"path":2350,"stem":2351,"meta":2352},"pw.io.iceberg","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ficeberg","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F220.iceberg",{"sidebar":1865},{"title":2354,"path":2355,"stem":2356,"meta":2357},"pw.io.jsonlines","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fjsonlines","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F230.jsonlines",{"sidebar":1865},{"title":2359,"path":2360,"stem":2361,"meta":2362},"pw.io.kafka","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkafka","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F240.kafka",{"sidebar":1865},{"title":2364,"path":2365,"stem":2366,"meta":2367},"pw.io.kinesis","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkinesis","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F250.kinesis",{"sidebar":1865},{"title":2369,"path":2370,"stem":2371,"meta":2372},"pw.io.leann","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fleann","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F260.leann",{"sidebar":1865},{"title":2374,"path":2375,"stem":2376,"meta":2377},"pw.io.logstash","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Flogstash","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F270.logstash",{"sidebar":1865},{"title":2379,"path":2380,"stem":2381,"meta":2382},"pw.io.milvus","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmilvus","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F280.milvus",{"sidebar":1865},{"title":2384,"path":2385,"stem":2386,"meta":2387},"pw.io.minio","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fminio","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F290.minio",{"sidebar":1865},{"title":2389,"path":2390,"stem":2391,"meta":2392},"pw.io.mongodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmongodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F300.mongodb",{"sidebar":1865},{"title":2394,"path":2395,"stem":2396,"meta":2397},"pw.io.mqtt","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmqtt","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F310.mqtt",{"sidebar":1865},{"title":2399,"path":2400,"stem":2401,"meta":2402},"pw.io.mssql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmssql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F320.mssql",{"sidebar":1865},{"title":2404,"path":2405,"stem":2406,"meta":2407},"pw.io.mysql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmysql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F330.mysql",{"sidebar":1865},{"title":2409,"path":2410,"stem":2411,"meta":2412},"pw.io.nats","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnats","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F340.nats",{"sidebar":1865},{"title":2414,"path":2415,"stem":2416,"meta":2417},"pw.io.null","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnull","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F350.null",{"sidebar":1865},{"title":2419,"path":2420,"stem":2421,"meta":2422},"pw.io.plaintext","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fplaintext","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F360.plaintext",{"sidebar":1865},{"title":2424,"path":2425,"stem":2426,"meta":2427},"pw.io.postgres","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpostgres","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F370.postgres",{"sidebar":1865},{"title":2429,"path":2430,"stem":2431,"meta":2432},"pw.io.pubsub","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpubsub","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F380.pubsub",{"sidebar":1865},{"title":2434,"path":2435,"stem":2436,"meta":2437},"pw.io.pyfilesystem","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpyfilesystem","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F390.pyfilesystem",{"sidebar":1865},{"title":2439,"path":2440,"stem":2441,"meta":2442},"pw.io.python","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpython","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F400.python",{"sidebar":1865},{"title":2444,"path":2445,"stem":2446,"meta":2447},"pw.io.questdb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fquestdb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F410.questdb",{"sidebar":1865},{"title":2449,"path":2450,"stem":2451,"meta":2452},"pw.io.rabbitmq","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Frabbitmq","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F420.rabbitmq",{"sidebar":1865},{"title":2454,"path":2455,"stem":2456,"meta":2457},"pw.io.redpanda","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fredpanda","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F430.redpanda",{"sidebar":1865},{"title":2459,"path":2460,"stem":2461,"meta":2462},"pw.io.s3","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fs3","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F440.s3",{"sidebar":1865},{"title":2464,"path":2465,"stem":2466,"meta":2467},"pw.io.slack","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fslack","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F450.slack",{"sidebar":1865},{"title":2469,"path":2470,"stem":2471,"meta":2472},"pw.io.sqlite","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fsqlite","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F460.sqlite",{"sidebar":1865},{"sidebar":1865},{"title":2475,"path":2476,"stem":2477,"meta":2478},"pw.ml","\u002Fdevelopers\u002Fapi-docs\u002Fml","2.developers\u002F5.API-docs\u002F8.ML",{"sidebar":1865},{"title":2480,"path":2481,"stem":2482,"meta":2483},"pw.persistence","\u002Fdevelopers\u002Fapi-docs\u002Fpersistence-api","2.developers\u002F5.API-docs\u002F9.persistence-api",{"sidebar":1865},{"title":2485,"path":1258,"stem":2486,"children":2487,"meta":3224},"Pathway Live Data Framework Templates","2.developers\u002F7.templates\u002F1.index",[2488,2490,2495,2500,2505,2509,2530,2569,2595,3024],{"title":2485,"path":1258,"stem":2486,"meta":2489},{"navTitle":1299,"layout":1368,"aside":118,"toc":1303,"single":118},{"title":2491,"path":2492,"stem":2493,"meta":2494},"Run a template","\u002Fdevelopers\u002Ftemplates\u002Frun-a-template","2.developers\u002F7.templates\u002F20.run-a-template",{"heading":1303,"toc":1303},{"title":2496,"path":2497,"stem":2498,"meta":2499},"Customizing a RAG Template with YAML","\u002Fdevelopers\u002Ftemplates\u002Fconfigure-yaml","2.developers\u002F7.templates\u002F30.configure-yaml",{"heading":1303},{"title":2501,"path":2502,"stem":2503,"meta":2504},"How to Use Your Own Components in YAML Configuration","\u002Fdevelopers\u002Ftemplates\u002Fcustom-components","2.developers\u002F7.templates\u002F35.custom-components",{"heading":1303},{"title":1326,"path":2506,"stem":2507,"meta":2508},"\u002Fdevelopers\u002Ftemplates\u002Flicensing-guide","2.developers\u002F7.templates\u002F38.licensing-guide",{"heading":1303,"toc":1303},{"title":2510,"meta":2511,"path":2512,"stem":2513,"children":2514,"page":1303},"YAML Snippets",{},"\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets","2.developers\u002F7.templates\u002F39.yaml-snippets",[2515,2520,2525],{"title":2516,"path":2517,"stem":2518,"meta":2519},"Data Sources Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Fdata-sources-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F10.data-sources-examples",{"heading":1303,"toc":118},{"title":2521,"path":2522,"stem":2523,"meta":2524},"RAG configuration Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Frag-configuration-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F20.rag-configuration-examples",{"heading":1303,"toc":118},{"title":2526,"path":2527,"stem":2528,"meta":2529},"Full Templates Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Ffull-pipelines-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F30.full-pipelines-examples",{"heading":1303,"toc":118},{"title":2531,"path":2532,"stem":2533,"children":2534,"page":1303},"Rag Customization","\u002Fdevelopers\u002Ftemplates\u002Frag-customization","2.developers\u002F7.templates\u002F40.rag-customization",[2535,2540,2545,2551,2557,2563],{"title":2536,"path":2537,"stem":2538,"meta":2539},"REST API","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Frest-api","2.developers\u002F7.templates\u002F40.rag-customization\u002F10.REST-API",{"heading":1303,"toc":1303},{"title":2541,"path":2542,"stem":2543,"meta":2544},"Customizing prompt","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fcustom-prompt","2.developers\u002F7.templates\u002F40.rag-customization\u002F20.custom-prompt",{"heading":1303},{"title":1880,"path":2546,"stem":2547,"meta":2548},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fparsers","2.developers\u002F7.templates\u002F40.rag-customization\u002F30.parsers",{"date":1884,"tags":2549,"keywords":2550},[1353,1818],[1818,1887,1888,1889,1890],{"title":1892,"path":2552,"stem":2553,"meta":2554},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fsplitters","2.developers\u002F7.templates\u002F40.rag-customization\u002F40.splitters",{"date":1896,"thumbnail":32,"tags":2555,"keywords":2556},[1898,1899],[1889,1899],{"title":1902,"path":2558,"stem":2559,"meta":2560},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fembedders","2.developers\u002F7.templates\u002F40.rag-customization\u002F50.embedders",{"date":1896,"thumbnail":32,"tags":2561,"keywords":2562},[1353,1907],[1818,1820,1821,1822,1909,1910],{"title":1912,"path":2564,"stem":2565,"meta":2566},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fllm-chats","2.developers\u002F7.templates\u002F40.rag-customization\u002F60.llm-chats",{"date":1916,"thumbnail":32,"tags":2567,"keywords":2568},[1353,1818,1918,1912],[1818,1820,1821,1822,1909,1920],{"title":1931,"path":2570,"stem":2571,"children":2572,"page":1303},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy","2.developers\u002F7.templates\u002F60.deploy",[2573,2577,2581,2588],{"title":1937,"path":2574,"stem":2575,"meta":2576},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fcloud-deployment","2.developers\u002F7.templates\u002F60.deploy\u002F10.cloud-deployment",{},{"title":1942,"path":2578,"stem":2579,"meta":2580},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fgcp-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F15.gcp-deploy",{},{"title":1947,"path":2582,"stem":2583,"meta":2584},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Faws-fargate-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F20.aws-fargate-deploy",{"date":1951,"tags":2585,"thumbnail":2586,"keywords":2587,"docker_github_link":1962,"deployButtons":1303},[1953,1954],{"src":1956},[1958,1959,1960,1492,1961],{"title":1964,"path":2589,"stem":2590,"meta":2591},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F25.azure-aci-deploy",{"date":1968,"tags":2592,"thumbnail":2593,"keywords":2594,"docker_github_link":1978,"deployButtons":1303},[1953,1954],{"src":1971,"contain":118},[1973,1974,1960,1492,1975,1976,1977],{"title":2596,"meta":2597,"path":2598,"stem":2599,"children":2600,"page":1303},"ETL Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Fetl","2.developers\u002F7.templates\u002FETL",[2601,2615,2631,2650,2670,2681,2695,2706,2716,2730,2745,2759,2774,2792,2808,2822,2838,2854,2866,2879,2888,2900,2912,2925],{"title":2602,"path":2603,"stem":2604,"meta":2605},"EL Pipeline: Move your data around with Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fel-pipeline","2.developers\u002F7.templates\u002FETL\u002F10.el-pipeline",{"layout":2606,"date":2607,"tags":2608,"thumbnail":2609,"keywords":2611,"popular":118},"template","2025-05-22",[1953,1954],{"src":2610,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fel-template\u002Fel-template-thumbnail.png",[2612,2613,2614,1490,1516,1492],"ETL","EL","YAML",{"title":2616,"path":2617,"stem":2618,"meta":2619},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fsuspicious_activity_tumbling_window","2.developers\u002F7.templates\u002FETL\u002F10.suspicious_activity_tumbling_window",{"notebook_export_path":2620,"aside":118,"date":2621,"thumbnail":2622,"tags":2625,"keywords":2627,"layout":2606},"notebooks\u002Ftutorials\u002Fsuspicious_user_activity.ipynb","2023-05-30",{"src":2623,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-shield.png","s3",[1353,2626],"machine-learning",[1791,2628,2629,2630],"tumbling","alert","notebook",{"title":2632,"path":2633,"stem":2634,"meta":2635},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fgaussian_filtering_python","2.developers\u002F7.templates\u002FETL\u002F100.gaussian_filtering_python",{"notebook_export_path":2636,"aside":118,"date":2637,"layout":2606,"thumbnail":2638,"tags":2640,"related":2642,"keywords":2645},"notebooks\u002Ftutorials\u002Fgaussian-filtering-python.ipynb","2023-10-17",{"src":2639},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-gaussian.png",[1353,2641],"Time Series",[2643,2644],"\u002Fblog\u002Fsignal-processing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fupsampling",[2646,2647,1756,2648,2649,1791,2630],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":2651,"path":2652,"stem":2653,"meta":2654},"Computing the Option Greeks using Pathway Live Data Framework and Databento","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F105.option-greeks",{"thumbnail":2655,"date":2657,"tags":2658,"keywords":2659,"notebook_export_path":2668,"docker_github_link":2669,"aside":118,"layout":2606},{"src":2656,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Foption-greeks\u002Foption-greeks.png","2024-08-06",[1353,1954],[2660,2661,2662,2663,2664,2665,2666,2667,2630],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks\u002Ftutorials\u002Foption-greeks.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Foption-greeks",{"title":2671,"path":2672,"stem":2673,"meta":2674},"Automating reconciliation of messy financial transaction logs using the Pathway Live Data Framework real-time fuzzy join","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter1","2.developers\u002F7.templates\u002FETL\u002F11.fuzzy_join_chapter1",{"notebook_export_path":2675,"aside":118,"date":2676,"tags":2677,"keywords":2678,"layout":2606},"notebooks\u002Fshowcases\u002Ffuzzy_join_part1.ipynb","2022-10-18",[1353,1954],[2679,2680,1887,2630],"Fuzzy join","reconciliation",{"title":2682,"path":2644,"stem":2683,"meta":2684},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers\u002F7.templates\u002FETL\u002F110.upsampling",{"notebook_export_path":2685,"aside":118,"date":2686,"layout":2606,"thumbnail":2687,"tags":2689,"related":2690,"popular":118,"keywords":2691},"notebooks\u002Ftutorials\u002Fupsampling.ipynb","2023-10-18",{"src":2688},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-time-series.png",[1353,2641],[2643,2633],[2646,2692,1756,2693,2694,2649,1791,2630],"upsampling","resampling","interpolation",{"title":2696,"path":2697,"stem":2698,"meta":2699},"Interaction with a Feedback Loop.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter2","2.developers\u002F7.templates\u002FETL\u002F12.fuzzy_join_chapter2",{"notebook_export_path":2700,"aside":118,"date":2701,"thumbnail":2702,"tags":2704,"keywords":2705,"layout":2606},"notebooks\u002Fshowcases\u002Ffuzzy_join_part2.ipynb","2022-10-19",{"src":2703,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Ffuzzy_join\u002Freconciliation_chapter3_trim.png",[1353,1954],[2679,2680,1887,2630],{"title":2707,"path":2708,"stem":2709,"meta":2710},"Smart real-time monitoring application with alert deduplication","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Falerting-significant-changes","2.developers\u002F7.templates\u002FETL\u002F130.alerting-significant-changes",{"notebook_export_path":2711,"aside":118,"date":2712,"tags":2713,"keywords":2714,"layout":2606},"notebooks\u002Ftutorials\u002Falert-deduplication.ipynb","2023-11-16",[1353,1954],[2629,2715,2020,2630],"deduplication",{"title":2717,"path":1210,"stem":2718,"meta":2719},"Kafka ETL: Processing event streams in Python","2.developers\u002F7.templates\u002FETL\u002F140.kafka-etl",{"layout":2606,"date":2720,"tags":2721,"thumbnail":2722,"keywords":2724,"docker_github_link":2729,"popular":118},"2024-02-15",[1953,1954],{"src":2723,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002FETL-Kafka\u002FETL-Kafka.png",[2612,1490,2725,2726,2727,2728,1492],"datetime","time zone","timezone","concat_reindex","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-ETL",{"title":2731,"path":2732,"stem":2733,"meta":2734},"Streaming ETL pipelines in Python with Airbyte and Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fetl-python-airbyte","2.developers\u002F7.templates\u002FETL\u002F150.etl-python-airbyte",{"layout":2606,"date":2735,"tags":2736,"thumbnail":2737,"keywords":2739},"2024-02-28",[1953,1954],{"src":2738},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fairbyte\u002Fairbyte-diagram-th.png",[2740,2741,2742,2743,2744],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":2746,"path":2747,"stem":2748,"meta":2749},"Delta Lake ETL with Pathway Live Data Framework for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fdelta_lake_etl","2.developers\u002F7.templates\u002FETL\u002F175.delta_lake_etl",{"layout":2606,"date":2750,"tags":2751,"thumbnail":2752,"keywords":2754,"docker_github_link":2758},"2024-07-23",[1953,1954],{"src":2753,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fdeltalake\u002Fdelta_lake_diagram_th.png",[2755,2756,2757,2743,2744,1492],"delta lake etl","spark delta lake","spark etl","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fspark-data-preparation",{"title":2760,"path":2761,"stem":2762,"meta":2763},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-alternative","2.developers\u002F7.templates\u002FETL\u002F180.kafka-alternative",{"layout":2606,"thumbnail":2764,"date":2766,"tags":2767,"keywords":2768},{"src":2765,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fkafka-alternatives\u002Fkafka-alternatives-thumbnail.png","2024-08-27",[1953,1954],[2612,1490,2769,2770,2771,2727,2772,2773],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":2775,"path":2776,"stem":2777,"meta":2778},"Jupyter \u002F Colab: visualizing and transforming live data streams in Python notebooks with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flive_data_jupyter","2.developers\u002F7.templates\u002FETL\u002F2.live_data_jupyter",{"aside":118,"date":1999,"tags":2779,"keywords":2780,"notebook_export_path":2790,"docker_github_link":2791,"popular":118,"layout":2606},[1353,1954,1953],[2781,2782,2783,2784,2785,2786,2787,2788,2789,2630,1492],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks\u002Fshowcases\u002Flive-data-jupyter.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy\u002Fpart4_deployment",{"title":2793,"path":2794,"stem":2795,"meta":2796},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F2.twitter",{"aside":118,"layout":2606,"date":2797,"thumbnail":2798,"tags":2800,"keywords":2801,"docker_github_link":2807},"2022-10-31",{"src":2799},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-twitter.png",[1353,2626,1953],[2802,2803,2804,2805,2806,1887,1492],"Twitter","tweets","sentiment analysis","geolocation","influence","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ftwitter",{"title":2809,"path":2810,"stem":2811,"meta":2812},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fevent_stream_processing_time_between_occurrences","2.developers\u002F7.templates\u002FETL\u002F20.event_stream_processing_time_between_occurrences",{"aside":118,"date":2813,"layout":2606,"thumbnail":2814,"tags":2816,"keywords":2817},"2022-11-01",{"src":2815},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-time-between-events-in-a-multi-topic-event-stream.png",[1353,1954],[2818,2819,1489,2820,2821],"event stream","multi-topic","ordering","sort",{"title":2823,"path":2824,"stem":2825,"meta":2826},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flsh_chapter1","2.developers\u002F7.templates\u002FETL\u002F3.lsh_chapter1",{"notebook_export_path":2827,"aside":118,"date":2828,"thumbnail":2829,"tags":2831,"keywords":2832,"layout":2606},"notebooks\u002Fshowcases\u002Flsh.ipynb","2022-10-25",{"src":2830},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-realtime-classification.png",[1353,2626],[2833,1688,2834,1684,2835,2836,2837,1887,2630],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":2839,"path":2840,"stem":2841,"meta":2842},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fuser_pairs_fuzzy_join","2.developers\u002F7.templates\u002FETL\u002F30.user_pairs_fuzzy_join",{"aside":118,"date":2843,"thumbnail":2844,"tags":2846,"keywords":2847,"layout":2606},"2023-01-09",{"src":2845,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-mining-hidden-user-pair-activity-with-fuzzy-join.png",[1353,1954],[2848,2629,2849,2850,2851,2852,2853],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":2855,"path":2856,"stem":2857,"meta":2858},"Pathway Live Data Framework Logistics Application: Streamlined Insights for Real-Time Asset Management","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flogistics","2.developers\u002F7.templates\u002FETL\u002F4.logistics",{"aside":118,"layout":2606,"date":2797,"thumbnail":2859,"tags":2861,"enterprise":118,"keywords":2862},{"src":2860},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-logictics-app.png",[1353,2626],[2863,2864,2865],"Logistics","IoT","Dashboard",{"title":2867,"path":2868,"stem":2869,"meta":2870},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fbellman_ford","2.developers\u002F7.templates\u002FETL\u002F40.bellman_ford",{"aside":118,"date":2871,"layout":2606,"thumbnail":2872,"tags":2874,"notebook_export_path":2875,"keywords":2876},"2022-11-03",{"src":2873,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-bellman-ford.png",[1353,2626],"notebooks\u002Ftutorials\u002Fbellman_ford.ipynb",[1665,2877,2878,2034,2630],"fixed-point","shortest-path",{"title":2880,"path":1222,"stem":2881,"meta":2882},"Linear regression on a Kafka stream","2.developers\u002F7.templates\u002FETL\u002F5.linear_regression_with_kafka",{"aside":118,"layout":2606,"date":2883,"tags":2884,"keywords":2885,"docker_github_link":2887},"2022-12-23",[1353,1954],[2886,1490,1423],"linear regression","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-linear-regression",{"title":2889,"path":2890,"stem":2891,"meta":2892},"Real-Time PageRank on Dynamic Graphs with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fpagerank","2.developers\u002F7.templates\u002FETL\u002F50.pagerank",{"notebook_export_path":2893,"aside":118,"date":2894,"thumbnail":2895,"tags":2897,"keywords":2898,"layout":2606},"notebooks\u002Ftutorials\u002Fpagerank.ipynb","2022-11-07",{"src":2896,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-computing-pagerank.png",[1353,2626],[2899,2034,2630],"pagerank",{"title":2901,"path":2902,"stem":2903,"meta":2904},"Sensor Fusion in real-time: combining time series data with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fcombining_time_series","2.developers\u002F7.templates\u002FETL\u002F65.combining_time_series",{"aside":118,"date":2905,"thumbnail":2906,"tags":2907,"keywords":2908,"notebook_export_path":2911,"layout":2606},"2023-04-28",{"src":2688},[2641],[2909,2910,2694,1388,2630],"time series","multiple data sources","notebooks\u002Ftutorials\u002Fcombining-time-series.ipynb",{"title":2913,"path":1216,"stem":2914,"meta":2915},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","2.developers\u002F7.templates\u002FETL\u002F7.realtime-log-monitoring",{"aside":118,"layout":2606,"date":2916,"thumbnail":2917,"tags":2919,"keywords":2920,"docker_github_link":2924},"2023-02-27",{"src":2918,"contain":118},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Frealtime_log_monitoring\u002Fmeme.jpg",[1353,1954],[2921,2629,1490,2922,1465,2923,1492],"log monitoring","Filebeat","ElasticSearch","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Frealtime-log-monitoring\u002Ffilebeat-pathway-slack",{"title":2926,"path":2927,"stem":2928,"children":2929,"page":1303},"Readmes","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes","2.developers\u002F7.templates\u002FETL\u002F_readmes",[2930,2935,2940,2945,2950,2955,2960,2965,2970,2975,2980,2984,2989,2994,2999,3004,3009,3014,3019],{"title":2931,"path":2932,"stem":2933,"meta":2934},"AG2 Multi-Agent Conversations with Pathway Live Data Framework Real-Time RAG","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fag2-multiagent-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fag2-multiagent-rag",{},{"title":2936,"path":2937,"stem":2938,"meta":2939},"Azure ACI Deployment Example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fazure-aci-deploy",{},{"title":2941,"path":2942,"stem":2943,"meta":2944},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbenchmarks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbenchmarks",{},{"title":2946,"path":2947,"stem":2948,"meta":2949},"Best-rated movies examples","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbest-movies-example","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbest-movies-example",{},{"title":2951,"path":2952,"stem":2953,"meta":2954},"Make your LLM app sane again: Forgetting incorrect data in real time","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fconf42","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fconf42",{},{"title":2956,"path":2957,"stem":2958,"meta":2959},"Custom python connector example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fcustom-python-connector-twitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fcustom-python-connector-twitter",{},{"title":2961,"path":2962,"stem":2963,"meta":2964},"Realtime monitoring of logs","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffilebeat-pathway-slack","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffilebeat-pathway-slack",{},{"title":2966,"path":2967,"stem":2968,"meta":2969},"Tutorial: From interactive data exploration to deployment","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffrom_jupyter_to_deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffrom_jupyter_to_deploy",{},{"title":2971,"path":2972,"stem":2973,"meta":2974},"ETL with Kafka in\u002FKafka out","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-ETL",{},{"title":2976,"path":2977,"stem":2978,"meta":2979},"Best-rated movies example - Kafka version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-version",{},{"title":2961,"path":2981,"stem":2982,"meta":2983},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Flogstash-pathway-elastic","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Flogstash-pathway-elastic",{},{"title":2985,"path":2986,"stem":2987,"meta":2988},"Pathway Live Data Framework Monitoring using OpenTelemetry Collector and Grafana Cloud","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fmonitoring","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fmonitoring",{},{"title":2990,"path":2991,"stem":2992,"meta":2993},"Computing Option Greeks with Pathway Live Data Framework and Databento.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Foption-greeks",{},{"title":2995,"path":2996,"stem":2997,"meta":2998},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fquestion-answering-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fquestion-answering-rag",{},{"title":3000,"path":3001,"stem":3002,"meta":3003},"Best-rated movies example - Redpanda version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fredpanda-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fredpanda-version",{},{"title":3005,"path":3006,"stem":3007,"meta":3008},"Sample Pathway Live Data Framework program for SharePoint connection testing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fsharepoint-test","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fsharepoint-test",{},{"title":3010,"path":3011,"stem":3012,"meta":3013},"Data Preparation for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fspark-data-preparation","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fspark-data-preparation",{},{"title":3015,"path":3016,"stem":3017,"meta":3018},"Realtime Twitter Analysis App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ftwitter",{},{"title":3020,"path":3021,"stem":3022,"meta":3023},"Web Scraping with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fweb-scraping","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fweb-scraping",{},{"title":3025,"meta":3026,"path":3027,"stem":3028,"children":3029,"page":1303},"LLM-RAG Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Frag","2.developers\u002F7.templates\u002Frag",[3030,3043,3058,3074,3087,3105,3115,3130,3140,3149,3160,3172],{"title":3031,"path":3032,"stem":3033,"meta":3034},"Question-Answering RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdemo-question-answering","2.developers\u002F7.templates\u002Frag\u002F1000.demo-question-answering",{"redirection":3035,"thumbnail":3036,"layout":2606,"tags":3038,"date":1884,"keywords":3040,"docker_github_link":3035,"popular":118},"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fquestion_answering_rag",{"src":3037,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fqna-th.png",[1953,3039],"ai-pipelines",[1818,1830,1820,1821,3041,1685,1423,3042],"vector store","yaml",{"title":3044,"path":3045,"stem":3046,"meta":3047},"Adaptive RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-adaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1001.template-adaptive-rag",{"thumbnail":3048,"tags":3050,"date":3051,"layout":2606,"keywords":3052,"docker_github_link":3057},{"src":3049,"contain":118},"\u002Fassets\u002Fcontent\u002Fblog\u002Fadaptive-rag-plots\u002Fvisual-abstract.png",[1953,3039],"2024-03-29",[1818,1830,3053,3054,3055,3056,1423,3042],"Adaptive RAG","prompt engineering","prompt","explainability","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fadaptive_rag",{"title":3059,"path":3060,"stem":3061,"meta":3062},"Private RAG App with Mistral and Ollama","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-private-rag","2.developers\u002F7.templates\u002Frag\u002F1002.template-private-rag",{"tags":3063,"date":3064,"thumbnail":3065,"layout":2606,"keywords":3067,"docker_github_link":3073},[1953,3039],"2024-04-22",{"src":3066,"contain":118},"\u002Fassets\u002Fcontent\u002Fblog\u002Flocal-adaptive-rag\u002Flocal_adaptive.png",[1818,1830,3053,3054,3056,3068,3069,3070,3071,3072,1423,3042],"mistral","ollama","private rag","local rag","ollama rag","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fprivate_rag",{"title":3075,"path":3076,"stem":3077,"meta":3078},"Multimodal RAG pipeline with GPT4o","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-multimodal-rag","2.developers\u002F7.templates\u002Frag\u002F1003.template-multimodal-rag",{"tags":3079,"date":3080,"thumbnail":3081,"layout":2606,"keywords":3083,"docker_github_link":3086,"popular":118},[1953,3039],"2024-01-01",{"src":3082,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fmultimodal-RAG\u002FmultimodalRAG-blog-banner.png",[1818,1830,1820,1821,3084,3085,1887,1423,3042],"GPT-4o","multimodal RAG","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fmultimodal_rag",{"title":3088,"path":3089,"stem":3090,"children":3091,"meta":3101},"Live Document Indexing (Vector Store \u002F Retriever)","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-demo-document-indexing","2.developers\u002F7.templates\u002Frag\u002F1008.template-demo-document-indexing",[3092],{"title":3088,"path":3089,"stem":3090,"meta":3093},{"thumbnail":3094,"tags":3096,"date":3080,"layout":2606,"keywords":3097,"docker_github_link":3100},{"src":3095,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Flive-document-indexing-th.png",[1953,3039],[1818,1830,1820,1821,3041,1685,3098,1582,3099,1423,3042],"SharePoint","Gdrive","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdocument_indexing",{"thumbnail":3102,"tags":3103,"date":3080,"layout":2606,"keywords":3104,"docker_github_link":3100},{"src":3095,"provider":2624},[1953,3039],[1818,1830,1820,1821,3041,1685,3098,1582,3099,1423,3042],{"title":3106,"path":3107,"stem":3108,"meta":3109},"Alerting when answers change on Google Drive","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdrive-alert","2.developers\u002F7.templates\u002Frag\u002F1009.drive-alert",{"tags":3110,"date":3111,"layout":2606,"keywords":3112,"docker_github_link":3114,"hide":118},[1953,3039],"2024-11-07",[1818,1830,1820,1821,3113,1685,1582,3099,1423],"slack","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdrive_alert",{"title":3116,"path":3117,"stem":3118,"meta":3119},"Slides AI Search App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-slides-search","2.developers\u002F7.templates\u002Frag\u002F1010.template-slides-search",{"thumbnail":3120,"tags":3122,"date":3123,"layout":2606,"keywords":3124,"docker_github_link":3129},{"src":3121,"provider":2624},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fslides-search-th.png",[1953,3039],"2024-11-14",[1818,1830,1820,1821,1582,3125,1423,3042,3126,3127,3128],"slides","multimodal","VLM","image-to-text","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fslides_ai_search",{"title":3131,"path":3132,"stem":3133,"meta":3134},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fadaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1015.adaptive-rag",{"aside":118,"thumbnail":3135,"tags":3136,"date":3137,"notebook_export_path":3138,"keywords":3139,"run_template":3045,"hide":118},{"src":3049,"contain":118},[1953,3039],"2024-03-28","notebooks\u002Fshowcases\u002Fadaptive_rag_question_answering.ipynb",[1818,1830,3053,3054,3055,3056,2630,1492],{"title":3141,"path":1245,"stem":3142,"meta":3143},"Multimodal RAG for PDFs with Text, Images, and Charts","2.developers\u002F7.templates\u002Frag\u002F120.multimodal-rag",{"aside":118,"thumbnail":3144,"date":3145,"tags":3146,"keywords":3147,"notebook_export_path":3148,"run_template":3076,"popular":118,"hide":118},{"src":3082,"contain":118},"2024-06-20",[1953,3039],[1818,1830,1820,1821,3084,3085,1887,2630,1423],"notebooks\u002Fshowcases\u002Fmultimodal-rag.ipynb",{"title":3150,"path":3151,"stem":3152,"meta":3153},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fprivate-rag-ollama-mistral","2.developers\u002F7.templates\u002Frag\u002F161.private-rag-ollama-mistral",{"aside":118,"thumbnail":3154,"tags":3155,"date":3156,"related":3157,"notebook_export_path":3158,"keywords":3159,"run_template":3060,"hide":118},{"src":3066,"contain":118},[1953,3039],"2024-04-23",[3132,3032],"notebooks\u002Fshowcases\u002Fmistral_adaptive_rag_question_answering.ipynb",[1818,1830,3053,3054,3056,3068,3069,3070,3071,3072,2630,1423],{"title":3161,"path":1251,"stem":3162,"meta":3163},"Pathway Live Data Framework + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","2.developers\u002F7.templates\u002Frag\u002F5.unstructured-to-structured",{"aside":118,"layout":2606,"date":1801,"thumbnail":3164,"tags":3166,"keywords":3167,"docker_github_link":3171},{"src":3165,"contain":118},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fllm-app\u002Farchitecture_unst_to_st.png",[1953,3039],[1818,3168,1887,1516,1820,3169,3170,1387,1887,1492],"SQL","Entity extraction","Document parsing","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Funstructured_to_sql_on_the_fly",{"title":2926,"path":3173,"stem":3174,"children":3175,"page":1303},"\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes","2.developers\u002F7.templates\u002Frag\u002F_readmes",[3176,3181,3189,3194,3199,3204,3209,3214,3219],{"title":3177,"path":3178,"stem":3179,"meta":3180},"AdaptiveRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fadaptive_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fadaptive_rag",{},{"title":3182,"path":3183,"stem":3184,"children":3185,"meta":3188},"DocumentIndexing","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_indexing","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_indexing",[3186],{"title":3182,"path":3183,"stem":3184,"meta":3187},{},{},{"title":3190,"path":3191,"stem":3192,"meta":3193},"DocumentStoreMcpServer","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server",{},{"title":3195,"path":3196,"stem":3197,"meta":3198},"Pathway Live Data Framework + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdrive_alert","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdrive_alert",{},{"title":3200,"path":3201,"stem":3202,"meta":3203},"MultimodalRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fmultimodal_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fmultimodal_rag",{},{"title":3205,"path":3206,"stem":3207,"meta":3208},"PrivateRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fprivate_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fprivate_rag",{},{"title":3210,"path":3211,"stem":3212,"meta":3213},"QuestionAnsweringRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fquestion_answering_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fquestion_answering_rag",{},{"title":3215,"path":3216,"stem":3217,"meta":3218},"SlidesAiSearch","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fslides_ai_search","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fslides_ai_search",{},{"title":3220,"path":3221,"stem":3222,"meta":3223},"UnstructuredToSqlOnTheFly","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly",{},{"navTitle":1299,"layout":1368,"aside":118,"toc":1303,"single":118},{"id":4,"title":5,"author":6,"body":3226,"description":1272,"extension":1273,"meta":4140,"navigation":118,"path":1275,"seo":4141,"sitemap":4142,"stem":1278,"__hash__":1279},{"type":8,"value":3227,"toc":4132},[3228,3230,3232,3234,3239,3241,3243,3248,3251,3253,3255,3261,3263,3265,3267,3959,3962,3964,3976,3980,3994,4002,4006,4008,4010,4015,4017,4022,4024,4029,4035,4049,4055,4057,4062,4066,4068,4073,4079,4085,4087,4126,4130],[11,3229,14],{"id":13},[16,3231,18],{},[16,3233,21],{},[23,3235,3237],{"className":3236,"code":27,"language":28},[26],[30,3238,27],{"__ignoreMap":32},[16,3240,35],{},[37,3242,40],{"id":39},[16,3244,43,3245,51],{},[45,3246,50],{"href":47,"rel":3247},[49],[53,3249],{"alt":55,"className":3250,"src":58},[57],[37,3252,62],{"id":61},[16,3254,65],{},[67,3256,3257,3259],{},[70,3258,72],{},[70,3260,75],{},[16,3262,78],{},[80,3264,83],{"id":82},[16,3266,86],{},[23,3268,3269],{"className":89,"code":90,"language":91,"meta":32,"style":32},[30,3270,3271,3281,3285,3289,3293,3297,3301,3317,3325,3333,3337,3341,3357,3365,3373,3377,3381,3385,3393,3411,3429,3447,3465,3483,3501,3519,3523,3527,3531,3553,3559,3573,3583,3597,3605,3609,3613,3617,3635,3645,3655,3659,3663,3667,3675,3679,3683,3691,3695,3701,3705,3731,3735,3739,3747,3751,3763,3767,3779,3783,3787,3791,3799,3803,3807,3839,3843,3875,3879,3883,3887,3905,3937,3941,3945,3949],{"__ignoreMap":32},[95,3272,3273,3275,3277,3279],{"class":97,"line":98},[95,3274,102],{"class":101},[95,3276,106],{"class":105},[95,3278,109],{"class":101},[95,3280,112],{"class":105},[95,3282,3283],{"class":97,"line":115},[95,3284,119],{"emptyLinePlaceholder":118},[95,3286,3287],{"class":97,"line":122},[95,3288,126],{"class":125},[95,3290,3291],{"class":97,"line":129},[95,3292,132],{"class":125},[95,3294,3295],{"class":97,"line":135},[95,3296,138],{"class":125},[95,3298,3299],{"class":97,"line":141},[95,3300,144],{"class":125},[95,3302,3303,3305,3307,3309,3311,3313,3315],{"class":97,"line":147},[95,3304,151],{"class":150},[95,3306,155],{"class":154},[95,3308,159],{"class":158},[95,3310,162],{"class":154},[95,3312,165],{"class":158},[95,3314,168],{"class":154},[95,3316,171],{"class":158},[95,3318,3319,3321,3323],{"class":97,"line":174},[95,3320,177],{"class":105},[95,3322,180],{"class":158},[95,3324,183],{"class":154},[95,3326,3327,3329,3331],{"class":97,"line":186},[95,3328,189],{"class":105},[95,3330,180],{"class":158},[95,3332,194],{"class":154},[95,3334,3335],{"class":97,"line":197},[95,3336,119],{"emptyLinePlaceholder":118},[95,3338,3339],{"class":97,"line":202},[95,3340,119],{"emptyLinePlaceholder":118},[95,3342,3343,3345,3347,3349,3351,3353,3355],{"class":97,"line":207},[95,3344,151],{"class":150},[95,3346,212],{"class":154},[95,3348,159],{"class":158},[95,3350,162],{"class":154},[95,3352,165],{"class":158},[95,3354,168],{"class":154},[95,3356,171],{"class":158},[95,3358,3359,3361,3363],{"class":97,"line":225},[95,3360,177],{"class":105},[95,3362,180],{"class":158},[95,3364,183],{"class":154},[95,3366,3367,3369,3371],{"class":97,"line":234},[95,3368,237],{"class":105},[95,3370,180],{"class":158},[95,3372,194],{"class":154},[95,3374,3375],{"class":97,"line":244},[95,3376,119],{"emptyLinePlaceholder":118},[95,3378,3379],{"class":97,"line":249},[95,3380,119],{"emptyLinePlaceholder":118},[95,3382,3383],{"class":97,"line":254},[95,3384,257],{"class":125},[95,3386,3387,3389,3391],{"class":97,"line":260},[95,3388,263],{"class":105},[95,3390,266],{"class":158},[95,3392,269],{"class":158},[95,3394,3395,3397,3399,3401,3403,3405,3407,3409],{"class":97,"line":272},[95,3396,275],{"class":158},[95,3398,279],{"class":278},[95,3400,282],{"class":158},[95,3402,180],{"class":158},[95,3404,287],{"class":158},[95,3406,290],{"class":278},[95,3408,282],{"class":158},[95,3410,295],{"class":158},[95,3412,3413,3415,3417,3419,3421,3423,3425,3427],{"class":97,"line":298},[95,3414,275],{"class":158},[95,3416,303],{"class":278},[95,3418,282],{"class":158},[95,3420,180],{"class":158},[95,3422,287],{"class":158},[95,3424,312],{"class":278},[95,3426,282],{"class":158},[95,3428,295],{"class":158},[95,3430,3431,3433,3435,3437,3439,3441,3443,3445],{"class":97,"line":319},[95,3432,275],{"class":158},[95,3434,324],{"class":278},[95,3436,282],{"class":158},[95,3438,180],{"class":158},[95,3440,287],{"class":158},[95,3442,333],{"class":278},[95,3444,282],{"class":158},[95,3446,295],{"class":158},[95,3448,3449,3451,3453,3455,3457,3459,3461,3463],{"class":97,"line":340},[95,3450,275],{"class":158},[95,3452,345],{"class":278},[95,3454,282],{"class":158},[95,3456,180],{"class":158},[95,3458,287],{"class":158},[95,3460,354],{"class":278},[95,3462,282],{"class":158},[95,3464,295],{"class":158},[95,3466,3467,3469,3471,3473,3475,3477,3479,3481],{"class":97,"line":361},[95,3468,275],{"class":158},[95,3470,366],{"class":278},[95,3472,282],{"class":158},[95,3474,180],{"class":158},[95,3476,287],{"class":158},[95,3478,375],{"class":278},[95,3480,282],{"class":158},[95,3482,295],{"class":158},[95,3484,3485,3487,3489,3491,3493,3495,3497,3499],{"class":97,"line":382},[95,3486,275],{"class":158},[95,3488,387],{"class":278},[95,3490,282],{"class":158},[95,3492,180],{"class":158},[95,3494,287],{"class":158},[95,3496,396],{"class":278},[95,3498,282],{"class":158},[95,3500,295],{"class":158},[95,3502,3503,3505,3507,3509,3511,3513,3515,3517],{"class":97,"line":403},[95,3504,275],{"class":158},[95,3506,408],{"class":278},[95,3508,282],{"class":158},[95,3510,180],{"class":158},[95,3512,287],{"class":158},[95,3514,417],{"class":278},[95,3516,282],{"class":158},[95,3518,295],{"class":158},[95,3520,3521],{"class":97,"line":424},[95,3522,427],{"class":158},[95,3524,3525],{"class":97,"line":430},[95,3526,119],{"emptyLinePlaceholder":118},[95,3528,3529],{"class":97,"line":435},[95,3530,438],{"class":125},[95,3532,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551],{"class":97,"line":441},[95,3534,444],{"class":105},[95,3536,266],{"class":158},[95,3538,449],{"class":105},[95,3540,165],{"class":158},[95,3542,455],{"class":454},[95,3544,165],{"class":158},[95,3546,460],{"class":454},[95,3548,165],{"class":158},[95,3550,466],{"class":465},[95,3552,469],{"class":158},[95,3554,3555,3557],{"class":97,"line":472},[95,3556,475],{"class":465},[95,3558,295],{"class":158},[95,3560,3561,3563,3565,3567,3569,3571],{"class":97,"line":480},[95,3562,484],{"class":483},[95,3564,266],{"class":158},[95,3566,282],{"class":158},[95,3568,491],{"class":278},[95,3570,282],{"class":158},[95,3572,295],{"class":158},[95,3574,3575,3577,3579,3581],{"class":97,"line":498},[95,3576,501],{"class":483},[95,3578,266],{"class":158},[95,3580,506],{"class":465},[95,3582,295],{"class":158},[95,3584,3585,3587,3589,3591,3593,3595],{"class":97,"line":511},[95,3586,514],{"class":483},[95,3588,266],{"class":158},[95,3590,282],{"class":158},[95,3592,521],{"class":278},[95,3594,282],{"class":158},[95,3596,295],{"class":158},[95,3598,3599,3601,3603],{"class":97,"line":528},[95,3600,531],{"class":483},[95,3602,266],{"class":158},[95,3604,537],{"class":536},[95,3606,3607],{"class":97,"line":540},[95,3608,543],{"class":158},[95,3610,3611],{"class":97,"line":546},[95,3612,119],{"emptyLinePlaceholder":118},[95,3614,3615],{"class":97,"line":551},[95,3616,554],{"class":125},[95,3618,3619,3621,3623,3625,3627,3629,3631,3633],{"class":97,"line":557},[95,3620,560],{"class":105},[95,3622,266],{"class":158},[95,3624,449],{"class":105},[95,3626,165],{"class":158},[95,3628,455],{"class":454},[95,3630,165],{"class":158},[95,3632,573],{"class":465},[95,3634,469],{"class":158},[95,3636,3637,3639,3641,3643],{"class":97,"line":578},[95,3638,581],{"class":158},[95,3640,584],{"class":278},[95,3642,587],{"class":158},[95,3644,295],{"class":158},[95,3646,3647,3649,3651,3653],{"class":97,"line":592},[95,3648,501],{"class":483},[95,3650,266],{"class":158},[95,3652,599],{"class":465},[95,3654,295],{"class":158},[95,3656,3657],{"class":97,"line":604},[95,3658,543],{"class":158},[95,3660,3661],{"class":97,"line":609},[95,3662,119],{"emptyLinePlaceholder":118},[95,3664,3665],{"class":97,"line":614},[95,3666,617],{"class":125},[95,3668,3669,3671,3673],{"class":97,"line":620},[95,3670,623],{"class":105},[95,3672,266],{"class":158},[95,3674,628],{"class":158},[95,3676,3677],{"class":97,"line":631},[95,3678,634],{"class":125},[95,3680,3681],{"class":97,"line":637},[95,3682,640],{"class":105},[95,3684,3685,3687,3689],{"class":97,"line":643},[95,3686,646],{"class":158},[95,3688,649],{"class":465},[95,3690,469],{"class":158},[95,3692,3693],{"class":97,"line":654},[95,3694,657],{"class":125},[95,3696,3697,3699],{"class":97,"line":660},[95,3698,663],{"class":465},[95,3700,295],{"class":158},[95,3702,3703],{"class":97,"line":668},[95,3704,671],{"class":125},[95,3706,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729],{"class":97,"line":674},[95,3708,677],{"class":465},[95,3710,165],{"class":158},[95,3712,682],{"class":454},[95,3714,165],{"class":158},[95,3716,687],{"class":454},[95,3718,690],{"class":158},[95,3720,162],{"class":465},[95,3722,165],{"class":158},[95,3724,697],{"class":454},[95,3726,165],{"class":158},[95,3728,687],{"class":454},[95,3730,295],{"class":158},[95,3732,3733],{"class":97,"line":706},[95,3734,709],{"class":158},[95,3736,3737],{"class":97,"line":712},[95,3738,715],{"class":125},[95,3740,3741,3743,3745],{"class":97,"line":718},[95,3742,646],{"class":158},[95,3744,723],{"class":465},[95,3746,469],{"class":158},[95,3748,3749],{"class":97,"line":728},[95,3750,731],{"class":125},[95,3752,3753,3755,3757,3759,3761],{"class":97,"line":734},[95,3754,737],{"class":158},[95,3756,162],{"class":465},[95,3758,165],{"class":158},[95,3760,682],{"class":454},[95,3762,295],{"class":158},[95,3764,3765],{"class":97,"line":748},[95,3766,751],{"class":125},[95,3768,3769,3771,3773,3775,3777],{"class":97,"line":754},[95,3770,677],{"class":465},[95,3772,165],{"class":158},[95,3774,697],{"class":454},[95,3776,165],{"class":158},[95,3778,765],{"class":454},[95,3780,3781],{"class":97,"line":768},[95,3782,709],{"class":158},[95,3784,3785],{"class":97,"line":773},[95,3786,543],{"class":158},[95,3788,3789],{"class":97,"line":778},[95,3790,119],{"emptyLinePlaceholder":118},[95,3792,3793,3795,3797],{"class":97,"line":783},[95,3794,786],{"class":105},[95,3796,266],{"class":158},[95,3798,628],{"class":158},[95,3800,3801],{"class":97,"line":793},[95,3802,796],{"class":105},[95,3804,3805],{"class":97,"line":799},[95,3806,802],{"class":125},[95,3808,3809,3811,3813,3815,3817,3819,3821,3823,3825,3827,3829,3831,3833,3835,3837],{"class":97,"line":805},[95,3810,646],{"class":158},[95,3812,810],{"class":465},[95,3814,159],{"class":158},[95,3816,162],{"class":465},[95,3818,165],{"class":158},[95,3820,819],{"class":454},[95,3822,165],{"class":158},[95,3824,824],{"class":454},[95,3826,827],{"class":158},[95,3828,449],{"class":465},[95,3830,165],{"class":158},[95,3832,819],{"class":454},[95,3834,165],{"class":158},[95,3836,838],{"class":454},[95,3838,543],{"class":158},[95,3840,3841],{"class":97,"line":843},[95,3842,846],{"class":125},[95,3844,3845,3847,3849,3851,3853,3855,3857,3859,3861,3863,3865,3867,3869,3871,3873],{"class":97,"line":849},[95,3846,646],{"class":158},[95,3848,723],{"class":465},[95,3850,159],{"class":158},[95,3852,162],{"class":465},[95,3854,165],{"class":158},[95,3856,819],{"class":454},[95,3858,165],{"class":158},[95,3860,687],{"class":454},[95,3862,868],{"class":158},[95,3864,449],{"class":465},[95,3866,165],{"class":158},[95,3868,819],{"class":454},[95,3870,165],{"class":158},[95,3872,824],{"class":454},[95,3874,543],{"class":158},[95,3876,3877],{"class":97,"line":883},[95,3878,543],{"class":158},[95,3880,3881],{"class":97,"line":888},[95,3882,119],{"emptyLinePlaceholder":118},[95,3884,3885],{"class":97,"line":893},[95,3886,896],{"class":125},[95,3888,3889,3891,3893,3895,3897,3899,3901,3903],{"class":97,"line":899},[95,3890,162],{"class":105},[95,3892,165],{"class":158},[95,3894,455],{"class":454},[95,3896,165],{"class":158},[95,3898,460],{"class":454},[95,3900,165],{"class":158},[95,3902,914],{"class":465},[95,3904,469],{"class":158},[95,3906,3907,3909,3911,3913,3915,3917,3919,3921,3923,3925,3927,3929,3931,3933,3935],{"class":97,"line":919},[95,3908,922],{"class":465},[95,3910,868],{"class":158},[95,3912,927],{"class":465},[95,3914,868],{"class":158},[95,3916,932],{"class":483},[95,3918,266],{"class":158},[95,3920,282],{"class":158},[95,3922,939],{"class":278},[95,3924,282],{"class":158},[95,3926,868],{"class":158},[95,3928,946],{"class":483},[95,3930,266],{"class":158},[95,3932,282],{"class":158},[95,3934,521],{"class":278},[95,3936,955],{"class":158},[95,3938,3939],{"class":97,"line":958},[95,3940,543],{"class":158},[95,3942,3943],{"class":97,"line":963},[95,3944,119],{"emptyLinePlaceholder":118},[95,3946,3947],{"class":97,"line":968},[95,3948,971],{"class":125},[95,3950,3951,3953,3955,3957],{"class":97,"line":974},[95,3952,162],{"class":105},[95,3954,165],{"class":158},[95,3956,981],{"class":465},[95,3958,984],{"class":158},[53,3960],{"alt":987,"className":3961,"src":989},[57],[80,3963,993],{"id":992},[16,3965,996,3966,1001,3968,1005,3970,1009,3972,1016],{},[45,3967,1000],{"href":999},[30,3969,1004],{},[30,3971,1008],{},[45,3973,3974],{"href":1012},[30,3975,1015],{},[16,3977,1019,3978,165],{},[45,3979,1023],{"href":1022},[16,3981,1026,3982,1030,3984,1033,3986,1036,3988,1005,3990,1043,3992],{},[30,3983,1029],{},[30,3985,1004],{},[30,3987,1008],{},[30,3989,1039],{},[30,3991,1042],{},[1045,3993,1047],{},[16,3995,1050,3996,1055,3998,165],{},[45,3997,1054],{"href":1053},[45,3999,4000,1062],{"href":1058},[30,4001,1061],{},[16,4003,1065,4004,165],{},[45,4005,1069],{"href":1068},[1071,4007,1074],{"id":1073},[16,4009,1077],{},[23,4011,4013],{"className":4012,"code":1081,"language":28},[26],[30,4014,1081],{"__ignoreMap":32},[16,4016,1086],{},[23,4018,4020],{"className":4019,"code":1090,"language":28},[26],[30,4021,1090],{"__ignoreMap":32},[16,4023,1095],{},[23,4025,4027],{"className":4026,"code":1099,"language":28},[26],[30,4028,1099],{"__ignoreMap":32},[16,4030,1104,4031,1005,4033,180],{},[30,4032,1107],{},[30,4034,1110],{},[1112,4036,4037,4041],{},[70,4038,4039,1118],{},[30,4040,1107],{},[70,4042,4043,1123,4045,1127,4047,1131],{},[30,4044,1110],{},[30,4046,1126],{},[30,4048,1130],{},[16,4050,1134,4051,1137,4053,1141],{},[30,4052,1110],{},[30,4054,1140],{},[16,4056,1144],{},[23,4058,4060],{"className":4059,"code":1148,"language":28},[26],[30,4061,1148],{"__ignoreMap":32},[16,4063,1153,4064,1156],{},[30,4065,584],{},[16,4067,1159],{},[23,4069,4071],{"className":4070,"code":1163,"language":28},[26],[30,4072,1163],{"__ignoreMap":32},[16,4074,1168,4075,1172,4077,1176],{},[30,4076,1171],{},[30,4078,1175],{},[16,4080,1179,4081,1005,4083,1186],{},[30,4082,1182],{},[30,4084,1185],{},[37,4086,1190],{"id":1189},[1192,4088,4090,4110],{"className":4089},[1195,1196,1197,1198,1199],[1201,4091,4092],{"title":1203},[1112,4093,4094,4098,4102,4106],{},[70,4095,4096],{},[45,4097,1211],{"href":1210},[70,4099,4100],{},[45,4101,1217],{"href":1216},[70,4103,4104],{},[45,4105,1223],{"href":1222},[70,4107,4108],{},[45,4109,1229],{"href":1228},[1201,4111,4112],{"title":1232},[1112,4113,4114,4118,4122],{},[70,4115,4116],{},[45,4117,1240],{"href":1239},[70,4119,4120],{},[45,4121,1246],{"href":1245},[70,4123,4124],{},[45,4125,1252],{"href":1251},[16,4127,1255,4128,165],{},[45,4129,1259],{"href":1258},[1261,4131,1263],{},{"title":32,"searchDepth":115,"depth":115,"links":4133},[4134,4135,4139],{"id":39,"depth":115,"text":40},{"id":61,"depth":115,"text":62,"children":4136},[4137,4138],{"id":82,"depth":122,"text":83},{"id":992,"depth":122,"text":993},{"id":1189,"depth":115,"text":1190},{},{"title":5,"description":1272},{"loc":1275},[4144,4145],{"title":1310,"path":1311,"stem":1312,"children":-1},{"title":1317,"path":1068,"stem":1318,"children":-1},1781214740232]