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": [
+ ""
+ ]
+ },
+ {
+ "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",
+ " Titulo | \n",
+ " Conteudo | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Operação do sistema de controle climático | \n",
+ " O Googlecar tem um sistema de controle climáti... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Touchscreen | \n",
+ " O seu Googlecar tem uma grande tela sensível a... | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Mudança de marchas | \n",
+ " Seu Googlecar tem uma transmissão automática. ... | \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",
+ " Titulo | \n",
+ " Conteudo | \n",
+ " Embeddings | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Operação do sistema de controle climático | \n",
+ " O Googlecar tem um sistema de controle climáti... | \n",
+ " [-0.011010795, -0.026731547, -0.036728486, 0.0... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Touchscreen | \n",
+ " O seu Googlecar tem uma grande tela sensível a... | \n",
+ " [0.015715627, -0.040427547, 0.011117627, 0.002... | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Mudança de marchas | \n",
+ " Seu Googlecar tem uma transmissão automática. ... | \n",
+ " [-0.009390755, -0.022475218, -0.0024638234, 0.... | \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