From bd4bbda4a6c65aca008397c875f2b1f8976ede03 Mon Sep 17 00:00:00 2001 From: CaiqueSantosDev <166532520+CaiqueSantosOC@users.noreply.github.com> Date: Fri, 10 May 2024 13:26:43 -0300 Subject: [PATCH] Criado usando o Colab --- ...247\303\243o]_C\303\263digo_Aula_05.ipynb" | 992 ++++++++++++++++++ 1 file changed, 992 insertions(+) create mode 100644 "[Imers\303\243o_IA_2\302\252_edi\303\247\303\243o]_C\303\263digo_Aula_05.ipynb" diff --git "a/[Imers\303\243o_IA_2\302\252_edi\303\247\303\243o]_C\303\263digo_Aula_05.ipynb" "b/[Imers\303\243o_IA_2\302\252_edi\303\247\303\243o]_C\303\263digo_Aula_05.ipynb" new file mode 100644 index 0000000..1ebe80c --- /dev/null +++ "b/[Imers\303\243o_IA_2\302\252_edi\303\247\303\243o]_C\303\263digo_Aula_05.ipynb" @@ -0,0 +1,992 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ooGPbPBplPON", + "outputId": "89a4161a-cbd6-492e-e4ef-09069aa340d1" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/142.2 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━\u001b[0m \u001b[32m112.6/142.2 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m142.2/142.2 kB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/664.5 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━\u001b[0m \u001b[32m419.8/664.5 kB\u001b[0m \u001b[31m12.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m664.5/664.5 kB\u001b[0m \u001b[31m9.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h" + ] + } + ], + "source": [ + "!pip install -U -q google-generativeai" + ] + }, + { + "cell_type": "code", + "source": [ + "#Importações e configurações iniciais\n", + "import numpy as np\n", + "import pandas as pd\n", + "import google.generativeai as genai\n", + "\n", + "GOOGLE_API_KEY=\"AIzaSyAR-vdfBuKhJqB58TxKIODqu1K3zRz2t3M\"\n", + "genai.configure(api_key=GOOGLE_API_KEY)" + ], + "metadata": { + "id": "hF46sMG7ld7Q" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "for m in genai.list_models():\n", + " if 'embedContent' in m.supported_generation_methods:\n", + " print(m.name)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "id": "fs9DHnhamLPm", + "outputId": "571a1393-f4bd-4fe1-a28c-6c6113319748" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "models/embedding-001\n", + "models/text-embedding-004\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "#Exemplo de embedding\n", + "title = \"A próxima geração de IA para desenvolvedores e Google Workspace\"\n", + "sample_text = (\"Título: A próxima geração de IA para desenvolvedores e Google Workspace\"\n", + " \"\\n\"\n", + " \"Artigo completo:\\n\"\n", + " \"\\n\"\n", + " \"Gemini API & Google AI Studio: Uma maneira acessível de explorar e criar protótipos com aplicações de IA generativa\")\n", + "\n", + "embeddings = genai.embed_content(model=\"models/embedding-001\",\n", + " content=sample_text,\n", + " title=title,\n", + " task_type=\"RETRIEVAL_DOCUMENT\")\n", + "\n", + "print(embeddings)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + }, + "id": "gFhrwhVprixA", + "outputId": "8bea90d8-d88a-436d-8020-a659049198d4" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'embedding': [0.051496185, -0.0365346, -0.0186796, 0.019455563, 0.06721682, -0.003868702, -0.027666211, -0.01814636, 0.062080767, 0.062902406, 0.012042811, 0.01314806, -0.045869622, -0.022034725, 0.009636108, -0.024947647, 0.021764254, -0.011328052, -0.03484635, -0.00094051583, 0.009192941, 0.0068539544, -0.029636258, -0.06623153, -0.019914951, 0.020645097, 0.015273816, -0.038156737, -0.032827046, 0.02755795, -0.049995217, 0.05074531, -0.034130614, 0.010284468, -0.036612358, -0.040648427, -0.026028484, -0.044465132, -0.002034308, -0.0036913794, 0.0061324253, -0.084707916, -0.009676676, 0.02611583, -0.0035269416, -0.021471972, 0.04472568, 0.04406418, 0.01429429, -0.058487777, 0.027538216, 0.023262272, 0.066298164, -0.041965708, -0.0041519217, -0.009309915, 0.022716599, -0.032830838, 0.02376307, 0.0006589484, -0.0012957085, 0.023344554, -0.016953444, 0.052708756, 0.01914495, -0.05771819, -0.04336735, -9.953024e-05, 0.011018355, 0.048855364, 0.009574091, 0.012556762, 0.060748216, -0.06427889, -0.040318746, -0.112474404, -0.041767906, 0.04039831, -0.00735882, 0.018302565, 0.018670246, -0.080541104, -0.050622787, -0.04099768, -0.01954894, 0.036205977, -0.055383485, -0.023276791, 0.045924142, 0.0028925363, 0.013910353, -0.036733977, 0.05336587, -0.047169603, -0.0041411333, 0.086327456, -0.060812507, -0.017828051, -0.005598898, -0.08355002, -0.018031668, -5.690218e-05, -0.054286726, 0.010726566, 0.021724097, 0.036514033, -0.017809315, 0.016031828, -0.04878068, 0.10835599, -0.03120536, -0.010186589, 0.024239046, -0.06243644, 0.043767557, -0.019556347, 0.017437736, 0.042449363, -0.0015129625, 0.05042228, 0.047070596, 0.02698201, 0.03889033, -0.0006301956, -0.042662907, 0.027510302, -0.040130474, 0.018411972, 0.059867498, 0.037460912, 0.014738538, -0.04975544, -0.031713698, 0.047417037, 0.040709335, 0.044389367, 0.018828375, -0.017472958, 0.0446198, 0.06304914, -0.006150756, 0.045354515, -0.0069938498, -0.014959296, -0.0019170099, 0.08528182, -0.077687845, -0.010105616, 0.031821854, -0.004405293, -0.03911908, 0.00744741, -0.0845214, 0.05801702, 0.0419249, 0.023149671, -0.03539857, 0.06208892, 0.02516435, 0.013891216, 0.03896153, -0.009954685, 0.0028522843, 0.0066732964, -0.022435365, -0.023112513, -0.011871844, 0.0101768, 0.020798633, 0.038571406, 0.008114242, 0.01178687, -0.03750515, -0.05665712, -0.008064215, -0.033173323, 0.004317179, -0.005959585, -0.038230773, 0.017388305, -0.036889113, -0.06015329, 0.040353395, 0.026139878, 0.0052922233, -0.027165476, 0.04596662, -0.02381022, -0.07564295, 0.03830073, -0.006308218, -0.027231429, -0.015583166, 0.008770934, -0.027649295, 0.03790804, 0.02229975, 0.026208445, 0.008851195, -0.022738254, 0.00088878686, 0.07003645, 0.039446723, 0.008120234, -0.0011694115, 0.04601964, 0.08243818, -0.018625172, -0.034958437, 0.03255931, -0.039277207, 0.0028018043, 0.02511805, 0.036363408, 0.022649975, -0.019459346, -0.004354735, -0.0066177994, -0.03150078, -0.04280018, -0.01883445, -0.006825992, -0.03365013, -0.016488539, -0.03183471, 0.07137131, -0.058916066, 0.060346942, 0.04318154, -0.073715985, 0.011787262, 0.063943535, 0.06522176, -0.0022367688, 0.047797713, 0.0146532655, 0.008908657, 0.016304392, 0.033849742, 0.046768475, -0.031794254, 0.059270848, 0.043518737, 0.040749982, -0.053010955, 0.00447713, 0.008690509, 0.05379201, 0.0009574317, 0.038106363, -0.012548936, -0.04791389, -0.050825417, 0.063278876, -0.023014398, -0.006235182, -0.06879879, -0.0682296, 0.06074759, -0.0007020073, 0.07356026, -0.046914633, 0.012457638, 0.0006319381, 0.0050159073, -0.053867258, 0.021359436, 0.03705967, -0.028600723, 0.041248742, -0.023721397, -0.06170592, 0.052679818, 0.05961615, 0.001833481, 0.032155152, 0.0013912363, 0.034976028, 0.057413287, -0.08144178, 0.008413522, 0.044877887, 0.010686567, -0.07162447, -0.051756542, -0.0029910547, -0.012235974, -0.052401, -0.013571794, -0.058947697, -0.0709484, 0.03891529, -0.006772193, 0.02197337, -0.05643602, 0.00025570617, -0.037905626, 0.039421976, 0.049175303, -0.0211417, -0.019354893, -0.06732373, -0.027315535, -0.07689869, -0.016225502, -0.03880881, -0.011061396, -0.059589498, 0.05272968, 0.042701855, 0.010297594, -0.03541238, -0.007913386, 0.01774158, 0.08416264, 0.04991368, -0.038001105, 0.0060807206, -0.007665571, 0.05520728, 0.0030369214, 0.0032102463, -0.0060050418, 0.00042455987, -0.02188702, 0.046914585, -0.033034496, -0.0019600755, -0.01381502, 0.024364905, -0.01288248, -0.0020547025, -0.018245738, 0.041735217, 0.064094946, 0.0016319013, -0.057380125, 0.008592031, -0.012413008, -0.036150362, -0.008113181, -0.014305237, -0.0013136613, -0.041825347, 0.03080212, 0.008162162, -0.09872071, -0.011774102, 0.06396495, 0.011819946, 0.00071616535, 0.056214068, -0.022978166, -0.030465072, -0.008100261, -0.018108279, 0.031371713, 0.023907563, 0.07043019, -0.030728595, -0.005839266, 0.046311833, -0.01044542, 0.011887891, 0.0138260275, 0.052953865, 0.013284022, -0.0030936322, -0.005078697, 0.019132331, 0.013709129, -0.036749896, 0.01720209, -0.017191492, 0.014657258, -0.0023295358, -0.031719808, -0.06248456, -0.009006547, 0.02953978, -0.023383107, -0.055063516, 0.040286187, 0.04992806, -0.014548163, 0.0032383169, 0.033689365, 0.060510255, 0.008937111, 0.050052766, 0.0225349, 0.00708535, 0.095886536, 0.026046084, 0.023793846, 0.019379968, -0.009505659, -0.032622542, 0.031912256, -0.021284513, -0.009849561, -0.044059414, -0.0218776, -0.020709308, -0.024690172, 0.002020864, -0.03830743, -0.030720532, -0.053644974, -0.045557182, 0.0228107, 0.0015269067, 0.052841164, -0.066265315, -0.055441685, -0.015927251, 0.010363736, -0.017199706, -0.011895513, -0.016169872, -0.010875163, 0.01661162, 0.030551044, -0.033819333, -0.05101871, -0.0038519388, 0.012008351, -0.048009016, 0.0064418446, 0.022925261, 0.013357139, 0.019236667, 0.010171257, 0.011183374, -0.023968797, -0.040047213, 0.0023589002, 0.002358003, -0.013196375, 0.026876528, 0.032204013, -0.01834595, -0.0076917987, -0.0020651286, -0.061260168, -0.06281904, -0.0036573384, 0.006180586, 0.04628736, -0.056937553, 0.0125495475, -0.04869546, -0.03798402, -0.044122126, -0.027392989, 0.014759784, 0.025360223, 0.018589051, -0.006845719, 0.009958912, 0.011684054, -0.028208314, -0.013135885, -0.01723535, 0.05547518, -0.008723274, 0.00084722514, -0.004521733, 0.01280093, 0.026276764, 0.020919202, -0.08376411, 0.037209455, -0.018038036, 0.015926128, 0.015566787, -0.052117266, 0.0370647, -0.026382623, 0.015200381, -0.026876552, 0.019008076, 0.02537549, -0.014791286, -0.011626489, -0.042004734, 0.017864164, -0.0019143614, 0.008586351, 0.013253269, 0.028752377, 0.03113076, -0.047000453, -0.054653578, -0.0139584895, -0.017046617, -0.037257113, 0.009854545, 0.049353845, 0.020744324, -0.011026808, -0.023746045, -0.018370066, 0.029964162, 0.0448531, -0.0338739, 0.020985197, -0.018043835, 0.0021755858, -0.037509777, -0.017878186, -0.012862994, 0.00979205, -0.039701443, 0.07861182, -0.034824103, -0.015615868, 0.036605436, 0.027290579, -0.0075548585, 0.07490465, 0.0371435, -0.060960125, 0.004715734, 0.017678622, -0.04627966, 0.014889229, -0.011661439, 0.0056383847, 0.025734065, -0.018972168, 0.065687105, -0.004754143, -0.042355586, 0.017970748, 0.011709051, 0.04941466, -0.011652395, -0.031532224, 0.015222895, 0.004986497, -0.06798623, 0.03434646, 0.019473577, -0.03651731, -0.0077110725, -0.0074903322, -0.05901672, 0.016575182, -0.014967736, -0.013055298, 0.008577893, -0.004123015, 0.028454276, 0.037449192, -0.044739373, 0.0006344152, -0.015087091, 0.044592272, 0.019483538, 0.027115777, -0.0068320567, -0.020180875, -0.0001090715, 0.058787674, -0.000988714, -0.015057066, -0.014201828, 0.031593703, -0.026818376, 0.00504362, 0.012275083, 0.017317578, 0.0062088063, 0.047841784, -0.008339635, -0.03521493, -0.018662509, -0.04867915, 0.03941107, 0.03951469, -0.0040254686, -0.029297847, 0.044469368, -0.0414937, -0.0039629373, 0.0093576675, 0.035199042, 0.047224596, 0.025621936, -0.05090349, 0.061724845, 0.007134878, 0.021775948, 0.025077762, -0.006390059, 0.024631051, -0.011289947, 0.028157055, 0.060198095, -0.026798518, -0.040821027, 0.054557014, -0.0098319845, -0.017762396, 0.010026019, -0.006324497, 0.014948735, 0.015499174, -0.0055394485, 0.009427727, -0.09070343, 0.01556856, -0.03813053, -0.054271806, -0.023394918, 0.030444555, 0.020758137, -0.029584926, -0.01242265, 0.043478996, 0.03484227, 0.022824839, 0.035548188, 0.023164075, 0.023260362, -0.066670515, 0.015640728, 0.05439289, 0.052546114, 0.05781065, 0.058205776, 0.014953869, -0.042881068, -0.05481646, -0.0072138277, 0.020416323, 0.0620149, -0.014068684, -0.040820867, -0.043761168, -0.010148745, -0.0141160665, -0.028773252, -0.037038255, 0.007976616, -0.012162352, -0.06948976, -0.061098002, 0.0025418592, -0.0015225448, 0.008744794, 0.006575653, 0.0037415684, 0.03993924, 0.007028148, -0.06631053, -0.057334755, 0.017128872, -0.02441069, -0.06452525, 0.013332068, 0.0028138233, -0.005339146, -0.05952469, -0.036096334, -0.06101155, -0.08592455, -0.046335008, 0.036091883, -0.04076108, 0.050580874, 0.026082579, -0.012880004, 0.025117215, 0.060109835, 0.0072092186, -0.002147726, -0.0017103368, -0.024938935, 0.0052892156, -0.033930697, 0.0030446155, 0.004176849, -0.022324705, 0.01662169, 0.049229212, 0.0067166104, -0.010756022, -0.018697863, -0.017699767, -0.03403265, -0.0017161459, -0.013264158, -0.015150688, -0.04284248, -0.03690099, -0.05781525, 0.05820051, 0.041256484, -0.017182391, -0.012617951, -0.020887973, -0.020072924, 0.001602065, -0.01299695, -0.038498417, -0.00021282889, -0.02530442, 0.053044654, 0.060921416, -0.039278034, -0.088686146, 0.019901304, -0.036340043, 0.013241143, -0.039545197, 0.00029456735, -0.017872049, 0.0374672, 0.00407312, -0.007268103, 0.006173225, -0.0347976, -0.08366326, 0.01854507, -0.030285804, 0.017515982, -0.032191314, 0.0028291997, 0.06704783, -0.0039479206, -0.04944659, 0.0023574764, -0.014027637, 0.011085229, -0.035075765, 0.053967975, -0.04216852, -0.075034864, -0.031469103, -0.021704175, -0.015043778, 0.05868596, 0.031265825, -0.029650904, 0.0026731507, -0.0082232375, -0.012703074, -0.072797105, -0.031543244, -0.027322879, -0.0061994153, 0.03724406, -0.00820968, -0.004294201, 0.001742783, -0.033924364, 0.008468682, 0.011268583, -0.040594332, -0.04117611, 0.007653147, -0.02971889, 0.009140443, 0.09224434, -0.053262655, 0.009275209]}\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "#Listagem de documentos que serão buscados\n", + "DOCUMENT1 = {\n", + " \"Título\": \"Operação do sistema de controle climático\",\n", + " \"Conteúdo\": \"O Googlecar tem um sistema de controle climático que permite ajustar a temperatura e o fluxo de ar no carro. Para operar o sistema de controle climático, use os botões e botões localizados no console central. Temperatura: O botão de temperatura controla a temperatura dentro do carro. Gire o botão no sentido horário para aumentar a temperatura ou no sentido anti-horário para diminuir a temperatura. Fluxo de ar: O botão de fluxo de ar controla a quantidade de fluxo de ar dentro do carro. Gire o botão no sentido horário para aumentar o fluxo de ar ou no sentido anti-horário para diminuir o fluxo de ar. Velocidade do ventilador: O botão de velocidade do ventilador controla a velocidade do ventilador. Gire o botão no sentido horário para aumentar a velocidade do ventilador ou no sentido anti-horário para diminuir a velocidade do ventilador. Modo: O botão de modo permite que você selecione o modo desejado. Os modos disponíveis são: Auto: O carro ajustará automaticamente a temperatura e o fluxo de ar para manter um nível confortável. Cool (Frio): O carro soprará ar frio para dentro do carro. Heat: O carro soprará ar quente para dentro do carro. Defrost (Descongelamento): O carro soprará ar quente no para-brisa para descongelá-lo.\"}\n", + "\n", + "DOCUMENT2 = {\n", + " \"Título\": \"Touchscreen\",\n", + " \"Conteúdo\": \"O seu Googlecar tem uma grande tela sensível ao toque que fornece acesso a uma variedade de recursos, incluindo navegação, entretenimento e controle climático. Para usar a tela sensível ao toque, basta tocar no ícone desejado. Por exemplo, você pode tocar no ícone \\\"Navigation\\\" (Navegação) para obter direções para o seu destino ou tocar no ícone \\\"Music\\\" (Música) para reproduzir suas músicas favoritas.\"}\n", + "\n", + "DOCUMENT3 = {\n", + " \"Título\": \"Mudança de marchas\",\n", + " \"Conteúdo\": \"Seu Googlecar tem uma transmissão automática. Para trocar as marchas, basta mover a alavanca de câmbio para a posição desejada. Park (Estacionar): Essa posição é usada quando você está estacionado. As rodas são travadas e o carro não pode se mover. Marcha à ré: Essa posição é usada para dar ré. Neutro: Essa posição é usada quando você está parado em um semáforo ou no trânsito. O carro não está em marcha e não se moverá a menos que você pressione o pedal do acelerador. Drive (Dirigir): Essa posição é usada para dirigir para frente. Low: essa posição é usada para dirigir na neve ou em outras condições escorregadias.\"}\n", + "\n", + "documents = [DOCUMENT1, DOCUMENT2, DOCUMENT3]" + ], + "metadata": { + "id": "xy8XyShdsrRX" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df = pd.DataFrame(documents)\n", + "df.columns = [\"Titulo\", \"Conteudo\"]\n", + "df" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "id": "NoiJ5YPRs_3g", + "outputId": "39ec3a17-0776-483d-d48c-12731464f4f4" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Titulo \\\n", + "0 Operação do sistema de controle climático \n", + "1 Touchscreen \n", + "2 Mudança de marchas \n", + "\n", + " Conteudo \n", + "0 O Googlecar tem um sistema de controle climáti... \n", + "1 O seu Googlecar tem uma grande tela sensível a... \n", + "2 Seu Googlecar tem uma transmissão automática. ... " + ], + "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", + "
TituloConteudo
0Operação do sistema de controle climáticoO Googlecar tem um sistema de controle climáti...
1TouchscreenO seu Googlecar tem uma grande tela sensível a...
2Mudança de marchasSeu Googlecar tem uma transmissão automática. ...
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df", + "summary": "{\n \"name\": \"df\",\n \"rows\": 3,\n \"fields\": [\n {\n \"column\": \"Titulo\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Opera\\u00e7\\u00e3o do sistema de controle clim\\u00e1tico\",\n \"Touchscreen\",\n \"Mudan\\u00e7a de marchas\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Conteudo\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"O Googlecar tem um sistema de controle clim\\u00e1tico que permite ajustar a temperatura e o fluxo de ar no carro. Para operar o sistema de controle clim\\u00e1tico, use os bot\\u00f5es e bot\\u00f5es localizados no console central. Temperatura: O bot\\u00e3o de temperatura controla a temperatura dentro do carro. Gire o bot\\u00e3o no sentido hor\\u00e1rio para aumentar a temperatura ou no sentido anti-hor\\u00e1rio para diminuir a temperatura. Fluxo de ar: O bot\\u00e3o de fluxo de ar controla a quantidade de fluxo de ar dentro do carro. Gire o bot\\u00e3o no sentido hor\\u00e1rio para aumentar o fluxo de ar ou no sentido anti-hor\\u00e1rio para diminuir o fluxo de ar. Velocidade do ventilador: O bot\\u00e3o de velocidade do ventilador controla a velocidade do ventilador. Gire o bot\\u00e3o no sentido hor\\u00e1rio para aumentar a velocidade do ventilador ou no sentido anti-hor\\u00e1rio para diminuir a velocidade do ventilador. Modo: O bot\\u00e3o de modo permite que voc\\u00ea selecione o modo desejado. Os modos dispon\\u00edveis s\\u00e3o: Auto: O carro ajustar\\u00e1 automaticamente a temperatura e o fluxo de ar para manter um n\\u00edvel confort\\u00e1vel. Cool (Frio): O carro soprar\\u00e1 ar frio para dentro do carro. Heat: O carro soprar\\u00e1 ar quente para dentro do carro. Defrost (Descongelamento): O carro soprar\\u00e1 ar quente no para-brisa para descongel\\u00e1-lo.\",\n \"O seu Googlecar tem uma grande tela sens\\u00edvel ao toque que fornece acesso a uma variedade de recursos, incluindo navega\\u00e7\\u00e3o, entretenimento e controle clim\\u00e1tico. Para usar a tela sens\\u00edvel ao toque, basta tocar no \\u00edcone desejado. Por exemplo, voc\\u00ea pode tocar no \\u00edcone \\\"Navigation\\\" (Navega\\u00e7\\u00e3o) para obter dire\\u00e7\\u00f5es para o seu destino ou tocar no \\u00edcone \\\"Music\\\" (M\\u00fasica) para reproduzir suas m\\u00fasicas favoritas.\",\n \"Seu Googlecar tem uma transmiss\\u00e3o autom\\u00e1tica. Para trocar as marchas, basta mover a alavanca de c\\u00e2mbio para a posi\\u00e7\\u00e3o desejada. Park (Estacionar): Essa posi\\u00e7\\u00e3o \\u00e9 usada quando voc\\u00ea est\\u00e1 estacionado. As rodas s\\u00e3o travadas e o carro n\\u00e3o pode se mover. Marcha \\u00e0 r\\u00e9: Essa posi\\u00e7\\u00e3o \\u00e9 usada para dar r\\u00e9. Neutro: Essa posi\\u00e7\\u00e3o \\u00e9 usada quando voc\\u00ea est\\u00e1 parado em um sem\\u00e1foro ou no tr\\u00e2nsito. O carro n\\u00e3o est\\u00e1 em marcha e n\\u00e3o se mover\\u00e1 a menos que voc\\u00ea pressione o pedal do acelerador. Drive (Dirigir): Essa posi\\u00e7\\u00e3o \\u00e9 usada para dirigir para frente. Low: essa posi\\u00e7\\u00e3o \\u00e9 usada para dirigir na neve ou em outras condi\\u00e7\\u00f5es escorregadias.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model = \"models/embedding-001\"" + ], + "metadata": { + "id": "4b-KLmLItiv5" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "def embed_fn(title, text):\n", + " return genai.embed_content(model=model,\n", + " content=text,\n", + " title=title,\n", + " task_type=\"RETRIEVAL_DOCUMENT\")[\"embedding\"]" + ], + "metadata": { + "id": "Asp__XR0v3j5" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "df[\"Embeddings\"] = df.apply(lambda row: embed_fn(row[\"Titulo\"], row[\"Conteudo\"]), axis=1)\n", + "df" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "id": "7Wnn6e1swQfg", + "outputId": "c4f183c2-d675-4be0-95fb-f64eb4e25ddd" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Titulo \\\n", + "0 Operação do sistema de controle climático \n", + "1 Touchscreen \n", + "2 Mudança de marchas \n", + "\n", + " Conteudo \\\n", + "0 O Googlecar tem um sistema de controle climáti... \n", + "1 O seu Googlecar tem uma grande tela sensível a... \n", + "2 Seu Googlecar tem uma transmissão automática. ... \n", + "\n", + " Embeddings \n", + "0 [-0.011010795, -0.026731547, -0.036728486, 0.0... \n", + "1 [0.015715627, -0.040427547, 0.011117627, 0.002... \n", + "2 [-0.009390755, -0.022475218, -0.0024638234, 0.... " + ], + "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", + "
TituloConteudoEmbeddings
0Operação do sistema de controle climáticoO Googlecar tem um sistema de controle climáti...[-0.011010795, -0.026731547, -0.036728486, 0.0...
1TouchscreenO seu Googlecar tem uma grande tela sensível a...[0.015715627, -0.040427547, 0.011117627, 0.002...
2Mudança de marchasSeu Googlecar tem uma transmissão automática. ...[-0.009390755, -0.022475218, -0.0024638234, 0....
\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" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df", + "summary": "{\n \"name\": \"df\",\n \"rows\": 3,\n \"fields\": [\n {\n \"column\": \"Titulo\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Opera\\u00e7\\u00e3o do sistema de controle clim\\u00e1tico\",\n \"Touchscreen\",\n \"Mudan\\u00e7a de marchas\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Conteudo\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"O Googlecar tem um sistema de controle clim\\u00e1tico que permite ajustar a temperatura e o fluxo de ar no carro. Para operar o sistema de controle clim\\u00e1tico, use os bot\\u00f5es e bot\\u00f5es localizados no console central. Temperatura: O bot\\u00e3o de temperatura controla a temperatura dentro do carro. Gire o bot\\u00e3o no sentido hor\\u00e1rio para aumentar a temperatura ou no sentido anti-hor\\u00e1rio para diminuir a temperatura. Fluxo de ar: O bot\\u00e3o de fluxo de ar controla a quantidade de fluxo de ar dentro do carro. Gire o bot\\u00e3o no sentido hor\\u00e1rio para aumentar o fluxo de ar ou no sentido anti-hor\\u00e1rio para diminuir o fluxo de ar. Velocidade do ventilador: O bot\\u00e3o de velocidade do ventilador controla a velocidade do ventilador. Gire o bot\\u00e3o no sentido hor\\u00e1rio para aumentar a velocidade do ventilador ou no sentido anti-hor\\u00e1rio para diminuir a velocidade do ventilador. Modo: O bot\\u00e3o de modo permite que voc\\u00ea selecione o modo desejado. Os modos dispon\\u00edveis s\\u00e3o: Auto: O carro ajustar\\u00e1 automaticamente a temperatura e o fluxo de ar para manter um n\\u00edvel confort\\u00e1vel. Cool (Frio): O carro soprar\\u00e1 ar frio para dentro do carro. Heat: O carro soprar\\u00e1 ar quente para dentro do carro. Defrost (Descongelamento): O carro soprar\\u00e1 ar quente no para-brisa para descongel\\u00e1-lo.\",\n \"O seu Googlecar tem uma grande tela sens\\u00edvel ao toque que fornece acesso a uma variedade de recursos, incluindo navega\\u00e7\\u00e3o, entretenimento e controle clim\\u00e1tico. Para usar a tela sens\\u00edvel ao toque, basta tocar no \\u00edcone desejado. Por exemplo, voc\\u00ea pode tocar no \\u00edcone \\\"Navigation\\\" (Navega\\u00e7\\u00e3o) para obter dire\\u00e7\\u00f5es para o seu destino ou tocar no \\u00edcone \\\"Music\\\" (M\\u00fasica) para reproduzir suas m\\u00fasicas favoritas.\",\n \"Seu Googlecar tem uma transmiss\\u00e3o autom\\u00e1tica. Para trocar as marchas, basta mover a alavanca de c\\u00e2mbio para a posi\\u00e7\\u00e3o desejada. Park (Estacionar): Essa posi\\u00e7\\u00e3o \\u00e9 usada quando voc\\u00ea est\\u00e1 estacionado. As rodas s\\u00e3o travadas e o carro n\\u00e3o pode se mover. Marcha \\u00e0 r\\u00e9: Essa posi\\u00e7\\u00e3o \\u00e9 usada para dar r\\u00e9. Neutro: Essa posi\\u00e7\\u00e3o \\u00e9 usada quando voc\\u00ea est\\u00e1 parado em um sem\\u00e1foro ou no tr\\u00e2nsito. O carro n\\u00e3o est\\u00e1 em marcha e n\\u00e3o se mover\\u00e1 a menos que voc\\u00ea pressione o pedal do acelerador. Drive (Dirigir): Essa posi\\u00e7\\u00e3o \\u00e9 usada para dirigir para frente. Low: essa posi\\u00e7\\u00e3o \\u00e9 usada para dirigir na neve ou em outras condi\\u00e7\\u00f5es escorregadias.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Embeddings\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "def gerar_e_buscar_consulta(consulta, base, model):\n", + " embedding_da_consulta = genai.embed_content(model=model,\n", + " content=consulta,\n", + " task_type=\"RETRIEVAL_QUERY\")[\"embedding\"]\n", + "\n", + " produtos_escalares = np.dot(np.stack(df[\"Embeddings\"]), embedding_da_consulta)\n", + "\n", + " indice = np.argmax(produtos_escalares)\n", + " return df.iloc[indice][\"Conteudo\"]" + ], + "metadata": { + "id": "LxyfqY8LxxHx" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "consulta = \"Como faço para trocar marchas em um carro do Google?\"\n", + "\n", + "trecho = gerar_e_buscar_consulta(consulta, df, model)\n", + "print(trecho)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + }, + "id": "diM24PZU0OeE", + "outputId": "97262ef2-1ec5-4857-f54f-2591f9e51222" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Seu Googlecar tem uma transmissão automática. Para trocar as marchas, basta mover a alavanca de câmbio para a posição desejada. Park (Estacionar): Essa posição é usada quando você está estacionado. As rodas são travadas e o carro não pode se mover. Marcha à ré: Essa posição é usada para dar ré. Neutro: Essa posição é usada quando você está parado em um semáforo ou no trânsito. O carro não está em marcha e não se moverá a menos que você pressione o pedal do acelerador. Drive (Dirigir): Essa posição é usada para dirigir para frente. Low: essa posição é usada para dirigir na neve ou em outras condições escorregadias.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "generation_config = {\n", + " \"temperature\": 0,\n", + " \"candidate_count\": 1\n", + "}" + ], + "metadata": { + "id": "9_Fe6WO237bK" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "prompt = f\"Reescreva esse texto de uma forma mais descontraída, sem adicionar informações que não façam parte do texto: {trecho}\"\n", + "\n", + "model_2 = genai.GenerativeModel(\"gemini-1.0-pro\",\n", + " generation_config=generation_config)\n", + "response = model_2.generate_content(prompt)\n", + "print(response.text)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 173 + }, + "id": "bDHQlEuV4Jay", + "outputId": "907cae34-4b62-480f-d9c3-bd70ce1cba2d" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "**Guia do Googlecar para Descolados**\n", + "\n", + "Seu Googlecar é tipo um carro automático maneiro. Pra trocar as marchas, é só dar um toque na alavanca e escolher o que você quer:\n", + "\n", + "* **Estacionar:** Quando você tá parado e quer que o carro fique quietinho. As rodas ficam travadas e ele não mexe nem um centímetro.\n", + "* **Ré:** Pra dar aquela ré maneirinha.\n", + "* **Neutro:** Quando você tá parado no farol ou no trânsito. O carro tá desligado e não vai se mexer até você pisar no acelerador.\n", + "* **Dirigir:** Pra acelerar pra frente.\n", + "* **Baixa:** Pra quando você tá dirigindo na neve ou em lugares escorregadios.\n" + ] + } + ] + } + ] +} \ No newline at end of file