[{"data":1,"prerenderedAt":5271},["ShallowReactive",2],{"/developers/api-docs/pathway-io/rabbitmq-app":3,"navigation-developers":1850,"/developers/api-docs/pathway-io/rabbitmq":3774,"surr-/developers/api-docs/pathway-io/rabbitmq":5268},{"id":4,"title":5,"author":6,"body":7,"description":1840,"extension":1841,"meta":1842,"navigation":1844,"path":1845,"seo":1846,"sitemap":1847,"stem":1848,"__hash__":1849},"content/2.developers/5.API-docs/7.pathway-io/410.rabbitmq.md","pw.io.rabbitmq",null,{"type":8,"value":9,"toc":1834},"minimark",[10,14,28,43,61,64,79,92,102,126,132,448,451,462,554,557,625,628,675,754,757,797,919,922,989,992,1059,1062,1177,1180,1239,1249,1258,1279,1288,1299,1448,1451,1458,1523,1526,1594,1606,1716,1719,1830],[11,12,5],"h1",{"id":13},"pwiorabbitmq",[15,16,17,21,22,27],"p",{},[18,19,20],"strong",{},"This module is available when using one of the following licenses only:"," ",[23,24,26],"a",{"href":25},"/pricing","Pathway Scale, Pathway Enterprise",".",[29,30,32,35,36,42],"h2",{"id":31},"pathway.io.rabbitmq.read",[18,33,34],{},"read","(",[37,38,41],"span",{"className":39},[40],"sphinx-paramslist","uri, stream_name, *, schema=None, format='raw', mode='streaming', autocommit_duration_ms=1500, json_field_paths=None, with_metadata=False, start_from='beginning', start_from_timestamp_ms=None, name=None, max_backlog_size=None, tls_settings=None, debug_data=None, **kwargs",")",[15,44,45,53,54,60],{},[23,46,50],{"className":47,"href":49},[48],"sphinx-source-url","https://github.com/pathwaycom/pathway/tree/main/python/pathway/io/rabbitmq/__init__.py#L25-L246",[37,51,52],{},"source","Reads data from a ",[23,55,59],{"href":56,"rel":57},"https://www.rabbitmq.com/docs/streams",[58],"nofollow","RabbitMQ"," stream.",[15,62,63],{},"This connector supports plain RabbitMQ Streams. Super Streams (partitioned\nstreams) are not supported in the current version.",[15,65,66,67,71,72,75,76,27],{},"There are three formats supported: ",[68,69,70],"code",{},"\"plaintext\"",", ",[68,73,74],{},"\"raw\"",", and ",[68,77,78],{},"\"json\"",[15,80,81,82,84,85,87,88,91],{},"For the ",[68,83,74],{}," format, the payload is read as raw bytes and added directly to the\ntable. In the ",[68,86,70],{}," format, the payload is decoded from UTF-8 and stored as\nplain text. In both cases, the table will have a ",[68,89,90],{},"\"data\""," column representing\nthe payload.",[15,93,94,95,97,98,101],{},"If ",[68,96,78],{}," is chosen, the connector parses the message payload as JSON\nand creates table columns based on the schema provided in the ",[68,99,100],{},"schema"," parameter.",[15,103,104,107,108,111,112,115,116,119,120,123,124,27],{},[18,105,106],{},"Application properties (headers)."," When ",[68,109,110],{},"with_metadata=True",", the\n",[68,113,114],{},"_metadata"," column includes ",[68,117,118],{},"application_properties"," — a dict of all\nAMQP 1.0 application properties set by the writer. This is consistent with\nhow ",[68,121,122],{},"pw.io.kafka.read()"," exposes Kafka headers in ",[68,125,114],{},[15,127,128,131],{},[18,129,130],{},"Persistence."," When persistence is enabled, the connector saves the current\nstream offset (a single integer) to the snapshot. On restart, it resumes from\nthe saved offset, so already-processed messages are not re-read.",[133,134,135,435],"ul",{},[136,137,138,141],"li",{},[18,139,140],{},"Parameters",[133,142,143,156,164,185,210,238,250,277,347,379,392,402,412,429],{},[136,144,145,148,149,152,153,27],{},[18,146,147],{},"uri"," (",[68,150,151],{},"str",") – The URI of the RabbitMQ server with Streams enabled, e.g.\n",[68,154,155],{},"\"rabbitmq-stream://guest:guest@localhost:5552\"",[136,157,158,148,161,163],{},[18,159,160],{},"stream_name",[68,162,151],{},") – The name of the RabbitMQ stream to read data from. The stream\nmust already exist on the server.",[136,165,166,148,168,171,172,178,179,182,183,27],{},[18,167,100],{},[68,169,170],{},"type","[",[23,173,175],{"href":174},"/developers/api-docs/pathway#pathway.Schema",[68,176,177],{},"Schema","] | ",[68,180,181],{},"None",") – The table schema, used only when the format is set to ",[68,184,78],{},[136,186,187,148,190,171,193,71,196,71,199,202,203,71,205,207,208,27],{},[18,188,189],{},"format",[68,191,192],{},"Literal",[68,194,195],{},"'plaintext'",[68,197,198],{},"'raw'",[68,200,201],{},"'json'","]) – The input data format, which can be ",[68,204,74],{},[68,206,70],{},", or\n",[68,209,78],{},[136,211,212,148,215,171,217,71,220,223,224,227,228,231,232,234,235,237],{},[18,213,214],{},"mode",[68,216,192],{},[68,218,219],{},"'streaming'",[68,221,222],{},"'static'","]) – The reading mode, which can be ",[68,225,226],{},"\"streaming\""," or ",[68,229,230],{},"\"static\"",". In\n",[68,233,226],{}," mode, the connector reads messages continuously. In\n",[68,236,230],{}," mode, it reads all existing messages and then stops.",[136,239,240,148,243,246,247,249],{},[18,241,242],{},"autocommit_duration_ms",[68,244,245],{},"int"," | ",[68,248,181],{},") – The time interval (in milliseconds) between commits.\nAfter this time, the updates received by the connector are committed and\nadded to Pathway’s computation graph.",[136,251,252,148,255,171,258,71,260,178,262,264,265,267,268,271,272,27],{},[18,253,254],{},"json_field_paths",[68,256,257],{},"dict",[68,259,151],{},[68,261,151],{},[68,263,181],{},") – For the ",[68,266,78],{}," format, this allows mapping field names to\npaths within the JSON structure. Use the format ",[68,269,270],{},"\u003Cfield_name>: \u003Cpath>","\nwhere the path follows the\n",[23,273,276],{"href":274,"rel":275},"https://www.rfc-editor.org/rfc/rfc6901",[58],"JSON Pointer (RFC 6901)",[136,278,279,148,282,285,286,289,290,292,293,71,296,298,299,71,302,71,305,308,309,71,312,71,315,71,318,71,321,324,325,327,328,334,335,338,339,343,344,27],{},[18,280,281],{},"with_metadata",[68,283,284],{},"bool",") – If ",[68,287,288],{},"True",", adds a ",[68,291,114],{}," column containing a JSON dict\nwith ",[68,294,295],{},"offset",[68,297,160],{},", AMQP 1.0 message properties when\navailable (",[68,300,301],{},"message_id",[68,303,304],{},"correlation_id",[68,306,307],{},"content_type",",\n",[68,310,311],{},"content_encoding",[68,313,314],{},"subject",[68,316,317],{},"reply_to",[68,319,320],{},"priority",[68,322,323],{},"durable","),\nand ",[68,326,118],{}," — a dict of string key-value pairs\ncontaining the AMQP application properties set by the writer. Values\nproduced by ",[23,329,331],{"href":330},"/developers/api-docs/pathway-io-rabbitmq#pathway.io.rabbitmq.write",[68,332,333],{},"write()"," are JSON-encoded strings (see ",[68,336,337],{},"headers","\nparameter of ",[23,340,341],{"href":330},[68,342,333],{},"), so they can be parsed back with\n",[68,345,346],{},"json.loads",[136,348,349,148,352,171,354,71,357,71,360,363,364,367,368,371,372,375,376,27],{},[18,350,351],{},"start_from",[68,353,192],{},[68,355,356],{},"'beginning'",[68,358,359],{},"'end'",[68,361,362],{},"'timestamp'","]) – Where to start reading from. ",[68,365,366],{},"\"beginning\""," starts from the\nfirst message in the stream. ",[68,369,370],{},"\"end\""," skips all existing messages and only\nreads new ones arriving after the reader starts. ",[68,373,374],{},"\"timestamp\""," starts\nfrom messages at or after the time given in ",[68,377,378],{},"start_from_timestamp_ms",[136,380,381,148,383,246,385,387,388,391],{},[18,382,378],{},[68,384,245],{},[68,386,181],{},") – Timestamp in milliseconds since epoch. Required when\n",[68,389,390],{},"start_from=\"timestamp\"",", must not be set otherwise.",[136,393,394,148,397,246,399,401],{},[18,395,396],{},"name",[68,398,151],{},[68,400,181],{},") – A unique name for the connector. If provided, this name will be used in\nlogs and monitoring dashboards. Additionally, if persistence is enabled, it\nwill be used as the name for the snapshot that stores the connector’s progress.",[136,403,404,148,407,246,409,411],{},[18,405,406],{},"max_backlog_size",[68,408,245],{},[68,410,181],{},") – Limit on the number of entries read from the input source and\nkept in processing at any moment.",[136,413,414,148,417,246,423,425,426,428],{},[18,415,416],{},"tls_settings",[23,418,420],{"href":419},"/developers/api-docs/pathway-io#pathway.io.TLSSettings",[68,421,422],{},"TLSSettings",[68,424,181],{},") – TLS connection settings. Use ",[68,427,422],{}," to configure\nroot certificates, client certificates, and verification mode.",[136,430,431,434],{},[18,432,433],{},"debug_data"," – Static data replacing original one when debug mode is active.",[136,436,437,440,443,447],{},[18,438,439],{},"Returns",[441,442],"br",{},[444,445,446],"em",{},"Table"," – The table read.",[15,449,450],{},"Example:",[15,452,453,454,457,458,461],{},"Read messages in raw format (the default). The table will have ",[68,455,456],{},"key"," and ",[68,459,460],{},"data","\ncolumns:",[463,464,469],"pre",{"className":465,"code":466,"language":467,"meta":468,"style":468},"language-python shiki shiki-themes material-theme-palenight","import pathway as pw\ntable = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n)\n","python","",[68,470,471,489,521,536,548],{"__ignoreMap":468},[37,472,475,479,483,486],{"class":473,"line":474},"line",1,[37,476,478],{"class":477},"s6cf3","import",[37,480,482],{"class":481},"s0W1g"," pathway ",[37,484,485],{"class":477},"as",[37,487,488],{"class":481}," pw\n",[37,490,492,495,499,502,504,508,510,513,515,518],{"class":473,"line":491},2,[37,493,494],{"class":481},"table ",[37,496,498],{"class":497},"sAklC","=",[37,500,501],{"class":481}," pw",[37,503,27],{"class":497},[37,505,507],{"class":506},"s-wAU","io",[37,509,27],{"class":497},[37,511,512],{"class":506},"rabbitmq",[37,514,27],{"class":497},[37,516,34],{"class":517},"sdLwU",[37,519,520],{"class":497},"(\n",[37,522,524,527,531,534],{"class":473,"line":523},3,[37,525,526],{"class":497},"    \"",[37,528,530],{"class":529},"sfyAc","rabbitmq-stream://guest:guest@localhost:5552",[37,532,533],{"class":497},"\"",[37,535,308],{"class":497},[37,537,539,541,544,546],{"class":473,"line":538},4,[37,540,526],{"class":497},[37,542,543],{"class":529},"events",[37,545,533],{"class":497},[37,547,308],{"class":497},[37,549,551],{"class":473,"line":550},5,[37,552,553],{"class":497},")\n",[15,555,556],{},"Read messages as UTF-8 plaintext:",[463,558,560],{"className":465,"code":559,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    format=\"plaintext\",\n)\n",[68,561,562,584,594,604,621],{"__ignoreMap":468},[37,563,564,566,568,570,572,574,576,578,580,582],{"class":473,"line":474},[37,565,494],{"class":481},[37,567,498],{"class":497},[37,569,501],{"class":481},[37,571,27],{"class":497},[37,573,507],{"class":506},[37,575,27],{"class":497},[37,577,512],{"class":506},[37,579,27],{"class":497},[37,581,34],{"class":517},[37,583,520],{"class":497},[37,585,586,588,590,592],{"class":473,"line":491},[37,587,526],{"class":497},[37,589,530],{"class":529},[37,591,533],{"class":497},[37,593,308],{"class":497},[37,595,596,598,600,602],{"class":473,"line":523},[37,597,526],{"class":497},[37,599,543],{"class":529},[37,601,533],{"class":497},[37,603,308],{"class":497},[37,605,606,610,612,614,617,619],{"class":473,"line":538},[37,607,609],{"class":608},"s7ZW3","    format",[37,611,498],{"class":497},[37,613,533],{"class":497},[37,615,616],{"class":529},"plaintext",[37,618,533],{"class":497},[37,620,308],{"class":497},[37,622,623],{"class":473,"line":550},[37,624,553],{"class":497},[15,626,627],{},"Read and parse JSON messages with a schema:",[463,629,631],{"className":465,"code":630,"language":467,"meta":468,"style":468},"class InputSchema(pw.Schema):\n    owner: str\n    pet: str\n",[68,632,633,655,666],{"__ignoreMap":468},[37,634,635,639,643,645,648,650,652],{"class":473,"line":474},[37,636,638],{"class":637},"sJ14y","class",[37,640,642],{"class":641},"s5Dmg"," InputSchema",[37,644,35],{"class":497},[37,646,647],{"class":641},"pw",[37,649,27],{"class":497},[37,651,177],{"class":641},[37,653,654],{"class":497},"):\n",[37,656,657,660,663],{"class":473,"line":491},[37,658,659],{"class":481},"    owner",[37,661,662],{"class":497},":",[37,664,665],{"class":641}," str\n",[37,667,668,671,673],{"class":473,"line":523},[37,669,670],{"class":481},"    pet",[37,672,662],{"class":497},[37,674,665],{"class":641},[463,676,678],{"className":465,"code":677,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    format=\"json\",\n    schema=InputSchema,\n)\n",[68,679,680,702,712,722,737,749],{"__ignoreMap":468},[37,681,682,684,686,688,690,692,694,696,698,700],{"class":473,"line":474},[37,683,494],{"class":481},[37,685,498],{"class":497},[37,687,501],{"class":481},[37,689,27],{"class":497},[37,691,507],{"class":506},[37,693,27],{"class":497},[37,695,512],{"class":506},[37,697,27],{"class":497},[37,699,34],{"class":517},[37,701,520],{"class":497},[37,703,704,706,708,710],{"class":473,"line":491},[37,705,526],{"class":497},[37,707,530],{"class":529},[37,709,533],{"class":497},[37,711,308],{"class":497},[37,713,714,716,718,720],{"class":473,"line":523},[37,715,526],{"class":497},[37,717,543],{"class":529},[37,719,533],{"class":497},[37,721,308],{"class":497},[37,723,724,726,728,730,733,735],{"class":473,"line":538},[37,725,609],{"class":608},[37,727,498],{"class":497},[37,729,533],{"class":497},[37,731,732],{"class":529},"json",[37,734,533],{"class":497},[37,736,308],{"class":497},[37,738,739,742,744,747],{"class":473,"line":550},[37,740,741],{"class":608},"    schema",[37,743,498],{"class":497},[37,745,746],{"class":517},"InputSchema",[37,748,308],{"class":497},[37,750,752],{"class":473,"line":751},6,[37,753,553],{"class":497},[15,755,756],{},"Extract nested JSON fields using JSON Pointer paths:",[463,758,760],{"className":465,"code":759,"language":467,"meta":468,"style":468},"class InputSchema(pw.Schema):\n    name: str\n    age: int\n",[68,761,762,778,787],{"__ignoreMap":468},[37,763,764,766,768,770,772,774,776],{"class":473,"line":474},[37,765,638],{"class":637},[37,767,642],{"class":641},[37,769,35],{"class":497},[37,771,647],{"class":641},[37,773,27],{"class":497},[37,775,177],{"class":641},[37,777,654],{"class":497},[37,779,780,783,785],{"class":473,"line":491},[37,781,782],{"class":481},"    name",[37,784,662],{"class":497},[37,786,665],{"class":641},[37,788,789,792,794],{"class":473,"line":523},[37,790,791],{"class":481},"    age",[37,793,662],{"class":497},[37,795,796],{"class":641}," int\n",[463,798,800],{"className":465,"code":799,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    format=\"json\",\n    schema=InputSchema,\n    json_field_paths={\"name\": \"/user/name\", \"age\": \"/user/age\"},\n)\n",[68,801,802,824,834,844,858,868,914],{"__ignoreMap":468},[37,803,804,806,808,810,812,814,816,818,820,822],{"class":473,"line":474},[37,805,494],{"class":481},[37,807,498],{"class":497},[37,809,501],{"class":481},[37,811,27],{"class":497},[37,813,507],{"class":506},[37,815,27],{"class":497},[37,817,512],{"class":506},[37,819,27],{"class":497},[37,821,34],{"class":517},[37,823,520],{"class":497},[37,825,826,828,830,832],{"class":473,"line":491},[37,827,526],{"class":497},[37,829,530],{"class":529},[37,831,533],{"class":497},[37,833,308],{"class":497},[37,835,836,838,840,842],{"class":473,"line":523},[37,837,526],{"class":497},[37,839,543],{"class":529},[37,841,533],{"class":497},[37,843,308],{"class":497},[37,845,846,848,850,852,854,856],{"class":473,"line":538},[37,847,609],{"class":608},[37,849,498],{"class":497},[37,851,533],{"class":497},[37,853,732],{"class":529},[37,855,533],{"class":497},[37,857,308],{"class":497},[37,859,860,862,864,866],{"class":473,"line":550},[37,861,741],{"class":608},[37,863,498],{"class":497},[37,865,746],{"class":517},[37,867,308],{"class":497},[37,869,870,873,876,878,880,882,884,887,890,892,895,897,900,902,904,906,909,911],{"class":473,"line":751},[37,871,872],{"class":608},"    json_field_paths",[37,874,875],{"class":497},"={",[37,877,533],{"class":497},[37,879,396],{"class":529},[37,881,533],{"class":497},[37,883,662],{"class":497},[37,885,886],{"class":497}," \"",[37,888,889],{"class":529},"/user/name",[37,891,533],{"class":497},[37,893,894],{"class":497},",",[37,896,886],{"class":497},[37,898,899],{"class":529},"age",[37,901,533],{"class":497},[37,903,662],{"class":497},[37,905,886],{"class":497},[37,907,908],{"class":529},"/user/age",[37,910,533],{"class":497},[37,912,913],{"class":497},"},\n",[37,915,917],{"class":473,"line":916},7,[37,918,553],{"class":497},[15,920,921],{},"Read in static mode (bounded snapshot):",[463,923,925],{"className":465,"code":924,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    mode=\"static\",\n)\n",[68,926,927,949,959,969,985],{"__ignoreMap":468},[37,928,929,931,933,935,937,939,941,943,945,947],{"class":473,"line":474},[37,930,494],{"class":481},[37,932,498],{"class":497},[37,934,501],{"class":481},[37,936,27],{"class":497},[37,938,507],{"class":506},[37,940,27],{"class":497},[37,942,512],{"class":506},[37,944,27],{"class":497},[37,946,34],{"class":517},[37,948,520],{"class":497},[37,950,951,953,955,957],{"class":473,"line":491},[37,952,526],{"class":497},[37,954,530],{"class":529},[37,956,533],{"class":497},[37,958,308],{"class":497},[37,960,961,963,965,967],{"class":473,"line":523},[37,962,526],{"class":497},[37,964,543],{"class":529},[37,966,533],{"class":497},[37,968,308],{"class":497},[37,970,971,974,976,978,981,983],{"class":473,"line":538},[37,972,973],{"class":608},"    mode",[37,975,498],{"class":497},[37,977,533],{"class":497},[37,979,980],{"class":529},"static",[37,982,533],{"class":497},[37,984,308],{"class":497},[37,986,987],{"class":473,"line":550},[37,988,553],{"class":497},[15,990,991],{},"Read only new messages, ignoring all existing data in the stream:",[463,993,995],{"className":465,"code":994,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    start_from=\"end\",\n)\n",[68,996,997,1019,1029,1039,1055],{"__ignoreMap":468},[37,998,999,1001,1003,1005,1007,1009,1011,1013,1015,1017],{"class":473,"line":474},[37,1000,494],{"class":481},[37,1002,498],{"class":497},[37,1004,501],{"class":481},[37,1006,27],{"class":497},[37,1008,507],{"class":506},[37,1010,27],{"class":497},[37,1012,512],{"class":506},[37,1014,27],{"class":497},[37,1016,34],{"class":517},[37,1018,520],{"class":497},[37,1020,1021,1023,1025,1027],{"class":473,"line":491},[37,1022,526],{"class":497},[37,1024,530],{"class":529},[37,1026,533],{"class":497},[37,1028,308],{"class":497},[37,1030,1031,1033,1035,1037],{"class":473,"line":523},[37,1032,526],{"class":497},[37,1034,543],{"class":529},[37,1036,533],{"class":497},[37,1038,308],{"class":497},[37,1040,1041,1044,1046,1048,1051,1053],{"class":473,"line":538},[37,1042,1043],{"class":608},"    start_from",[37,1045,498],{"class":497},[37,1047,533],{"class":497},[37,1049,1050],{"class":529},"end",[37,1052,533],{"class":497},[37,1054,308],{"class":497},[37,1056,1057],{"class":473,"line":550},[37,1058,553],{"class":497},[15,1060,1061],{},"Read with persistence enabled, so progress is saved across restarts:",[463,1063,1065],{"className":465,"code":1064,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    format=\"json\",\n    schema=InputSchema,\n    name=\"my-rabbitmq-source\",\n)\n# Then run with persistence:\n# pw.run(persistence_config=pw.persistence.Config(\n#     pw.persistence.Backend.filesystem(\"./PStorage\")\n# ))\n",[68,1066,1067,1089,1099,1109,1123,1133,1148,1152,1159,1165,1171],{"__ignoreMap":468},[37,1068,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087],{"class":473,"line":474},[37,1070,494],{"class":481},[37,1072,498],{"class":497},[37,1074,501],{"class":481},[37,1076,27],{"class":497},[37,1078,507],{"class":506},[37,1080,27],{"class":497},[37,1082,512],{"class":506},[37,1084,27],{"class":497},[37,1086,34],{"class":517},[37,1088,520],{"class":497},[37,1090,1091,1093,1095,1097],{"class":473,"line":491},[37,1092,526],{"class":497},[37,1094,530],{"class":529},[37,1096,533],{"class":497},[37,1098,308],{"class":497},[37,1100,1101,1103,1105,1107],{"class":473,"line":523},[37,1102,526],{"class":497},[37,1104,543],{"class":529},[37,1106,533],{"class":497},[37,1108,308],{"class":497},[37,1110,1111,1113,1115,1117,1119,1121],{"class":473,"line":538},[37,1112,609],{"class":608},[37,1114,498],{"class":497},[37,1116,533],{"class":497},[37,1118,732],{"class":529},[37,1120,533],{"class":497},[37,1122,308],{"class":497},[37,1124,1125,1127,1129,1131],{"class":473,"line":550},[37,1126,741],{"class":608},[37,1128,498],{"class":497},[37,1130,746],{"class":517},[37,1132,308],{"class":497},[37,1134,1135,1137,1139,1141,1144,1146],{"class":473,"line":751},[37,1136,782],{"class":608},[37,1138,498],{"class":497},[37,1140,533],{"class":497},[37,1142,1143],{"class":529},"my-rabbitmq-source",[37,1145,533],{"class":497},[37,1147,308],{"class":497},[37,1149,1150],{"class":473,"line":916},[37,1151,553],{"class":497},[37,1153,1155],{"class":473,"line":1154},8,[37,1156,1158],{"class":1157},"saEQR","# Then run with persistence:\n",[37,1160,1162],{"class":473,"line":1161},9,[37,1163,1164],{"class":1157},"# pw.run(persistence_config=pw.persistence.Config(\n",[37,1166,1168],{"class":473,"line":1167},10,[37,1169,1170],{"class":1157},"#     pw.persistence.Backend.filesystem(\"./PStorage\")\n",[37,1172,1174],{"class":473,"line":1173},11,[37,1175,1176],{"class":1157},"# ))\n",[15,1178,1179],{},"Read with metadata column:",[463,1181,1183],{"className":465,"code":1182,"language":467,"meta":468,"style":468},"table = pw.io.rabbitmq.read(\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    with_metadata=True,\n)\n",[68,1184,1185,1207,1217,1227,1235],{"__ignoreMap":468},[37,1186,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205],{"class":473,"line":474},[37,1188,494],{"class":481},[37,1190,498],{"class":497},[37,1192,501],{"class":481},[37,1194,27],{"class":497},[37,1196,507],{"class":506},[37,1198,27],{"class":497},[37,1200,512],{"class":506},[37,1202,27],{"class":497},[37,1204,34],{"class":517},[37,1206,520],{"class":497},[37,1208,1209,1211,1213,1215],{"class":473,"line":491},[37,1210,526],{"class":497},[37,1212,530],{"class":529},[37,1214,533],{"class":497},[37,1216,308],{"class":497},[37,1218,1219,1221,1223,1225],{"class":473,"line":523},[37,1220,526],{"class":497},[37,1222,543],{"class":529},[37,1224,533],{"class":497},[37,1226,308],{"class":497},[37,1228,1229,1232],{"class":473,"line":538},[37,1230,1231],{"class":608},"    with_metadata",[37,1233,1234],{"class":497},"=True,\n",[37,1236,1237],{"class":473,"line":550},[37,1238,553],{"class":497},[29,1240,1242,35,1245,42],{"id":1241},"pathway.io.rabbitmq.write",[18,1243,1244],{},"write",[37,1246,1248],{"className":1247},[40],"table, uri, stream_name, *, format='json', value=None, headers=None, name=None, sort_by=None, tls_settings=None",[15,1250,1251,1257],{},[23,1252,1255],{"className":1253,"href":1254},[48],"https://github.com/pathwaycom/pathway/tree/main/python/pathway/io/rabbitmq/__init__.py#L249-L387",[37,1256,52],{},"Writes data into the specified RabbitMQ stream.",[15,1259,1260,1261,1264,1265,1268,1269,227,1272,1275,1276,1278],{},"The produced messages consist of the payload, corresponding to the values of the\ntable that are serialized according to the chosen format. Two AMQP 1.0 application\nproperties are always added: ",[68,1262,1263],{},"pathway_time"," (processing time) and ",[68,1266,1267],{},"pathway_diff","\n(either ",[68,1270,1271],{},"1",[68,1273,1274],{},"-1","). If ",[68,1277,337],{}," parameter is used, additional properties\ncan be added to the message.",[15,1280,1281,1282,308,1284,457,1286,27],{},"There are several serialization formats supported: ",[68,1283,78],{},[68,1285,70],{},[68,1287,74],{},[15,1289,1290,1291,227,1293,1295,1296,101],{},"If the selected format is either ",[68,1292,70],{},[68,1294,74],{},", you also need to\nspecify which column of the table corresponds to the payload of the produced message.\nIt can be done by providing the ",[68,1297,1298],{},"value",[133,1300,1301],{},[136,1302,1303,1305],{},[18,1304,140],{},[133,1306,1307,1318,1326,1339,1359,1375,1413,1422,1436],{},[136,1308,1309,148,1312,1317],{},[18,1310,1311],{},"table",[23,1313,1315],{"href":1314},"/developers/api-docs/pathway-table#pathway.Table",[68,1316,446],{},") – The table for output.",[136,1319,1320,148,1322,152,1324,27],{},[18,1321,147],{},[68,1323,151],{},[68,1325,155],{},[136,1327,1328,148,1330,246,1332,1338],{},[18,1329,160],{},[68,1331,151],{},[23,1333,1335],{"href":1334},"/developers/api-docs/pathway#pathway.ColumnReference",[68,1336,1337],{},"ColumnReference",") – The RabbitMQ stream where data will be written. The stream must\nalready exist on the server. Can be a column reference for dynamic\nrouting — each row will be written to the stream named by that column’s\nvalue. All target streams must be pre-created.",[136,1340,1341,148,1343,171,1345,71,1347,71,1349,1351,1352,308,1354,457,1356,1358],{},[18,1342,189],{},[68,1344,192],{},[68,1346,201],{},[68,1348,195],{},[68,1350,198],{},"]) – Format in which the data is put into RabbitMQ. Currently ",[68,1353,78],{},[68,1355,70],{},[68,1357,74],{}," are supported.",[136,1360,1361,148,1363,246,1367,1369,1370,227,1372,1374],{},[18,1362,1298],{},[23,1364,1365],{"href":1334},[68,1366,1337],{},[68,1368,181],{},") – Reference to the column that should be used as a payload in the produced\nmessage in ",[68,1371,70],{},[68,1373,74],{}," format.",[136,1376,1377,148,1379,171,1382,171,1385,1389,1390,1393,1394,1397,1398,1401,1402,1405,1406,1409,1410,1412],{},[18,1378,337],{},[68,1380,1381],{},"Optional",[68,1383,1384],{},"Iterable",[23,1386,1387],{"href":1334},[68,1388,1337],{},"]]) – References to the table fields that must be provided as AMQP 1.0\napplication properties (analogous to Kafka headers). Values are\nserialized as AMQP strings using their JSON representation, following\nthe same encoding as ",[68,1391,1392],{},"pw.io.jsonlines.write()"," (e.g. ",[68,1395,1396],{},"42","\nfor an int, ",[68,1399,1400],{},"\"\"hello\"\""," for a string, ",[68,1403,1404],{},"null"," for None,\nbase64-encoded string for bytes). RabbitMQ Streams does not reliably\nconfirm messages with non-string application property values, so all\ntypes are JSON-encoded. On the reader side, header values are\navailable in ",[68,1407,1408],{},"_metadata.application_properties"," (when\n",[68,1411,110],{},").",[136,1414,1415,148,1417,246,1419,1421],{},[18,1416,396],{},[68,1418,151],{},[68,1420,181],{},") – A unique name for the connector. If provided, this name will be used in\nlogs and monitoring dashboards.",[136,1423,1424,148,1427,171,1429,171,1431,1435],{},[18,1425,1426],{},"sort_by",[68,1428,1381],{},[68,1430,1384],{},[23,1432,1433],{"href":1334},[68,1434,1337],{},"]]) – If specified, the output will be sorted in ascending order based on the\nvalues of the given columns within each minibatch.",[136,1437,1438,148,1440,246,1444,425,1446,428],{},[18,1439,416],{},[23,1441,1442],{"href":419},[68,1443,422],{},[68,1445,181],{},[68,1447,422],{},[15,1449,1450],{},"Examples:",[15,1452,1453,1454,1457],{},"Consider a RabbitMQ server with Streams enabled running locally on port ",[68,1455,1456],{},"5552",".\nFirst, create a Pathway table:",[463,1459,1461],{"className":465,"code":1460,"language":467,"meta":468,"style":468},"import pathway as pw\ntable = pw.debug.table_from_markdown('''\nage | owner | pet\n10  | Alice | dog\n9   | Bob   | cat\n8   | Alice | cat\n''')\n",[68,1462,1463,1473,1496,1501,1506,1511,1516],{"__ignoreMap":468},[37,1464,1465,1467,1469,1471],{"class":473,"line":474},[37,1466,478],{"class":477},[37,1468,482],{"class":481},[37,1470,485],{"class":477},[37,1472,488],{"class":481},[37,1474,1475,1477,1479,1481,1483,1486,1488,1491,1493],{"class":473,"line":491},[37,1476,494],{"class":481},[37,1478,498],{"class":497},[37,1480,501],{"class":481},[37,1482,27],{"class":497},[37,1484,1485],{"class":506},"debug",[37,1487,27],{"class":497},[37,1489,1490],{"class":517},"table_from_markdown",[37,1492,35],{"class":497},[37,1494,1495],{"class":497},"'''\n",[37,1497,1498],{"class":473,"line":523},[37,1499,1500],{"class":529},"age | owner | pet\n",[37,1502,1503],{"class":473,"line":538},[37,1504,1505],{"class":529},"10  | Alice | dog\n",[37,1507,1508],{"class":473,"line":550},[37,1509,1510],{"class":529},"9   | Bob   | cat\n",[37,1512,1513],{"class":473,"line":751},[37,1514,1515],{"class":529},"8   | Alice | cat\n",[37,1517,1518,1521],{"class":473,"line":916},[37,1519,1520],{"class":497},"'''",[37,1522,553],{"class":497},[15,1524,1525],{},"Write the table in JSON format. Each row is serialized as a JSON object:",[463,1527,1529],{"className":465,"code":1528,"language":467,"meta":468,"style":468},"pw.io.rabbitmq.write(\n    table,\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    format=\"json\",\n)\n",[68,1530,1531,1549,1556,1566,1576,1590],{"__ignoreMap":468},[37,1532,1533,1535,1537,1539,1541,1543,1545,1547],{"class":473,"line":474},[37,1534,647],{"class":481},[37,1536,27],{"class":497},[37,1538,507],{"class":506},[37,1540,27],{"class":497},[37,1542,512],{"class":506},[37,1544,27],{"class":497},[37,1546,1244],{"class":517},[37,1548,520],{"class":497},[37,1550,1551,1554],{"class":473,"line":491},[37,1552,1553],{"class":517},"    table",[37,1555,308],{"class":497},[37,1557,1558,1560,1562,1564],{"class":473,"line":523},[37,1559,526],{"class":497},[37,1561,530],{"class":529},[37,1563,533],{"class":497},[37,1565,308],{"class":497},[37,1567,1568,1570,1572,1574],{"class":473,"line":538},[37,1569,526],{"class":497},[37,1571,543],{"class":529},[37,1573,533],{"class":497},[37,1575,308],{"class":497},[37,1577,1578,1580,1582,1584,1586,1588],{"class":473,"line":550},[37,1579,609],{"class":608},[37,1581,498],{"class":497},[37,1583,533],{"class":497},[37,1585,732],{"class":529},[37,1587,533],{"class":497},[37,1589,308],{"class":497},[37,1591,1592],{"class":473,"line":751},[37,1593,553],{"class":497},[15,1595,1596,1597,1599,1600,1602,1603,1605],{},"Use the ",[68,1598,70],{}," format to send a single column as the message payload.\nWhen the table has more than one column, you must specify which column to use\nvia the ",[68,1601,1298],{}," parameter. Additional columns can be forwarded as AMQP\napplication properties using the ",[68,1604,337],{}," parameter:",[463,1607,1609],{"className":465,"code":1608,"language":467,"meta":468,"style":468},"pw.io.rabbitmq.write(\n    table,\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    \"events\",\n    format=\"plaintext\",\n    value=table.owner,\n    headers=[table.age, table.pet],\n)\n",[68,1610,1611,1629,1635,1645,1655,1669,1685,1712],{"__ignoreMap":468},[37,1612,1613,1615,1617,1619,1621,1623,1625,1627],{"class":473,"line":474},[37,1614,647],{"class":481},[37,1616,27],{"class":497},[37,1618,507],{"class":506},[37,1620,27],{"class":497},[37,1622,512],{"class":506},[37,1624,27],{"class":497},[37,1626,1244],{"class":517},[37,1628,520],{"class":497},[37,1630,1631,1633],{"class":473,"line":491},[37,1632,1553],{"class":517},[37,1634,308],{"class":497},[37,1636,1637,1639,1641,1643],{"class":473,"line":523},[37,1638,526],{"class":497},[37,1640,530],{"class":529},[37,1642,533],{"class":497},[37,1644,308],{"class":497},[37,1646,1647,1649,1651,1653],{"class":473,"line":538},[37,1648,526],{"class":497},[37,1650,543],{"class":529},[37,1652,533],{"class":497},[37,1654,308],{"class":497},[37,1656,1657,1659,1661,1663,1665,1667],{"class":473,"line":550},[37,1658,609],{"class":608},[37,1660,498],{"class":497},[37,1662,533],{"class":497},[37,1664,616],{"class":529},[37,1666,533],{"class":497},[37,1668,308],{"class":497},[37,1670,1671,1674,1676,1678,1680,1683],{"class":473,"line":751},[37,1672,1673],{"class":608},"    value",[37,1675,498],{"class":497},[37,1677,1311],{"class":517},[37,1679,27],{"class":497},[37,1681,1682],{"class":506},"owner",[37,1684,308],{"class":497},[37,1686,1687,1690,1693,1695,1697,1699,1701,1704,1706,1709],{"class":473,"line":916},[37,1688,1689],{"class":608},"    headers",[37,1691,1692],{"class":497},"=[",[37,1694,1311],{"class":517},[37,1696,27],{"class":497},[37,1698,899],{"class":506},[37,1700,894],{"class":497},[37,1702,1703],{"class":517}," table",[37,1705,27],{"class":497},[37,1707,1708],{"class":506},"pet",[37,1710,1711],{"class":497},"],\n",[37,1713,1714],{"class":473,"line":1154},[37,1715,553],{"class":497},[15,1717,1718],{},"Write each row to a different stream based on a column value (dynamic topics).\nAll target streams must already exist on the server:",[463,1720,1722],{"className":465,"code":1721,"language":467,"meta":468,"style":468},"table_with_targets = pw.debug.table_from_markdown('''\nvalue | target_stream\nhello | stream-a\nworld | stream-b\n''')\npw.io.rabbitmq.write(\n    table_with_targets,\n    \"rabbitmq-stream://guest:guest@localhost:5552\",\n    table_with_targets.target_stream,\n    format=\"json\",\n)\n",[68,1723,1724,1745,1750,1755,1760,1766,1784,1791,1801,1812,1826],{"__ignoreMap":468},[37,1725,1726,1729,1731,1733,1735,1737,1739,1741,1743],{"class":473,"line":474},[37,1727,1728],{"class":481},"table_with_targets ",[37,1730,498],{"class":497},[37,1732,501],{"class":481},[37,1734,27],{"class":497},[37,1736,1485],{"class":506},[37,1738,27],{"class":497},[37,1740,1490],{"class":517},[37,1742,35],{"class":497},[37,1744,1495],{"class":497},[37,1746,1747],{"class":473,"line":491},[37,1748,1749],{"class":529},"value | target_stream\n",[37,1751,1752],{"class":473,"line":523},[37,1753,1754],{"class":529},"hello | stream-a\n",[37,1756,1757],{"class":473,"line":538},[37,1758,1759],{"class":529},"world | stream-b\n",[37,1761,1762,1764],{"class":473,"line":550},[37,1763,1520],{"class":497},[37,1765,553],{"class":497},[37,1767,1768,1770,1772,1774,1776,1778,1780,1782],{"class":473,"line":751},[37,1769,647],{"class":481},[37,1771,27],{"class":497},[37,1773,507],{"class":506},[37,1775,27],{"class":497},[37,1777,512],{"class":506},[37,1779,27],{"class":497},[37,1781,1244],{"class":517},[37,1783,520],{"class":497},[37,1785,1786,1789],{"class":473,"line":916},[37,1787,1788],{"class":517},"    table_with_targets",[37,1790,308],{"class":497},[37,1792,1793,1795,1797,1799],{"class":473,"line":1154},[37,1794,526],{"class":497},[37,1796,530],{"class":529},[37,1798,533],{"class":497},[37,1800,308],{"class":497},[37,1802,1803,1805,1807,1810],{"class":473,"line":1161},[37,1804,1788],{"class":517},[37,1806,27],{"class":497},[37,1808,1809],{"class":506},"target_stream",[37,1811,308],{"class":497},[37,1813,1814,1816,1818,1820,1822,1824],{"class":473,"line":1167},[37,1815,609],{"class":608},[37,1817,498],{"class":497},[37,1819,533],{"class":497},[37,1821,732],{"class":529},[37,1823,533],{"class":497},[37,1825,308],{"class":497},[37,1827,1828],{"class":473,"line":1173},[37,1829,553],{"class":497},[1831,1832,1833],"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 .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}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 .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s7ZW3, html code.shiki .s7ZW3{--shiki-default:#BABED8;--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 .saEQR, html code.shiki .saEQR{--shiki-default:#676E95;--shiki-default-font-style:italic}",{"title":468,"searchDepth":491,"depth":491,"links":1835},[1836,1838],{"id":31,"depth":491,"text":1837},"read(uri, stream_name, *, schema=None, format='raw', mode='streaming', autocommit_duration_ms=1500, json_field_paths=None, with_metadata=False, start_from='beginning', start_from_timestamp_ms=None, name=None, max_backlog_size=None, tls_settings=None, debug_data=None, **kwargs)",{"id":1241,"depth":491,"text":1839},"write(table, uri, stream_name, *, format='json', value=None, headers=None, name=None, sort_by=None, tls_settings=None)","This module is available when using one of the following licenses only: Pathway Scale, Pathway Enterprise.","md",{"sidebar":1843},"API",true,"/developers/api-docs/pathway-io/rabbitmq",{"title":5,"description":1840},{"loc":1845},"2.developers/5.API-docs/7.pathway-io/410.rabbitmq","tRu-CmHP_7mfrjLfIr9iowmcZUxSMVr2Jhk89d5YnRE",[1851],{"title":1852,"path":1853,"stem":1854,"children":1855,"page":1873},"Developers","/developers","2.developers",[1856,2714,3032],{"title":1857,"path":1858,"stem":1859,"children":1860,"page":1873},"User Guide","/developers/user-guide","2.developers/4.user-guide",[1861,1916,2171,2292,2370,2486,2618,2634,2693],{"title":1862,"meta":1863,"icon":1864,"path":1865,"stem":1866,"children":1867,"page":1873},"Introduction",{"icon":1864},"heroicons:book-open","/developers/user-guide/introduction","2.developers/4.user-guide/10.introduction",[1868,1874,1879,1884,1889,1894,1899,1904,1909],{"title":1869,"path":1870,"stem":1871,"meta":1872},"Welcome","/developers/user-guide/introduction/welcome","2.developers/4.user-guide/10.introduction/10.welcome",{"heading":1873,"toc":1873},false,{"title":1875,"path":1876,"stem":1877,"meta":1878},"Installation","/developers/user-guide/introduction/installation","2.developers/4.user-guide/10.introduction/20.installation",{"heading":1873,"toc":1873},{"title":1880,"path":1881,"stem":1882,"meta":1883},"Overview","/developers/user-guide/introduction/pathway-overview","2.developers/4.user-guide/10.introduction/30.pathway-overview",{},{"title":1885,"path":1886,"stem":1887,"meta":1888},"Starting Examples","/developers/user-guide/introduction/first_realtime_app_with_pathway","2.developers/4.user-guide/10.introduction/40.first_realtime_app_with_pathway",{},{"title":1890,"path":1891,"stem":1892,"meta":1893},"Core Concepts","/developers/user-guide/introduction/concepts","2.developers/4.user-guide/10.introduction/50.concepts",{},{"title":1895,"path":1896,"stem":1897,"meta":1898},"Why Pathway","/developers/user-guide/introduction/why-pathway","2.developers/4.user-guide/10.introduction/60.why-pathway",{},{"title":1900,"path":1901,"stem":1902,"meta":1903},"Licensing Guide","/developers/user-guide/introduction/licensing-guide","2.developers/4.user-guide/10.introduction/65.licensing-guide",{"heading":1873,"toc":1873},{"title":1905,"path":1906,"stem":1907,"meta":1908},"Streaming and Static Modes","/developers/user-guide/introduction/streaming-and-static-modes","2.developers/4.user-guide/10.introduction/70.streaming-and-static-modes",{},{"title":1910,"path":1911,"stem":1912,"meta":1913},"Batch Processing in Python","/developers/user-guide/introduction/batch-processing","2.developers/4.user-guide/10.introduction/80.batch-processing",{"thumbnail":1914,"thumbnailFit":1915},"/assets/content/documentation/pathway-batch.png","contain",{"title":1917,"path":1918,"stem":1919,"children":1920,"page":1873},"Connect","/developers/user-guide/connect","2.developers/4.user-guide/20.connect",[1921,1931,1936,1942,1947,1952,1965,1975,1980,2001],{"title":1922,"path":1923,"stem":1924,"meta":1925},"Basic Data Types","/developers/user-guide/connect/datatypes","2.developers/4.user-guide/20.connect/20.datatypes",{"date":1926,"tags":1927,"keywords":1929,"notebook_export_path":1930},"2024-01-26",[1928,1311],"tutorial",[170,100],"notebooks/tutorials/basic_datatypes.ipynb",{"title":1932,"path":1933,"stem":1934,"meta":1935},"Connectors in Pathway","/developers/user-guide/connect/connectors-in-pathway","2.developers/4.user-guide/20.connect/30.connectors-in-pathway",{},{"title":1937,"path":1938,"stem":1939,"meta":1940},"Connectors list","/developers/user-guide/connect/pathway-connectors","2.developers/4.user-guide/20.connect/35.pathway-connectors",{"layout":1941,"aside":1844,"toc":1873,"single":1844},"default",{"title":1943,"path":1944,"stem":1945,"meta":1946},"Defining Schema","/developers/user-guide/connect/schema","2.developers/4.user-guide/20.connect/40.schema",{},{"title":1948,"path":1949,"stem":1950,"meta":1951},"Generate Data Streams with the demo Module","/developers/user-guide/connect/artificial-streams","2.developers/4.user-guide/20.connect/50.artificial-streams",{},{"title":1953,"path":1954,"stem":1955,"meta":1956},"Automatic Generation of Schema Class","/developers/user-guide/connect/schema-generation","2.developers/4.user-guide/20.connect/60.schema-generation",{"date":1957,"thumbnail":1958,"tags":1960,"keywords":1961,"notebook_export_path":1964},"2023-11-08",{"src":1959},"/assets/content/blog/th-custom-connectors.png",[1928,1311],[100,170,1962,1963],"JSON","connectors","notebooks/tutorials/schema-generation.ipynb",{"title":1966,"path":1967,"stem":1968,"meta":1969},"Dealing with JSON Data Type","/developers/user-guide/connect/json_type","2.developers/4.user-guide/20.connect/70.json_type",{"date":1970,"thumbnail":1971,"tags":1972,"keywords":1973,"notebook_export_path":1974},"2023-12-22","/assets/content/blog/th-json.png",[1928,1311],[1962,170,100],"notebooks/tutorials/json_type.ipynb",{"title":1976,"path":1977,"stem":1978,"meta":1979},"Switching from Batch to Streaming","/developers/user-guide/connect/switch-from-batch-to-streaming","2.developers/4.user-guide/20.connect/80.switch-from-batch-to-streaming",{},{"title":1981,"path":1982,"stem":1983,"meta":1984},"Live Web Scraping","/developers/user-guide/connect/python-web-scraping","2.developers/4.user-guide/20.connect/90.python-web-scraping",{"date":1985,"tags":1986,"keywords":1987,"tech_icons":1995,"thumbnail":1997,"deployment_tag":1998,"docker_github_link":2000},"2025-03-13",[1928,1963],[1988,1989,1990,1991,1992,1993,1994],"connector","scraping","WEB","Python","input","streaming","web scraping",[1996],"streamline:web","/assets/content/showcases/web_scraping/web-scraping-th.png",[1999],"docker","https://github.com/pathwaycom/pathway/tree/main/examples/projects/web-scraping",{"title":2002,"path":2003,"stem":2004,"children":2005,"page":1873},"Connectors","/developers/user-guide/connect/connectors","2.developers/4.user-guide/20.connect/99.connectors",[2006,2021,2033,2045,2054,2073,2084,2097,2105,2117,2127,2136,2148,2161],{"title":2007,"path":2008,"stem":2009,"meta":2010},"File System Connector","/developers/user-guide/connect/connectors/fs-connector","2.developers/4.user-guide/20.connect/99.connectors/05.fs-connector",{"date":1926,"tags":2011,"tech_icons":2012,"deployment_tag":2014,"keywords":2016,"notebook_export_path":2020},[1928,1311],[2013],"lets-icons:file-fill",[2015,1999],"jupyter",[1988,2017,2018,732,1992,2019,980,1993],"file system","csv","output","notebooks/tutorials/fs_connector.ipynb",{"title":2022,"path":2023,"stem":2024,"meta":2025},"CSV connectors","/developers/user-guide/connect/connectors/csv_connectors","2.developers/4.user-guide/20.connect/99.connectors/10.csv_connectors",{"date":2026,"thumbnail":2027,"tags":2028,"keywords":2029,"tech_icons":2031},"2023-01-12","/assets/content/blog/th-csv-connectors.png",[1928,1963],[1988,2030,1992,2019,980,1993],"CSV",[2032],"mdi:file-csv",{"title":2034,"path":2035,"stem":2036,"meta":2037},"Sending alerts to Slack","/developers/user-guide/connect/connectors/slack_send_alerts","2.developers/4.user-guide/20.connect/99.connectors/100.slack_send_alerts",{"date":2038,"tags":2039,"keywords":2040,"tech_icons":2043},"2024-02-16",[1928,1963],[1988,2041,2042,2019,1993],"Slack","alerts",[2044],"mdi:slack",{"title":2046,"path":2047,"stem":2048,"meta":2049},"Airbyte connectors","/developers/user-guide/connect/connectors/airbyte-connectors","2.developers/4.user-guide/20.connect/99.connectors/110.airbyte-connectors",{"tags":2050,"keywords":2051},[1928,1963],[1988,2052,2053,1992,980,1993],"Airbyte","cloud",{"title":2055,"path":2056,"stem":2057,"meta":2058},"Using Pathway Debezium Connector for MongoDB","/developers/user-guide/connect/connectors/mongodb-debezium","2.developers/4.user-guide/20.connect/99.connectors/115.mongodb-debezium",{"date":2059,"tags":2060,"keywords":2061,"tech_icons":2069,"deployment_tag":2071,"docker_github_link":2072,"hideInConnectorList":1844},"2024-10-30",[1928,1963],[1988,2062,2063,2064,2065,2066,2067,2068,1992,2019,1993],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[2070],"material-symbols-light:database",[1999],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/debezium-mongodb-example",{"title":2074,"path":2075,"stem":2076,"meta":2077},"JSON Lines connectors","/developers/user-guide/connect/connectors/jsonlines-connector","2.developers/4.user-guide/20.connect/99.connectors/15.jsonlines-connector",{"date":2078,"tags":2079,"keywords":2080,"tech_icons":2082},"2024-02-20",[1928,1963],[1988,2081,1962,1992,2019,980,1993],"JSON Lines",[2083],"lets-icons:json",{"title":2085,"path":2086,"stem":2087,"meta":2088},"Database connectors","/developers/user-guide/connect/connectors/database-connectors","2.developers/4.user-guide/20.connect/99.connectors/20.database-connectors",{"date":2089,"thumbnail":2090,"tags":2091,"keywords":2092,"tech_icons":2094,"deployment_tag":2095,"docker_github_link":2096},"2023-01-19","/assets/content/blog/th-database-connectors.png",[1928,1963],[1988,2062,2093,2064,2065,2066,2067,2068,1992,2019,1993],"PostgreSQL",[2070],[1999],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/debezium-postgres-example",{"title":2098,"path":2099,"stem":2100,"meta":2101},"Custom Python connectors","/developers/user-guide/connect/connectors/custom-python-connectors","2.developers/4.user-guide/20.connect/99.connectors/30.custom-python-connectors",{"date":2102,"thumbnail":1959,"tags":2103,"keywords":2104},"2023-04-13",[1928,1963],[1988,1991,1992,1993],{"title":2106,"path":2107,"stem":2108,"meta":2109},"Kafka connectors","/developers/user-guide/connect/connectors/kafka_connectors","2.developers/4.user-guide/20.connect/99.connectors/30.kafka_connectors",{"date":2110,"thumbnail":2111,"tags":2112,"tech_icons":2113,"deployment_tag":2115,"keywords":2116},"2023-01-15","/assets/content/blog/th-kafka-connectors.png",[1928,1963],[2114],"mdi:apache-kafka",[1999],[1988,2066,2068,1992,2019,1993],{"title":2118,"path":2119,"stem":2120,"meta":2121},"NATS connectors","/developers/user-guide/connect/connectors/nats-connectors","2.developers/4.user-guide/20.connect/99.connectors/33.nats-connectors",{"date":2122,"tags":2123,"deployment_tag":2124,"keywords":2125},"2024-12-06",[1928,1963],[1999],[1988,2126,2068,1992,2019,1993],"NATS",{"title":2128,"path":2129,"stem":2130,"meta":2131},"Python output connectors","/developers/user-guide/connect/connectors/python-output-connectors","2.developers/4.user-guide/20.connect/99.connectors/35.python-output-connectors",{"date":2132,"thumbnail":2133,"tags":2134,"keywords":2135},"2023-08-31","/assets/content/blog/th-output-connector.png",[1928,1963],[1988,1991,2019,1993],{"title":2137,"path":2138,"stem":2139,"meta":2140},"Google Drive connector","/developers/user-guide/connect/connectors/gdrive-connector","2.developers/4.user-guide/20.connect/99.connectors/70.gdrive-connector",{"date":2141,"thumbnail":2142,"tags":2143,"keywords":2144,"tech_icons":2146},"2023-12-14","/assets/content/blog/th-gdrive-connector.png",[1928,1963],[1988,2145,2053,1992,980,1993],"Google Drive",[2147],"simple-icons:googledrive",{"title":2149,"path":2150,"stem":2151,"meta":2152},"Switching from Kafka to Redpanda","/developers/user-guide/connect/connectors/switching-to-redpanda","2.developers/4.user-guide/20.connect/99.connectors/80.switching-to-redpanda",{"date":2153,"thumbnail":2154,"tags":2155,"keywords":2156,"deployment_tag":2158,"tech_icons":2159,"docker_github_link":2160,"hideInConnectorList":1844},"2023-03-24","/assets/content/tutorials/redpanda/th-Kafka_vs_Redpanda.png",[1928,1963],[1988,2157,2066,2067,2068,1992,2019,1993],"Redpanda",[1999],[2114],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/best-movies-example/redpanda-version",{"title":2162,"path":2163,"stem":2164,"meta":2165},"Custom WebSockets connectors","/developers/user-guide/connect/connectors/websockets-connectors","2.developers/4.user-guide/20.connect/99.connectors/90.websockets-connectors",{"date":2166,"tags":2167,"keywords":2168,"tech_icons":2170},"2023-01-24",[1928,1963],[1988,2169,1991,1992,2019,1993],"WebSockets",[1996],{"title":2172,"meta":2173,"path":2174,"stem":2175,"children":2176,"page":1873},"Transform",{},"/developers/user-guide/data-transformation","2.developers/4.user-guide/30.data-transformation",[2177,2182,2196,2202,2208,2221,2237,2258,2274,2279],{"title":2178,"path":2179,"stem":2180,"meta":2181},"Table Operations Overview","/developers/user-guide/data-transformation/table-operations","2.developers/4.user-guide/30.data-transformation/10.table-operations",{},{"title":2183,"path":2184,"stem":2185,"meta":2186},"Asynchronous Transformations","/developers/user-guide/data-transformation/asynchronous-transformations","2.developers/4.user-guide/30.data-transformation/100.asynchronous-transformations",{"date":2078,"thumbnail":468,"tags":2187,"keywords":2189,"notebook_export_path":2195},[1928,2188],"engineering",[467,2190,2191,2192,2193,2194],"function","asynchronous","transformation","query","AsyncTransformer","notebooks/tutorials/asynctransformer.ipynb",{"title":2197,"path":2198,"stem":2199,"meta":2200},"Simple Join","/developers/user-guide/data-transformation/join-manual","2.developers/4.user-guide/30.data-transformation/20.join-manual",{"notebook_export_path":2201},"notebooks/tutorials/join_manual.ipynb",{"title":2203,"path":2204,"stem":2205,"meta":2206},"Groupby Reduce","/developers/user-guide/data-transformation/groupby-reduce-manual","2.developers/4.user-guide/30.data-transformation/30.groupby-reduce-manual",{"notebook_export_path":2207},"notebooks/tutorials/groupby_reduce_manual.ipynb",{"title":2209,"path":2210,"stem":2211,"meta":2212},"Writing Stateful Reducers","/developers/user-guide/data-transformation/custom-reducers","2.developers/4.user-guide/30.data-transformation/40.custom-reducers",{"date":2213,"thumbnail":1971,"tags":2214,"keywords":2215,"notebook_export_path":2220},"2024-01-17",[1928],[2216,2217,2218,2219],"reducers","aggregate","sumofsquares","median","notebooks/tutorials/custom_reducers.ipynb",{"title":2222,"path":2223,"stem":2224,"meta":2225},"Iterative Computations","/developers/user-guide/data-transformation/iterate","2.developers/4.user-guide/30.data-transformation/50.iterate",{"date":2226,"thumbnail":468,"tags":2227,"keywords":2228,"notebook_export_path":2236},"2023-12-28",[1928,2188],[2229,2230,2231,2232,2233,2234,2235],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks/tutorials/iterate.ipynb",{"title":2238,"path":2239,"stem":2240,"children":2241,"meta":2255},"Indexes in Pathway","/developers/user-guide/data-transformation/indexes-in-pathway","2.developers/4.user-guide/30.data-transformation/60.indexes-in-pathway",[2242],{"title":2238,"path":2239,"stem":2240,"meta":2243},{"date":2244,"thumbnail":2245,"tags":2246,"keywords":2247,"notebook_export_path":2254},"2023-11-15","/assets/content/blog/th-computing-pagerank.png",[1928,2188],[2248,2249,2250,2251,2252,2253],"index","indexing","join","asof join","asof_now","KNN","notebooks/tutorials/indexes.ipynb",{"date":2244,"thumbnail":2245,"tags":2256,"keywords":2257,"notebook_export_path":2254},[1928,2188],[2248,2249,2250,2251,2252,2253],{"title":2259,"path":2260,"stem":2261,"children":2262,"meta":2271},"Indexing from 'groupby' and Single-row Tables","/developers/user-guide/data-transformation/indexing-grouped-tables","2.developers/4.user-guide/30.data-transformation/70.indexing-grouped-tables",[2263],{"title":2259,"path":2260,"stem":2261,"meta":2264},{"date":2265,"thumbnail":2245,"tags":2266,"keywords":2267},"2023-03-31",[1928,1311],[2268,2269,2270],"groupby","ix_ref","single-row table",{"date":2265,"thumbnail":2245,"tags":2272,"keywords":2273},[1928,1311],[2268,2269,2270],{"title":2275,"path":2276,"stem":2277,"meta":2278},"SQL API","/developers/user-guide/data-transformation/sql","2.developers/4.user-guide/30.data-transformation/80.sql",{"redirection":1844},{"title":2280,"path":2281,"stem":2282,"meta":2283},"User-defined Functions","/developers/user-guide/data-transformation/user-defined-functions","2.developers/4.user-guide/30.data-transformation/90.user-defined-functions",{"date":2284,"thumbnail":468,"tags":2285,"keywords":2286,"notebook_export_path":2291},"2024-02-21",[1928,2188],[467,2287,2190,2288,2192,2289,2290],"udf","apply","cache","timeout","notebooks/tutorials/udf.ipynb",{"title":2293,"path":2294,"stem":2295,"children":2296,"page":1873},"Temporal Data","/developers/user-guide/temporal-data","2.developers/4.user-guide/40.temporal-data",[2297,2303,2308,2323,2335,2347,2361],{"title":2298,"path":2299,"stem":2300,"meta":2301},"Windowby Reduce","/developers/user-guide/temporal-data/windows-manual","2.developers/4.user-guide/40.temporal-data/10.windows-manual",{"notebook_export_path":2302},"notebooks/tutorials/windowby_manual.ipynb",{"title":2304,"path":2305,"stem":2306,"meta":2307},"Late Data and Cutoffs","/developers/user-guide/temporal-data/behaviors","2.developers/4.user-guide/40.temporal-data/20.behaviors",{},{"title":2309,"path":2310,"stem":2311,"meta":2312},"Controlling Temporal Behavior of Windows","/developers/user-guide/temporal-data/windows_with_behaviors","2.developers/4.user-guide/40.temporal-data/30.windows_with_behaviors",{"date":2313,"thumbnail":2314,"keywords":2315,"notebook_export_path":2322},"2024-01-08","assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[2316,2317,2318,2319,2320,2321],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks/tutorials/windows_temporal_behavior.ipynb",{"title":2324,"path":2325,"stem":2326,"meta":2327},"ASOF Join","/developers/user-guide/temporal-data/asof-join","2.developers/4.user-guide/40.temporal-data/40.asof-join",{"date":2328,"thumbnail":2329,"tags":2330,"keywords":2331,"notebook_export_path":2334},"2023-05-24","/assets/content/tutorials/finance_ts_asof_join/asof-join-tutorial-th.png",[1928,2188],[2251,2332,2333],"stock prices","financial data analysis","notebooks/tutorials/asof_join.ipynb",{"title":2336,"path":2337,"stem":2338,"meta":2339},"Interval Join","/developers/user-guide/temporal-data/interval-join","2.developers/4.user-guide/40.temporal-data/50.interval-join",{"date":2340,"thumbnail":2341,"tags":2342,"keywords":2343,"notebook_export_path":2346},"2023-05-22","assets/content/tutorials/fleet_eta_interval_join/fleet-eta-interval-join-th.png",[1928,2188],[2344,2345],"interval join","ETA","notebooks/tutorials/interval_join.ipynb",{"title":2348,"path":2349,"stem":2350,"meta":2351},"Window Join","/developers/user-guide/temporal-data/window-join","2.developers/4.user-guide/40.temporal-data/60.window-join",{"date":2352,"thumbnail":2353,"tags":2354,"keywords":2355,"notebook_export_path":2360},"2023-06-14","/assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[1928,2188],[2356,2357,2358,2359],"window","behavior analysis","clickstream","conversion rate","notebooks/tutorials/window_join.ipynb",{"title":2362,"path":2363,"stem":2364,"meta":2365},"Controlling Temporal Behavior of Interval Join","/developers/user-guide/temporal-data/temporal_behavior","2.developers/4.user-guide/40.temporal-data/70.temporal_behavior",{"date":2366,"thumbnail":2341,"tags":2367,"keywords":2368,"notebook_export_path":2369},"2023-11-28",[1928,2188],[2344,2317,2318,2319,2320,2321],"notebooks/tutorials/interval_join_temporal_behavior.ipynb",{"title":2371,"meta":2372,"path":2373,"stem":2374,"children":2375,"page":1873},"LLM tooling",{},"/developers/user-guide/llm-xpack","2.developers/4.user-guide/50.llm-xpack",[2376,2388,2397,2412,2423,2435,2447,2457,2467,2477],{"title":2377,"path":2378,"stem":2379,"meta":2380},"Introduction to the LLM xpack","/developers/user-guide/llm-xpack/overview","2.developers/4.user-guide/50.llm-xpack/10.overview",{"date":2381,"thumbnail":468,"tags":2382,"keywords":2384},"2024-02-14",[1928,2383],"LLM",[2383,2385,2386,2387],"GPT","OpenAI","Gemini",{"title":2389,"path":2390,"stem":2391,"meta":2392},"Create your own RAG","/developers/user-guide/llm-xpack/llm-app-pathway","2.developers/4.user-guide/50.llm-xpack/20.llm-app-pathway",{"date":2393,"thumbnail":468,"tags":2394,"keywords":2396},"2025-03-28",[1928,2383,2395],"RAG",[2383,2385,2386,2249],{"title":2398,"path":2399,"stem":2400,"children":2401,"meta":2409},"Document Indexing","/developers/user-guide/llm-xpack/docs-indexing","2.developers/4.user-guide/50.llm-xpack/30.docs-indexing",[2402],{"title":2398,"path":2399,"stem":2400,"meta":2403},{"date":2404,"thumbnail":468,"tags":2405,"keywords":2408},"2025-01-13",[1928,2249,2406,2407],"document storage","retrieval",[2383,2385,2386,2387],{"date":2404,"thumbnail":468,"tags":2410,"keywords":2411},[1928,2249,2406,2407],[2383,2385,2386,2387],{"title":2413,"path":2414,"stem":2415,"meta":2416},"Pathway MCP Server","/developers/user-guide/llm-xpack/pathway_mcp_server","2.developers/4.user-guide/50.llm-xpack/40.pathway_mcp_server",{"date":2417,"thumbnail":468,"tags":2418,"keywords":2419},"2025-08-01",[1928,2188],[2420,2421,1843,2422],"MCP","MCP server","protocol",{"title":2424,"path":2425,"stem":2426,"meta":2427},"Claude Desktop","/developers/user-guide/llm-xpack/pathway-mcp-claude-desktop","2.developers/4.user-guide/50.llm-xpack/41.pathway-mcp-claude-desktop",{"date":2428,"thumbnail":468,"tags":2429,"keywords":2431},"2025-08-19",[1928,2188,2430],"claude",[2420,2424,2432,2433,2434],"real-time data","document store","statistics",{"title":2436,"path":2437,"stem":2438,"meta":2439},"Parsers","/developers/user-guide/llm-xpack/parsers","2.developers/4.user-guide/50.llm-xpack/50.parsers",{"date":2440,"tags":2441,"keywords":2442},"2024-06-04",[1928,2383],[2383,2443,2444,2445,2446],"unstructured","docling","parsers","ocr",{"title":2448,"path":2449,"stem":2450,"meta":2451},"Chunking text","/developers/user-guide/llm-xpack/splitters","2.developers/4.user-guide/50.llm-xpack/60.splitters",{"date":2452,"thumbnail":468,"tags":2453,"keywords":2456},"2025-02-04",[2454,2455],"splitters","chunking",[2445,2455],{"title":2458,"path":2459,"stem":2460,"meta":2461},"Embedders","/developers/user-guide/llm-xpack/embedders","2.developers/4.user-guide/50.llm-xpack/70.embedders",{"date":2452,"thumbnail":468,"tags":2462,"keywords":2464},[1928,2463],"embedder",[2383,2385,2386,2387,2465,2466],"LiteLLM","Embedder",{"title":2468,"path":2469,"stem":2470,"meta":2471},"LLM Chats","/developers/user-guide/llm-xpack/llm-chats","2.developers/4.user-guide/50.llm-xpack/80.llm-chats",{"date":2472,"thumbnail":468,"tags":2473,"keywords":2475},"2025-01-30",[1928,2383,2474,2468],"LLM Wrappers",[2383,2385,2386,2387,2465,2476],"Wrapper",{"title":2478,"path":2479,"stem":2480,"meta":2481},"Rerankers","/developers/user-guide/llm-xpack/rerankers","2.developers/4.user-guide/50.llm-xpack/90.rerankers",{"date":2452,"thumbnail":468,"tags":2482,"keywords":2484},[1928,2483],"reranker",[2383,2485],"Reranker",{"title":2487,"meta":2488,"path":2489,"stem":2490,"children":2491,"page":1873},"Deploy",{},"/developers/user-guide/deployment","2.developers/4.user-guide/60.deployment",[2492,2497,2502,2519,2535,2540,2545,2550,2557,2562,2567,2580,2592,2597,2608],{"title":2493,"path":2494,"stem":2495,"meta":2496},"Cloud Deployment of Pathway","/developers/user-guide/deployment/cloud-deployment","2.developers/4.user-guide/60.deployment/10.cloud-deployment",{},{"title":2498,"path":2499,"stem":2500,"meta":2501},"Deploy to GCP","/developers/user-guide/deployment/gcp-deploy","2.developers/4.user-guide/60.deployment/15.gcp-deploy",{},{"title":2503,"path":2504,"stem":2505,"meta":2506},"Deploy to AWS Cloud","/developers/user-guide/deployment/aws-fargate-deploy","2.developers/4.user-guide/60.deployment/20.aws-fargate-deploy",{"date":2507,"tags":2508,"thumbnail":2511,"keywords":2513,"docker_github_link":2518,"deployButtons":1873},"2024-08-16",[2509,2510],"showcase","data-pipeline",{"src":2512},"/assets/content/documentation/aws/aws-fargate-overview-th.png",[2514,2515,2516,2068,2517],"AWS","Fargate","cloud deployment","AWS Fargate","https://github.com/pathwaycom/pathway/tree/main/examples/projects/aws-fargate-deploy",{"title":2520,"path":2521,"stem":2522,"meta":2523},"Deploy to Azure","/developers/user-guide/deployment/azure-aci-deploy","2.developers/4.user-guide/60.deployment/25.azure-aci-deploy",{"date":2524,"tags":2525,"thumbnail":2526,"keywords":2528,"docker_github_link":2534,"deployButtons":1873},"2024-11-20",[2509,2510],{"src":2527,"contain":1844},"/assets/content/documentation/azure/azure-aci-overview-th.png",[2529,2530,2516,2068,2531,2532,2533],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https://github.com/pathwaycom/pathway/tree/main/examples/projects/azure-aci-deploy",{"title":2536,"path":2537,"stem":2538,"meta":2539},"Deploy with Render","/developers/user-guide/deployment/render-deploy","2.developers/4.user-guide/60.deployment/30.render-deploy",{},{"title":2541,"path":2542,"stem":2543,"meta":2544},"Deploy to Nebius AI Cloud","/developers/user-guide/deployment/nebius-deploy","2.developers/4.user-guide/60.deployment/32.nebius-deploy",{},{"title":2546,"path":2547,"stem":2548,"meta":2549},"Notebook-to-Docker Conversion","/developers/user-guide/deployment/jupyter-docker","2.developers/4.user-guide/60.deployment/35.jupyter-docker",{},{"title":2551,"path":2552,"stem":2553,"meta":2554},"Tutorial: From Jupyter to Deploy","/developers/user-guide/deployment/from-jupyter-to-deploy","2.developers/4.user-guide/60.deployment/40.from-jupyter-to-deploy",{"date":2555,"project_github_link":2556},"2023-11-29","https://github.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy",{"title":2558,"path":2559,"stem":2560,"meta":2561},"CI/CD","/developers/user-guide/deployment/integration","2.developers/4.user-guide/60.deployment/45.integration",{},{"title":2563,"path":2564,"stem":2565,"meta":2566},"Docker Deployment of Pathway","/developers/user-guide/deployment/docker-deployment","2.developers/4.user-guide/60.deployment/5.docker-deployment",{},{"title":2568,"path":2569,"stem":2570,"meta":2571},"Monitoring Pathway Instance","/developers/user-guide/deployment/pathway-monitoring","2.developers/4.user-guide/60.deployment/50.pathway-monitoring",{"date":2572,"thumbnail":2573,"tags":2574,"keywords":2575},"2024-05-27","/assets/content/blog/th-prometheus.png",[1928,2188],[2576,2577,2578,2579],"monitoring","OpenTelemetry","Grafana","metrics",{"title":2581,"path":2582,"stem":2583,"meta":2584},"Pathway Web Dashboard","/developers/user-guide/deployment/web-dashboard","2.developers/4.user-guide/60.deployment/52.web-dashboard",{"date":2585,"tags":2586,"keywords":2587},"2026-01-13",[1928,2188],[2588,2589,2576,2590,2591,2579],"Web Dashboard","UI","graph","charts",{"title":2593,"path":2594,"stem":2595,"meta":2596},"Persistence in Pathway","/developers/user-guide/deployment/persistence","2.developers/4.user-guide/60.deployment/55.persistence",{},{"title":2598,"path":2599,"stem":2600,"meta":2601},"Persistence in Pathway: How to Resume the Interrupted Computation","/developers/user-guide/deployment/persistence_recovery","2.developers/4.user-guide/60.deployment/60.persistence_recovery",{"date":2602,"thumbnail":468,"tags":2603,"keywords":2605},"2023-11-02",[1928,2188,2604],"dataflow management",[2606,2607],"persistence","recovery",{"title":2609,"path":2610,"stem":2611,"meta":2612},"Persistence in Pathway: How to Add New Data without Full Computation Restart","/developers/user-guide/deployment/persistence_restart_with_new_data","2.developers/4.user-guide/60.deployment/65.persistence_restart_with_new_data",{"date":2613,"thumbnail":468,"tags":2614,"keywords":2615},"2023-11-14",[1928,2188,2604],[2606,2616,2617],"optimization","restart",{"title":2619,"path":2620,"stem":2621,"children":2622,"page":1873},"Migrating","/developers/user-guide/migrating","2.developers/4.user-guide/70.migrating",[2623,2629],{"title":2624,"path":2625,"stem":2626,"meta":2627},"Coming from Pandas","/developers/user-guide/migrating/migrate-from-pandas","2.developers/4.user-guide/70.migrating/10.migrate-from-pandas",{"notebook_export_path":2628},"notebooks/tutorials/from_pandas.ipynb",{"title":2630,"path":2631,"stem":2632,"meta":2633},"Pandas Cheat Sheet","/developers/user-guide/migrating/pandas-cheat-sheet","2.developers/4.user-guide/70.migrating/20.pandas-cheat-sheet",{},{"title":2635,"path":2636,"stem":2637,"children":2638,"page":1873},"Advanced","/developers/user-guide/advanced","2.developers/4.user-guide/80.advanced",[2639,2644,2654,2660,2673,2678,2683,2688],{"title":2640,"path":2641,"stem":2642,"meta":2643},"Architecture","/developers/user-guide/advanced/worker-architecture","2.developers/4.user-guide/80.advanced/10.worker-architecture",{},{"title":2645,"path":2646,"stem":2647,"meta":2648},"Setting up Cache in Asynchronous Transformations","/developers/user-guide/advanced/function_calls_caching","2.developers/4.user-guide/80.advanced/20.function_calls_caching",{"date":2649,"thumbnail":468,"tags":2650,"keywords":2651},"2023-11-30",[1928,2188,2604],[2606,2616,2652,2653],"async_transformer","caching",{"title":2655,"path":2656,"stem":2657,"meta":2658},"Data Model Consistency","/developers/user-guide/advanced/consistency","2.developers/4.user-guide/80.advanced/30.consistency",{"notebook_export_path":2659},"notebooks/tutorials/consistency.ipynb",{"title":2661,"path":2662,"stem":2663,"meta":2664},"Writing declarative over imperative pipelines","/developers/user-guide/advanced/declarative_vs_imperative","2.developers/4.user-guide/80.advanced/40.declarative_vs_imperative",{"date":2665,"thumbnail":468,"tags":2666,"keywords":2667,"notebook_export_path":2672},"2025-11-25",[1928,2188],[2668,2669,2670,2671,2229],"declarative","imperative","ordered","splitting","notebooks/tutorials/declarative_vs_imperative.ipynb",{"title":2674,"path":2675,"stem":2676,"meta":2677},"Best Practices","/developers/user-guide/advanced/best-practices","2.developers/4.user-guide/80.advanced/5.best-practices",{},{"title":2679,"path":2680,"stem":2681,"meta":2682},"How Pathway Connectors Work","/developers/user-guide/advanced/how_pathway_connectors_work","2.developers/4.user-guide/80.advanced/50.how_pathway_connectors_work",{},{"title":2684,"path":2685,"stem":2686,"meta":2687},"Dynamic Worker Scaling","/developers/user-guide/advanced/worker_count_scaling","2.developers/4.user-guide/80.advanced/60.worker_count_scaling",{},{"title":2689,"path":2690,"stem":2691,"meta":2692},"Running on Multiple Machines","/developers/user-guide/advanced/running_on_multiple_machines","2.developers/4.user-guide/80.advanced/70.running_on_multiple_machines",{},{"title":2694,"meta":2695,"path":2696,"stem":2697,"children":2698,"page":1873},"Help And Updates",{},"/developers/user-guide/development","2.developers/4.user-guide/90.development",[2699,2704,2709],{"title":2700,"path":2701,"stem":2702,"meta":2703},"Troubleshooting","/developers/user-guide/development/troubleshooting","2.developers/4.user-guide/90.development/10.troubleshooting",{},{"title":2705,"path":2706,"stem":2707,"meta":2708},"Changelog","/developers/user-guide/development/changelog","2.developers/4.user-guide/90.development/20.changelog",{"toc":1873},{"title":2710,"path":2711,"stem":2712,"meta":2713},"Get help","/developers/user-guide/development/get-help","2.developers/4.user-guide/90.development/30.get-help",{},{"title":2715,"meta":2716,"path":2717,"stem":2718,"children":2719,"page":1873},"API docs",{},"/developers/api-docs","2.developers/5.API-docs",[2720,2725,2730,2736,2741,2746,2751,2819,2824,2829,2834,2842,3022,3027],{"title":2721,"path":2722,"stem":2723,"meta":2724},"Pathway API","/developers/api-docs/pathway","2.developers/5.API-docs/1.pathway",{"sidebar":1843},{"title":2726,"path":2727,"stem":2728,"meta":2729},"pw.reducers","/developers/api-docs/reducers","2.developers/5.API-docs/10.reducers",{"sidebar":1843},{"title":2731,"path":2732,"stem":2733,"meta":2734},"pw.sql","/developers/api-docs/sql-api","2.developers/5.API-docs/11.SQL-API",{"notebook_export_path":2735},"notebooks/tutorials/sql_api.ipynb",{"title":2737,"path":2738,"stem":2739,"meta":2740},"pw.temporal","/developers/api-docs/temporal","2.developers/5.API-docs/12.temporal",{"sidebar":1843},{"title":2742,"path":2743,"stem":2744,"meta":2745},"pw.udfs","/developers/api-docs/udfs","2.developers/5.API-docs/13.udfs",{"sidebar":1843},{"title":2747,"path":2748,"stem":2749,"meta":2750},"pw.xpacks.connectors","/developers/api-docs/pathway-xpacks-sharepoint","2.developers/5.API-docs/14.pathway-xpacks-sharepoint",{"sidebar":1843},{"title":2752,"path":2753,"stem":2754,"children":2755,"meta":2818},"pw.xpacks.llm","/developers/api-docs/pathway-xpacks-llm","2.developers/5.API-docs/15.pathway-xpacks-llm/index",[2756,2758,2763,2768,2773,2778,2783,2788,2793,2798,2803,2808,2813],{"title":2752,"path":2753,"stem":2754,"meta":2757},{"sidebar":1843},{"title":2759,"path":2760,"stem":2761,"meta":2762},"pw.xpacks.llm.llms","/developers/api-docs/pathway-xpacks-llm/llms","2.developers/5.API-docs/15.pathway-xpacks-llm/1.llms",{"sidebar":1843},{"title":2764,"path":2765,"stem":2766,"meta":2767},"pw.xpacks.llm.servers","/developers/api-docs/pathway-xpacks-llm/servers","2.developers/5.API-docs/15.pathway-xpacks-llm/10.servers",{"sidebar":1843},{"title":2769,"path":2770,"stem":2771,"meta":2772},"pw.xpacks.llm.utils","/developers/api-docs/pathway-xpacks-llm/utils","2.developers/5.API-docs/15.pathway-xpacks-llm/11.utils",{"sidebar":1843},{"title":2774,"path":2775,"stem":2776,"meta":2777},"pw.xpacks.llm.mcp_server","/developers/api-docs/pathway-xpacks-llm/mcp_server","2.developers/5.API-docs/15.pathway-xpacks-llm/12.mcp_server",{"sidebar":1843},{"title":2779,"path":2780,"stem":2781,"meta":2782},"pw.xpacks.llm.embedders","/developers/api-docs/pathway-xpacks-llm/embedders","2.developers/5.API-docs/15.pathway-xpacks-llm/2.embedders",{"sidebar":1843},{"title":2784,"path":2785,"stem":2786,"meta":2787},"pw.xpacks.llm.parsers","/developers/api-docs/pathway-xpacks-llm/parsers","2.developers/5.API-docs/15.pathway-xpacks-llm/3.parsers",{"sidebar":1843},{"title":2789,"path":2790,"stem":2791,"meta":2792},"pw.xpacks.llm.splitters","/developers/api-docs/pathway-xpacks-llm/splitters","2.developers/5.API-docs/15.pathway-xpacks-llm/4.splitters",{"sidebar":1843},{"title":2794,"path":2795,"stem":2796,"meta":2797},"pw.xpacks.llm.vector_store","/developers/api-docs/pathway-xpacks-llm/vectorstore","2.developers/5.API-docs/15.pathway-xpacks-llm/5.vectorstore",{"sidebar":1843},{"title":2799,"path":2800,"stem":2801,"meta":2802},"pw.xpacks.llm.document_store","/developers/api-docs/pathway-xpacks-llm/document_store","2.developers/5.API-docs/15.pathway-xpacks-llm/6.document_store",{"sidebar":1843},{"title":2804,"path":2805,"stem":2806,"meta":2807},"pw.xpacks.llm.question_answering","/developers/api-docs/pathway-xpacks-llm/question_answering","2.developers/5.API-docs/15.pathway-xpacks-llm/7.question_answering",{"sidebar":1843},{"title":2809,"path":2810,"stem":2811,"meta":2812},"pw.xpacks.llm.prompts","/developers/api-docs/pathway-xpacks-llm/prompts","2.developers/5.API-docs/15.pathway-xpacks-llm/8.prompts",{"sidebar":1843},{"title":2814,"path":2815,"stem":2816,"meta":2817},"pw.xpacks.llm.rerankers","/developers/api-docs/pathway-xpacks-llm/rerankers","2.developers/5.API-docs/15.pathway-xpacks-llm/9.rerankers",{"sidebar":1843},{"sidebar":1843},{"title":2820,"path":2821,"stem":2822,"meta":2823},"pw.Table","/developers/api-docs/pathway-table","2.developers/5.API-docs/2.pathway-table",{"sidebar":1843},{"title":2825,"path":2826,"stem":2827,"meta":2828},"pw.debug","/developers/api-docs/debug","2.developers/5.API-docs/4.debug",{"sidebar":1843},{"title":2830,"path":2831,"stem":2832,"meta":2833},"pw.demo","/developers/api-docs/pathway-demo","2.developers/5.API-docs/5.pathway-demo",{"sidebar":1843},{"title":2835,"path":2836,"stem":2837,"children":2838,"meta":2841},"pw.indexing","/developers/api-docs/indexing","2.developers/5.API-docs/6.indexing",[2839],{"title":2835,"path":2836,"stem":2837,"meta":2840},{"sidebar":1843},{"sidebar":1843},{"title":2843,"path":2844,"stem":2845,"children":2846,"meta":3021},"pw.io","/developers/api-docs/pathway-io","2.developers/5.API-docs/7.pathway-io/index",[2847,2849,2854,2859,2864,2869,2874,2879,2884,2889,2894,2899,2904,2909,2914,2919,2924,2929,2934,2939,2944,2949,2954,2959,2964,2969,2974,2979,2984,2989,2994,2999,3001,3006,3011,3016],{"title":2843,"path":2844,"stem":2845,"meta":2848},{"sidebar":1843},{"title":2850,"path":2851,"stem":2852,"meta":2853},"pw.io.airbyte","/developers/api-docs/pathway-io/airbyte","2.developers/5.API-docs/7.pathway-io/110.airbyte",{"sidebar":1843},{"title":2855,"path":2856,"stem":2857,"meta":2858},"pw.io.bigquery","/developers/api-docs/pathway-io/bigquery","2.developers/5.API-docs/7.pathway-io/120.bigquery",{"sidebar":1843},{"title":2860,"path":2861,"stem":2862,"meta":2863},"pw.io.csv","/developers/api-docs/pathway-io/csv","2.developers/5.API-docs/7.pathway-io/130.csv",{"sidebar":1843},{"title":2865,"path":2866,"stem":2867,"meta":2868},"pw.io.debezium","/developers/api-docs/pathway-io/debezium","2.developers/5.API-docs/7.pathway-io/140.debezium",{"sidebar":1843},{"title":2870,"path":2871,"stem":2872,"meta":2873},"pw.io.deltalake","/developers/api-docs/pathway-io/deltalake","2.developers/5.API-docs/7.pathway-io/150.deltalake",{"sidebar":1843},{"title":2875,"path":2876,"stem":2877,"meta":2878},"pw.io.dynamodb","/developers/api-docs/pathway-io/dynamodb","2.developers/5.API-docs/7.pathway-io/160.dynamodb",{"sidebar":1843},{"title":2880,"path":2881,"stem":2882,"meta":2883},"pw.io.elasticsearch","/developers/api-docs/pathway-io/elasticsearch","2.developers/5.API-docs/7.pathway-io/170.elasticsearch",{"sidebar":1843},{"title":2885,"path":2886,"stem":2887,"meta":2888},"pw.io.fs","/developers/api-docs/pathway-io/fs","2.developers/5.API-docs/7.pathway-io/180.fs",{"sidebar":1843},{"title":2890,"path":2891,"stem":2892,"meta":2893},"pw.io.gdrive","/developers/api-docs/pathway-io/gdrive","2.developers/5.API-docs/7.pathway-io/190.gdrive",{"sidebar":1843},{"title":2895,"path":2896,"stem":2897,"meta":2898},"pw.io.http","/developers/api-docs/pathway-io/http","2.developers/5.API-docs/7.pathway-io/200.http",{"sidebar":1843},{"title":2900,"path":2901,"stem":2902,"meta":2903},"pw.io.iceberg","/developers/api-docs/pathway-io/iceberg","2.developers/5.API-docs/7.pathway-io/210.iceberg",{"sidebar":1843},{"title":2905,"path":2906,"stem":2907,"meta":2908},"pw.io.jsonlines","/developers/api-docs/pathway-io/jsonlines","2.developers/5.API-docs/7.pathway-io/220.jsonlines",{"sidebar":1843},{"title":2910,"path":2911,"stem":2912,"meta":2913},"pw.io.kafka","/developers/api-docs/pathway-io/kafka","2.developers/5.API-docs/7.pathway-io/230.kafka",{"sidebar":1843},{"title":2915,"path":2916,"stem":2917,"meta":2918},"pw.io.kinesis","/developers/api-docs/pathway-io/kinesis","2.developers/5.API-docs/7.pathway-io/240.kinesis",{"sidebar":1843},{"title":2920,"path":2921,"stem":2922,"meta":2923},"pw.io.leann","/developers/api-docs/pathway-io/leann","2.developers/5.API-docs/7.pathway-io/250.leann",{"sidebar":1843},{"title":2925,"path":2926,"stem":2927,"meta":2928},"pw.io.logstash","/developers/api-docs/pathway-io/logstash","2.developers/5.API-docs/7.pathway-io/260.logstash",{"sidebar":1843},{"title":2930,"path":2931,"stem":2932,"meta":2933},"pw.io.milvus","/developers/api-docs/pathway-io/milvus","2.developers/5.API-docs/7.pathway-io/270.milvus",{"sidebar":1843},{"title":2935,"path":2936,"stem":2937,"meta":2938},"pw.io.minio","/developers/api-docs/pathway-io/minio","2.developers/5.API-docs/7.pathway-io/280.minio",{"sidebar":1843},{"title":2940,"path":2941,"stem":2942,"meta":2943},"pw.io.mongodb","/developers/api-docs/pathway-io/mongodb","2.developers/5.API-docs/7.pathway-io/290.mongodb",{"sidebar":1843},{"title":2945,"path":2946,"stem":2947,"meta":2948},"pw.io.mssql","/developers/api-docs/pathway-io/mssql","2.developers/5.API-docs/7.pathway-io/300.mssql",{"sidebar":1843},{"title":2950,"path":2951,"stem":2952,"meta":2953},"pw.io.mysql","/developers/api-docs/pathway-io/mysql","2.developers/5.API-docs/7.pathway-io/310.mysql",{"sidebar":1843},{"title":2955,"path":2956,"stem":2957,"meta":2958},"pw.io.nats","/developers/api-docs/pathway-io/nats","2.developers/5.API-docs/7.pathway-io/320.nats",{"sidebar":1843},{"title":2960,"path":2961,"stem":2962,"meta":2963},"pw.io.null","/developers/api-docs/pathway-io/null","2.developers/5.API-docs/7.pathway-io/330.null",{"sidebar":1843},{"title":2965,"path":2966,"stem":2967,"meta":2968},"pw.io.mqtt","/developers/api-docs/pathway-io/mqtt","2.developers/5.API-docs/7.pathway-io/340.mqtt",{"sidebar":1843},{"title":2970,"path":2971,"stem":2972,"meta":2973},"pw.io.plaintext","/developers/api-docs/pathway-io/plaintext","2.developers/5.API-docs/7.pathway-io/350.plaintext",{"sidebar":1843},{"title":2975,"path":2976,"stem":2977,"meta":2978},"pw.io.postgres","/developers/api-docs/pathway-io/postgres","2.developers/5.API-docs/7.pathway-io/360.postgres",{"sidebar":1843},{"title":2980,"path":2981,"stem":2982,"meta":2983},"pw.io.pubsub","/developers/api-docs/pathway-io/pubsub","2.developers/5.API-docs/7.pathway-io/370.pubsub",{"sidebar":1843},{"title":2985,"path":2986,"stem":2987,"meta":2988},"pw.io.pyfilesystem","/developers/api-docs/pathway-io/pyfilesystem","2.developers/5.API-docs/7.pathway-io/380.pyfilesystem",{"sidebar":1843},{"title":2990,"path":2991,"stem":2992,"meta":2993},"pw.io.python","/developers/api-docs/pathway-io/python","2.developers/5.API-docs/7.pathway-io/390.python",{"sidebar":1843},{"title":2995,"path":2996,"stem":2997,"meta":2998},"pw.io.questdb","/developers/api-docs/pathway-io/questdb","2.developers/5.API-docs/7.pathway-io/400.questdb",{"sidebar":1843},{"title":5,"path":1845,"stem":1848,"meta":3000},{"sidebar":1843},{"title":3002,"path":3003,"stem":3004,"meta":3005},"pw.io.redpanda","/developers/api-docs/pathway-io/redpanda","2.developers/5.API-docs/7.pathway-io/420.redpanda",{"sidebar":1843},{"title":3007,"path":3008,"stem":3009,"meta":3010},"pw.io.s3","/developers/api-docs/pathway-io/s3","2.developers/5.API-docs/7.pathway-io/430.s3",{"sidebar":1843},{"title":3012,"path":3013,"stem":3014,"meta":3015},"pw.io.slack","/developers/api-docs/pathway-io/slack","2.developers/5.API-docs/7.pathway-io/440.slack",{"sidebar":1843},{"title":3017,"path":3018,"stem":3019,"meta":3020},"pw.io.sqlite","/developers/api-docs/pathway-io/sqlite","2.developers/5.API-docs/7.pathway-io/450.sqlite",{"sidebar":1843},{"sidebar":1843},{"title":3023,"path":3024,"stem":3025,"meta":3026},"pw.ml","/developers/api-docs/ml","2.developers/5.API-docs/8.ML",{"sidebar":1843},{"title":3028,"path":3029,"stem":3030,"meta":3031},"pw.persistence","/developers/api-docs/persistence-api","2.developers/5.API-docs/9.persistence-api",{"sidebar":1843},{"title":3033,"path":3034,"stem":3035,"children":3036,"meta":3773},"Pathway Templates","/developers/templates","2.developers/7.templates/1.index",[3037,3039,3044,3049,3054,3058,3074,3113,3139,3571],{"title":3033,"path":3034,"stem":3035,"meta":3038},{"navTitle":1869,"layout":1941,"aside":1844,"toc":1873,"single":1844},{"title":3040,"path":3041,"stem":3042,"meta":3043},"Run a template","/developers/templates/run-a-template","2.developers/7.templates/20.run-a-template",{"heading":1873,"toc":1873},{"title":3045,"path":3046,"stem":3047,"meta":3048},"Customizing a RAG Template with YAML","/developers/templates/configure-yaml","2.developers/7.templates/30.configure-yaml",{"heading":1873},{"title":3050,"path":3051,"stem":3052,"meta":3053},"How to Use Your Own Components in YAML Configuration","/developers/templates/custom-components","2.developers/7.templates/35.custom-components",{"heading":1873},{"title":1900,"path":3055,"stem":3056,"meta":3057},"/developers/templates/licensing-guide","2.developers/7.templates/38.licensing-guide",{"heading":1873,"toc":1873},{"title":3059,"meta":3060,"path":3061,"stem":3062,"children":3063,"page":1873},"YAML Snippets",{},"/developers/templates/yaml-snippets","2.developers/7.templates/39.yaml-snippets",[3064,3069],{"title":3065,"path":3066,"stem":3067,"meta":3068},"Data Sources Examples","/developers/templates/yaml-snippets/data-sources-examples","2.developers/7.templates/39.yaml-snippets/10.data-sources-examples",{"heading":1873,"toc":1844},{"title":3070,"path":3071,"stem":3072,"meta":3073},"RAG configuration Examples","/developers/templates/yaml-snippets/rag-configuration-examples","2.developers/7.templates/39.yaml-snippets/20.rag-configuration-examples",{"heading":1873,"toc":1844},{"title":3075,"path":3076,"stem":3077,"children":3078,"page":1873},"Rag Customization","/developers/templates/rag-customization","2.developers/7.templates/40.rag-customization",[3079,3084,3089,3095,3101,3107],{"title":3080,"path":3081,"stem":3082,"meta":3083},"REST API","/developers/templates/rag-customization/rest-api","2.developers/7.templates/40.rag-customization/10.REST-API",{"heading":1873,"toc":1873},{"title":3085,"path":3086,"stem":3087,"meta":3088},"Customizing prompt","/developers/templates/rag-customization/custom-prompt","2.developers/7.templates/40.rag-customization/20.custom-prompt",{"heading":1873},{"title":2436,"path":3090,"stem":3091,"meta":3092},"/developers/templates/rag-customization/parsers","2.developers/7.templates/40.rag-customization/30.parsers",{"date":2440,"tags":3093,"keywords":3094},[1928,2383],[2383,2443,2444,2445,2446],{"title":2448,"path":3096,"stem":3097,"meta":3098},"/developers/templates/rag-customization/splitters","2.developers/7.templates/40.rag-customization/40.splitters",{"date":2452,"thumbnail":468,"tags":3099,"keywords":3100},[2454,2455],[2445,2455],{"title":2458,"path":3102,"stem":3103,"meta":3104},"/developers/templates/rag-customization/embedders","2.developers/7.templates/40.rag-customization/50.embedders",{"date":2452,"thumbnail":468,"tags":3105,"keywords":3106},[1928,2463],[2383,2385,2386,2387,2465,2466],{"title":2468,"path":3108,"stem":3109,"meta":3110},"/developers/templates/rag-customization/llm-chats","2.developers/7.templates/40.rag-customization/60.llm-chats",{"date":2472,"thumbnail":468,"tags":3111,"keywords":3112},[1928,2383,2474,2468],[2383,2385,2386,2387,2465,2476],{"title":2487,"path":3114,"stem":3115,"children":3116,"page":1873},"/developers/templates/deploy","2.developers/7.templates/60.deploy",[3117,3121,3125,3132],{"title":2493,"path":3118,"stem":3119,"meta":3120},"/developers/templates/deploy/cloud-deployment","2.developers/7.templates/60.deploy/10.cloud-deployment",{},{"title":2498,"path":3122,"stem":3123,"meta":3124},"/developers/templates/deploy/gcp-deploy","2.developers/7.templates/60.deploy/15.gcp-deploy",{},{"title":2503,"path":3126,"stem":3127,"meta":3128},"/developers/templates/deploy/aws-fargate-deploy","2.developers/7.templates/60.deploy/20.aws-fargate-deploy",{"date":2507,"tags":3129,"thumbnail":3130,"keywords":3131,"docker_github_link":2518,"deployButtons":1873},[2509,2510],{"src":2512},[2514,2515,2516,2068,2517],{"title":2520,"path":3133,"stem":3134,"meta":3135},"/developers/templates/deploy/azure-aci-deploy","2.developers/7.templates/60.deploy/25.azure-aci-deploy",{"date":2524,"tags":3136,"thumbnail":3137,"keywords":3138,"docker_github_link":2534,"deployButtons":1873},[2509,2510],{"src":2527,"contain":1844},[2529,2530,2516,2068,2531,2532,2533],{"title":3140,"meta":3141,"path":3142,"stem":3143,"children":3144,"page":1873},"ETL Templates",{},"/developers/templates/etl","2.developers/7.templates/ETL",[3145,3159,3175,3194,3214,3225,3239,3250,3260,3275,3290,3304,3319,3337,3353,3367,3383,3399,3411,3424,3434,3446,3458,3472],{"title":3146,"path":3147,"stem":3148,"meta":3149},"EL Pipeline: Move your data around with Pathway","/developers/templates/etl/el-pipeline","2.developers/7.templates/ETL/10.el-pipeline",{"layout":3150,"date":3151,"tags":3152,"thumbnail":3153,"keywords":3155,"popular":1844},"template","2025-05-22",[2509,2510],{"src":3154,"contain":1844},"/assets/content/showcases/el-template/el-template-thumbnail.png",[3156,3157,3158,2066,2093,2068],"ETL","EL","YAML",{"title":3160,"path":3161,"stem":3162,"meta":3163},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","/developers/templates/etl/suspicious_activity_tumbling_window","2.developers/7.templates/ETL/10.suspicious_activity_tumbling_window",{"notebook_export_path":3164,"aside":1844,"date":3165,"thumbnail":3166,"tags":3169,"keywords":3171,"layout":3150},"notebooks/tutorials/suspicious_user_activity.ipynb","2023-05-30",{"src":3167,"provider":3168},"/assets/blog/thumbnails/th-shield.png","s3",[1928,3170],"machine-learning",[2356,3172,3173,3174],"tumbling","alert","notebook",{"title":3176,"path":3177,"stem":3178,"meta":3179},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","/developers/templates/etl/gaussian_filtering_python","2.developers/7.templates/ETL/100.gaussian_filtering_python",{"notebook_export_path":3180,"aside":1844,"date":3181,"layout":3150,"thumbnail":3182,"tags":3184,"related":3186,"keywords":3189},"notebooks/tutorials/gaussian-filtering-python.ipynb","2023-10-17",{"src":3183},"/assets/content/tutorials/time_series/thumbnail-gaussian.png",[1928,3185],"Time Series",[3187,3188],"/blog/signal-processing","/developers/templates/etl/upsampling",[3190,3191,2321,3192,3193,2356,3174],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":3195,"path":3196,"stem":3197,"meta":3198},"Computing the Option Greeks using Pathway and Databento","/developers/templates/etl/option-greeks","2.developers/7.templates/ETL/105.option-greeks",{"thumbnail":3199,"date":3201,"tags":3202,"keywords":3203,"notebook_export_path":3212,"docker_github_link":3213,"aside":1844,"layout":3150},{"src":3200,"contain":1844},"/assets/content/showcases/option-greeks/option-greeks.png","2024-08-06",[1928,2510],[3204,3205,3206,3207,3208,3209,3210,3211,3174],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks/tutorials/option-greeks.ipynb","https://github.com/pathwaycom/pathway/tree/main/examples/projects/option-greeks",{"title":3215,"path":3216,"stem":3217,"meta":3218},"Automating reconciliation of messy financial transaction logs using Pathway's real-time fuzzy join","/developers/templates/etl/fuzzy_join_chapter1","2.developers/7.templates/ETL/11.fuzzy_join_chapter1",{"notebook_export_path":3219,"aside":1844,"date":3220,"tags":3221,"keywords":3222,"layout":3150},"notebooks/showcases/fuzzy_join_part1.ipynb","2022-10-18",[1928,2510],[3223,3224,2443,3174],"Fuzzy join","reconciliation",{"title":3226,"path":3188,"stem":3227,"meta":3228},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers/7.templates/ETL/110.upsampling",{"notebook_export_path":3229,"aside":1844,"date":3230,"layout":3150,"thumbnail":3231,"tags":3233,"related":3234,"popular":1844,"keywords":3235},"notebooks/tutorials/upsampling.ipynb","2023-10-18",{"src":3232},"/assets/content/tutorials/time_series/thumbnail-time-series.png",[1928,3185],[3187,3177],[3190,3236,2321,3237,3238,3193,2356,3174],"upsampling","resampling","interpolation",{"title":3240,"path":3241,"stem":3242,"meta":3243},"Interaction with a Feedback Loop.","/developers/templates/etl/fuzzy_join_chapter2","2.developers/7.templates/ETL/12.fuzzy_join_chapter2",{"notebook_export_path":3244,"aside":1844,"date":3245,"thumbnail":3246,"tags":3248,"keywords":3249,"layout":3150},"notebooks/showcases/fuzzy_join_part2.ipynb","2022-10-19",{"src":3247,"contain":1844},"/assets/content/showcases/fuzzy_join/reconciliation_chapter3_trim.png",[1928,2510],[3223,3224,2443,3174],{"title":3251,"path":3252,"stem":3253,"meta":3254},"Smart real-time monitoring application with alert deduplication","/developers/templates/etl/alerting-significant-changes","2.developers/7.templates/ETL/130.alerting-significant-changes",{"notebook_export_path":3255,"aside":1844,"date":3256,"tags":3257,"keywords":3258,"layout":3150},"notebooks/tutorials/alert-deduplication.ipynb","2023-11-16",[1928,2510],[3173,3259,2576,3174],"deduplication",{"title":3261,"path":3262,"stem":3263,"meta":3264},"Kafka ETL: Processing event streams in Python","/developers/templates/etl/kafka-etl","2.developers/7.templates/ETL/140.kafka-etl",{"layout":3150,"date":3265,"tags":3266,"thumbnail":3267,"keywords":3269,"docker_github_link":3274,"popular":1844},"2024-02-15",[2509,2510],{"src":3268,"contain":1844},"/assets/content/showcases/ETL-Kafka/ETL-Kafka.png",[3156,2066,3270,3271,3272,3273,2068],"datetime","time zone","timezone","concat_reindex","https://github.com/pathwaycom/pathway/tree/main/examples/projects/kafka-ETL",{"title":3276,"path":3277,"stem":3278,"meta":3279},"Streaming ETL pipelines in Python with Airbyte and Pathway","/developers/templates/etl/etl-python-airbyte","2.developers/7.templates/ETL/150.etl-python-airbyte",{"layout":3150,"date":3280,"tags":3281,"thumbnail":3282,"keywords":3284},"2024-02-28",[2509,2510],{"src":3283},"/assets/content/showcases/airbyte/airbyte-diagram-th.png",[3285,3286,3287,3288,3289],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":3291,"path":3292,"stem":3293,"meta":3294},"Delta Lake ETL with Pathway for Spark Analytics","/developers/templates/etl/delta_lake_etl","2.developers/7.templates/ETL/175.delta_lake_etl",{"layout":3150,"date":3295,"tags":3296,"thumbnail":3297,"keywords":3299,"docker_github_link":3303},"2024-07-23",[2509,2510],{"src":3298,"contain":1844},"/assets/content/showcases/deltalake/delta_lake_diagram_th.png",[3300,3301,3302,3288,3289,2068],"delta lake etl","spark delta lake","spark etl","https://github.com/pathwaycom/pathway/tree/main/examples/projects/spark-data-preparation",{"title":3305,"path":3306,"stem":3307,"meta":3308},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","/developers/templates/etl/kafka-alternative","2.developers/7.templates/ETL/180.kafka-alternative",{"layout":3150,"thumbnail":3309,"date":3311,"tags":3312,"keywords":3313},{"src":3310,"contain":1844},"/assets/content/showcases/kafka-alternatives/kafka-alternatives-thumbnail.png","2024-08-27",[2509,2510],[3156,2066,3314,3315,3316,3272,3317,3318],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":3320,"path":3321,"stem":3322,"meta":3323},"Jupyter / Colab: visualizing and transforming live data streams in Python notebooks with Pathway","/developers/templates/etl/live_data_jupyter","2.developers/7.templates/ETL/2.live_data_jupyter",{"aside":1844,"date":2555,"tags":3324,"keywords":3325,"notebook_export_path":3335,"docker_github_link":3336,"popular":1844,"layout":3150},[1928,2510,2509],[3326,3327,3328,3329,3330,3331,3332,3333,3334,3174,2068],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks/showcases/live-data-jupyter.ipynb","https://github.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy/part4_deployment",{"title":3338,"path":3339,"stem":3340,"meta":3341},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway","/developers/templates/etl/twitter","2.developers/7.templates/ETL/2.twitter",{"aside":1844,"layout":3150,"date":3342,"thumbnail":3343,"tags":3345,"keywords":3346,"docker_github_link":3352},"2022-10-31",{"src":3344},"/assets/content/blog/th-twitter.png",[1928,3170,2509],[3347,3348,3349,3350,3351,2443,2068],"Twitter","tweets","sentiment analysis","geolocation","influence","https://github.com/pathwaycom/pathway/tree/main/examples/projects/twitter",{"title":3354,"path":3355,"stem":3356,"meta":3357},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","/developers/templates/etl/event_stream_processing_time_between_occurrences","2.developers/7.templates/ETL/20.event_stream_processing_time_between_occurrences",{"aside":1844,"date":3358,"layout":3150,"thumbnail":3359,"tags":3361,"keywords":3362},"2022-11-01",{"src":3360},"/assets/content/blog/th-time-between-events-in-a-multi-topic-event-stream.png",[1928,2510],[3363,3364,2065,3365,3366],"event stream","multi-topic","ordering","sort",{"title":3368,"path":3369,"stem":3370,"meta":3371},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","/developers/templates/etl/lsh_chapter1","2.developers/7.templates/ETL/3.lsh_chapter1",{"notebook_export_path":3372,"aside":1844,"date":3373,"thumbnail":3374,"tags":3376,"keywords":3377,"layout":3150},"notebooks/showcases/lsh.ipynb","2022-10-25",{"src":3375},"/assets/content/blog/th-realtime-classification.png",[1928,3170],[3378,2253,3379,2248,3380,3381,3382,2443,3174],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":3384,"path":3385,"stem":3386,"meta":3387},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","/developers/templates/etl/user_pairs_fuzzy_join","2.developers/7.templates/ETL/30.user_pairs_fuzzy_join",{"aside":1844,"date":3388,"thumbnail":3389,"tags":3391,"keywords":3392,"layout":3150},"2023-01-09",{"src":3390,"provider":3168},"/assets/blog/thumbnails/th-mining-hidden-user-pair-activity-with-fuzzy-join.png",[1928,2510],[3393,3173,3394,3395,3396,3397,3398],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":3400,"path":3401,"stem":3402,"meta":3403},"Pathway Logistics Application: Streamlined Insights for Real-Time Asset Management","/developers/templates/etl/logistics","2.developers/7.templates/ETL/4.logistics",{"aside":1844,"layout":3150,"date":3342,"thumbnail":3404,"tags":3406,"enterprise":1844,"keywords":3407},{"src":3405},"/assets/content/blog/th-logictics-app.png",[1928,3170],[3408,3409,3410],"Logistics","IoT","Dashboard",{"title":3412,"path":3413,"stem":3414,"meta":3415},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway","/developers/templates/etl/bellman_ford","2.developers/7.templates/ETL/40.bellman_ford",{"aside":1844,"date":3416,"layout":3150,"thumbnail":3417,"tags":3419,"notebook_export_path":3420,"keywords":3421},"2022-11-03",{"src":3418,"provider":3168},"/assets/blog/thumbnails/th-bellman-ford.png",[1928,3170],"notebooks/tutorials/bellman_ford.ipynb",[2229,3422,3423,2590,3174],"fixed-point","shortest-path",{"title":3425,"path":3426,"stem":3427,"meta":3428},"Linear regression on a Kafka stream","/developers/templates/etl/linear_regression_with_kafka","2.developers/7.templates/ETL/5.linear_regression_with_kafka",{"aside":1844,"layout":3150,"date":3429,"tags":3430,"keywords":3431,"docker_github_link":3433},"2022-12-23",[1928,2510],[3432,2066,1999],"linear regression","https://github.com/pathwaycom/pathway/tree/main/examples/projects/kafka-linear-regression",{"title":3435,"path":3436,"stem":3437,"meta":3438},"Real-Time PageRank on Dynamic Graphs with Pathway","/developers/templates/etl/pagerank","2.developers/7.templates/ETL/50.pagerank",{"notebook_export_path":3439,"aside":1844,"date":3440,"thumbnail":3441,"tags":3443,"keywords":3444,"layout":3150},"notebooks/tutorials/pagerank.ipynb","2022-11-07",{"src":3442,"provider":3168},"/assets/blog/thumbnails/th-computing-pagerank.png",[1928,3170],[3445,2590,3174],"pagerank",{"title":3447,"path":3448,"stem":3449,"meta":3450},"Sensor Fusion in real-time: combining time series data with Pathway","/developers/templates/etl/combining_time_series","2.developers/7.templates/ETL/65.combining_time_series",{"aside":1844,"date":3451,"thumbnail":3452,"tags":3453,"keywords":3454,"notebook_export_path":3457,"layout":3150},"2023-04-28",{"src":3232},[3185],[3455,3456,3238,1963,3174],"time series","multiple data sources","notebooks/tutorials/combining-time-series.ipynb",{"title":3459,"path":3460,"stem":3461,"meta":3462},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","/developers/templates/etl/realtime-log-monitoring","2.developers/7.templates/ETL/7.realtime-log-monitoring",{"aside":1844,"layout":3150,"date":3463,"thumbnail":3464,"tags":3466,"keywords":3467,"docker_github_link":3471},"2023-02-27",{"src":3465,"contain":1844},"/assets/content/tutorials/realtime_log_monitoring/meme.jpg",[1928,2510],[3468,3173,2066,3469,2041,3470,2068],"log monitoring","Filebeat","ElasticSearch","https://github.com/pathwaycom/pathway/tree/main/examples/projects/realtime-log-monitoring/filebeat-pathway-slack",{"title":3473,"path":3474,"stem":3475,"children":3476,"page":1873},"Readmes","/developers/templates/etl/_readmes","2.developers/7.templates/ETL/_readmes",[3477,3482,3487,3492,3497,3502,3507,3512,3517,3522,3527,3531,3536,3541,3546,3551,3556,3561,3566],{"title":3478,"path":3479,"stem":3480,"meta":3481},"AG2 Multi-Agent Conversations with Pathway Real-Time RAG","/developers/templates/etl/_readmes/ag2-multiagent-rag","2.developers/7.templates/ETL/_readmes/ag2-multiagent-rag",{},{"title":3483,"path":3484,"stem":3485,"meta":3486},"Azure ACI Deployment Example","/developers/templates/etl/_readmes/azure-aci-deploy","2.developers/7.templates/ETL/_readmes/azure-aci-deploy",{},{"title":3488,"path":3489,"stem":3490,"meta":3491},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","/developers/templates/etl/_readmes/benchmarks","2.developers/7.templates/ETL/_readmes/benchmarks",{},{"title":3493,"path":3494,"stem":3495,"meta":3496},"Best-rated movies examples","/developers/templates/etl/_readmes/best-movies-example","2.developers/7.templates/ETL/_readmes/best-movies-example",{},{"title":3498,"path":3499,"stem":3500,"meta":3501},"Make your LLM app sane again: Forgetting incorrect data in real time","/developers/templates/etl/_readmes/conf42","2.developers/7.templates/ETL/_readmes/conf42",{},{"title":3503,"path":3504,"stem":3505,"meta":3506},"Custom python connector example","/developers/templates/etl/_readmes/custom-python-connector-twitter","2.developers/7.templates/ETL/_readmes/custom-python-connector-twitter",{},{"title":3508,"path":3509,"stem":3510,"meta":3511},"Realtime monitoring of logs","/developers/templates/etl/_readmes/filebeat-pathway-slack","2.developers/7.templates/ETL/_readmes/filebeat-pathway-slack",{},{"title":3513,"path":3514,"stem":3515,"meta":3516},"Tutorial: From interactive data exploration to deployment","/developers/templates/etl/_readmes/from_jupyter_to_deploy","2.developers/7.templates/ETL/_readmes/from_jupyter_to_deploy",{},{"title":3518,"path":3519,"stem":3520,"meta":3521},"ETL with Kafka in/Kafka out","/developers/templates/etl/_readmes/kafka-etl","2.developers/7.templates/ETL/_readmes/kafka-ETL",{},{"title":3523,"path":3524,"stem":3525,"meta":3526},"Best-rated movies example - Kafka version","/developers/templates/etl/_readmes/kafka-version","2.developers/7.templates/ETL/_readmes/kafka-version",{},{"title":3508,"path":3528,"stem":3529,"meta":3530},"/developers/templates/etl/_readmes/logstash-pathway-elastic","2.developers/7.templates/ETL/_readmes/logstash-pathway-elastic",{},{"title":3532,"path":3533,"stem":3534,"meta":3535},"Pathway Monitoring using OpenTelemetry Collector and Grafana Cloud","/developers/templates/etl/_readmes/monitoring","2.developers/7.templates/ETL/_readmes/monitoring",{},{"title":3537,"path":3538,"stem":3539,"meta":3540},"Computing Option Greeks with Pathway and Databento.","/developers/templates/etl/_readmes/option-greeks","2.developers/7.templates/ETL/_readmes/option-greeks",{},{"title":3542,"path":3543,"stem":3544,"meta":3545},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway","/developers/templates/etl/_readmes/question-answering-rag","2.developers/7.templates/ETL/_readmes/question-answering-rag",{},{"title":3547,"path":3548,"stem":3549,"meta":3550},"Best-rated movies example - Redpanda version","/developers/templates/etl/_readmes/redpanda-version","2.developers/7.templates/ETL/_readmes/redpanda-version",{},{"title":3552,"path":3553,"stem":3554,"meta":3555},"Sample Pathway program for SharePoint connection testing","/developers/templates/etl/_readmes/sharepoint-test","2.developers/7.templates/ETL/_readmes/sharepoint-test",{},{"title":3557,"path":3558,"stem":3559,"meta":3560},"Data Preparation for Spark Analytics","/developers/templates/etl/_readmes/spark-data-preparation","2.developers/7.templates/ETL/_readmes/spark-data-preparation",{},{"title":3562,"path":3563,"stem":3564,"meta":3565},"Realtime Twitter Analysis App with Pathway","/developers/templates/etl/_readmes/twitter","2.developers/7.templates/ETL/_readmes/twitter",{},{"title":3567,"path":3568,"stem":3569,"meta":3570},"Web Scraping with Pathway","/developers/templates/etl/_readmes/web-scraping","2.developers/7.templates/ETL/_readmes/web-scraping",{},{"title":3572,"meta":3573,"path":3574,"stem":3575,"children":3576,"page":1873},"LLM-RAG Templates",{},"/developers/templates/rag","2.developers/7.templates/rag",[3577,3590,3605,3621,3634,3652,3662,3677,3687,3697,3708,3721],{"title":3578,"path":3579,"stem":3580,"meta":3581},"Question-Answering RAG App","/developers/templates/rag/demo-question-answering","2.developers/7.templates/rag/1000.demo-question-answering",{"redirection":3582,"thumbnail":3583,"layout":3150,"tags":3585,"date":2440,"keywords":3587,"docker_github_link":3582,"popular":1844},"https://github.com/pathwaycom/llm-app/tree/main/templates/question_answering_rag",{"src":3584,"provider":3168},"/assets/blog/thumbnails/qna-th.png",[2509,3586],"ai-pipelines",[2383,2395,2385,2386,3588,2249,1999,3589],"vector store","yaml",{"title":3591,"path":3592,"stem":3593,"meta":3594},"Adaptive RAG App","/developers/templates/rag/template-adaptive-rag","2.developers/7.templates/rag/1001.template-adaptive-rag",{"thumbnail":3595,"tags":3597,"date":3598,"layout":3150,"keywords":3599,"docker_github_link":3604},{"src":3596,"contain":1844},"/assets/content/blog/adaptive-rag-plots/visual-abstract.png",[2509,3586],"2024-03-29",[2383,2395,3600,3601,3602,3603,1999,3589],"Adaptive RAG","prompt engineering","prompt","explainability","https://github.com/pathwaycom/llm-app/tree/main/templates/adaptive_rag",{"title":3606,"path":3607,"stem":3608,"meta":3609},"Private RAG App with Mistral and Ollama","/developers/templates/rag/template-private-rag","2.developers/7.templates/rag/1002.template-private-rag",{"tags":3610,"date":3611,"thumbnail":3612,"layout":3150,"keywords":3614,"docker_github_link":3620},[2509,3586],"2024-04-22",{"src":3613,"contain":1844},"/assets/content/blog/local-adaptive-rag/local_adaptive.png",[2383,2395,3600,3601,3603,3615,3616,3617,3618,3619,1999,3589],"mistral","ollama","private rag","local rag","ollama rag","https://github.com/pathwaycom/llm-app/tree/main/templates/private_rag",{"title":3622,"path":3623,"stem":3624,"meta":3625},"Multimodal RAG pipeline with GPT4o","/developers/templates/rag/template-multimodal-rag","2.developers/7.templates/rag/1003.template-multimodal-rag",{"tags":3626,"date":3627,"thumbnail":3628,"layout":3150,"keywords":3630,"docker_github_link":3633,"popular":1844},[2509,3586],"2024-01-01",{"src":3629,"contain":1844},"/assets/content/showcases/multimodal-RAG/multimodalRAG-blog-banner.png",[2383,2395,2385,2386,3631,3632,2443,1999,3589],"GPT-4o","multimodal RAG","https://github.com/pathwaycom/llm-app/tree/main/templates/multimodal_rag",{"title":3635,"path":3636,"stem":3637,"children":3638,"meta":3648},"Live Document Indexing (Vector Store / Retriever)","/developers/templates/rag/template-demo-document-indexing","2.developers/7.templates/rag/1008.template-demo-document-indexing",[3639],{"title":3635,"path":3636,"stem":3637,"meta":3640},{"thumbnail":3641,"tags":3643,"date":3627,"layout":3150,"keywords":3644,"docker_github_link":3647},{"src":3642,"provider":3168},"/assets/blog/thumbnails/live-document-indexing-th.png",[2509,3586],[2383,2395,2385,2386,3588,2249,3645,2145,3646,1999,3589],"SharePoint","Gdrive","https://github.com/pathwaycom/llm-app/tree/main/templates/document_indexing",{"thumbnail":3649,"tags":3650,"date":3627,"layout":3150,"keywords":3651,"docker_github_link":3647},{"src":3642,"provider":3168},[2509,3586],[2383,2395,2385,2386,3588,2249,3645,2145,3646,1999,3589],{"title":3653,"path":3654,"stem":3655,"meta":3656},"Alerting when answers change on Google Drive","/developers/templates/rag/drive-alert","2.developers/7.templates/rag/1009.drive-alert",{"tags":3657,"date":3658,"layout":3150,"keywords":3659,"docker_github_link":3661,"hide":1844},[2509,3586],"2024-11-07",[2383,2395,2385,2386,3660,2249,2145,3646,1999],"slack","https://github.com/pathwaycom/llm-app/tree/main/templates/drive_alert",{"title":3663,"path":3664,"stem":3665,"meta":3666},"Slides AI Search App","/developers/templates/rag/template-slides-search","2.developers/7.templates/rag/1010.template-slides-search",{"thumbnail":3667,"tags":3669,"date":3670,"layout":3150,"keywords":3671,"docker_github_link":3676},{"src":3668,"provider":3168},"/assets/blog/thumbnails/slides-search-th.png",[2509,3586],"2024-11-14",[2383,2395,2385,2386,2145,3672,1999,3589,3673,3674,3675],"slides","multimodal","VLM","image-to-text","https://github.com/pathwaycom/llm-app/tree/main/templates/slides_ai_search",{"title":3678,"path":3679,"stem":3680,"meta":3681},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","/developers/templates/rag/adaptive-rag","2.developers/7.templates/rag/1015.adaptive-rag",{"aside":1844,"thumbnail":3682,"tags":3683,"date":3684,"notebook_export_path":3685,"keywords":3686,"run_template":3592,"hide":1844},{"src":3596,"contain":1844},[2509,3586],"2024-03-28","notebooks/showcases/adaptive_rag_question_answering.ipynb",[2383,2395,3600,3601,3602,3603,3174,2068],{"title":3688,"path":3689,"stem":3690,"meta":3691},"Multimodal RAG for PDFs with Text, Images, and Charts","/developers/templates/rag/multimodal-rag","2.developers/7.templates/rag/120.multimodal-rag",{"aside":1844,"thumbnail":3692,"date":3693,"tags":3694,"keywords":3695,"notebook_export_path":3696,"run_template":3623,"popular":1844,"hide":1844},{"src":3629,"contain":1844},"2024-06-20",[2509,3586],[2383,2395,2385,2386,3631,3632,2443,3174,1999],"notebooks/showcases/multimodal-rag.ipynb",{"title":3698,"path":3699,"stem":3700,"meta":3701},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway","/developers/templates/rag/private-rag-ollama-mistral","2.developers/7.templates/rag/161.private-rag-ollama-mistral",{"aside":1844,"thumbnail":3702,"tags":3703,"date":3704,"related":3705,"notebook_export_path":3706,"keywords":3707,"run_template":3607,"hide":1844},{"src":3613,"contain":1844},[2509,3586],"2024-04-23",[3679,3579],"notebooks/showcases/mistral_adaptive_rag_question_answering.ipynb",[2383,2395,3600,3601,3603,3615,3616,3617,3618,3619,3174,1999],{"title":3709,"path":3710,"stem":3711,"meta":3712},"Pathway + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","/developers/templates/rag/unstructured-to-structured","2.developers/7.templates/rag/5.unstructured-to-structured",{"aside":1844,"layout":3150,"date":2366,"thumbnail":3713,"tags":3715,"keywords":3716,"docker_github_link":3720},{"src":3714,"contain":1844},"/assets/content/showcases/llm-app/architecture_unst_to_st.png",[2509,3586],[2383,3717,2443,2093,2385,3718,3719,1962,2443,2068],"SQL","Entity extraction","Document parsing","https://github.com/pathwaycom/llm-app/tree/main/templates/unstructured_to_sql_on_the_fly",{"title":3473,"path":3722,"stem":3723,"children":3724,"page":1873},"/developers/templates/rag/_readmes","2.developers/7.templates/rag/_readmes",[3725,3730,3738,3743,3748,3753,3758,3763,3768],{"title":3726,"path":3727,"stem":3728,"meta":3729},"AdaptiveRag","/developers/templates/rag/_readmes/adaptive_rag","2.developers/7.templates/rag/_readmes/adaptive_rag",{},{"title":3731,"path":3732,"stem":3733,"children":3734,"meta":3737},"DocumentIndexing","/developers/templates/rag/_readmes/document_indexing","2.developers/7.templates/rag/_readmes/document_indexing",[3735],{"title":3731,"path":3732,"stem":3733,"meta":3736},{},{},{"title":3739,"path":3740,"stem":3741,"meta":3742},"DocumentStoreMcpServer","/developers/templates/rag/_readmes/document_store_mcp_server","2.developers/7.templates/rag/_readmes/document_store_mcp_server",{},{"title":3744,"path":3745,"stem":3746,"meta":3747},"Pathway + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","/developers/templates/rag/_readmes/drive_alert","2.developers/7.templates/rag/_readmes/drive_alert",{},{"title":3749,"path":3750,"stem":3751,"meta":3752},"MultimodalRag","/developers/templates/rag/_readmes/multimodal_rag","2.developers/7.templates/rag/_readmes/multimodal_rag",{},{"title":3754,"path":3755,"stem":3756,"meta":3757},"PrivateRag","/developers/templates/rag/_readmes/private_rag","2.developers/7.templates/rag/_readmes/private_rag",{},{"title":3759,"path":3760,"stem":3761,"meta":3762},"QuestionAnsweringRag","/developers/templates/rag/_readmes/question_answering_rag","2.developers/7.templates/rag/_readmes/question_answering_rag",{},{"title":3764,"path":3765,"stem":3766,"meta":3767},"SlidesAiSearch","/developers/templates/rag/_readmes/slides_ai_search","2.developers/7.templates/rag/_readmes/slides_ai_search",{},{"title":3769,"path":3770,"stem":3771,"meta":3772},"UnstructuredToSqlOnTheFly","/developers/templates/rag/_readmes/unstructured_to_sql_on_the_fly","2.developers/7.templates/rag/_readmes/unstructured_to_sql_on_the_fly",{},{"navTitle":1869,"layout":1941,"aside":1844,"toc":1873,"single":1844},{"id":4,"title":5,"author":6,"body":3775,"description":1840,"extension":1841,"meta":5265,"navigation":1844,"path":1845,"seo":5266,"sitemap":5267,"stem":1848,"__hash__":1849},{"type":8,"value":3776,"toc":5261},[3777,3779,3785,3792,3802,3804,3812,3820,3826,3840,3844,4057,4059,4065,4125,4127,4191,4193,4229,4303,4305,4341,4453,4455,4519,4521,4585,4587,4691,4693,4749,4756,4763,4775,4783,4791,4913,4915,4919,4975,4977,5043,5051,5153,5155,5259],[11,3778,5],{"id":13},[15,3780,3781,21,3783,27],{},[18,3782,20],{},[23,3784,26],{"href":25},[29,3786,3787,35,3789,42],{"id":31},[18,3788,34],{},[37,3790,41],{"className":3791},[40],[15,3793,3794,53,3799,60],{},[23,3795,3797],{"className":3796,"href":49},[48],[37,3798,52],{},[23,3800,59],{"href":56,"rel":3801},[58],[15,3803,63],{},[15,3805,66,3806,71,3808,75,3810,27],{},[68,3807,70],{},[68,3809,74],{},[68,3811,78],{},[15,3813,81,3814,84,3816,87,3818,91],{},[68,3815,74],{},[68,3817,70],{},[68,3819,90],{},[15,3821,94,3822,97,3824,101],{},[68,3823,78],{},[68,3825,100],{},[15,3827,3828,107,3830,111,3832,115,3834,119,3836,123,3838,27],{},[18,3829,106],{},[68,3831,110],{},[68,3833,114],{},[68,3835,118],{},[68,3837,122],{},[68,3839,114],{},[15,3841,3842,131],{},[18,3843,130],{},[133,3845,3846,4049],{},[136,3847,3848,3850],{},[18,3849,140],{},[133,3851,3852,3860,3866,3880,3898,3916,3924,3943,3987,4007,4017,4025,4033,4045],{},[136,3853,3854,148,3856,152,3858,27],{},[18,3855,147],{},[68,3857,151],{},[68,3859,155],{},[136,3861,3862,148,3864,163],{},[18,3863,160],{},[68,3865,151],{},[136,3867,3868,148,3870,171,3872,178,3876,182,3878,27],{},[18,3869,100],{},[68,3871,170],{},[23,3873,3874],{"href":174},[68,3875,177],{},[68,3877,181],{},[68,3879,78],{},[136,3881,3882,148,3884,171,3886,71,3888,71,3890,202,3892,71,3894,207,3896,27],{},[18,3883,189],{},[68,3885,192],{},[68,3887,195],{},[68,3889,198],{},[68,3891,201],{},[68,3893,74],{},[68,3895,70],{},[68,3897,78],{},[136,3899,3900,148,3902,171,3904,71,3906,223,3908,227,3910,231,3912,234,3914,237],{},[18,3901,214],{},[68,3903,192],{},[68,3905,219],{},[68,3907,222],{},[68,3909,226],{},[68,3911,230],{},[68,3913,226],{},[68,3915,230],{},[136,3917,3918,148,3920,246,3922,249],{},[18,3919,242],{},[68,3921,245],{},[68,3923,181],{},[136,3925,3926,148,3928,171,3930,71,3932,178,3934,264,3936,267,3938,271,3940,27],{},[18,3927,254],{},[68,3929,257],{},[68,3931,151],{},[68,3933,151],{},[68,3935,181],{},[68,3937,78],{},[68,3939,270],{},[23,3941,276],{"href":274,"rel":3942},[58],[136,3944,3945,148,3947,285,3949,289,3951,292,3953,71,3955,298,3957,71,3959,71,3961,308,3963,71,3965,71,3967,71,3969,71,3971,324,3973,327,3975,334,3979,338,3981,343,3985,27],{},[18,3946,281],{},[68,3948,284],{},[68,3950,288],{},[68,3952,114],{},[68,3954,295],{},[68,3956,160],{},[68,3958,301],{},[68,3960,304],{},[68,3962,307],{},[68,3964,311],{},[68,3966,314],{},[68,3968,317],{},[68,3970,320],{},[68,3972,323],{},[68,3974,118],{},[23,3976,3977],{"href":330},[68,3978,333],{},[68,3980,337],{},[23,3982,3983],{"href":330},[68,3984,333],{},[68,3986,346],{},[136,3988,3989,148,3991,171,3993,71,3995,71,3997,363,3999,367,4001,371,4003,375,4005,27],{},[18,3990,351],{},[68,3992,192],{},[68,3994,356],{},[68,3996,359],{},[68,3998,362],{},[68,4000,366],{},[68,4002,370],{},[68,4004,374],{},[68,4006,378],{},[136,4008,4009,148,4011,246,4013,387,4015,391],{},[18,4010,378],{},[68,4012,245],{},[68,4014,181],{},[68,4016,390],{},[136,4018,4019,148,4021,246,4023,401],{},[18,4020,396],{},[68,4022,151],{},[68,4024,181],{},[136,4026,4027,148,4029,246,4031,411],{},[18,4028,406],{},[68,4030,245],{},[68,4032,181],{},[136,4034,4035,148,4037,246,4041,425,4043,428],{},[18,4036,416],{},[23,4038,4039],{"href":419},[68,4040,422],{},[68,4042,181],{},[68,4044,422],{},[136,4046,4047,434],{},[18,4048,433],{},[136,4050,4051,4053,4055,447],{},[18,4052,439],{},[441,4054],{},[444,4056,446],{},[15,4058,450],{},[15,4060,453,4061,457,4063,461],{},[68,4062,456],{},[68,4064,460],{},[463,4066,4067],{"className":465,"code":466,"language":467,"meta":468,"style":468},[68,4068,4069,4079,4101,4111,4121],{"__ignoreMap":468},[37,4070,4071,4073,4075,4077],{"class":473,"line":474},[37,4072,478],{"class":477},[37,4074,482],{"class":481},[37,4076,485],{"class":477},[37,4078,488],{"class":481},[37,4080,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099],{"class":473,"line":491},[37,4082,494],{"class":481},[37,4084,498],{"class":497},[37,4086,501],{"class":481},[37,4088,27],{"class":497},[37,4090,507],{"class":506},[37,4092,27],{"class":497},[37,4094,512],{"class":506},[37,4096,27],{"class":497},[37,4098,34],{"class":517},[37,4100,520],{"class":497},[37,4102,4103,4105,4107,4109],{"class":473,"line":523},[37,4104,526],{"class":497},[37,4106,530],{"class":529},[37,4108,533],{"class":497},[37,4110,308],{"class":497},[37,4112,4113,4115,4117,4119],{"class":473,"line":538},[37,4114,526],{"class":497},[37,4116,543],{"class":529},[37,4118,533],{"class":497},[37,4120,308],{"class":497},[37,4122,4123],{"class":473,"line":550},[37,4124,553],{"class":497},[15,4126,556],{},[463,4128,4129],{"className":465,"code":559,"language":467,"meta":468,"style":468},[68,4130,4131,4153,4163,4173,4187],{"__ignoreMap":468},[37,4132,4133,4135,4137,4139,4141,4143,4145,4147,4149,4151],{"class":473,"line":474},[37,4134,494],{"class":481},[37,4136,498],{"class":497},[37,4138,501],{"class":481},[37,4140,27],{"class":497},[37,4142,507],{"class":506},[37,4144,27],{"class":497},[37,4146,512],{"class":506},[37,4148,27],{"class":497},[37,4150,34],{"class":517},[37,4152,520],{"class":497},[37,4154,4155,4157,4159,4161],{"class":473,"line":491},[37,4156,526],{"class":497},[37,4158,530],{"class":529},[37,4160,533],{"class":497},[37,4162,308],{"class":497},[37,4164,4165,4167,4169,4171],{"class":473,"line":523},[37,4166,526],{"class":497},[37,4168,543],{"class":529},[37,4170,533],{"class":497},[37,4172,308],{"class":497},[37,4174,4175,4177,4179,4181,4183,4185],{"class":473,"line":538},[37,4176,609],{"class":608},[37,4178,498],{"class":497},[37,4180,533],{"class":497},[37,4182,616],{"class":529},[37,4184,533],{"class":497},[37,4186,308],{"class":497},[37,4188,4189],{"class":473,"line":550},[37,4190,553],{"class":497},[15,4192,627],{},[463,4194,4195],{"className":465,"code":630,"language":467,"meta":468,"style":468},[68,4196,4197,4213,4221],{"__ignoreMap":468},[37,4198,4199,4201,4203,4205,4207,4209,4211],{"class":473,"line":474},[37,4200,638],{"class":637},[37,4202,642],{"class":641},[37,4204,35],{"class":497},[37,4206,647],{"class":641},[37,4208,27],{"class":497},[37,4210,177],{"class":641},[37,4212,654],{"class":497},[37,4214,4215,4217,4219],{"class":473,"line":491},[37,4216,659],{"class":481},[37,4218,662],{"class":497},[37,4220,665],{"class":641},[37,4222,4223,4225,4227],{"class":473,"line":523},[37,4224,670],{"class":481},[37,4226,662],{"class":497},[37,4228,665],{"class":641},[463,4230,4231],{"className":465,"code":677,"language":467,"meta":468,"style":468},[68,4232,4233,4255,4265,4275,4289,4299],{"__ignoreMap":468},[37,4234,4235,4237,4239,4241,4243,4245,4247,4249,4251,4253],{"class":473,"line":474},[37,4236,494],{"class":481},[37,4238,498],{"class":497},[37,4240,501],{"class":481},[37,4242,27],{"class":497},[37,4244,507],{"class":506},[37,4246,27],{"class":497},[37,4248,512],{"class":506},[37,4250,27],{"class":497},[37,4252,34],{"class":517},[37,4254,520],{"class":497},[37,4256,4257,4259,4261,4263],{"class":473,"line":491},[37,4258,526],{"class":497},[37,4260,530],{"class":529},[37,4262,533],{"class":497},[37,4264,308],{"class":497},[37,4266,4267,4269,4271,4273],{"class":473,"line":523},[37,4268,526],{"class":497},[37,4270,543],{"class":529},[37,4272,533],{"class":497},[37,4274,308],{"class":497},[37,4276,4277,4279,4281,4283,4285,4287],{"class":473,"line":538},[37,4278,609],{"class":608},[37,4280,498],{"class":497},[37,4282,533],{"class":497},[37,4284,732],{"class":529},[37,4286,533],{"class":497},[37,4288,308],{"class":497},[37,4290,4291,4293,4295,4297],{"class":473,"line":550},[37,4292,741],{"class":608},[37,4294,498],{"class":497},[37,4296,746],{"class":517},[37,4298,308],{"class":497},[37,4300,4301],{"class":473,"line":751},[37,4302,553],{"class":497},[15,4304,756],{},[463,4306,4307],{"className":465,"code":759,"language":467,"meta":468,"style":468},[68,4308,4309,4325,4333],{"__ignoreMap":468},[37,4310,4311,4313,4315,4317,4319,4321,4323],{"class":473,"line":474},[37,4312,638],{"class":637},[37,4314,642],{"class":641},[37,4316,35],{"class":497},[37,4318,647],{"class":641},[37,4320,27],{"class":497},[37,4322,177],{"class":641},[37,4324,654],{"class":497},[37,4326,4327,4329,4331],{"class":473,"line":491},[37,4328,782],{"class":481},[37,4330,662],{"class":497},[37,4332,665],{"class":641},[37,4334,4335,4337,4339],{"class":473,"line":523},[37,4336,791],{"class":481},[37,4338,662],{"class":497},[37,4340,796],{"class":641},[463,4342,4343],{"className":465,"code":799,"language":467,"meta":468,"style":468},[68,4344,4345,4367,4377,4387,4401,4411,4449],{"__ignoreMap":468},[37,4346,4347,4349,4351,4353,4355,4357,4359,4361,4363,4365],{"class":473,"line":474},[37,4348,494],{"class":481},[37,4350,498],{"class":497},[37,4352,501],{"class":481},[37,4354,27],{"class":497},[37,4356,507],{"class":506},[37,4358,27],{"class":497},[37,4360,512],{"class":506},[37,4362,27],{"class":497},[37,4364,34],{"class":517},[37,4366,520],{"class":497},[37,4368,4369,4371,4373,4375],{"class":473,"line":491},[37,4370,526],{"class":497},[37,4372,530],{"class":529},[37,4374,533],{"class":497},[37,4376,308],{"class":497},[37,4378,4379,4381,4383,4385],{"class":473,"line":523},[37,4380,526],{"class":497},[37,4382,543],{"class":529},[37,4384,533],{"class":497},[37,4386,308],{"class":497},[37,4388,4389,4391,4393,4395,4397,4399],{"class":473,"line":538},[37,4390,609],{"class":608},[37,4392,498],{"class":497},[37,4394,533],{"class":497},[37,4396,732],{"class":529},[37,4398,533],{"class":497},[37,4400,308],{"class":497},[37,4402,4403,4405,4407,4409],{"class":473,"line":550},[37,4404,741],{"class":608},[37,4406,498],{"class":497},[37,4408,746],{"class":517},[37,4410,308],{"class":497},[37,4412,4413,4415,4417,4419,4421,4423,4425,4427,4429,4431,4433,4435,4437,4439,4441,4443,4445,4447],{"class":473,"line":751},[37,4414,872],{"class":608},[37,4416,875],{"class":497},[37,4418,533],{"class":497},[37,4420,396],{"class":529},[37,4422,533],{"class":497},[37,4424,662],{"class":497},[37,4426,886],{"class":497},[37,4428,889],{"class":529},[37,4430,533],{"class":497},[37,4432,894],{"class":497},[37,4434,886],{"class":497},[37,4436,899],{"class":529},[37,4438,533],{"class":497},[37,4440,662],{"class":497},[37,4442,886],{"class":497},[37,4444,908],{"class":529},[37,4446,533],{"class":497},[37,4448,913],{"class":497},[37,4450,4451],{"class":473,"line":916},[37,4452,553],{"class":497},[15,4454,921],{},[463,4456,4457],{"className":465,"code":924,"language":467,"meta":468,"style":468},[68,4458,4459,4481,4491,4501,4515],{"__ignoreMap":468},[37,4460,4461,4463,4465,4467,4469,4471,4473,4475,4477,4479],{"class":473,"line":474},[37,4462,494],{"class":481},[37,4464,498],{"class":497},[37,4466,501],{"class":481},[37,4468,27],{"class":497},[37,4470,507],{"class":506},[37,4472,27],{"class":497},[37,4474,512],{"class":506},[37,4476,27],{"class":497},[37,4478,34],{"class":517},[37,4480,520],{"class":497},[37,4482,4483,4485,4487,4489],{"class":473,"line":491},[37,4484,526],{"class":497},[37,4486,530],{"class":529},[37,4488,533],{"class":497},[37,4490,308],{"class":497},[37,4492,4493,4495,4497,4499],{"class":473,"line":523},[37,4494,526],{"class":497},[37,4496,543],{"class":529},[37,4498,533],{"class":497},[37,4500,308],{"class":497},[37,4502,4503,4505,4507,4509,4511,4513],{"class":473,"line":538},[37,4504,973],{"class":608},[37,4506,498],{"class":497},[37,4508,533],{"class":497},[37,4510,980],{"class":529},[37,4512,533],{"class":497},[37,4514,308],{"class":497},[37,4516,4517],{"class":473,"line":550},[37,4518,553],{"class":497},[15,4520,991],{},[463,4522,4523],{"className":465,"code":994,"language":467,"meta":468,"style":468},[68,4524,4525,4547,4557,4567,4581],{"__ignoreMap":468},[37,4526,4527,4529,4531,4533,4535,4537,4539,4541,4543,4545],{"class":473,"line":474},[37,4528,494],{"class":481},[37,4530,498],{"class":497},[37,4532,501],{"class":481},[37,4534,27],{"class":497},[37,4536,507],{"class":506},[37,4538,27],{"class":497},[37,4540,512],{"class":506},[37,4542,27],{"class":497},[37,4544,34],{"class":517},[37,4546,520],{"class":497},[37,4548,4549,4551,4553,4555],{"class":473,"line":491},[37,4550,526],{"class":497},[37,4552,530],{"class":529},[37,4554,533],{"class":497},[37,4556,308],{"class":497},[37,4558,4559,4561,4563,4565],{"class":473,"line":523},[37,4560,526],{"class":497},[37,4562,543],{"class":529},[37,4564,533],{"class":497},[37,4566,308],{"class":497},[37,4568,4569,4571,4573,4575,4577,4579],{"class":473,"line":538},[37,4570,1043],{"class":608},[37,4572,498],{"class":497},[37,4574,533],{"class":497},[37,4576,1050],{"class":529},[37,4578,533],{"class":497},[37,4580,308],{"class":497},[37,4582,4583],{"class":473,"line":550},[37,4584,553],{"class":497},[15,4586,1061],{},[463,4588,4589],{"className":465,"code":1064,"language":467,"meta":468,"style":468},[68,4590,4591,4613,4623,4633,4647,4657,4671,4675,4679,4683,4687],{"__ignoreMap":468},[37,4592,4593,4595,4597,4599,4601,4603,4605,4607,4609,4611],{"class":473,"line":474},[37,4594,494],{"class":481},[37,4596,498],{"class":497},[37,4598,501],{"class":481},[37,4600,27],{"class":497},[37,4602,507],{"class":506},[37,4604,27],{"class":497},[37,4606,512],{"class":506},[37,4608,27],{"class":497},[37,4610,34],{"class":517},[37,4612,520],{"class":497},[37,4614,4615,4617,4619,4621],{"class":473,"line":491},[37,4616,526],{"class":497},[37,4618,530],{"class":529},[37,4620,533],{"class":497},[37,4622,308],{"class":497},[37,4624,4625,4627,4629,4631],{"class":473,"line":523},[37,4626,526],{"class":497},[37,4628,543],{"class":529},[37,4630,533],{"class":497},[37,4632,308],{"class":497},[37,4634,4635,4637,4639,4641,4643,4645],{"class":473,"line":538},[37,4636,609],{"class":608},[37,4638,498],{"class":497},[37,4640,533],{"class":497},[37,4642,732],{"class":529},[37,4644,533],{"class":497},[37,4646,308],{"class":497},[37,4648,4649,4651,4653,4655],{"class":473,"line":550},[37,4650,741],{"class":608},[37,4652,498],{"class":497},[37,4654,746],{"class":517},[37,4656,308],{"class":497},[37,4658,4659,4661,4663,4665,4667,4669],{"class":473,"line":751},[37,4660,782],{"class":608},[37,4662,498],{"class":497},[37,4664,533],{"class":497},[37,4666,1143],{"class":529},[37,4668,533],{"class":497},[37,4670,308],{"class":497},[37,4672,4673],{"class":473,"line":916},[37,4674,553],{"class":497},[37,4676,4677],{"class":473,"line":1154},[37,4678,1158],{"class":1157},[37,4680,4681],{"class":473,"line":1161},[37,4682,1164],{"class":1157},[37,4684,4685],{"class":473,"line":1167},[37,4686,1170],{"class":1157},[37,4688,4689],{"class":473,"line":1173},[37,4690,1176],{"class":1157},[15,4692,1179],{},[463,4694,4695],{"className":465,"code":1182,"language":467,"meta":468,"style":468},[68,4696,4697,4719,4729,4739,4745],{"__ignoreMap":468},[37,4698,4699,4701,4703,4705,4707,4709,4711,4713,4715,4717],{"class":473,"line":474},[37,4700,494],{"class":481},[37,4702,498],{"class":497},[37,4704,501],{"class":481},[37,4706,27],{"class":497},[37,4708,507],{"class":506},[37,4710,27],{"class":497},[37,4712,512],{"class":506},[37,4714,27],{"class":497},[37,4716,34],{"class":517},[37,4718,520],{"class":497},[37,4720,4721,4723,4725,4727],{"class":473,"line":491},[37,4722,526],{"class":497},[37,4724,530],{"class":529},[37,4726,533],{"class":497},[37,4728,308],{"class":497},[37,4730,4731,4733,4735,4737],{"class":473,"line":523},[37,4732,526],{"class":497},[37,4734,543],{"class":529},[37,4736,533],{"class":497},[37,4738,308],{"class":497},[37,4740,4741,4743],{"class":473,"line":538},[37,4742,1231],{"class":608},[37,4744,1234],{"class":497},[37,4746,4747],{"class":473,"line":550},[37,4748,553],{"class":497},[29,4750,4751,35,4753,42],{"id":1241},[18,4752,1244],{},[37,4754,1248],{"className":4755},[40],[15,4757,4758,1257],{},[23,4759,4761],{"className":4760,"href":1254},[48],[37,4762,52],{},[15,4764,1260,4765,1264,4767,1268,4769,227,4771,1275,4773,1278],{},[68,4766,1263],{},[68,4768,1267],{},[68,4770,1271],{},[68,4772,1274],{},[68,4774,337],{},[15,4776,1281,4777,308,4779,457,4781,27],{},[68,4778,78],{},[68,4780,70],{},[68,4782,74],{},[15,4784,1290,4785,227,4787,1295,4789,101],{},[68,4786,70],{},[68,4788,74],{},[68,4790,1298],{},[133,4792,4793],{},[136,4794,4795,4797],{},[18,4796,140],{},[133,4798,4799,4807,4815,4825,4843,4857,4881,4889,4901],{},[136,4800,4801,148,4803,1317],{},[18,4802,1311],{},[23,4804,4805],{"href":1314},[68,4806,446],{},[136,4808,4809,148,4811,152,4813,27],{},[18,4810,147],{},[68,4812,151],{},[68,4814,155],{},[136,4816,4817,148,4819,246,4821,1338],{},[18,4818,160],{},[68,4820,151],{},[23,4822,4823],{"href":1334},[68,4824,1337],{},[136,4826,4827,148,4829,171,4831,71,4833,71,4835,1351,4837,308,4839,457,4841,1358],{},[18,4828,189],{},[68,4830,192],{},[68,4832,201],{},[68,4834,195],{},[68,4836,198],{},[68,4838,78],{},[68,4840,70],{},[68,4842,74],{},[136,4844,4845,148,4847,246,4851,1369,4853,227,4855,1374],{},[18,4846,1298],{},[23,4848,4849],{"href":1334},[68,4850,1337],{},[68,4852,181],{},[68,4854,70],{},[68,4856,74],{},[136,4858,4859,148,4861,171,4863,171,4865,1389,4869,1393,4871,1397,4873,1401,4875,1405,4877,1409,4879,1412],{},[18,4860,337],{},[68,4862,1381],{},[68,4864,1384],{},[23,4866,4867],{"href":1334},[68,4868,1337],{},[68,4870,1392],{},[68,4872,1396],{},[68,4874,1400],{},[68,4876,1404],{},[68,4878,1408],{},[68,4880,110],{},[136,4882,4883,148,4885,246,4887,1421],{},[18,4884,396],{},[68,4886,151],{},[68,4888,181],{},[136,4890,4891,148,4893,171,4895,171,4897,1435],{},[18,4892,1426],{},[68,4894,1381],{},[68,4896,1384],{},[23,4898,4899],{"href":1334},[68,4900,1337],{},[136,4902,4903,148,4905,246,4909,425,4911,428],{},[18,4904,416],{},[23,4906,4907],{"href":419},[68,4908,422],{},[68,4910,181],{},[68,4912,422],{},[15,4914,1450],{},[15,4916,1453,4917,1457],{},[68,4918,1456],{},[463,4920,4921],{"className":465,"code":1460,"language":467,"meta":468,"style":468},[68,4922,4923,4933,4953,4957,4961,4965,4969],{"__ignoreMap":468},[37,4924,4925,4927,4929,4931],{"class":473,"line":474},[37,4926,478],{"class":477},[37,4928,482],{"class":481},[37,4930,485],{"class":477},[37,4932,488],{"class":481},[37,4934,4935,4937,4939,4941,4943,4945,4947,4949,4951],{"class":473,"line":491},[37,4936,494],{"class":481},[37,4938,498],{"class":497},[37,4940,501],{"class":481},[37,4942,27],{"class":497},[37,4944,1485],{"class":506},[37,4946,27],{"class":497},[37,4948,1490],{"class":517},[37,4950,35],{"class":497},[37,4952,1495],{"class":497},[37,4954,4955],{"class":473,"line":523},[37,4956,1500],{"class":529},[37,4958,4959],{"class":473,"line":538},[37,4960,1505],{"class":529},[37,4962,4963],{"class":473,"line":550},[37,4964,1510],{"class":529},[37,4966,4967],{"class":473,"line":751},[37,4968,1515],{"class":529},[37,4970,4971,4973],{"class":473,"line":916},[37,4972,1520],{"class":497},[37,4974,553],{"class":497},[15,4976,1525],{},[463,4978,4979],{"className":465,"code":1528,"language":467,"meta":468,"style":468},[68,4980,4981,4999,5005,5015,5025,5039],{"__ignoreMap":468},[37,4982,4983,4985,4987,4989,4991,4993,4995,4997],{"class":473,"line":474},[37,4984,647],{"class":481},[37,4986,27],{"class":497},[37,4988,507],{"class":506},[37,4990,27],{"class":497},[37,4992,512],{"class":506},[37,4994,27],{"class":497},[37,4996,1244],{"class":517},[37,4998,520],{"class":497},[37,5000,5001,5003],{"class":473,"line":491},[37,5002,1553],{"class":517},[37,5004,308],{"class":497},[37,5006,5007,5009,5011,5013],{"class":473,"line":523},[37,5008,526],{"class":497},[37,5010,530],{"class":529},[37,5012,533],{"class":497},[37,5014,308],{"class":497},[37,5016,5017,5019,5021,5023],{"class":473,"line":538},[37,5018,526],{"class":497},[37,5020,543],{"class":529},[37,5022,533],{"class":497},[37,5024,308],{"class":497},[37,5026,5027,5029,5031,5033,5035,5037],{"class":473,"line":550},[37,5028,609],{"class":608},[37,5030,498],{"class":497},[37,5032,533],{"class":497},[37,5034,732],{"class":529},[37,5036,533],{"class":497},[37,5038,308],{"class":497},[37,5040,5041],{"class":473,"line":751},[37,5042,553],{"class":497},[15,5044,1596,5045,1599,5047,1602,5049,1605],{},[68,5046,70],{},[68,5048,1298],{},[68,5050,337],{},[463,5052,5053],{"className":465,"code":1608,"language":467,"meta":468,"style":468},[68,5054,5055,5073,5079,5089,5099,5113,5127,5149],{"__ignoreMap":468},[37,5056,5057,5059,5061,5063,5065,5067,5069,5071],{"class":473,"line":474},[37,5058,647],{"class":481},[37,5060,27],{"class":497},[37,5062,507],{"class":506},[37,5064,27],{"class":497},[37,5066,512],{"class":506},[37,5068,27],{"class":497},[37,5070,1244],{"class":517},[37,5072,520],{"class":497},[37,5074,5075,5077],{"class":473,"line":491},[37,5076,1553],{"class":517},[37,5078,308],{"class":497},[37,5080,5081,5083,5085,5087],{"class":473,"line":523},[37,5082,526],{"class":497},[37,5084,530],{"class":529},[37,5086,533],{"class":497},[37,5088,308],{"class":497},[37,5090,5091,5093,5095,5097],{"class":473,"line":538},[37,5092,526],{"class":497},[37,5094,543],{"class":529},[37,5096,533],{"class":497},[37,5098,308],{"class":497},[37,5100,5101,5103,5105,5107,5109,5111],{"class":473,"line":550},[37,5102,609],{"class":608},[37,5104,498],{"class":497},[37,5106,533],{"class":497},[37,5108,616],{"class":529},[37,5110,533],{"class":497},[37,5112,308],{"class":497},[37,5114,5115,5117,5119,5121,5123,5125],{"class":473,"line":751},[37,5116,1673],{"class":608},[37,5118,498],{"class":497},[37,5120,1311],{"class":517},[37,5122,27],{"class":497},[37,5124,1682],{"class":506},[37,5126,308],{"class":497},[37,5128,5129,5131,5133,5135,5137,5139,5141,5143,5145,5147],{"class":473,"line":916},[37,5130,1689],{"class":608},[37,5132,1692],{"class":497},[37,5134,1311],{"class":517},[37,5136,27],{"class":497},[37,5138,899],{"class":506},[37,5140,894],{"class":497},[37,5142,1703],{"class":517},[37,5144,27],{"class":497},[37,5146,1708],{"class":506},[37,5148,1711],{"class":497},[37,5150,5151],{"class":473,"line":1154},[37,5152,553],{"class":497},[15,5154,1718],{},[463,5156,5157],{"className":465,"code":1721,"language":467,"meta":468,"style":468},[68,5158,5159,5179,5183,5187,5191,5197,5215,5221,5231,5241,5255],{"__ignoreMap":468},[37,5160,5161,5163,5165,5167,5169,5171,5173,5175,5177],{"class":473,"line":474},[37,5162,1728],{"class":481},[37,5164,498],{"class":497},[37,5166,501],{"class":481},[37,5168,27],{"class":497},[37,5170,1485],{"class":506},[37,5172,27],{"class":497},[37,5174,1490],{"class":517},[37,5176,35],{"class":497},[37,5178,1495],{"class":497},[37,5180,5181],{"class":473,"line":491},[37,5182,1749],{"class":529},[37,5184,5185],{"class":473,"line":523},[37,5186,1754],{"class":529},[37,5188,5189],{"class":473,"line":538},[37,5190,1759],{"class":529},[37,5192,5193,5195],{"class":473,"line":550},[37,5194,1520],{"class":497},[37,5196,553],{"class":497},[37,5198,5199,5201,5203,5205,5207,5209,5211,5213],{"class":473,"line":751},[37,5200,647],{"class":481},[37,5202,27],{"class":497},[37,5204,507],{"class":506},[37,5206,27],{"class":497},[37,5208,512],{"class":506},[37,5210,27],{"class":497},[37,5212,1244],{"class":517},[37,5214,520],{"class":497},[37,5216,5217,5219],{"class":473,"line":916},[37,5218,1788],{"class":517},[37,5220,308],{"class":497},[37,5222,5223,5225,5227,5229],{"class":473,"line":1154},[37,5224,526],{"class":497},[37,5226,530],{"class":529},[37,5228,533],{"class":497},[37,5230,308],{"class":497},[37,5232,5233,5235,5237,5239],{"class":473,"line":1161},[37,5234,1788],{"class":517},[37,5236,27],{"class":497},[37,5238,1809],{"class":506},[37,5240,308],{"class":497},[37,5242,5243,5245,5247,5249,5251,5253],{"class":473,"line":1167},[37,5244,609],{"class":608},[37,5246,498],{"class":497},[37,5248,533],{"class":497},[37,5250,732],{"class":529},[37,5252,533],{"class":497},[37,5254,308],{"class":497},[37,5256,5257],{"class":473,"line":1173},[37,5258,553],{"class":497},[1831,5260,1833],{},{"title":468,"searchDepth":491,"depth":491,"links":5262},[5263,5264],{"id":31,"depth":491,"text":1837},{"id":1241,"depth":491,"text":1839},{"sidebar":1843},{"title":5,"description":1840},{"loc":1845},[5269,5270],{"title":2995,"path":2996,"stem":2997,"children":-1},{"title":3002,"path":3003,"stem":3004,"children":-1},1776699257618]