{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"toc_visible":true,"authorship_tag":"ABX9TyMqGBd37MRX6faRbI2vvJOv"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["#**Aula 1: Realizando as primeiras consultas**"],"metadata":{"id":"3hrN90N32zY-"}},{"cell_type":"markdown","source":["##**Conhecendo os dados**"],"metadata":{"id":"CWgiSZae20yp"}},{"cell_type":"code","source":["url = 'https://raw.githubusercontent.com/alura-cursos/llamaIndex_pandas_query/refs/heads/main/Dados/vendas.csv'"],"metadata":{"id":"FBAAsKg7mIF3"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["import pandas as pd"],"metadata":{"id":"1Ro4zgocncu9"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["df = pd.read_csv(url)"],"metadata":{"id":"NT0B_UN2nhWY"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["df.head()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":313},"id":"awJoJpuZnoVX","executionInfo":{"status":"ok","timestamp":1731335207006,"user_tz":180,"elapsed":266,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"d96a81fc-c0ce-4035-d3bd-e7ed8b31c45a"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" ID_compra filial cidade tipo_cliente genero tipo_produto \\\n","0 750-67-8428 A Santo André Membro Feminino Saúde e Beleza \n","1 226-31-3081 C São Caetano Normal Feminino Eletrônicos \n","2 631-41-3108 A Santo André Normal Masculino Casa \n","3 123-19-1176 A Santo André Membro Masculino Saúde e Beleza \n","4 373-73-7910 A Santo André Normal Masculino Esportes e Viagem \n","\n"," preco_unitario quantidade imposto_5% total data hora \\\n","0 74.69 7 26.1415 548.9715 2024-01-05 13:08:00 \n","1 15.28 5 3.8200 80.2200 2024-03-08 10:29:00 \n","2 46.33 7 16.2155 340.5255 2024-03-03 13:23:00 \n","3 58.22 8 23.2880 489.0480 2024-01-27 20:33:00 \n","4 86.31 7 30.2085 634.3785 2024-02-08 10:37:00 \n","\n"," forma_pagamento avaliacao \n","0 Carteira Digital 9.1 \n","1 Dinheiro 9.6 \n","2 Cartão de Crédito 7.4 \n","3 Carteira Digital 8.4 \n","4 Carteira Digital 5.3 "],"text/html":["\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
ID_comprafilialcidadetipo_clientegenerotipo_produtopreco_unitarioquantidadeimposto_5%totaldatahoraforma_pagamentoavaliacao
0750-67-8428ASanto AndréMembroFemininoSaúde e Beleza74.69726.1415548.97152024-01-0513:08:00Carteira Digital9.1
1226-31-3081CSão CaetanoNormalFemininoEletrônicos15.2853.820080.22002024-03-0810:29:00Dinheiro9.6
2631-41-3108ASanto AndréNormalMasculinoCasa46.33716.2155340.52552024-03-0313:23:00Cartão de Crédito7.4
3123-19-1176ASanto AndréMembroMasculinoSaúde e Beleza58.22823.2880489.04802024-01-2720:33:00Carteira Digital8.4
4373-73-7910ASanto AndréNormalMasculinoEsportes e Viagem86.31730.2085634.37852024-02-0810:37:00Carteira Digital5.3
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","\n","
\n","
\n"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"dataframe","variable_name":"df","summary":"{\n \"name\": \"df\",\n \"rows\": 1000,\n \"fields\": [\n {\n \"column\": \"ID_compra\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 1000,\n \"samples\": [\n \"451-28-5717\",\n \"137-63-5492\",\n \"733-29-1227\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"filial\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"A\",\n \"C\",\n \"B\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cidade\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Santo Andr\\u00e9\",\n \"S\\u00e3o Caetano\",\n \"S\\u00e3o Bernardo do Campo\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"tipo_cliente\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Normal\",\n \"Membro\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"genero\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Masculino\",\n \"Feminino\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"tipo_produto\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"Sa\\u00fade e Beleza\",\n \"Eletr\\u00f4nicos\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"preco_unitario\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 26.494628347919768,\n \"min\": 10.08,\n \"max\": 99.96,\n \"num_unique_values\": 943,\n \"samples\": [\n 12.45,\n 70.74\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"quantidade\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2,\n \"min\": 1,\n \"max\": 10,\n \"num_unique_values\": 10,\n \"samples\": [\n 1,\n 5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"imposto_5%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 11.708825480998659,\n \"min\": 0.5085,\n \"max\": 49.65,\n \"num_unique_values\": 990,\n \"samples\": [\n 0.914,\n 2.348\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"total\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 245.88533510097207,\n \"min\": 10.6785,\n \"max\": 1042.65,\n \"num_unique_values\": 990,\n \"samples\": [\n 19.194,\n 49.308\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"data\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 89,\n \"samples\": [\n \"2024-02-14\",\n \"2024-01-26\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"hora\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 506,\n \"samples\": [\n \"10:13:00\",\n \"11:21:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"forma_pagamento\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Carteira Digital\",\n \"Dinheiro\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"avaliacao\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.718580294379123,\n \"min\": 4.0,\n \"max\": 10.0,\n \"num_unique_values\": 61,\n \"samples\": [\n 9.1,\n 4.1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"}},"metadata":{},"execution_count":4}]},{"cell_type":"code","source":["df.info()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"kfi1xbiwnrW6","executionInfo":{"status":"ok","timestamp":1731335313963,"user_tz":180,"elapsed":283,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"11d2c472-6f52-409b-b1e2-754b71b5f3a3"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["\n","RangeIndex: 1000 entries, 0 to 999\n","Data columns (total 14 columns):\n"," # Column Non-Null Count Dtype \n","--- ------ -------------- ----- \n"," 0 ID_compra 1000 non-null object \n"," 1 filial 1000 non-null object \n"," 2 cidade 1000 non-null object \n"," 3 tipo_cliente 1000 non-null object \n"," 4 genero 1000 non-null object \n"," 5 tipo_produto 1000 non-null object \n"," 6 preco_unitario 1000 non-null float64\n"," 7 quantidade 1000 non-null int64 \n"," 8 imposto_5% 1000 non-null float64\n"," 9 total 1000 non-null float64\n"," 10 data 1000 non-null object \n"," 11 hora 1000 non-null object \n"," 12 forma_pagamento 1000 non-null object \n"," 13 avaliacao 1000 non-null float64\n","dtypes: float64(4), int64(1), object(9)\n","memory usage: 109.5+ KB\n"]}]},{"cell_type":"code","source":["df.duplicated().sum()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"YEIaWn4VoFdz","executionInfo":{"status":"ok","timestamp":1731335531098,"user_tz":180,"elapsed":278,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"9c945243-5fb3-43f2-fe6d-2b5b6023a12a"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0"]},"metadata":{},"execution_count":6}]},{"cell_type":"markdown","source":["##**Definindo a LLM e configurando a Chave de API**"],"metadata":{"id":"s47hemh325_Q"}},{"cell_type":"code","source":["!pip install llama-index llama-index-experimental -q"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"GfkLEzQjo6en","executionInfo":{"status":"ok","timestamp":1731336222266,"user_tz":180,"elapsed":19267,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"327b3a49-9b51-4ca2-9f1a-bfe8ba62afcb"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.6/80.6 kB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m32.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m40.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.5/1.5 MB\u001b[0m \u001b[31m41.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m176.8/176.8 kB\u001b[0m \u001b[31m13.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m295.8/295.8 kB\u001b[0m \u001b[31m17.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m41.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m187.6/187.6 kB\u001b[0m \u001b[31m13.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m248.7/248.7 kB\u001b[0m \u001b[31m16.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.5/49.5 kB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m254.6/254.6 kB\u001b[0m \u001b[31m15.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m198.9/198.9 kB\u001b[0m \u001b[31m13.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m51.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m113.1/113.1 kB\u001b[0m \u001b[31m8.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25h"]}]},{"cell_type":"code","source":["from google.colab import userdata\n","key = userdata.get('GROQ_API')"],"metadata":{"id":"g2RuQGJ9s0eM"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["!pip install llama-index-llms-groq -q"],"metadata":{"id":"RMndtzCKt29L"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["from llama_index.core import Settings\n","from llama_index.llms.groq import Groq\n","\n","Settings.llm = Groq(model='llama3-70b-8192', api_key=key)"],"metadata":{"id":"ybCBkwFduMQ4"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["##**Gerando consultas com PandasQueryEngine**"],"metadata":{"id":"yrVj0xIy2-wy"}},{"cell_type":"code","source":["from llama_index.experimental.query_engine import PandasQueryEngine"],"metadata":{"id":"0MzIEvruvtUS"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["query_engine = PandasQueryEngine(df=df, verbose=True)"],"metadata":{"id":"mR-m6aUuusie"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["response = query_engine.query('Qual é a forma de pagamento mais utilizada pelos clientes?')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"nRsu0PRIv4Bo","executionInfo":{"status":"ok","timestamp":1731337459183,"user_tz":180,"elapsed":572,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"9d8b54ff-ed5c-487b-a94d-bd79ecc784f0"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.forma_pagamento.value_counts().index[0]\n","```\n","> Pandas Output: Carteira Digital\n"]}]},{"cell_type":"code","source":["df.forma_pagamento.value_counts()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":209},"id":"eaHrqDA1wRIc","executionInfo":{"status":"ok","timestamp":1731337548203,"user_tz":180,"elapsed":250,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"8efba505-465a-4119-f81b-c73bc424fa94"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["forma_pagamento\n","Carteira Digital 345\n","Dinheiro 344\n","Cartão de Crédito 311\n","Name: count, dtype: int64"],"text/html":["
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
count
forma_pagamento
Carteira Digital345
Dinheiro344
Cartão de Crédito311
\n","

"]},"metadata":{},"execution_count":15}]},{"cell_type":"code","source":["response = query_engine.query('Qual é o tipo de produto com maior quantidade por filial?')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"_HmGgPO_wm8d","executionInfo":{"status":"ok","timestamp":1731337663673,"user_tz":180,"elapsed":538,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"d3725de0-aa23-4c78-a68f-bdc0f791263d"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.groupby(['filial', 'tipo_produto'])['quantidade'].sum().groupby('filial').idxmax()\n","```\n","> Pandas Output: filial\n","A (A, Casa)\n","B (B, Esportes e Viagem)\n","C (C, Alimentos e Bebidas)\n","Name: quantidade, dtype: object\n"]}]},{"cell_type":"code","source":["df.groupby(['filial', 'tipo_produto'])['quantidade'].sum()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":679},"id":"gbm6LPEQxDEB","executionInfo":{"status":"ok","timestamp":1731337735129,"user_tz":180,"elapsed":589,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"0ba48846-ccbf-42c2-fc0d-5f3c26c8a3cc"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["filial tipo_produto \n","A Alimentos e Bebidas 313\n"," Casa 371\n"," Eletrônicos 322\n"," Esportes e Viagem 333\n"," Moda 263\n"," Saúde e Beleza 257\n","B Alimentos e Bebidas 270\n"," Casa 295\n"," Eletrônicos 316\n"," Esportes e Viagem 322\n"," Moda 297\n"," Saúde e Beleza 320\n","C Alimentos e Bebidas 369\n"," Casa 245\n"," Eletrônicos 333\n"," Esportes e Viagem 265\n"," Moda 342\n"," Saúde e Beleza 277\n","Name: quantidade, dtype: int64"],"text/html":["
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
quantidade
filialtipo_produto
AAlimentos e Bebidas313
Casa371
Eletrônicos322
Esportes e Viagem333
Moda263
Saúde e Beleza257
BAlimentos e Bebidas270
Casa295
Eletrônicos316
Esportes e Viagem322
Moda297
Saúde e Beleza320
CAlimentos e Bebidas369
Casa245
Eletrônicos333
Esportes e Viagem265
Moda342
Saúde e Beleza277
\n","

"]},"metadata":{},"execution_count":17}]},{"cell_type":"code","source":["response"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"PynCQMj6xUXB","executionInfo":{"status":"ok","timestamp":1731337833247,"user_tz":180,"elapsed":266,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"15240058-31f6-4e39-a314-decd7d917a3b"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Response(response='filial\\nA (A, Casa)\\nB (B, Esportes e Viagem)\\nC (C, Alimentos e Bebidas)\\nName: quantidade, dtype: object', source_nodes=[], metadata={'pandas_instruction_str': \"df.groupby(['filial', 'tipo_produto'])['quantidade'].sum().groupby('filial').idxmax()\", 'raw_pandas_output': 'filial\\nA (A, Casa)\\nB (B, Esportes e Viagem)\\nC (C, Alimentos e Bebidas)\\nName: quantidade, dtype: object'})"]},"metadata":{},"execution_count":18}]},{"cell_type":"code","source":["print(response.response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9b9P5E5Kx0VR","executionInfo":{"status":"ok","timestamp":1731337893275,"user_tz":180,"elapsed":274,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"0aba233a-d815-4c9c-81fc-50a8f46bdab9"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["filial\n","A (A, Casa)\n","B (B, Esportes e Viagem)\n","C (C, Alimentos e Bebidas)\n","Name: quantidade, dtype: object\n"]}]},{"cell_type":"markdown","source":["#**Aula 2: Realizando consultas e customizando saídas**"],"metadata":{"id":"uS473Kn23oJH"}},{"cell_type":"markdown","source":["##**Obtendo respostas com explicações**"],"metadata":{"id":"C0EBYleb3pAb"}},{"cell_type":"code","source":["query_engine = PandasQueryEngine(df=df, verbose=True, synthesize_response=True)"],"metadata":{"id":"Z0k2Sf3ex7L1"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["response = query_engine.query('Qual é a avaliação média de cada filial?')\n","print(str(response))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"SIUgsK3fOGPT","executionInfo":{"status":"ok","timestamp":1731345361479,"user_tz":180,"elapsed":843,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"6a0dfed1-f2d2-437a-dbc0-b2ddc9305d28"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.groupby('filial')['avaliacao'].mean()\n","```\n","> Pandas Output: filial\n","A 7.027059\n","B 6.818072\n","C 7.072866\n","Name: avaliacao, dtype: float64\n","A avaliação média de cada filial é a seguinte: a filial A tem uma avaliação média de 7.03, a filial B tem uma avaliação média de 6.82 e a filial C tem uma avaliação média de 7.07.\n"]}]},{"cell_type":"code","source":["df.groupby('filial')['avaliacao'].mean()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":209},"id":"Ru-5172dPc_G","executionInfo":{"status":"ok","timestamp":1731345636148,"user_tz":180,"elapsed":411,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"fd4fc497-c684-4c37-8ecf-f5120c7ee884"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["filial\n","A 7.027059\n","B 6.818072\n","C 7.072866\n","Name: avaliacao, dtype: float64"],"text/html":["
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
avaliacao
filial
A7.027059
B6.818072
C7.072866
\n","

"]},"metadata":{},"execution_count":26}]},{"cell_type":"code","source":["response.response"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":53},"id":"wVHM5U6jO1Kl","executionInfo":{"status":"ok","timestamp":1731345479080,"user_tz":180,"elapsed":410,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"895015c4-68ba-49f5-b46a-1d76a8467e26"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'A avaliação média de cada filial é a seguinte: a filial A tem uma avaliação média de 7.03, a filial B tem uma avaliação média de 6.82 e a filial C tem uma avaliação média de 7.07.'"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"string"}},"metadata":{},"execution_count":23}]},{"cell_type":"code","source":["import textwrap\n","\n","def formatar_texto(response):\n"," texto = response.response\n"," texto_formatado = textwrap.fill(texto, width=100)\n"," print(texto_formatado)"],"metadata":{"id":"EuuL8oqdOR5F"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["formatar_texto(response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"mIVvTBjQPK6p","executionInfo":{"status":"ok","timestamp":1731345581712,"user_tz":180,"elapsed":414,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"6252dfed-88c2-48be-bf85-3b6e10a5c472"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["A avaliação média de cada filial é a seguinte: a filial A tem uma avaliação média de 7.03, a filial\n","B tem uma avaliação média de 6.82 e a filial C tem uma avaliação média de 7.07.\n"]}]},{"cell_type":"markdown","source":["##**Obtendo gráficos**"],"metadata":{"id":"HsPE6O4j3scX"}},{"cell_type":"code","source":["response = query_engine.query('Você pode exibir a distribuição das avaliações?')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XzK77shQPQLJ","executionInfo":{"status":"ok","timestamp":1731346159194,"user_tz":180,"elapsed":1060,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"6ffd2e78-320f-45d6-bcf6-9d94cc5fa6c3"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.avaliacao.value_counts()\n","```\n","> Pandas Output: avaliacao\n","6.0 26\n","6.6 24\n","4.2 22\n","9.5 22\n","6.5 21\n"," ..\n","4.0 11\n","5.3 11\n","8.3 11\n","4.6 8\n","10.0 5\n","Name: count, Length: 61, dtype: int64\n"]}]},{"cell_type":"code","source":["formatar_texto(response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"pZ-RRn7TRdAO","executionInfo":{"status":"ok","timestamp":1731346177533,"user_tz":180,"elapsed":579,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"e40d76c2-5b1e-4945-8dc3-0179de34a419"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Sim, a distribuição das avaliações é a seguinte: a avaliação mais comum é 6.0, com 26 ocorrências,\n","seguida de 6.6 com 24 ocorrências, 4.2 com 22 ocorrências, e assim por diante. Existem 61 avaliações\n","únicas no conjunto de dados, com a menor frequência sendo 5, correspondente à avaliação 10.0.\n"]}]},{"cell_type":"code","source":["response = query_engine.query('Você pode plotar a distribuição das avaliações?')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":520},"id":"lcopfG5gRhmR","executionInfo":{"status":"ok","timestamp":1731346259995,"user_tz":180,"elapsed":1680,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"339332f3-989d-4aed-e141-7071b36b4a77"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.avaliacao.plot(kind='hist')\n","```\n","> Pandas Output: Axes(0.125,0.11;0.775x0.77)\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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SpLi4+MlSZWVlUpISPDtU1lZqauuuuqcx42IiFBERETwBwYAAI4T0DU7kvTTTz/pww8/1IsvvqgTJ05IksrKylRdXR204QYOHKh9+/b5re3fv9/3Sc3JycmKj49XUVGRb7vH49HWrVuVlpYWtDkAAEDTFdCZne+++0433XSTDh8+rNraWv3hD39QVFSUFixYoNraWhUUFARluClTpmjAgAF68skndeutt2rbtm1avny5li9fLklyuVzKycnRvHnzlJKS4rv1PDExUaNGjQrKDAAAoGkL+EMFU1NTdezYMUVGRvrWb775Zr+zLA119dVX6+2339batWvVo0cPzZ07V4sWLVJGRoZvn2nTpumBBx7QpEmTdPXVV6u6ulobN27kM3YAAIAkyWUFcP94bGysPv30U3Xu3FlRUVHas2ePOnTooG+//VbdunXTyZMnG2PWRuPxeBQTE6OqqipFR0cH9djtp/81qMcDAKCp+Xb+8EY57vn+/g7ozI7X61V9ff0Z699//72ioqICOSQAAECjCCh2brzxRi1atMj33OVyqbq6WrNnz270r5AAAAC4EAFdoPzMM89oyJAh6tatm06dOqU77rhDBw4c0KWXXqq1a9cGe0YAAICABRQ7V1xxhfbs2aN169bp888/V3V1tSZOnKiMjAy/C5YBAADsFlDsSFJYWJjGjRsXzFkAAACCLqDYWb169S9uv+uuuwIaBgAAINgCip3s7Gy/53V1dTp58qTCw8PVokULYgcAADhGQHdjHTt2zO9RXV2tffv2adCgQVygDAAAHCXg78b6XykpKZo/f/4ZZ30AAADsFLTYkX6+aLmsrCyYhwQAAGiQgK7Zeeedd/yeW5al8vJyPf/88xo4cGBQBgMAAAiGgGLnf79R3OVy6bLLLtMNN9ygZ555JhhzAQAABEVAseP1eoM9BwAAQKMI6jU7AAAAThPQmZ3c3Nzz3jc/Pz+QPwIAACAoAoqdXbt2adeuXaqrq1Pnzp0lSfv371doaKj69u3r28/lcgVnSgAAgAAFFDsjRoxQVFSUVq1apdatW0v6+YMGx48fr2uvvVYPPfRQUIcEAAAIVEDX7DzzzDPKy8vzhY4ktW7dWvPmzeNuLAAA4CgBxY7H49GPP/54xvqPP/6oEydONHgoAACAYAkodm6++WaNHz9eb731lr7//nt9//33evPNNzVx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\n"},"metadata":{}}]},{"cell_type":"code","source":["formatar_texto(response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"e5CZnTvGR1df","executionInfo":{"status":"ok","timestamp":1731346292522,"user_tz":180,"elapsed":528,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"8a5e3ab3-622f-415c-9056-1da2f48086b7"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Sim, é possível plotar a distribuição das avaliações. Utilizando a biblioteca Pandas, podemos criar\n","um histograma das avaliações com o comando `df.avaliacao.plot(kind='hist')`. Isso irá gerar um\n","gráfico que mostra a frequência de cada avaliação, permitindo visualizar a distribuição das\n","avaliações.\n"]}]},{"cell_type":"code","source":["response = query_engine.query('''Você pode plotar o valor total por tipo de produto,\n","ordenando do menor para o maior e mantendo as barras na horizontal?''')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":520},"id":"IUmk6ajaR9rz","executionInfo":{"status":"ok","timestamp":1731346440581,"user_tz":180,"elapsed":1925,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"bc26ea72-3654-4b5a-aaa7-6c3478544fcc"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.groupby('tipo_produto')['total'].sum().sort_values().plot(kind='barh')\n","```\n","> Pandas Output: Axes(0.125,0.11;0.775x0.77)\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAq8AAAGdCAYAAAA8O5qmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABG10lEQVR4nO3deXRN1///8ddNIlfmmCMaEiUEEVNFqqiKRqmaPqai1FRDRcy0VXQQQylV1VYN1Qk1daDGEpWaiTEfUxGtoDUkUm2QnN8fvu7PbRJDGp848XysddaSc/bZ5312suRl2+dci2EYhgAAAAATcMjtAgAAAIC7RXgFAACAaRBeAQAAYBqEVwAAAJgG4RUAAACmQXgFAACAaRBeAQAAYBqEVwAAAJiGU24XAOSk9PR0nT59Wh4eHrJYLLldDgAAuAuGYejy5cvy9fWVg8Pt51YJr8hTTp8+LT8/v9wuAwAAZMOpU6f0yCOP3LYN4RV5ioeHh6QbP/yenp65XA0AALgbycnJ8vPzs/0evx3CK/KUm0sFPD09Ca8AAJjM3Sz544EtAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGk65XQBwP1QatUoOVtfcLgMAgDzlxLgmuV0CM68AAAAwD8IrAAAATIPwCgAAANMgvAIAAMA0CK8AAAAwDcIrAAAATIPwCgAAANMgvAIAAMA0CK8AAAAwjQc+vG7YsEEWi0WXLl2SJM2dO1fe3t65WtPD4p9jn5m7+X6MHj1aVapUydHaAADAw+mBCK+bN2+Wo6OjmjS580eOtW3bVocPH/4fVHVnTz75pKKionK7jAxuhs6bm4uLiypWrKiPP/44x6/1IH0/AABA3vdAhNdZs2apX79+2rhxo06fPn3bti4uLipatOj/qDJzO3TokBITE3Xw4EG99NJL6t27t9atW5ej1+D7AQAA/pdyPbympKRowYIF6t27t5o0aaK5c+fetv0//5v65n9Jz549WyVLlpS7u7v69OmjtLQ0TZgwQT4+PipatKjefvttu34uXbqk7t27q0iRIvL09NRTTz2lPXv2ZOj3s88+k7+/v7y8vNSuXTtdvnxZktSlSxfFxMRo6tSpthnOEydOSJJiYmJUs2ZNWa1WFS9eXMOHD9f169dtfS9atEjBwcFycXFRoUKFFB4erj///DPLe96/f7+eeeYZubu7q1ixYurUqZP++OOPO45t0aJF5ePjo4CAAEVGRiogIEC7du2yHU9PT1d0dLQCAgLk4uKikJAQLVq0KEM/sbGxqly5svLnz69atWpp//79WX4/JGncuHEqVqyYPDw81K1bN/399992x7dv366GDRuqcOHC8vLyUr169ezqMgxDo0ePVsmSJWW1WuXr66vIyMg73i8AAMj7cj28Lly4UOXLl1e5cuXUsWNHzZ49W4Zh3FMfx44d0w8//KCVK1fqq6++0qxZs9SkSRP9+uuviomJ0fjx4/Xaa69p69attnNat26tc+fO6YcfftDOnTtVrVo1NWjQQBcuXLDrd9myZfr+++/1/fffKyYmRuPGjZMkTZ06VWFhYerRo4cSExOVmJgoPz8//fbbb2rcuLEee+wx7dmzRzNmzNCsWbP01ltvSZISExPVvn17de3aVfHx8dqwYYNatmyZ5T1funRJTz31lKpWraodO3Zo5cqVOnv2rNq0aXPX42MYhlauXKmEhASFhoba9kdHR2vevHn68MMPdeDAAQ0YMEAdO3ZUTEyM3flDhgzRpEmTtH37dhUpUkRNmzbVtWvXMr3WwoULNXr0aI0dO1Y7duxQ8eLF9cEHH9i1uXz5sjp37qxNmzZpy5YtKlu2rBo3bmz7h8HixYv17rvv6qOPPtKRI0e0bNkyBQcHZ3q91NRUJScn220AACDvcsrtAmbNmqWOHTtKkho1aqSkpCTFxMToySefvOs+0tPTNXv2bHl4eKhChQqqX7++Dh06pBUrVsjBwUHlypXT+PHjtX79eoWGhmrTpk3atm2bzp07J6vVKkl65513tGzZMi1atEg9e/a09Tt37lx5eHhIkjp16qR169bp7bfflpeXl5ydneXq6iofHx9bLR988IH8/Pz0/vvvy2KxqHz58jp9+rSGDRum119/XYmJibp+/bpatmypUqVKSVKWwUyS3n//fVWtWlVjx4617Zs9e7b8/Px0+PBhBQYGZnnuI488IulGwEtPT9cbb7yhunXr2vaNHTtWa9euVVhYmCSpdOnS2rRpkz766CPVq1fP1s+oUaPUsGFDSdKnn36qRx55REuXLs00QE+ZMkXdunVTt27dJElvvfWW1q5dazf7+tRTT9md8/HHH8vb21sxMTF69tlnlZCQIB8fH4WHhytfvnwqWbKkatasmek9RkdHa8yYMVmOAQAAyFtydeb10KFD2rZtm9q3by9JcnJyUtu2bTVr1qx76sff398WMCWpWLFiqlChghwcHOz2nTt3TpK0Z88epaSkqFChQnJ3d7dtx48f17Fjx7Lst3jx4rY+shIfH6+wsDBZLBbbvtq1ayslJUW//vqrQkJC1KBBAwUHB6t169aaOXOmLl68mGV/e/bs0fr16+3qLF++vCTZ1ZqZn376SXFxcYqLi9Mnn3yisWPHasaMGZKko0eP6sqVK2rYsKFd3/PmzcvQ781wK0kFCxZUuXLlFB8fn+X93zq7+8/zJens2bPq0aOHypYtKy8vL3l6eiolJUUJCQmSbsyK//XXXypdurR69OihpUuX2i27uNWIESOUlJRk206dOnXbMQEAAOaWqzOvs2bN0vXr1+Xr62vbZxiGrFar3n//fXl5ed1VP/ny5bP72mKxZLovPT1d0o11tsWLF9eGDRsy9HXr+s3b9ZFdjo6OWrNmjX7++WetXr1a06ZN06uvvqqtW7cqICAgQ/uUlBQ1bdpU48ePz3CsePHit71WQECA7X4qVqyorVu36u2331bv3r2VkpIiSVq+fLlKlChhd97N2ej7pXPnzjp//rymTp2qUqVKyWq1KiwsTFevXpUk+fn56dChQ1q7dq3WrFmjPn36aOLEiYqJicnwPbFarfe9XgAA8ODItZnX69eva968eZo0aZJtdjAuLk579uyRr6+vvvrqq/t27WrVqunMmTNycnJSmTJl7LbChQvfdT/Ozs5KS0uz2xcUFKTNmzfbrWGNjY2Vh4eH7b/xLRaLateurTFjxmj37t1ydnbW0qVLs6z1wIED8vf3z1Crm5vbPd23o6Oj/vrrL0lShQoVZLValZCQkKFfPz8/u/O2bNli+/PFixd1+PBhBQUFZXqNoKAgu7XF/zz/5nhERkaqcePGqlixoqxWa4YH0FxcXNS0aVO999572rBhgzZv3qx9+/bd0/0CAIC8J9dmXr///ntdvHhR3bp1yzDD2qpVK82aNUu9evW6L9cODw9XWFiYmjdvrgkTJigwMFCnT5/W8uXL1aJFC9WoUeOu+vH399fWrVt14sQJubu7q2DBgurTp4+mTJmifv366eWXX9ahQ4c0atQoDRw4UA4ODtq6davWrVunp59+WkWLFtXWrVv1+++/ZxkG+/btq5kzZ6p9+/YaOnSoChYsqKNHj2r+/Pn65JNP5OjomGV9586d099//63U1FRt27ZNn332mf7zn/9Ikjw8PDR48GANGDBA6enpeuKJJ5SUlKTY2Fh5enqqc+fOtn7eeOMNFSpUSMWKFdOrr76qwoULq3nz5ples3///urSpYtq1Kih2rVr64svvtCBAwdUunRpW5uyZcvqs88+U40aNZScnKwhQ4bIxcXFdnzu3LlKS0tTaGioXF1d9fnnn8vFxcW2RhgAADy8cm3mddasWQoPD890aUCrVq20Y8cO7d27975c22KxaMWKFapbt65efPFFBQYGql27djp58qSKFSt21/0MHjxYjo6OqlChgooUKaKEhASVKFFCK1as0LZt2xQSEqJevXqpW7dueu211yRJnp6e2rhxoxo3bqzAwEC99tprmjRpkp555plMr+Hr66vY2FilpaXp6aefVnBwsKKiouTt7W23pjcz5cqVU/HixVWmTBkNGzZML730kqZNm2Y7/uabb2rkyJGKjo5WUFCQGjVqpOXLl2dYvjBu3Dj1799f1atX15kzZ/Tdd9/J2dk502u2bdtWI0eO1NChQ1W9enWdPHlSvXv3tmsza9YsXbx4UdWqVVOnTp0UGRlp965Yb29vzZw5U7Vr11blypW1du1afffddypUqNBt7xcAAOR9FuNe30sFPMCSk5Pl5eUlv6iFcrC65nY5AADkKSfG3fnTULPj5u/vpKQkeXp63rZtrr/nFQAAALhbhFcAAACYBuEVAAAApkF4BQAAgGkQXgEAAGAahFcAAACYBuEVAAAApkF4BQAAgGkQXgEAAGAaTrldAHA/7B8TccdP6AAAAObDzCsAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA03DK7QKA+6HSqFVysLrmdhkAAJjGiXFNcruEu8LMKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AqdOHFCFotFcXFxuV0KAADAbZkqvHbp0kUWiyXD1qhRo9wuTU8++aSioqJyuww7ixcvlqOjo3777bdMj5ctW1YDBw6Un5+fEhMTValSpf9xhQAAAPfGVOFVkho1aqTExES77auvvsq1eq5evZpr176T5557ToUKFdKnn36a4djGjRt19OhRdevWTY6OjvLx8ZGTk1MuVAkAAHD3TBderVarfHx87LYCBQpIkgzD0OjRo1WyZElZrVb5+voqMjLSdq6/v7/efPNNtW/fXm5ubipRooSmT59u139CQoKaNWsmd3d3eXp6qk2bNjp79qzt+OjRo1WlShV98sknCggIUP78+dWlSxfFxMRo6tSpttngEydOSJL279+vZ555Ru7u7ipWrJg6deqkP/74w9bfokWLFBwcLBcXFxUqVEjh4eH6888/s7z/O/V3q3z58qlTp06aO3duhmOzZ89WaGioKlasmGHZQFpamrp166aAgAC5uLioXLlymjp1qt35169fV2RkpLy9vVWoUCENGzZMnTt3VvPmzW1t0tPTFR0dbesnJCREixYtsh3fsGGDLBaLVq1apapVq8rFxUVPPfWUzp07px9++EFBQUHy9PTU888/rytXrmQ5JgAA4OFhuvB6O4sXL9a7776rjz76SEeOHNGyZcsUHBxs12bixIkKCQnR7t27NXz4cPXv319r1qyRdCNsNWvWTBcuXFBMTIzWrFmjX375RW3btrXr4+jRo1q8eLGWLFmiuLg4TZ06VWFhYerRo4dtNtjPz0+XLl3SU089papVq2rHjh1auXKlzp49qzZt2kiSEhMT1b59e3Xt2lXx8fHasGGDWrZsKcMwMr2/O/WXmW7duunIkSPauHGjbV9KSooWLVqkbt26ZXpOenq6HnnkEX399dc6ePCgXn/9db3yyitauHChrc348eP1xRdfaM6cOYqNjVVycrKWLVtm1090dLTmzZunDz/8UAcOHNCAAQPUsWNHxcTE2LUbPXq03n//ff388886deqU2rRpoylTpujLL7/U8uXLtXr1ak2bNi3TWlNTU5WcnGy3AQCAvMt0/0/8/fffy93d3W7fK6+8oldeeUUJCQny8fFR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u1Z+fn7/uigAAAAgM9n6hK1BgwYpMjJScXFxevzxxyVJsbGxmjt3rqZOnZqjBSLv2rBhg+rXr6+LFy/K29s7t8sBAAAmkK2Z1969e2v+/Pnat2+foqKiFBUVpf3792vBggV66aWXcrpG5JIuXbrIYrGoV69eGY717dtXFotFXbp0+d8XBgAAHlrZmnmVpBYtWqhFixY5WQseQH5+fpo/f77effddubi4SJL+/vtvffnllypZsmQuVwcAAB42/+pDCnbs2KHPPvtMn332mXbu3JlTNeEBUq1aNfn5+WnJkiW2fUuWLFHJkiVVtWpV277U1FRFRkaqaNGiyp8/v5544glt377drq8VK1YoMDBQLi4uql+/vk6cOGF3/Pz582rfvr1KlCghV1dXBQcH66uvvrqv9wcAAMwlW+H1119/VZ06dVSzZk31799f/fv312OPPaYnnnhCv/76a07XiFzWtWtXzZkzx/b17Nmz9eKLL9q1GTp0qBYvXqxPP/1Uu3btUpkyZRQREaELFy5Ikk6dOqWWLVuqadOmiouLU/fu3TV8+HC7Pv7++29Vr15dy5cv1/79+9WzZ0916tRJ27Zty7K21NRUJScn220AACDvylZ47d69u65du6b4+HhduHBBFy5cUHx8vNLT09W9e/ecrhG5rGPHjtq0aZNOnjypkydPKjY2Vh07drQd//PPPzVjxgxNnDhRzzzzjCpUqKCZM2fKxcVFs2bNkiTNmDFDjz76qCZNmqRy5cqpQ4cOGdbLlihRQoMHD1aVKlVUunRp9evXT40aNdLChQuzrC06OlpeXl62jbddAACQt2VrzWtMTIx+/vlnlStXzravXLlymjZtmurUqZNjxeHBUKRIETVp0kRz586VYRhq0qSJChcubDt+7NgxXbt2TbVr17bty5cvn2rWrGn7wIr4+HiFhoba9RsWFmb3dVpamsaOHauFCxfqt99+09WrV5WamipX16w/bGDEiBEaOHCg7evk5GQCLAAAeVi2wqufn5+uXbuWYX9aWpp8fX3/dVF48HTt2lUvv/yyJGn69On35RoTJ07U1KlTNWXKFAUHB8vNzU1RUVG6evVqludYrVZZrdb7Ug8AAHjwZGvZwMSJE9WvXz/t2LHDtm/Hjh3q37+/3nnnnRwrDg+ORo0a6erVq7p27ZoiIiLsjj366KNydnZWbGysbd+1a9e0fft2VahQQdKNjxT+59rVLVu22H0dGxurZs2aqWPHjgoJCVHp0qV1+PDh+3RHAADAjLI189qlSxdduXJFoaGhcnK60cX169fl5OSkrl27qmvXrra2Nx/Ygbk5OjralgA4OjraHXNzc1Pv3r01ZMgQFSxYUCVLltSECRN05coVdevWTZLUq1cvTZo0SUOGDFH37t21c+dOzZ07166fsmXLatGiRfr5559VoEABTZ48WWfPnrUFYAAAgGyF1ylTpuRwGTADT0/PLI+NGzdO6enp6tSpky5fvqwaNWpo1apVKlCggCSpZMmSWrx4sQYMGKBp06apZs2aGjt2rN0/dF577TX98ssvioiIkKurq3r27KnmzZsrKSnpvt8bAAAwB4thGEZuFwHklOTk5BtvHYhaKAdr1g96AQDwMDoxrklul5Cpm7+/k5KSbjtZJt3DzGtycrKtszu9S/NOFwUAAACy467Da4ECBZSYmKiiRYvK29tbFoslQxvDMGSxWJSWlpajRQIAAADSPYTXH3/8UQULFpQkzZkzR35+fhke3ElPT1dCQkLOVggAAAD8n2yteXV0dLTNwt7q/PnzKlq0KDOvyDWseQUAIGt5Yc1rtt7zenN5wD+lpKQof/782ekSAAAAuKN7elXWzY/htFgsGjlypN3HdqalpWnr1q2qUqVKjhYIAAAA3HRP4XX37t2Sbsy87tu3T87OzrZjzs7OCgkJ0eDBg3O2QgAAAOD/3FN4Xb9+vSTpxRdf1NSpU3klFgAAAP6nsvUJW3PmzMnpOgAAAIA7ylZ4BR50+8dE8D8DAADkQdl62wAAAACQGwivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANJxyuwDgfqg0apUcrK65XQYAALnqxLgmuV1CjmPmFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRX3JMzZ86oX79+Kl26tKxWq/z8/NS0aVOtW7cut0sDAAAPAafcLgDmceLECdWuXVve3t6aOHGigoODde3aNa1atUp9+/bVf//739wuEQAA5HHMvOKu9enTRxaLRdu2bVOrVq0UGBioihUrauDAgdqyZYskafLkyQoODpabm5v8/PzUp08fpaSk2Po4efKkmjZtqgIFCsjNzU0VK1bUihUrJElpaWnq1q2bAgIC5OLionLlymnq1Km5cq8AAODBxMwr7sqFCxe0cuVKvf3223Jzc8tw3NvbW5Lk4OCg9957TwEBAfrll1/Up08fDR06VB988IEkqW/fvrp69ao2btwoNzc3HTx4UO7u7pKk9PR0PfLII/r6669VqFAh/fzzz+rZs6eKFy+uNm3aZFpXamqqUlNTbV8nJyfn8J0DAIAHCeEVd+Xo0aMyDEPly5e/bbuoqCjbn/39/fXWW2+pV69etvCakJCgVq1aKTg4WJJUunRpW/t8+fJpzJgxtq8DAgK0efNmLVy4MMvwGh0dbXcOAADI21g2gLtiGMZdtVu7dq0aNGigEiVKyMPDQ506ddL58+d15coVSVJkZKTeeust1a5dW6NGjdLevXvtzp8+fbqqV6+uIkWKyN3dXR9//LESEhKyvN6IESOUlJRk206dOpX9mwQAAA88wivuStmyZWWxWG77UNaJEyf07LPPqnLlylq8eLF27typ6dOnS5KuXr0qSerevbt++eUXderUSfv27VONGjU0bdo0SdL8+fM1ePBgdevWTatXr1ZcXJxefPFF27mZsVqt8vT0tNsAAEDeRXjFXSlYsKAiIiI0ffp0/fnnnxmOX7p0STt37lR6eromTZqkWrVqKTAwUKdPn87Q1s/PT7169dKSJUs0aNAgzZw5U5IUGxurxx9/XH369FHVqlVVpkwZHTt27L7fGwAAMA/CK+7a9OnTlZaWppo1a2rx4sU6cuSI4uPj9d577yksLExlypTRtWvXNG3aNP3yyy/67LPP9OGHH9r1ERUVpVWrVun48ePatWuX1q9fr6CgIEk3Znd37NihVatW6fDhwxo5cqS2b9+eG7cKAAAeUIRX3LXSpUtr165dql+/vgYNGqRKlSqpYcOGWrdunWbMmKGQkBBNnjxZ48ePV6VKlfTFF18oOjraro+0tDT17dtXQUFBatSokQIDA20Pc7300ktq2bKl2rZtq9DQUJ0/f159+vTJjVsFAAAPKItxt0/iACaQnJwsLy8v+UUtlIPVNbfLAQAgV50Y1yS3S7grN39/JyUl3fH5FWZeAQAAYBqEVwAAAJgG4RUAAACmQXgFAACAaRBeAQAAYBqEVwAAAJgG4RUAAACmQXgFAACAaTjldgHA/bB/TMQdX3IMAADMh5lXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKbhlNsFAPdDpVGr5GB1ze0yAAAPgRPjmuR2CQ8VZl4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF7vk6VLl2rhwoW5XQYAAECeQni9D7Zt26aoqCjVqlXrjm27dOmi5s2b3/+i7hN/f39NmTIlt8sAAAAPCcKrpN9//129e/dWyZIlZbVa5ePjo4iICMXGxt5zX0lJSerevbuWLl2qkiVL3odqc4a/v78sFossFoscHR3l6+urbt266eLFi7ldGgAAQJaccruAB0GrVq109epVffrppypdurTOnj2rdevW6fz58/fcl5eXl/bu3Xsfqsx5b7zxhnr06KG0tDQdPnxYPXv2VGRkpD777LPcLg0AACBTD/3M66VLl/TTTz9p/Pjxql+/vkqVKqWaNWtqxIgReu6552ztJk+erODgYLm5ucnPz099+vRRSkqK7fjo0aNVpUoVu76nTJkif39/29dpaWkaOHCgvL29VahQIQ0dOlSGYdidk56erujoaAUEBMjFxUUhISFatGjRbe8hNTVVgwcPVokSJeTm5qbQ0FBt2LDhjvfu4eEhHx8flShRQvXr11fnzp21a9cuuzabNm1SnTp15OLiIj8/P0VGRurPP//Mss9Lly6pe/fuKlKkiDw9PfXUU09pz549tuO3zvjeut00bNgwBQYGytXVVaVLl9bIkSN17dq1O94LAAB4ODz04dXd3V3u7u5atmyZUlNTs2zn4OCg9957TwcOHNCnn36qH3/8UUOHDr2na02aNElz587V7NmztWnTJl24cEFLly61axMdHa158+bpww8/1IEDBzRgwAB17NhRMTExWfb78ssva/PmzZo/f7727t2r1q1bq1GjRjpy5Mhd1/bbb7/pu+++U2hoqG3fsWPH1KhRI7Vq1Up79+7VggULtGnTJr388stZ9tO6dWudO3dOP/zwg3bu3Klq1aqpQYMGunDhgiRp+/btSkxMVGJion799VfVqlVLderUsZ3v4eGhuXPn6uDBg5o6dapmzpypd999N8vrpaamKjk52W4DAAB5l8X459TfQ2jx4sXq0aOH/vrrL1WrVk316tVTu3btVLly5SzPWbRokXr16qU//vhD0o2Z12XLlikuLs7WZsqUKZoyZYpOnDghSfL19dWAAQM0ZMgQSdL169cVEBCg6tWr28JzwYIFtXbtWoWFhdn66d69u65cuaIvv/wyQx0JCQkqXbq0EhIS5Ovra9sfHh6umjVrauzYsZnW7+/vr8TEROXLl09paWn6+++/FRoaqpUrV8rb29t2XUdHR3300Ue28zZt2qR69erpzz//VP78+eXv76+oqChFRUVp06ZNatKkic6dOyer1Wo7p0yZMho6dKh69uxpV0P//v31zTffaPv27SpSpEimdb7zzjuaP3++duzYkenx0aNHa8yYMRn2+0UtlIPVNdNzAADISSfGNcntEkwvOTlZXl5eSkpKkqen523bPvQzr9KNNa+nT5/Wt99+q0aNGmnDhg2qVq2a5s6da2uzdu1aNWjQQCVKlJCHh4c6deqk8+fP68qVK3d1jaSkJCUmJtrNbDo5OalGjRq2r48ePaorV66oYcOGthlhd3d3zZs3T8eOHcu033379iktLU2BgYF258TExGR5zk1DhgxRXFyc9u7dq3Xr1kmSmjRporS0NEnSnj17NHfuXLt+IyIilJ6eruPHj2fob8+ePUpJSVGhQoXszjl+/HiGWj7++GPNmjVL3377rV1wXbBggWrXri0fHx+5u7vrtddeU0JCQpb3MGLECCUlJdm2U6dO3faeAQCAufHA1v/Jnz+/GjZsqIYNG2rkyJHq3r27Ro0apS5duujEiRN69tln1bt3b7399tsqWLCgNm3apG7duunq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\n"},"metadata":{}}]},{"cell_type":"code","source":["formatar_texto(response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Ee5agiArShfY","executionInfo":{"status":"ok","timestamp":1731346505291,"user_tz":180,"elapsed":859,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"c8a108f0-a081-4ed1-d8cf-c00085a8785e"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Sim, é possível plotar o valor total por tipo de produto, ordenando do menor para o maior e mantendo\n","as barras na horizontal. Para fazer isso, você pode utilizar o seguinte código em Pandas:\n","`df.groupby('tipo_produto')['total'].sum().sort_values().plot(kind='barh')` Isso irá agrupar os\n","dados por tipo de produto, somar os valores totais para cada grupo, ordenar os resultados do menor\n","para o maior e, finalmente, plotar um gráfico de barras horizontal com os resultados. O gráfico\n","resultante mostrará os tipos de produtos no eixo y e os valores totais no eixo x, com as barras\n","ordenadas do menor para o maior.\n"]}]},{"cell_type":"code","source":["response = query_engine.query('''Plote o valor total por tipo de produto,\n","ordenando do menor para o maior e mantendo as barras na horizontal''')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":520},"id":"D3zb-Cs4Sxja","executionInfo":{"status":"ok","timestamp":1731346576316,"user_tz":180,"elapsed":1384,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"6646b787-0619-4f54-9fc6-e218004510c6"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.groupby('tipo_produto')['total'].sum().sort_values().plot(kind='barh')\n","```\n","> Pandas Output: Axes(0.125,0.11;0.775x0.77)\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAq8AAAGdCAYAAAA8O5qmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABG10lEQVR4nO3deXRN1///8ddNIlfmmCMaEiUEEVNFqqiKRqmaPqai1FRDRcy0VXQQQylV1VYN1Qk1daDGEpWaiTEfUxGtoDUkUm2QnN8fvu7PbRJDGp848XysddaSc/bZ5312suRl2+dci2EYhgAAAAATcMjtAgAAAIC7RXgFAACAaRBeAQAAYBqEVwAAAJgG4RUAAACmQXgFAACAaRBeAQAAYBqEVwAAAJiGU24XAOSk9PR0nT59Wh4eHrJYLLldDgAAuAuGYejy5cvy9fWVg8Pt51YJr8hTTp8+LT8/v9wuAwAAZMOpU6f0yCOP3LYN4RV5ioeHh6QbP/yenp65XA0AALgbycnJ8vPzs/0evx3CK/KUm0sFPD09Ca8AAJjM3Sz544EtAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGk65XQBwP1QatUoOVtfcLgMAgDzlxLgmuV0CM68AAAAwD8IrAAAATIPwCgAAANMgvAIAAMA0CK8AAAAwDcIrAAAATIPwCgAAANMgvAIAAMA0CK8AAAAwjQc+vG7YsEEWi0WXLl2SJM2dO1fe3t65WtPD4p9jn5m7+X6MHj1aVapUydHaAADAw+mBCK+bN2+Wo6OjmjS580eOtW3bVocPH/4fVHVnTz75pKKionK7jAxuhs6bm4uLiypWrKiPP/44x6/1IH0/AABA3vdAhNdZs2apX79+2rhxo06fPn3bti4uLipatOj/qDJzO3TokBITE3Xw4EG99NJL6t27t9atW5ej1+D7AQAA/pdyPbympKRowYIF6t27t5o0aaK5c+fetv0//5v65n9Jz549WyVLlpS7u7v69OmjtLQ0TZgwQT4+PipatKjefvttu34uXbqk7t27q0iRIvL09NRTTz2lPXv2ZOj3s88+k7+/v7y8vNSuXTtdvnxZktSlSxfFxMRo6tSpthnOEydOSJJiYmJUs2ZNWa1WFS9eXMOHD9f169dtfS9atEjBwcFycXFRoUKFFB4erj///DPLe96/f7+eeeYZubu7q1ixYurUqZP++OOPO45t0aJF5ePjo4CAAEVGRiogIEC7du2yHU9PT1d0dLQCAgLk4uKikJAQLVq0KEM/sbGxqly5svLnz69atWpp//79WX4/JGncuHEqVqyYPDw81K1bN/399992x7dv366GDRuqcOHC8vLyUr169ezqMgxDo0ePVsmSJWW1WuXr66vIyMg73i8AAMj7cj28Lly4UOXLl1e5cuXUsWNHzZ49W4Zh3FMfx44d0w8//KCVK1fqq6++0qxZs9SkSRP9+uuviomJ0fjx4/Xaa69p69attnNat26tc+fO6YcfftDOnTtVrVo1NWjQQBcuXLDrd9myZfr+++/1/fffKyYmRuPGjZMkTZ06VWFhYerRo4cSExOVmJgoPz8//fbbb2rcuLEee+wx7dmzRzNmzNCsWbP01ltvSZISExPVvn17de3aVfHx8dqwYYNatmyZ5T1funRJTz31lKpWraodO3Zo5cqVOnv2rNq0aXPX42MYhlauXKmEhASFhoba9kdHR2vevHn68MMPdeDAAQ0YMEAdO3ZUTEyM3flDhgzRpEmTtH37dhUpUkRNmzbVtWvXMr3WwoULNXr0aI0dO1Y7duxQ8eLF9cEHH9i1uXz5sjp37qxNmzZpy5YtKlu2rBo3bmz7h8HixYv17rvv6qOPPtKRI0e0bNkyBQcHZ3q91NRUJScn220AACDvcsrtAmbNmqWOHTtKkho1aqSkpCTFxMToySefvOs+0tPTNXv2bHl4eKhChQqqX7++Dh06pBUrVsjBwUHlypXT+PHjtX79eoWGhmrTpk3atm2bzp07J6vVKkl65513tGzZMi1atEg9e/a09Tt37lx5eHhIkjp16qR169bp7bfflpeXl5ydneXq6iofHx9bLR988IH8/Pz0/vvvy2KxqHz58jp9+rSGDRum119/XYmJibp+/bpatmypUqVKSVKWwUyS3n//fVWtWlVjx4617Zs9e7b8/Px0+PBhBQYGZnnuI488IulGwEtPT9cbb7yhunXr2vaNHTtWa9euVVhYmCSpdOnS2rRpkz766CPVq1fP1s+oUaPUsGFDSdKnn36qRx55REuXLs00QE+ZMkXdunVTt27dJElvvfWW1q5dazf7+tRTT9md8/HHH8vb21sxMTF69tlnlZCQIB8fH4WHhytfvnwqWbKkatasmek9RkdHa8yYMVmOAQAAyFtydeb10KFD2rZtm9q3by9JcnJyUtu2bTVr1qx76sff398WMCWpWLFiqlChghwcHOz2nTt3TpK0Z88epaSkqFChQnJ3d7dtx48f17Fjx7Lst3jx4rY+shIfH6+wsDBZLBbbvtq1ayslJUW//vqrQkJC1KBBAwUHB6t169aaOXOmLl68mGV/e/bs0fr16+3qLF++vCTZ1ZqZn376SXFxcYqLi9Mnn3yisWPHasaMGZKko0eP6sqVK2rYsKFd3/PmzcvQ781wK0kFCxZUuXLlFB8fn+X93zq7+8/zJens2bPq0aOHypYtKy8vL3l6eiolJUUJCQmSbsyK//XXXypdurR69OihpUuX2i27uNWIESOUlJRk206dOnXbMQEAAOaWqzOvs2bN0vXr1+Xr62vbZxiGrFar3n//fXl5ed1VP/ny5bP72mKxZLovPT1d0o11tsWLF9eGDRsy9HXr+s3b9ZFdjo6OWrNmjX7++WetXr1a06ZN06uvvqqtW7cqICAgQ/uUlBQ1bdpU48ePz3CsePHit71WQECA7X4qVqyorVu36u2331bv3r2VkpIiSVq+fLlKlChhd97N2ej7pXPnzjp//rymTp2qUqVKyWq1KiwsTFevXpUk+fn56dChQ1q7dq3WrFmjPn36aOLEiYqJicnwPbFarfe9XgAA8ODItZnX69eva968eZo0aZJtdjAuLk579uyRr6+vvvrqq/t27WrVqunMmTNycnJSmTJl7LbChQvfdT/Ozs5KS0uz2xcUFKTNmzfbrWGNjY2Vh4eH7b/xLRaLateurTFjxmj37t1ydnbW0qVLs6z1wIED8vf3z1Crm5vbPd23o6Oj/vrrL0lShQoVZLValZCQkKFfPz8/u/O2bNli+/PFixd1+PBhBQUFZXqNoKAgu7XF/zz/5nhERkaqcePGqlixoqxWa4YH0FxcXNS0aVO999572rBhgzZv3qx9+/bd0/0CAIC8J9dmXr///ntdvHhR3bp1yzDD2qpVK82aNUu9evW6L9cODw9XWFiYmjdvrgkTJigwMFCnT5/W8uXL1aJFC9WoUeOu+vH399fWrVt14sQJubu7q2DBgurTp4+mTJmifv366eWXX9ahQ4c0atQoDRw4UA4ODtq6davWrVunp59+WkWLFtXWrVv1+++/ZxkG+/btq5kzZ6p9+/YaOnSoChYsqKNHj2r+/Pn65JNP5OjomGV9586d099//63U1FRt27ZNn332mf7zn/9Ikjw8PDR48GANGDBA6enpeuKJJ5SUlKTY2Fh5enqqc+fOtn7eeOMNFSpUSMWKFdOrr76qwoULq3nz5ples3///urSpYtq1Kih2rVr64svvtCBAwdUunRpW5uyZcvqs88+U40aNZScnKwhQ4bIxcXFdnzu3LlKS0tTaGioXF1d9fnnn8vFxcW2RhgAADy8cm3mddasWQoPD890aUCrVq20Y8cO7d27975c22KxaMWKFapbt65efPFFBQYGql27djp58qSKFSt21/0MHjxYjo6OqlChgooUKaKEhASVKFFCK1as0LZt2xQSEqJevXqpW7dueu211yRJnp6e2rhxoxo3bqzAwEC99tprmjRpkp555plMr+Hr66vY2FilpaXp6aefVnBwsKKiouTt7W23pjcz5cqVU/HixVWmTBkNGzZML730kqZNm2Y7/uabb2rkyJGKjo5WUFCQGjVqpOXLl2dYvjBu3Dj1799f1atX15kzZ/Tdd9/J2dk502u2bdtWI0eO1NChQ1W9enWdPHlSvXv3tmsza9YsXbx4UdWqVVOnTp0UGRlp965Yb29vzZw5U7Vr11blypW1du1afffddypUqNBt7xcAAOR9FuNe30sFPMCSk5Pl5eUlv6iFcrC65nY5AADkKSfG3fnTULPj5u/vpKQkeXp63rZtrr/nFQAAALhbhFcAAACYBuEVAAAApkF4BQAAgGkQXgEAAGAahFcAAACYBuEVAAAApkF4BQAAgGkQXgEAAGAaTrldAHA/7B8TccdP6AAAAObDzCsAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA0yC8AgAAwDQIrwAAADANwisAAABMg/AKAAAA03DK7QKA+6HSqFVysLrmdhkAAJjGiXFNcruEu8LMKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AqdOHFCFotFcXFxuV0KAADAbZkqvHbp0kUWiyXD1qhRo9wuTU8++aSioqJyuww7ixcvlqOjo3777bdMj5ctW1YDBw6Un5+fEhMTValSpf9xhQAAAPfGVOFVkho1aqTExES77auvvsq1eq5evZpr176T5557ToUKFdKnn36a4djGjRt19OhRdevWTY6OjvLx8ZGTk1MuVAkAAHD3TBderVarfHx87LYCBQpIkgzD0OjRo1WyZElZrVb5+voqMjLSdq6/v7/efPNNtW/fXm5ubipRooSmT59u139CQoKaNWsmd3d3eXp6qk2bNjp79qzt+OjRo1WlShV98sknCggIUP78+dWlSxfFxMRo6tSpttngEydOSJL279+vZ555Ru7u7ipWrJg6deqkP/74w9bfokWLFBwcLBcXFxUqVEjh4eH6888/s7z/O/V3q3z58qlTp06aO3duhmOzZ89WaGioKlasmGHZQFpamrp166aAgAC5uLioXLlymjp1qt35169fV2RkpLy9vVWoUCENGzZMnTt3VvPmzW1t0tPTFR0dbesnJCREixYtsh3fsGGDLBaLVq1apapVq8rFxUVPPfWUzp07px9++EFBQUHy9PTU888/rytXrmQ5JgAA4OFhuvB6O4sXL9a7776rjz76SEeOHNGyZcsUHBxs12bixIkKCQnR7t27NXz4cPXv319r1qyRdCNsNWvWTBcuXFBMTIzWrFmjX375RW3btrXr4+jRo1q8eLGWLFmiuLg4TZ06VWFhYerRo4dtNtjPz0+XLl3SU089papVq2rHjh1auXKlzp49qzZt2kiSEhMT1b59e3Xt2lXx8fHasGGDWrZsKcMwMr2/O/WXmW7duunIkSPauHGjbV9KSooWLVqkbt26ZXpOenq6HnnkEX399dc6ePCgXn/9db3yyitauHChrc348eP1xRdfaM6cOYqNjVVycrKWLVtm1090dLTmzZunDz/8UAcOHNCAAQPUsWNHxcTE2LUbPXq03n//ff388886deqU2rRpoylTpujLL7/U8uXLtXr1ak2bNi3TWlNTU5WcnGy3AQCAvMt0/0/8/fffy93d3W7fK6+8oldeeUUJCQny8fFR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u1Z+fn7/uigAAAAgM9n6hK1BgwYpMjJScXFxevzxxyVJsbGxmjt3rqZOnZqjBSLv2rBhg+rXr6+LFy/K29s7t8sBAAAmkK2Z1969e2v+/Pnat2+foqKiFBUVpf3792vBggV66aWXcrpG5JIuXbrIYrGoV69eGY717dtXFotFXbp0+d8XBgAAHlrZmnmVpBYtWqhFixY5WQseQH5+fpo/f77effddubi4SJL+/vtvffnllypZsmQuVwcAAB42/+pDCnbs2KHPPvtMn332mXbu3JlTNeEBUq1aNfn5+WnJkiW2fUuWLFHJkiVVtWpV277U1FRFRkaqaNGiyp8/v5544glt377drq8VK1YoMDBQLi4uql+/vk6cOGF3/Pz582rfvr1KlCghV1dXBQcH66uvvrqv9wcAAMwlW+H1119/VZ06dVSzZk31799f/fv312OPPaYnnnhCv/76a07XiFzWtWtXzZkzx/b17Nmz9eKLL9q1GTp0qBYvXqxPP/1Uu3btUpkyZRQREaELFy5Ikk6dOqWWLVuqadOmiouLU/fu3TV8+HC7Pv7++29Vr15dy5cv1/79+9WzZ0916tRJ27Zty7K21NRUJScn220AACDvylZ47d69u65du6b4+HhduHBBFy5cUHx8vNLT09W9e/ecrhG5rGPHjtq0aZNOnjypkydPKjY2Vh07drQd//PPPzVjxgxNnDhRzzzzjCpUqKCZM2fKxcVFs2bNkiTNmDFDjz76qCZNmqRy5cqpQ4cOGdbLlihRQoMHD1aVKlVUunRp9evXT40aNdLChQuzrC06OlpeXl62jbddAACQt2VrzWtMTIx+/vlnlStXzravXLlymjZtmurUqZNjxeHBUKRIETVp0kRz586VYRhq0qSJChcubDt+7NgxXbt2TbVr17bty5cvn2rWrGn7wIr4+HiFhoba9RsWFmb3dVpamsaOHauFCxfqt99+09WrV5WamipX16w/bGDEiBEaOHCg7evk5GQCLAAAeVi2wqufn5+uXbuWYX9aWpp8fX3/dVF48HTt2lUvv/yyJGn69On35RoTJ07U1KlTNWXKFAUHB8vNzU1RUVG6evVqludYrVZZrdb7Ug8AAHjwZGvZwMSJE9WvXz/t2LHDtm/Hjh3q37+/3nnnnRwrDg+ORo0a6erVq7p27ZoiIiLsjj366KNydnZWbGysbd+1a9e0fft2VahQQdKNjxT+59rVLVu22H0dGxurZs2aqWPHjgoJCVHp0qV1+PDh+3RHAADAjLI189qlSxdduXJFoaGhcnK60cX169fl5OSkrl27qmvXrra2Nx/Ygbk5OjralgA4OjraHXNzc1Pv3r01ZMgQFSxYUCVLltSECRN05coVdevWTZLUq1cvTZo0SUOGDFH37t21c+dOzZ07166fsmXLatGiRfr5559VoEABTZ48WWfPnrUFYAAAgGyF1ylTpuRwGTADT0/PLI+NGzdO6enp6tSpky5fvqwaNWpo1apVKlCggCSpZMmSWrx4sQYMGKBp06apZs2aGjt2rN0/dF577TX98ssvioiIkKurq3r27KnmzZsrKSnpvt8bAAAwB4thGEZuFwHklOTk5BtvHYhaKAdr1g96AQDwMDoxrklul5Cpm7+/k5KSbjtZJt3DzGtycrKtszu9S/NOFwUAAACy467Da4ECBZSYmKiiRYvK29tbFoslQxvDMGSxWJSWlpajRQIAAADSPYTXH3/8UQULFpQkzZkzR35+fhke3ElPT1dCQkLOVggAAAD8n2yteXV0dLTNwt7q/PnzKlq0KDOvyDWseQUAIGt5Yc1rtt7zenN5wD+lpKQof/782ekSAAAAuKN7elXWzY/htFgsGjlypN3HdqalpWnr1q2qUqVKjhYIAAAA3HRP4XX37t2Sbsy87tu3T87OzrZjzs7OCgkJ0eDBg3O2QgAAAOD/3FN4Xb9+vSTpxRdf1NSpU3klFgAAAP6nsvUJW3PmzMnpOgAAAIA7ylZ4BR50+8dE8D8DAADkQdl62wAAAACQGwivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANAivAAAAMA3CKwAAAEyD8AoAAADTILwCAADANJxyuwDgfqg0apUcrK65XQYAALnqxLgmuV1CjmPmFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRX3JMzZ86oX79+Kl26tKxWq/z8/NS0aVOtW7cut0sDAAAPAafcLgDmceLECdWuXVve3t6aOHGigoODde3aNa1atUp9+/bVf//739wuEQAA5HHMvOKu9enTRxaLRdu2bVOrVq0UGBioihUrauDAgdqyZYskafLkyQoODpabm5v8/PzUp08fpaSk2Po4efKkmjZtqgIFCsjNzU0VK1bUihUrJElpaWnq1q2bAgIC5OLionLlymnq1Km5cq8AAODBxMwr7sqFCxe0cuVKvf3223Jzc8tw3NvbW5Lk4OCg9957TwEBAfrll1/Up08fDR06VB988IEkqW/fvrp69ao2btwoNzc3HTx4UO7u7pKk9PR0PfLII/r6669VqFAh/fzzz+rZs6eKFy+uNm3aZFpXamqqUlNTbV8nJyfn8J0DAIAHCeEVd+Xo0aMyDEPly5e/bbuoqCjbn/39/fXWW2+pV69etvCakJCgVq1aKTg4WJJUunRpW/t8+fJpzJgxtq8DAgK0efNmLVy4MMvwGh0dbXcOAADI21g2gLtiGMZdtVu7dq0aNGigEiVKyMPDQ506ddL58+d15coVSVJkZKTeeust1a5dW6NGjdLevXvtzp8+fbqqV6+uIkWKyN3dXR9//LESEhKyvN6IESOUlJRk206dOpX9mwQAAA88wivuStmyZWWxWG77UNaJEyf07LPPqnLlylq8eLF27typ6dOnS5KuXr0qSerevbt++eUXderUSfv27VONGjU0bdo0SdL8+fM1ePBgdevWTatXr1ZcXJxefPFF27mZsVqt8vT0tNsAAEDeRXjFXSlYsKAiIiI0ffp0/fnnnxmOX7p0STt37lR6eromTZqkWrVqKTAwUKdPn87Q1s/PT7169dKSJUs0aNAgzZw5U5IUGxurxx9/XH369FHVqlVVpkwZHTt27L7fGwAAMA/CK+7a9OnTlZaWppo1a2rx4sU6cuSI4uPj9d577yksLExlypTRtWvXNG3aNP3yyy/67LPP9OGHH9r1ERUVpVWrVun48ePatWuX1q9fr6CgIEk3Znd37NihVatW6fDhwxo5cqS2b9+eG7cKAAAeUIRX3LXSpUtr165dql+/vgYNGqRKlSqpYcOGWrdunWbMmKGQkBBNnjxZ48ePV6VKlfTFF18oOjraro+0tDT17dtXQUFBatSokQIDA20Pc7300ktq2bKl2rZtq9DQUJ0/f159+vTJjVsFAAAPKItxt0/iACaQnJwsLy8v+UUtlIPVNbfLAQAgV50Y1yS3S7grN39/JyUl3fH5FWZeAQAAYBqEVwAAAJgG4RUAAACmQXgFAACAaRBeAQAAYBqEVwAAAJgG4RUAAACmQXgFAACAaTjldgHA/bB/TMQdX3IMAADMh5lXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKbhlNsFAPdDpVGr5GB1ze0yAAAPgRPjmuR2CQ8VZl4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF4BAABgGoRXAAAAmAbhFQAAAKZBeAUAAIBpEF7vk6VLl2rhwoW5XQYAAECeQni9D7Zt26aoqCjVqlXrjm27dOmi5s2b3/+i7hN/f39NmTIlt8sAAAAPCcKrpN9//129e/dWyZIlZbVa5ePjo4iICMXGxt5zX0lJSerevbuWLl2qkiVL3odqc4a/v78sFossFoscHR3l6+urbt266eLFi7ldGgAAQJaccruAB0GrVq109epVffrppypdurTOnj2rdevW6fz58/fcl5eXl/bu3Xsfqsx5b7zxhnr06KG0tDQdPnxYPXv2VGRkpD777LPcLg0AACBTD/3M66VLl/TTTz9p/Pjxql+/vkqVKqWaNWtqxIgReu6552ztJk+erODgYLm5ucnPz099+vRRSkqK7fjo0aNVpUoVu76nTJkif39/29dpaWkaOHCgvL29VahQIQ0dOlSGYdidk56erujoaAUEBMjFxUUhISFatGjRbe8hNTVVgwcPVokSJeTm5qbQ0FBt2LDhjvfu4eEhHx8flShRQvXr11fnzp21a9cuuzabNm1SnTp15OLiIj8/P0VGRurPP//Mss9Lly6pe/fuKlKkiDw9PfXUU09pz549tuO3zvjeut00bNgwBQYGytXVVaVLl9bIkSN17dq1O94LAAB4ODz04dXd3V3u7u5atmyZUlNTs2zn4OCg9957TwcOHNCnn36qH3/8UUOHDr2na02aNElz587V7NmztWnTJl24cEFLly61axMdHa158+bpww8/1IEDBzRgwAB17NhRMTExWfb78ssva/PmzZo/f7727t2r1q1bq1GjRjpy5Mhd1/bbb7/pu+++U2hoqG3fsWPH1KhRI7Vq1Up79+7VggULtGnTJr388stZ9tO6dWudO3dOP/zwg3bu3Klq1aqpQYMGunDhgiRp+/btSkxMVGJion799VfVqlVLderUsZ3v4eGhuXPn6uDBg5o6dapmzpypd999N8vrpaamKjk52W4DAAB5l8X459TfQ2jx4sXq0aOH/vrrL1WrVk316tVTu3btVLly5SzPWbRokXr16qU//vhD0o2Z12XLlikuLs7WZsqUKZoyZYpOnDghSfL19dWAAQM0ZMgQSdL169cVEBCg6tWr28JzwYIFtXbtWoWFhdn66d69u65cuaIvv/wyQx0JCQkqXbq0EhIS5Ovra9sfHh6umjVrauzYsZnW7+/vr8TEROXLl09paWn6+++/FRoaqpUrV8rb29t2XUdHR3300Ue28zZt2qR69erpzz//VP78+eXv76+oqChFRUVp06ZNatKkic6dOyer1Wo7p0yZMho6dKh69uxpV0P//v31zTffaPv27SpSpEimdb7zzjuaP3++duzYkenx0aNHa8yYMRn2+0UtlIPVNdNzAADISSfGNcntEkwvOTlZXl5eSkpKkqen523bPvQzr9KNNa+nT5/Wt99+q0aNGmnDhg2qVq2a5s6da2uzdu1aNWjQQCVKlJCHh4c6deqk8+fP68qVK3d1jaSkJCUmJtrNbDo5OalGjRq2r48ePaorV66oYcOGthlhd3d3zZs3T8eOHcu033379iktLU2BgYF258TExGR5zk1DhgxRXFyc9u7dq3Xr1kmSmjRporS0NEnSnj17NHfuXLt+IyIilJ6eruPHj2fob8+ePUpJSVGhQoXszjl+/HiGWj7++GPNmjVL3377rV1wXbBggWrXri0fHx+5u7vrtddeU0JCQpb3MGLECCUlJdm2U6dO3faeAQCAufHA1v/Jnz+/GjZsqIYNG2rkyJHq3r27Ro0apS5duujEiRN69tln1bt3b7399tsqWLCgNm3apG7duunq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\n"},"metadata":{}}]},{"cell_type":"code","source":["formatar_texto(response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"tEVwBj12TCwk","executionInfo":{"status":"ok","timestamp":1731346586473,"user_tz":180,"elapsed":403,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"9f88dc12-cc74-4b3d-cdd8-4e3afabcfe9d"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Here is a synthesized response based on the query results: \"The total value by product type has\n","been plotted in a horizontal bar chart, with the values sorted from smallest to largest. The chart\n","shows the distribution of total values across different product types, providing a clear visual\n","representation of the data. The horizontal orientation of the bars makes it easy to compare the\n","values across different product types.\"\n"]}]},{"cell_type":"markdown","source":["##**Direcionando o idioma das respostas**"],"metadata":{"id":"E-08oOye3vGs"}},{"cell_type":"code","source":["response = query_engine.query('Qual é o método de pagamento mais utilizado em cada filial?')\n","print(response.response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"G7OoJapqTFe6","executionInfo":{"status":"ok","timestamp":1731346994989,"user_tz":180,"elapsed":1245,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"a2447a9f-e717-440b-ccc7-2626a6a93b22"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.groupby('filial')['forma_pagamento'].value_counts().groupby('filial').idxmax()\n","```\n","> Pandas Output: filial\n","A (A, Carteira Digital)\n","B (B, Carteira Digital)\n","C (C, Dinheiro)\n","Name: count, dtype: object\n","Based on the query results, the most commonly used payment method in each branch is:\n","\n","* In branch A, the most commonly used payment method is Carteira Digital.\n","* In branch B, the most commonly used payment method is also Carteira Digital.\n","* In branch C, the most commonly used payment method is Dinheiro (cash).\n"]}]},{"cell_type":"code","source":["response = query_engine.query('Qual é o método de pagamento mais utilizado em cada filial? Responda em português BR')\n","print(response.response)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"fHs5WUG_UpAw","executionInfo":{"status":"ok","timestamp":1731347077474,"user_tz":180,"elapsed":1287,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"102f542e-6b1b-4dd1-e25a-d6c78df4f66d"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["> Pandas Instructions:\n","```\n","df.groupby('filial')['forma_pagamento'].value_counts().groupby('filial').idxmax()\n","```\n","> Pandas Output: filial\n","A (A, Carteira Digital)\n","B (B, Carteira Digital)\n","C (C, Dinheiro)\n","Name: count, dtype: object\n","O método de pagamento mais utilizado em cada filial é:\n","\n","* Na filial A, o método mais utilizado é a Carteira Digital.\n","* Na filial B, o método mais utilizado é a Carteira Digital.\n","* Na filial C, o método mais utilizado é o pagamento em Dinheiro.\n"]}]},{"cell_type":"code","source":["df.groupby('filial')['forma_pagamento'].value_counts()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":397},"id":"6BxVc59dU9Iy","executionInfo":{"status":"ok","timestamp":1731347130980,"user_tz":180,"elapsed":392,"user":{"displayName":"Valquiria Alencar","userId":"06101258850801001374"}},"outputId":"e8298727-0a8d-44ab-c5d9-89d69b114ee7"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["filial forma_pagamento \n","A Carteira Digital 126\n"," Dinheiro 110\n"," Cartão de Crédito 104\n","B Carteira Digital 113\n"," Dinheiro 110\n"," Cartão de Crédito 109\n","C Dinheiro 124\n"," Carteira Digital 106\n"," Cartão de Crédito 98\n","Name: count, dtype: int64"],"text/html":["
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
count
filialforma_pagamento
ACarteira Digital126
Dinheiro110
Cartão de Crédito104
BCarteira Digital113
Dinheiro110
Cartão de Crédito109
CDinheiro124
Carteira Digital106
Cartão de Crédito98
\n","

"]},"metadata":{},"execution_count":37}]}]}