diff --git a/conf.py b/conf.py index 3b6189cc2..fbfef1005 100644 --- a/conf.py +++ b/conf.py @@ -927,7 +927,7 @@ # A small copyright notice for the page footer (in HTML). # (translatable) -CONTENT_FOOTER = 'Contents © {date} {author} - Powered by Nikola {license}Aporta a PyAr con tu donación' +CONTENT_FOOTER = 'Contents © {date} {author} - Powered by Nikola {license}Aporta a PyAr con tu donación' # Things that will be passed to CONTENT_FOOTER.format(). This is done # for translatability, as dicts are not formattable. Nikola will diff --git a/scrap_y_chroma/chroma_http_client.py b/scrap_y_chroma/chroma_http_client.py new file mode 100644 index 000000000..af6fb5790 --- /dev/null +++ b/scrap_y_chroma/chroma_http_client.py @@ -0,0 +1,11 @@ +import chromadb + +cliente = chromadb.HttpClient(host='127.0.0.1', port=8010) + + +collection = cliente.get_collection('pyar_searchbar_collection') + +print(collection.query( + query_texts='hola python', + include=['documents', 'metadatas'] +)) diff --git a/scrap_y_chroma/client.py b/scrap_y_chroma/client.py new file mode 100644 index 000000000..9abe205b3 --- /dev/null +++ b/scrap_y_chroma/client.py @@ -0,0 +1,75 @@ +""" +API REST en Flask +Instrucciones para Windows: +1. Instalar waitress: pip install waitress +2. Ejecutar la aplicación: waitress-serve --port=3000 app:app + +@autor: Martinez, Nicolas Agustin +""" +# Importación de módulos necesarios + +from flask import Flask, request, jsonify, render_template +from flask_cors import CORS +import webbrowser, chromadb + +# Inicialización de la aplicación Flask +app = Flask(__name__) + + +@app.route('/') +def index(): + return render_template('index.html') + +@app.route('/pyar_search', methods=['POST']) +def query_abc(): + """ + Endpoint para obtener similitudes basadas en el texto proporcionado. + + Entrada: JSON con el campo 'text' + Salida: JSON con las similitudes encontradas o un objeto JSON vacío en caso de error + + + """ + collection_name = 'pyar_searchbar_collection' + collection = client.get_collection(collection_name) + + # Obtener datos del cuerpo de la solicitud + #data:dict = request.json + #print('DENTRO DE query_abc() EN APP.py') + data = request.json + print('data:', data) + # Si no hay datos, retornar None + if not data: + return None + + # Extraer el texto del JSON + pregunta:str = data['pregunta'] + + # Intentar obtener similitudes y devolver la respuesta + try: + response:chromadb.QueryResult = collection.query( + query_texts=pregunta, + n_results=5, + include=['documents', 'metadatas', 'distances']) + + #return response + print(response) + return jsonify(response) + + except Exception as e: + # Imprimir el error y devolver un objeto JSON vacío + print('Error al obtener similitudes:', e) + return {} + +if __name__ == '__main__': + #webbrowser.open('http://localhost:8010') + + client = chromadb.HttpClient(host='127.0.0.1', port=8010) + # Habilitación de CORS para la aplicación + + CORS(app) + + # (Opcional) Para montar la API en línea, descomentar la siguiente línea + # run_with_ngrok(app) + + app.run(host='localhost', port=5500, debug=True) \ No newline at end of file diff --git a/scrap_y_chroma/data/url_content_searchbar.csv b/scrap_y_chroma/data/url_content_searchbar.csv new file mode 100644 index 000000000..a7fe26bfc --- /dev/null +++ b/scrap_y_chroma/data/url_content_searchbar.csv @@ -0,0 +1,883 @@ +TITLE;URL +Mailtopyar At Python Dot Org Dot Ar;mailtopyar-at-python-dot-org-dot-ar +Edupythoncd;edupythoncd +@``me@;omar-vega +Merchandising Pyconar 2011;merchandisingpyconar2011 +Pyar Santa Fe;santafe +Cristianskalican;cristianskalican +Lala;lala +Material De Difusión Pyconar 2011;materialpyconar2011 +Extraer Direcciones De Email De Un Texto;extraermails +¿quiénes Somos?;quienessomos +Horaciobertorello;horaciobertorello +Usuariosbuscandohosting;usuariosbuscandohosting +Orms;orms +Pablo Petenello;pablopetenello +Dieresys;dieresys +Eloy Colell;eloycolell +Prueba;prueba +Mauricio Jos(C3a920)tobares;mauricio-josc3a920tobares +Aafigure Parser;aafigure +Test;test +Resultado;remerasv2 +Terminales Interactivas;terminalesinteractivas +Call For Charlas Pyconar 2011;cfcpyconar2011 +Preguntasfrecuentes;preguntasfrecuentes +Recursos;recursos +Python 3000 = Py3k = 3.x;python3mil +Angel Velásquez;angelvelasquez +Call For Charlas;callforcharlas +Daniel F Moisset;danielmoisset +Sugerencias;sugerencias +Actividades;actividadespasadas +Comparación De Rendimiento Entre Python, Java Y .net;rendimientopythonvsjavavsnet +Readwritegroup;readwritegroup +Becas Pyconar 2011;becaspyconar2011 +Uso De Python En La Universidad;usodepythonenlauniversidad +Fixme;fixme +Common_links;common_links +Matias Gieco;matiasgieco +Cómo Colaborar En El Wiki De Pyar;colaborandoenelwiki +Pabloziliani;pabloziliani +Pycon;actividades +Joaquin Tita;joaquintita +Categorycategory;categorycategory +Agua;agua +Helponmoinwikisynutax;helponmoinwikisynutax +Elisabeth Hartwig;elisabeth-hartwig +Servers Privados Virtuales;vpss +Acerca De;marianoverdu +El Zen De Python;pythonzen +Fullsearchcategorycategoryvideo;fullsearchcategorycategoryvideo +Pyconarvotacioncharlas;pyconarvotacioncharlas +Nubis;nubis +Viaje;viaje +Test;test +Intento 03 De Facundo Batista;facundobatista3 +Intento 02 De Cesar Roldan;cesarroldan2 +Intento 01 De Cesar Roldan;cesarroldan1 +Laubenech2;laubenech2 +Intención De Compra;preanotados +Intento 02 De Facundo Batista;facundobatista2 +Versión 0.1 De Humitos;humitos1 +Laubenech3;laubenech3 +Laubenech6;laubenech6 +Intento 01 De Alecu;alecu1 +Ramiromorales1;ramiromorales1 +Pabloziliani1;pabloziliani1 +Intento 05 De Facundo Batista;facundobatista5 +Intento 04 De Facundo Batista;facundobatista4 +Laubenech4;laubenech4 +Pabloziliani2;pabloziliani2 +Intento 03 De Cesar Roldan;cesarroldan3 +Intento 01 De Hernán Balocco;hernanbalocco1 +Versión 1.0 De Nubis;nubis1 +Laubenech1;laubenech1 +Solo Un Ejemplo;solounejemplo0 +Intento 01 De Facundo Batista;facundobatista1 +Intento 01 De Juanjo;juanjo1 +Laubenech5;laubenech5 +Diseño 1 De César Portela;cesarportela1 +Versión 2.0 De Nubis;nubis2 +Walikioff;walikioff +@``martin Alderete@;martinalderete +Mansoor Rana;compactoexquisito +Variables, Valores Y Objetos;graficos +Un Ejemplo De Class Decorators (Python 3);classdeco +Alejandrodavidweil;alejandrodavidweil +Llamadoasedepyconar2012;llamadoasedepyconar2012 +Alejandro J. Cura;alejandrojcura +Ramiro Algozino;ramiroalgozino +Afichepyconar2011;afichepyconar2011 +Todo;todo +Saturdaynightninja;saturdaynightninja +Codigo2;codigo2 +Codigo1;codigo1 +Prueba01;prueba01 +Py2exe;py2exe +Tareas Realizadas;tareasrealizadas +Juegos Realizados Por Pyar;juegos +Typus Pocus - Version Final;typuspocus +Worldst;worldst +Osiris (Aka Osiux);osiris +Librerias Para Juegos;libreriasparajuegos +Pyar Tiene Plata, ¡gastémosla!;gastemosla +Mariano Reingart;marianoreingart +Página De Prueba, Por Favor No Borrar!!;buscandogente +@``me@;ariel-barrios +Themostbiggestgamestintheworldst;themostbiggestgamestintheworldst +Guillermo Freschi;guillermofreschi +H;h +Nuevologo;nuevologo +Juanjoconti;juanjoconti +Recetario;recetario +"Reverse (A.k.a. ""esrever"")";reverse +Cómo Generar Un Histograma;histograma +Extraer Direcciones De Email De Un Texto;extraermails +Ttkholamundo;ttkholamundo +Tk Wizards;tkwizards +Winbatt (Ctypes + Powrprof.dll En Win);winbatt +Cálculo De Dígito Verificador Módulo 10;calculardigitoverificadormodulodiez +Tkwindowicon;tkwindowicon +Comunicar Threads Con Colas;comunicarthreadsconqueue +Chequear Interfaces Internet Linux;chequearinterfacesinternetlinux +Interceptar Prints;interceptarprints +Pythoncard;pythoncard +Holamundo;holamundo +Miprimermacro;miprimermacro +Empaquetando Programas De Python Para Windows;crearejecutablewindows +Check Distro Version;checkdistroversion +Creando Un Nuevo Proyecto Python;creandounnuevoproyectopython +Autocomplecion En Consola Interactiva;autocomplecionenconsolainteractiva +Gtk On Tk;gtkontk +Revisar Conexion;revisarconexion +Gmailmail;gmailmail +Obtener Sensacion Termica;obtenersensaciontermica +Matrix Python Toy;matrixpythontoy +Multiprocessing Y Threading;multiprocessingythreading +Empaquetando Programas De Python Para Windows Desde Linux;crearejecutablewindowsdesdelinux +Blowfish Con Blowfishpy;blowfishconblowfishpy +Mini Galeria De Imagenes Bottle;galeria +Hola Mundo Bottle;holamundo +Simplesoapclient;simplesoapclient +Xdg-Sudo;xdg-sudo +Mapeando Memoria;mapeandomemoria +Nado Sincronizado;nadosincronizado +Mini Space Invaders;minispaceinvaders +Nado Sincronizado;nadosincronizadodisco +Como Levantar Un Servidor Http Simple;comolevantarunservidorhttpsimple +Decodificar Entities De Html;decodehtmlentities +Tkbuttonicon;tkbuttonicon +Reloj Digital;relojdigital +Root Check;rootcheck +Listar Procesos;listarprocesos +Servidor Interfase Com;servidorcom +Tkonlineofflineicon;tkonlineofflineicon +Test Formulario Con File Upload En Django;testformularioconfileupload +Obtener Clase Original Cuando Hay Herencia;obtenerclaseoriginalcuandohayherencia +Saber Si N Libreria Esta Instalada;sabersinlibreriaestainstalada +Python Version Check;pythonversioncheck +Factura Con Pyfpdf;facturapyfpdf +Manejo Simple De Xml (Simplexmlelement);simplexmlelement +Chequeo De Paquetes Con Apt;chequeo_de_paquetes_apt_linux +Qt Multi Thread;qtmultithread +Qt Imprimir Pagina Web A Pdf;qtimprimirpagina +Extraer Un Archivo De Texto Embebido En Un Recurso .qrc;qtextraertextorecurso +Dbfpy;dbfpy +Keyboard Leds Demo;keyboardledsdemo +Validar Cuit;validarcuit +Iterar Sobre Pares;iterarsobrepares +Obtener Ip Publica;ippublica +Boton Grafico Tk;botongraficotk +Modificación De Estilos En Rst2pdf;estilosrst2pdf +Aletras;aletras +Entendiendounicode;entendiendounicode +Como Levantar Un Servidor Http Multithread;comolevantarunservidorhttpmultithread +Tkversionprint;tkversionprint +Detectar Y Notificar Dispositivos Usb;notificardispositivosusb +Psycospeedup;psycospeedup +Ventana De Password Que Vibra;ventanapasswordvibra +La Cuestión;normalizarcaracteresunicode +Tkscrollwhell;tkscrollwhell +Bloquear Click Del Mouse;bloquearclickdelmouse +Email Con Adjunto;emailconadjunto +Obtener La Cantidad De Bytes Transferidos;obtenerbytestransferidos +Locals De Una Funcion Que Lanzo Una Excepcion;localsdeunafuncionquelanzounaexcepcion +Obtener Ubicacion Geografica;obtenerubicaciongeografica +Alarma Precaria;alarmaprecaria +Display Lcd De 7 Segmentos;displaylcd7segmentos +Comobajartodoslosbuffersaldisco;comobajartodoslosbuffersaldisco +Gtkvbox;vbox +Grid;grid +Gtkholamundo;holamundo +Gtkstatusicon;statusicon +Gtkerrorhandler;errorhandler +Gtkmultithread;multithread +Gtkdialog;dialog +Gtkfuncionrunner;funcionrunner +Gtkentrysolonumeros;entrysolonumeros +Gtkrunner;runner +Xmlrpcserver;xmlrpcserver +Gtkconfirmclose;confirmclose +Gtk Webkit Editor;webkiteditor +Button;button +Gtkprintnongtk;printnongtk +Gtk Label Con Color;labelconcolor +Gtkrichtext;richtext +Buttonbox;buttonbox +Menu;menu +Gtkhbox;hbox +Gtk Stock Items;stockitems +Gtk Browser Con Web Inspector;browserconwebinspector +Gtk Auto Complete;autocomplete +Gtkentry;entry +Gtk Listview;listview +Erorhandler;erorhandler +Emulador De Terminal Con Gtk Y Vte;emuladorterminal +Gtkholamundooo;holamundooo +Gtkgladeholamundooo;gladeholamundooo +Multithread2;multithread2 +Pasarrecaptcha.rst;pasarrecaptcha +Progressbar Y Urllib2;progressbarurllib2 +Xml A Diccionario;xmladiccionario +Bandera Para Pyar;bandera +Eugenia Bahit;eugeniabahit +Martingaitan;martingaitan +Facundo Batista;facundobatista +Robertoperdomo;robertoperdomo +Guillermogonzalez;guillermogonzalez +Mensajes Excepcionales;mensajesexcepcionales +Propuestas De Sede;pyconar2015 +Temp;temp +Lucianorossi;lucianorossi +Anthony Lenton;anthonylenton +David Litvak;davidlitvak +@luistucho@;luis-nagel +Tareasrealizadas;tareasrealizadas +Bar;bar +Migrando La Lista De Correo;migracion +Tablaides;tablaides +Marcelo Gustavo Ametller;maram +Willsantana;willsantana +Asociación Civil:;asociacioncivil +Manuelquinones;manuelquinones +Cafeconf 2006;cafeconf2006 +*pyday Junín 2015*;pydayjunin2015 +Filly;filly +Probando Send File;sendfile +Call For Charlas;callforcharlas +Pruebaloca;pruebaloca +Ricardo Quesada;ricardoquesada +Ayudadecontenidos.py;ayudadecontenidospy +Mariano Guerra;marianoguerra +Condornet;condornet +Unmanualencadauniversidad;unmanualencadauniversidad +Vbox;vbox +Obteniendo Respuestas;obteniendorespuestas +Adrián Pardini;adrianpardini +Scipyar;scipyar +Listab;listab +Grupo De Entusiastas De Python;grupo-de-entusiastas-de-python +Titulocharla;videotemplate +Diego Ahumada;diegoahumada +¿cómo Hacer Una Conferencia?;howtoconferencia +Toquetonesgroup;toquetonesgroup +Ramiro Morales (Aka Cramm);ramiromorales +José Luis Dallapiccola;joseluisdallapiccola +Danielmendoza;danielmendoza +Remerasv3;remerasv3 +Alfonso Palomares;alfonsopalomares +Sergio Vernis;sergiovernis +Web2py;web2py +Ezequiel Diaz Marquez;ezequielmarquez +Leonardovidarte2;leonardovidarte2 +Manuelarguelles1;manuelarguelles1 +Aprovechen Antes De Que Limpiemos Los Shablones!;pedidos +Leonardovidarte3;leonardovidarte3 +Leonardovidarte4;leonardovidarte4 +Manuelarguelles2;manuelarguelles2 +Luciotorre1;luciotorre1 +Manuelarguelles3;manuelarguelles3 +Leonardovidarte1;leonardovidarte1 +Ideas Para El Nuevo Sitio De Pyar;nuevositio +User Preferences;preferenciasdelusuario +Webkit;webkit +Pyconar2014;pyconar2014 +Javier Castrillo;javiercastrillo +Pyday;pyday +Pyday2;pyday2 +Alojamiento Para Aplicaciones Web Python;alojamientowebpython +@``me@;wwwhexactacom +Infraestuctura;infraestuctura +Hectorsanchez;hectorsanchez +Hipbar;hipbar +Características Esenciales Y Deseables En Un Ide;ideal +Ejercicios;ejercicios +Gabriel Genellina;gabrielgenellina +Hipersayan_x;gonzalopedone +Walter Alini;walteralini +Material;material +Segundoproyecto;segundoproyecto +Como Crear Snippets En El Wiki;snippets +Guardar Historial En Consola Interactiva;guardarhistorialenconsolainteractiva +Cherrypy;cherrypy +2018;2018 +Johnlenton;johnlenton +Charlas Abiertas De Python En La Tribu;charlasabiertas2010 +Pycamp.orm, Haciendo Facil Usar Sqlalchemy :);pycamporm +2008;2008 +Pyar Mencionado Entre Los Grupos De Interés De Python;listadodepigs +Gvr Junto A La Bandera De Pyar;gvrybandera +2010;2010 +Nueva Release De Python;python24 +2009;2009 +2007;2007 +20/12/2004;2004 +Foto By Mail;fotobymail +Pythonpalm;pythonpalm +1/07/2011;2011 +Inmersión En Python Ver. 5.4;inmersion54 +2005;2005 +2006;2006 +Aritmética Decimal;aritmeticadecimal +Nicolás Pace;nickar +Miembrosdepyar;miembrosdepyar +Labanderadepyar;labanderadepyar +Folletoscarteles;folletoscarteles +Texteditordeadmatch;texteditordeadmatch +Ideas Para Programar;ideas-para-programar +Archive;archive +Pythoneneldiaadia;pythoneneldiaadia +Actividades Previas;actividadesprevias +Emiliano Dalla Verde Marcozzi;emilianodallaverdemarcozzi +Empresas Y Profesionales Que Trabajan Con Python;empresasyprofesionales +Config;config +Adopta Un Newbie;adoptaunnewbie +Admingroup;admingroup +Proyecto;proyecto +Roberto Rodríguez;robertorodriguez +Kola;kola +Pycon;pycon +Reunión Xx - Dd/mm/aaaa - Lugar;reuniontemplate +Tareas Pendientes;tareaspendientes +Pycon Argentina 2012 - Buenos Aires;pyconar2012bsas +Pl/python: Python Dentro De Postgresql;plpython +Diego Sarmentero;diegosarmentero +Hernan Olivera;hernanolivera +Orm001ogv;orm001ogv +Pyweek;pyweek +Tracebackinternationalizationproposal;tracebackinternationalizationproposal +Planeta;planeta +Arturo Elias Anton;arturoeanton +Foo;foo +Santiago Bruno;santiagobruno +El Circo Errante;circoerrante +Pruebavideo;pruebavideo +Pyqt;pyqt +Taller De Programación De Juegos;tallerjuegos +Introducción A Python;introduccionapython +!foobar (Virtualenv, Buildout, Nose);foobar +Introducción Al Desarrollo Web Ii;introduccionaldesarrollowebii +Python 3000;python3000 +Optimizando Python;optimizandopython +Introducción Al Uso Y Desarrollo Con Plone;introduccionaplone +Django;django +Introducción Al Desarrollo Web;introduccionaldesarrollowebi +Introducción A La Programación;introduccionalaprogramacion +Wxpython;wxpython +Introducción A Las Interfaces Gráficas De Escritorio Ii;introducciongui_ii +Twisted;twisted +Introducción A Las Interfaces Gráficas De Escritorio I;introducciongui_i +Matiasbellone;matiasbellone +Proyecto Edupython;edupython +Roberto Allende (Aka R0ver);robertoallende +Donde Viven Los Miembros De Pyar ?;miembrosdepyar +Leandro E. Colombo Viña;leandrocolombovina +Simonrodriguez;simonrodriguez +Stickers;stickers +Mariano Garcia;marianogarcia +Invitacioncuentawave;invitacioncuentawave +Pruebacal;pruebacal +2010 10 15;2010-10-15 +Pycon2010;pycon2010 +2010 10 16;2010-10-16 +2010 09 04;2010-09-04 +Nicolas Cesar;nicocesar +Pyconapp 2011;pyconapp +Manuel Kaufmann;kaufmannmanuel +Yaco (Santiágo Peresón);santiagopereson +Angel Freire;angelfreire +Pycon Argentina 2009;transportecompartido +Pycon Argentina 2009;alojamientocompartido +Dsitrubucion Afiches;distribucionafiches +Llamado A Revisores - Pycon Arg. 2012;llamadorevisores +Faltan Pocos Dias Para La Conferencia Y Necesitamos Voluntarios Para Algunas Tareas;llamadovoluntarios +Temas Pendientes;temaspendientes +Tareas Pendientes;tareaspendientes +Instrucciones Para Encargados De Aula;encargadosaula +Llamado A Sponsors Pycon Argentina 2012;llamadosponsors +Llamado A Propuestas;llamadopropuestas +Workshop Para Principiantes En Pycon Argentina 2012;workshop +Pycon Argentina 2012;transportecompartido +Pycon Argentina 2012;alojamientocompartido +Llamado A Sedes Pycon Argentina 2013;llamadosedes +Ayuda;ayuda +Couchsurfing En Pyconar2013;couchsurfing +Transportsurfing En Pyconar2013;transportsurfing +Etiquetapyar;etiquetapyar +La Bandera De Pyar Viaja Por El Mundo;labanderadepyar +Martín Volpe;martinvolpe +Recetariointerfaces_graficas;recetariointerfaces_graficas +Martín Chikilian;martinchikilian +Declaración De Diversidad;diversidad +Leandro Monk;leitomonk +Alejandro Santos;alejandrosantos +Python Ya;python-ya +Desarrollador Jr O Ssr Django Y Javascript;desarrollador-jr-o-ssr-django-y-javascript +Mini Ejemplos;miniejemplos +Pruebamail;pruebamail +Pycamp;pycamp +Patriciomolina;patriciomolina +;xml +Irc;irc +Hitchhiker's Guide To Make A Pyconar2010;hgttp +Gauchitogil;gauchitogil +Reuniones;reuniones +Chistes Y Qotw (Frases De La Semana);chistes +Mini Preguntas Frecuentes;minifaq +Contribuyendo Al Wiki;contribuyendoalwiki +Marcos Dione;marcosdione +Marcelofernandez;marcelofernandez +Dominios De Python Argentina;dominios +Primerproyecto;primerproyecto +Pycamp2009resultados;pycamp2009resultados +Maximiliano Churichi;maximilianochurichi +Call For Charlas Pyconar Anio;callforcharlastemplate +Emilio Ramirez;emilioramirez +Comparación De Entornos De Desarrollo;ides +Distutils;distutils +Diego Sarmentero (Gatox);gatox +Joaquinsorianello;joaquinsorianello +Pyar Y Python En Los Medios;enlosmedios +Marianoguerra/holamundo;holamundo +Aprendiendo Python;aprendiendopython +Santiago Suarez Ordoñez;santiagosuarezo +Cdpedia On Android;cdpedia-on-android +Remeras De Pyar;remeras +Martín Conte Mac Donell;martincontemacdonell +Lucio Torre;luciotorre +Migración A Debian Wheezy;servidor +@``me@;pabloalejandrocostesich +Callforcharlasinvitaciontemplate;callforcharlasinvitaciontemplate +Juanfisanotti;juanfisanotti +Pep;pep +Charlas;charlas +Sebastián Lezica;sebastianlezica +Archivo;archivo +Trabajos;trabajos +Proximareunion;proximareunion +@``me@;alecutest2 +Nicolás Echániz;nicoechaniz +Clases De Python;clasesdepython +Ricardo Kirkner;ricardokirkner +Web Server Gateway Interface;wsgi +Sebastián;sebastianseba +Buzospyar;buzospyar +Horacio Durán (Perrito);horacioduran +Visualbasic;visualbasic +Taller Olpc;tallerolpc +Gonzalolarralde;gonzalolarralde +Foro Y Redes;listadecorreo +Albertopaparelli;albertopaparelli +Brygevel;brygevel +Admin;admin +Juanjociarlante;juanjociarlante +@``me@;venenito +Alberto Pastor;alberto-pastor +Google Summer Of Code (Becas);gsoc +Renzo Carbonara;renzocarbonara +Python Argentina;pyar +Interesados En Recibir Ofertas De Trabajo Utilizando Python;interesadosentrabajo +Fullsearchcachedcategorywxpython;fullsearchcachedcategorywxpython +Interfaces Gráficas (Gui);interfacesgraficas +Pablo Seminario;pabloseminario +Mariano Mara;marianomara +Google Summer Of Code 2023 (Ideas);2023 +Google Summer Of Code Ideas (Index);ideas +Google Summer Of Code 2024 (Ideas);2024 +Google Summer Of Code 2022 (Ideas);2022 +2019;2019 +Unicode;unicode +Foro Y Redes;foro_y_redes +Acceso A Bases De Datos Desde Python: Interfaz Db-Api;dbapi +Marcos Vanetta - Malev;marcosvanetta +Ariel Alvarez;ariel-alvarez +Badcontent;badcontent +Compilarpython;compilarpython +Gnomeart;gnomeart +Información;informacion +Contabilidad;contabilidad +Sponsoring;sponsoring +Logistica Durante El Evento;logistica +Eleccion Del Equipo;equipo +Marketing;marketing +Lugar;lugar +Logistica Pre Evento;logistica_pre +Selección De Disertantes;disertantes +Proyectos Pyar;proyectos +Cronogramapyconar2011;cronogramapyconar2011 +Fotos!;2016 +Actividades;actividades +Test;test +Posibles Sedes Para El Pycamp 2016;posiblessedes +¿un Qué?;2023 +How To Organizar Un Pycamp;howto +¿un Qué?;2017 +Actividades;actividades +Posibles Sedes Para El Pycamp 2017;posiblessedes +Ayuda Economica;ayudaeconomica +2018;2018rst +Que Se Hace En Un Pycamp;quesehace +Pycamp 2010;2010 +Ático De Pycamp 2010;attic +Que Llevar;quellevar +Interesados En Asistir A Pycamp 2010;interesados +Delinterior;delinterior +Cronograma;cronograma +Torneo Ping Pong;torneopingpong +Temas Propuestos;temaspropuestos +Tareas Pendientes;pendientes +¿un Qué?;2022 +Evento Suspendido Por La Pandemia Covid-19;2020 +Código De Conducta;coc +2009;2009 +Sprint Django;sprintdjango +Como Llegar En Auto Particular;comollegar +Pycamp Argentina 2009;quienesvan +Grupos Para Ir A Pycamp;transporte +Fotos Del Pycamp 2009;fotos +Naushikang;naushikang +Requerimientos Dietarios;requerimientosdietarios +Temas Propuestos;temaspropuestos +Programa;programa +¿un Qué?;2018 +Actividades;actividades +Pycamp 2011;2011 +Temas Desarrollados;temasdesarrollados +Pycamp 2011: Proyectos En Los Que Laburamos;proyectoslaburados +Que Llevar;quellevar +Interesados;interesados +Desde Cordoba Capital;desdecordobacapital +Temas Propuestos;temaspropuestos +¿un Qué?;2021 +Pycamp 2012;2012 +Idea: Editor De Ebooks Online Y Colaborativo;editordeebooks +Que Llevar;quellevar +Interesados;interesados +Hackeando Kinect En El Pycamp;kinect +Cronograma;cronograma +Proyectos;temaspropuestos +Workshop Para Principiantes Pre-Pycamp;workshop +Proyectos En Los Que Se Trabajó Durante El Pycamp 2012;proyectos +Pycamp 2015;2015 +Alineador De Antenas;actividades +Votación De Sede Pycamp 2015;votos +Posibles Sedes Para El Pycamp 2015;posiblessedes +Pycamp 2014;2014 +Votación Pycamp 2014;votos +Distribución De Humanoides En Habitaciones;rooming +Becas;becas +Temas Propuestos Para El Pycamp 2014;temaspropuestos +Posibles Sedes Para El Pycamp 2014;posiblessedes +Organizar Un Pycamp;organizandounpycamp +2018;2018 +¿un Qué?;2019 +Actividades;actividades +Posibles Sedes Para El Pycamp 2019;posiblessedes +Pycamp 2013;2013 +Votación Pycamp 2013;votos +Organización De Habitaciones;habitaciones +Ayuda Económica Para Ir Al Pycamp;becas +Temas Propuestos Para El Pycamp 2013;temaspropuestos +Posibles Sedes;posiblessedes +Mudanza De Servidores De Dns;mudanzaservidoresdominio +Tutorial;tutorial +Test;test +Hugo Ruscitti;hugoruscitti +Benjapy;benjapy +Soneban;soneban +Salbarracin;salbarracin +Gilgamezh;gilgamezh +Cmenta;cmenta +Mauriciobaeza;mauriciobaeza +Lacpac23;lacpac23 +Sysface;sysface +Idoneus;idoneus +Juanandres438;juanandres438 +Alejandro_0101;alejandro_0101 +Wolchesky;wolchesky +Sebbasfernandez;sebbasfernandez +Hatsem78;hatsem78 +Pamparider;pamparider +Zontxo;zontxo +Numaelis;numaelis +Centertek;centertek +Maurosl;maurosl +Gbaume;gbaume +Nrivollier;nrivollier +Patricio81;patricio81 +Matibarriento;matibarriento +Fernandolamasw;fernandolamasw +Luciano1994;luciano1994 +Walexnet;walexnet +Inafontan;inafontan +Jquintas;jquintas +Sam;sam +Vonpixarg;vonpixarg +Andresdevops;andresdevops +Martingaitan;martingaitan +Amjalca;amjalca +Facundo Batista;facundobatista +Inokis;inokis +Btenaglia;btenaglia +Cesarroldan;cesarroldan +Fideo;fideo +Correanicolas;correanicolas +Gavalen;gavalen +Matiasgabrieln;matiasgabrieln +Uxun;uxun +Danymana;danymana +Herchila;herchila +Andres14;andres14 +Mmartinovic;mmartinovic +Jigcau89;jigcau89 +Debrivero;debrivero +Fullpaint;fullpaint +2immarketing;2immarketing +Crisovando;crisovando +Sebastián Seba;ssebastianj +Ginomarcellino;ginomarcellino +Knonical;knonical +Ssergio;ssergio +Walter Alini;walteralini +Agustin92;agustin92 +Danis;danis +Humitos;humitos +Juanpablo064;juanpablo064 +Bgeninatti;bgeninatti +Selfprint;selfprint +Mirlo;mirlo +Buongarzoni;buongarzoni +Teury;teury +Sserrano44;sserrano44 +Keyleron;keyleron +Tomyfer11;tomyfer11 +Skrullchull;skrullchull +Ignacionicolasalvarez;ignacionicolasalvarez +Edwinr2000;edwinr2000 +Tapicer;tapicer +Noeliabruscoli;noeliabruscoli +Jotajota 2012;jotajota-2012 +Jdromero1;jdromero1 +Becerra1982;becerra1982 +Empoisoner;empoisoner +Joseernestomoralesventura;joseernestomoralesventura +Carloscarlossouthpalscom;carloscarlossouthpalscom +Tin;tin +Franco_jerke;franco_jerke +Debianitram;debianitram +Carasucia;carasucia +Falcho;falcho +Alejandra;alejandra +Gustavofurlan;gustavofurlan +Intligente;intligente +Lucaspyar;lucaspyar +Acondori;acondori +Mbaragiola;mbaragiola +Guido;guido +Rbellanti;rbellanti +Ekimal;ekimal +Frobriel;frobriel +Pab;pab +Eliobastias;eliobastias +Ernestto;ernestto +Diegoduncan21;diegoduncan21 +Dgonzalez;dgonzalez +Ferjavrec;ferjavrec +Armando;armando +Jorgermc123;jorgermc123 +Fausto10;fausto10 +Victor;victor +Seelaff;seelaff +Dnc91;dnc91 +Ramon27;ramon27 +Sebasgiustra;sebasgiustra +Werben;werben +Scrdsindia;scrdsindia +Oconner;oconner +Noticias;noticias +Sebastian Bassi;sebastianbassi +Gabriel Brunacci;gabrielbrunacci +Whyfloss Conference Bsas;whyfloss +Lista De Charlas Realizadas;lista-de-charlas-realizadas +Eventos;eventos +Reunion66;reunion66 +Sprint Olpcserver;olpcserver +Wikipediaoffline1;wikipediaoffline1 +Pyconargentina2009;pyconargentina2009 +Pyconar 2017;pyconar2017 +Pyconargentina2010;pyconargentina2010 +Propuesta De Sede Para Pycon Argentina 2018;propuestasedecaba +Organización Del Pyday Rafaela 2010;pydayrafaela2010 +Pyar En Cafeconf 2006;cafeconf2006 +Pyconar 2016;pyconar2016 +Pyday Buenos Aires 2010;pydaybuenosaires2010 +Pyconar 2013;pyconar2013 +Pyconar 2020;pyconar2020 +Propuesta De Sede Para Pycon Argentina 2020;propuestaejemplo +Viaje;viaje +¿quiénes Somos?;propuestasedebahia +Carteles;carteles +Propuestas De Sedes;pyconar2014 +Propuesta Sede Córdoba:;propuestasedecordoba +Pyconar 2013;pyconar2013 +Python En Las 8jrsl;8jrsl +Propuesta Tentativa Pyconar 2013 En Córdoba Capital;propuestadepycon2013encordobacapital +Pycon Argentina 2013 - Rosario;propuestadepycon2013enrosario +Pycon 2006;pycon2006 +Organización Pyday Rafaela 2012;pydayrafaela2012 +Pyconar 2018;pyconar2018 +2da Jornada De Python En Santa Fé;2jornadapythonstafe +Pycon Argentina;procesoseleccion +Haciendo Videojuegos Con Pilas;pythonpilas +Mythbusters: Tests;pythontests +Comunidad, Anarquía Y Subversión;comunidadanarquiasubversion +Python, Sugar Y Robotica Educativa;pythonsugaricaro +Pyday 2011;cordoba +Conferencias;conferencias +Reunion66;reunion66 +"Reunión 27 - 07/05/2008 19hs - Bar ""el Clásico"", Buenos Aires";reunion27 +Reunión 33 - 15/11/2008 - Balcarce Lounge, Rosario;reunion33 +Reunión 32 - 18/09/08 - Except, Córdoba Capital;reunion32 +"Reunión 29 - 09/05/08 - Bar ""plataforma"", Santa Fe";reunion29 +Reunión 28 - 08/05/2008 - Facultad De Ciencias Exactas Físicas Y Naturales, Subsuelo Aula 100, Córdoba, Argentina;reunion28 +"Reunión 34 - Miércoles 03/12/2008 - Bar ""el Imaginario Cultural"", Buenos Aires - 19:30hs";reunion34 +"Reunión 30 - Jueves 21/08/2008 - Bar ""el Clásico"", Buenos Aires";reunion30 +Reunión 25 - 16/02/2008 - Centro Allen Gardiner, Los Cocos, Córdoba;reunion25 +Reunión 26 - 05/03/2008 - El Clásico Bar, Buenos Aires;reunion26 +Reunión 31 - 06/09/08 - Balcarce Lounge, Rosario;reunion31 +Reunion68;reunion68 +Reunion69;reunion69 +Reunion67;reunion67 +Reunión 42 - 28 De Mayo De 2010 - Bar Dr Mason, Buenos Aires - 19:00;reunion42 +Reunión 43 - Martes 24 De Agosto - Ciudad De Cordoba, En Alfonsina De Belgrano -- 19hs;reunion43 +Reunión 40 - Sábado 06/03/10 - Durante El Pycamp, En Verónica;reunion40 +Reunión 45 - Jueves 16 De Diciembre - Ciudad De Buenos Aires, En El Bar De La Esquina De Medrano Y Guardia Vieja - 19hs;reunion45 +Reunión 41 - Sábado 08/05/10 - Al Finalizar El Pyday, En Rafaela;reunion41 +Reunión 46 - 7 De Diciembre - Ciudad De Cordoba, En Alfonsina (Casa Tomada) Belgrano 763.;reunion46 +Reunión 44 - Jueves 26 De Agosto - Ciudad De Buenos Aires, En El Bar De La Esquina De Medrano Y Guardia Vieja - 19hs;reunion44 +Reunión 35 - Viernes 13/03/2009 - Buenos Aires - 19:30hs;reunion35 +Reunión 39 - Martes 17/11 - Buenos Aires - 19:00 Hs;reunion39 +Reunión 38 - Sábado 7/11 - Rafaela - 20:00 Hs;reunion38 +Reunión 36 - Sábado 02/05/09 - Bar El Cairo, Rosario;reunion36 +"Reunión 37 - Sábado 22/08/09 - Bar ""el Cairo"", Rosario, Argentina - 15.00hs";reunion37 +Reunión 24 - 19/09/2007 - Hip Bar, Buenos Aires;reunion24 +Reunión 22 - 25/04/2007 - Hip Bar;reunion22 +Reunión 23 - 11/08/2007 - Except;reunion23 +Reunion70;reunion70 +Reunión 01 - 09/09/2004 - La Cigale;reunion01 +Reunión 04 - 09/12/2004 - Hip Bar;reunion04 +Reunión 03 - 11/11/2004 - Corner Bar;reunion03 +Reunión 02 - 21/10/2004 - Corner Bar;reunion02 +Minuta De Reunión 49 En San Luis;reunion49 +Reunion48;reunion48 +Reunión 47 - 8 De Enero Del 2011 - Rosario, Santa Fe. Bar Davis - Oronio Y El Rio, 19 Pm;reunion47 +Reunión 50 - Martes 23 De Agosto - Ciudad De Buenos Aires, En El Bar De La Esquina De Medrano Y Guardia Vieja - 19hs;reunion50 +Reunión 05 - 13/01/2005 - Hip Bar;reunion05 +Reunión 08 - 14/04/2005 - Hip Bar;reunion08 +Reunión 12 - 30/11/2005 - Hip Bar;reunion12 +Reunión 09 - 12/05/2005 - Hip Bar;reunion09 +Reunión 06 - 10/02/2005 - Hip Bar;reunion06 +Reunión 10 - 09/06/2005 - Hip Bar;reunion10 +Reunión 07 - 10/03/2005 - Hip Bar;reunion07 +Reunión 11 - 04/08/2005 - Hip Bar;reunion11 +Reunión 54 - Sabado 31 De Marzo - Buenos Aires, Universidad De Quilmes - 12hs;reunion54 +Reunión 56 - Sabado 5 De Mayo - Buenos Aires, Universidad De Luján;reunion56 +Reunión 53 - Sabado 17 De Marzo - Ciudad De Córdoba, Oficinas De Machinalis - 22hs;reunion53 +Reunión 55 - Miércoles 28 De Marzo - Rafaela, Cyrano Bar - 21hs;reunion55 +Reunión 58 - Miércoles 18 De Julio De 2012 - Rafaela, Cyrano Bar - 20hs;reunion58 +Reunión 57 - 8 De Julio De 2012 - Verónica, Buenos Aires - 21:00;reunion57 +Reunión 52 - Miércoles 1 De Febrero - Ciudad De Córdoba, Oficinas De Machinalis - 19hs;reunion52 +Reunión 51 - Jueves 26 De Enero - Ciudad De Buenos Aires, En El Bar De La Esquina De Medrano Y Guardia Vieja - 19hs;reunion51 +Releaseprocedure;releaseprocedure +Próximas Reuniones;proximareunion +Reunion65;reunion65 +Reunión 63 - 22/03/2014 - Villa Giardino - 22hs;reunion63 +Reunion64;reunion64 +Reunión 62 - 30/01/2014 - Caba - 19hs;reunion62 +Pyar Santa Fe - Reunión 20;reunion20 +Reunión 21 - 27/12/2006 - En Fm La Tribu - 19:00hs;reunion21 +Reunión 17 - 05/07/2006 - Hip Bar;reunion17 +Reunión 16 - 03/06/2006 - 9:00 Hs - Utn - Santa Fe;reunion16 +Reunión 15 - 28/04/2006 - 20:00 Hs - Hip Bar;reunion15 +Reunión 18 - 04/10/2006 - Hip Bar;reunion18 +Reunión 14 - 08/03/2006 - Hip Bar;reunion14 +Reunión 13 - 01/02/2006 - Hip Bar;reunion13 +"Reunión 19, ""la Internacional"" - 10/11/2006 - La Casa Del Queso - A La Salida De Cafeconf";reunion19 +Reunion71;reunion71 +Reunion72;reunion72 +Reunión 61 - Sábado 22 De Junio De 2013 - Villa Giardino, Córdoba - 22hs;reunion61 +Reunión 59 - Miércoles 6 De Marzo De 2013 - Buenos Aires, Post Street Bar - 19hs;reunion59 +Reunión 60 - Jueves 21 De Marzo De 2013 - Rosario, Antares - 19hs;reunion60 +Reuniones Pyar;reuniones +Django Launch Party, (Buenos Aires ?);djangolaunchparty +Sprints;sprints +Posibles Lugares;2012 +Python Day 3 Cordoba;pythonday3 +Python Bug Day (Junio 2008);pythonbugday +Sebasgiustra;sebasgiustra +Mauricio Ferrari;mauricioferrari +Minutas De Reuniones;minutas +Autoridades;autoridades +Asociación Civil - Candidatos;candidatos +Encuesta Relevamiento - Asociación Civil;encuesta +Misión;mision +20160412;20160412 +Reunión Irc 2016-07-12;20160712 +Reunión Irc 2016-06-30;20160630 +Reunión Irc 2016-05-26;20160526 +Reunión Irc 2016-09-21;20160921 +20160428;20160428 +Reunión Irc 2016-05-10;20160510 +Reunión Irc 2016-06-14;20160614 +Bandera Ganadora: Pablo4;resultados +Fotos De La Bandera;fotos +Banderas Propuestas;descalificadas +Banderas Propuestas;propuestas +Con Y Sin Versalitas;variaciones +Banderas Cambiadas;cambiadas +Detalle De Votos;detallevotos +Uso De Python En La Universidad;usodepythonenlauniversidad +Alocado Alocador;alocadoalocador +Bienvenido A Pet !!! Una Magazine De Python Entre Todos :);revistapythoncomunidad +Tweety Finger;tweetyfinger +Un Manual En Cada Universidad;unmanualencadauniversidad +Correr Cdpedia Como Servidor;modoservidor +Changelogs;changelogs +Versiones Anteriores;versionesanteriores +Nueva Versión Disponible De La Cdpedia: 0.8;release08 +Nueva Versión Disponible De La Cdpedia: Versión 0.7;release07 +Nueva Versión Disponible De La Cdpedia: 0.8.2;release082 +Notas De Prensa;prensa +Cdpedia, La Historia;historia +¿qué Es La Cdpedia?;cdpedia +Sistema De Gestion De Tesoreria Especializado En Fideicomiso.;getesfi +Python For Palmos;pythonpalm +Gauchito Gil;gauchitogil +Stim: Steam, The Incredible Machine;stim +Event Matching;eventmatching +Página Del Articulo Pyafipws: Facilitando, Extendiendo Y Liberando Los Servicios Web De Afip De La Pet2;pyafipws +Página Del Articulo Como Se Hizo Cómo Se Hizo Pyconar2010;comosehizo +Desafio;desafio +Articulos;articulos +Página Del Articulo Intro Django Pet2;introdjango +Página Del Articulo Decoradores De La Pet2;decoradores +Página Del Articulo Info Python;infopython +Página Del Articulo Depuración Y Defragmentación De Memoria De La Pet2;depuraciondefragmentacion +Desafio;desafio +Pet Deluxe / Edicion Especial De Pycon 2010 Cordoba;pet2 +Release 1;release1 +Como Se Organizo La Revista ?!;base +Geine;geine +Caucho;caucho +Colectadehardware;colectadehardware +Servidor De Pyar/adaptadores Scsi;scsi +Preguntas Sin Respuesta;preguntassinrespuesta +Alejo Aka Polar;alejopagadizabal +Deretiroacordoba;deretiroacordoba +Nicolás Demarchi;nicolasdemarchi +Marcelo Alaniz [1];marceloalaniz +Gonzalo Delgado;gonzalodelgado +Caucho;caucho +Trabajo;trabajo +Mariano Draghi;marianodraghi diff --git a/scrap_y_chroma/database/chroma.sqlite3 b/scrap_y_chroma/database/chroma.sqlite3 new file mode 100644 index 000000000..55383339c Binary files /dev/null and b/scrap_y_chroma/database/chroma.sqlite3 differ diff --git a/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/data_level0.bin b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/data_level0.bin new file mode 100644 index 000000000..ae2f0093f Binary files /dev/null and b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/data_level0.bin differ diff --git a/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/header.bin b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/header.bin new file mode 100644 index 000000000..d2383e300 Binary files /dev/null and b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/header.bin differ diff --git a/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/length.bin b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/length.bin new file mode 100644 index 000000000..1dc89f8e4 Binary files /dev/null and b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/length.bin differ diff --git a/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/link_lists.bin b/scrap_y_chroma/database/d2674719-86ac-4ab9-9cff-6d91df66bd68/link_lists.bin new file mode 100644 index 000000000..e69de29bb diff --git a/scrap_y_chroma/local_datasets.py b/scrap_y_chroma/local_datasets.py new file mode 100644 index 000000000..3eaebb2a2 --- /dev/null +++ b/scrap_y_chroma/local_datasets.py @@ -0,0 +1,85 @@ +import uuid +import csv + +class PYAR: + """ + Dataset con la informacion del ABC Consultas Frecuentes de AFIP + + Metodos que incluye la clase: + - build_data -> Construye el dataset con informacion del archivo de datos csv + - get_data -> Retorna la informacion del dataset + """ + def __init__(self, data_path:str='./data/url_content_searchbar.csv', collection_name:str='pyar_searchbar_collection', auto_build:bool=True) -> None: + self.data_path = data_path + self.collection_name = collection_name + self.preguntas = [] + self.respuestas = [] + self.ids = [] + + if auto_build: + self.build_data() + + def build_data(self): + """ + Extrae la informacion del archivo de datos csv y la almacena dentro los arrays 'preguntas', 'respuestas' y 'ids' + """ + + with open(self.data_path, 'r', encoding='utf-8') as input_file: + csv_reader = csv.reader(input_file, delimiter=';') + + #omitir el header + _ = next(csv_reader) + + for line in csv_reader: + pregunta = line[0] + respuesta = line[1] + + self.preguntas.append(pregunta) + self.respuestas.append(respuesta) + #ids ficticios + self.ids.append(str(uuid.uuid4())) + + def get_data(self): + """ + Retorna un diccionario con informacion relacionada al dataset + + ```python + return { + 'collection_name': str, + 'documents': list[str], + 'doc_info': list[str] + 'metadatas': list[dict], + 'ids': list[str], + 'count': int + } + ``` + - collection_name: string con el nombre de la coleccion para acceder a la base de datos + - documents: lista de preguntas del abc + - metadatas: lista que contiene diccionarios de estructura: + + ```python + [{'preguntas': pregunta, 'respuestas': respuesta}, ...] + ``` + + - ids: ids unicos de cada pregunta + - count: cantidad de datos que contiene el dataset + """ + + return { + 'collection_name': self.collection_name, + 'documents': self.preguntas, + 'doc_info': ['pregunta', 'respuesta'], + 'metadatas': [ + {'pregunta':pregunta, 'respuesta':respuesta} for pregunta, respuesta in zip(self.preguntas, self.respuestas) + ], + 'ids': self.ids, + 'count': len(self.preguntas) + } + + + +if __name__== '__main__': + + abc = ABC() + abc.build_data() + print(abc.get_data()) \ No newline at end of file diff --git a/scrap_y_chroma/playground_database.py b/scrap_y_chroma/playground_database.py new file mode 100644 index 000000000..8f19324f4 --- /dev/null +++ b/scrap_y_chroma/playground_database.py @@ -0,0 +1,38 @@ +""" +Crea una nueva coleccion con los datos del pyar. Para realizar queries a la base de datos ejectuar minimo_caso_de_uso.py +""" + +import chromadb +from local_datasets import PYAR + +cliente = chromadb.PersistentClient('database') + +nombre_coleccion_pyar = 'pyar_searchbar_collection' + +print('Creando una coleccion con los datos del pyar...') +coleccion_pyar = cliente.create_collection(nombre_coleccion_pyar) + + +pyar = PYAR() +pyar_data = pyar.get_data() +#para limitar la carga de datos a la base +limit = None + +print('\nAsignando valores a la coleccion del pyar..') +for count, (document, metadata, id) in enumerate(zip(pyar_data['documents'], pyar_data['metadatas'], pyar_data['ids'])): + count += 1 + + coleccion_pyar.add( + documents= document, + metadatas= metadata, + ids = id + ) + if count%100 == 0: + print(f'Se han agregados {count} valores a la coleccion') + + if limit and count == limit: + print('Limite de carga de datos alcanzado. Finalizando ..') + break + +else: + print('Datos del pyar agregados correctamente a la coleccion') diff --git a/scrap_y_chroma/query_database.py b/scrap_y_chroma/query_database.py new file mode 100644 index 000000000..be86fbde1 --- /dev/null +++ b/scrap_y_chroma/query_database.py @@ -0,0 +1,17 @@ +import chromadb + +cliente = chromadb.PersistentClient('playground_database') + +#cliente.list_collections() +# >>> [Collection(name='mi_coleccion_abc'), Collection(name='mi_coleccion_crm')] + +coleccion_abc = cliente.get_collection('pyar_searchbar_collection') +#coleccion_crm = cliente.get_collection('mi_coleccion_crm') + +while True: + resultados_similares = coleccion_abc.query( + query_texts= input('Ingresa una query >> '), + n_results= 2 + ) + + print(resultados_similares) \ No newline at end of file diff --git a/scrap_y_chroma/scapping.py b/scrap_y_chroma/scapping.py new file mode 100644 index 000000000..1b7c5cec7 --- /dev/null +++ b/scrap_y_chroma/scapping.py @@ -0,0 +1,60 @@ +""" +Scrapper para sacar informacion de los HTML de la wiki de Pyar, para alimentar el buscador semantico (vectores embebidos) con chromaDB +""" + +import bs4 +import os, csv + + +class Scrapper: + def scrap_output_folders(self) -> None: + folders = os.walk('output') + + ouput_csv = open('url_content_searchbar.csv', 'w') + csv_writer = csv.writer(ouput_csv, delimiter=';') + csv_writer.writerow(['TITLE', 'URL']) + for file in folders: + path = file[0] + + if len(file) == 3: + try: + #htmls validos dentro de las carpetas de output + folder_html = file[2][0] + + html = path+ '/' +folder_html + + url = path.split('/')[-1] + + with open(html, 'r') as file: + bs = bs4.BeautifulSoup(file) + try: + title = bs.find('h2').get_text() + + csv_writer.writerow([title, url]) + + except Exception as e: + pass + + except Exception as e: + pass + # + + ouput_csv.close() + +if __name__ == '__main__': + scrapper = Scrapper() + scrapper.scrap_output_folders() + + """ + TODO implementar la creacion de la base de datos de chroma + """ + + + + + + + + + + diff --git a/themes/pyar/assets/css/custom.css b/themes/pyar/assets/css/custom.css index 948cc7d13..0d3aafdd8 100644 --- a/themes/pyar/assets/css/custom.css +++ b/themes/pyar/assets/css/custom.css @@ -78,7 +78,22 @@ body { */ /* - * Search + * Searchbar chroma + */ + + .wiki-search { + margin-left: auto; + width: min-content; + text-align: end; + display: flex; + } + + .wiki-search > .search-button { + + } + +/* + * Searchbar google */ iframe#google { diff --git a/themes/pyar/templates/base.tmpl b/themes/pyar/templates/base.tmpl index 5b3b8e5a3..d5e4b4049 100644 --- a/themes/pyar/templates/base.tmpl +++ b/themes/pyar/templates/base.tmpl @@ -60,6 +60,25 @@ {% endif %} {{ template_hooks['page_header']() }} + + + + + + {% block content %}{% endblock %} {% if theme_config.get('sidebar') %}