Este es un programa de Python que genera automáticamente una "lista increíble" para una palabra clave específica como un archivo de Markdown. Una "lista increíble" es una lista de recursos relacionados con un tema específico. Actualmente, los recursos incluyen proyectos GitHub, artículos de Google Scholar, videos de YouTube, cursos, diapositivas y presentaciones, software y herramientas y podcasts. La impresionante lista se genera automáticamente utilizando modelos GPT; Puede elegir entre diferentes modelos para generar la lista, como GPT 3.5 o GPT 4.
poetry install OPENAI_API_KEY=<your_openai_api_key>
Una cuenta de Google.
Visite la consola de Google Cloud.
Si aún no lo ha hecho, cree un nuevo proyecto haciendo clic en el menú desplegable "Seleccionar un proyecto" en la esquina superior derecha, luego haga clic en "Nuevo proyecto".
Una vez que su proyecto sea creado y seleccionado, navegue al menú de navegación (tres líneas horizontales en la esquina superior izquierda), y luego haga clic en "API & Services"> "Credenciales".
Haga clic en el botón "Crear credenciales" y seleccione "Tecla API". Una vez creado, se mostrará su clave API.
Copie su clave API y guárdela de forma segura. Utilizará esta clave en su aplicación para autenticar sus solicitudes.
Vaya a la página de inicio de Google Custom Search.
Haga clic en "Crear un motor de búsqueda personalizado".
En la sección "Sitios para buscar", puede especificar sitios web que desea buscar o elegir "Buscar toda la web" para permitir capacidades de búsqueda más amplias. Sin embargo, si elige "Buscar toda la web", asegúrese de alternar "la búsqueda solo incluía los sitios" en la sección "Sitios para buscar".
Complete otros campos requeridos como el nombre de su motor de búsqueda.
Haga clic en el botón "Crear" en la parte inferior.
Una vez que se cree su motor de búsqueda, se le dirigirá a una página de configuración. Aquí, busque y copie la "ID de motor de búsqueda" (también llamada "CX" en algunos contextos). Utilizará esta ID en su aplicación para especificar qué motor de búsqueda personalizado usar para consultas.
Finalmente, agregue las siguientes variables de entorno al archivo .env:
GOOGLE_CLOUD_API_KEY='<google cloud api key>'
CUSTOM_SEARCH_ENGINE_ID='<custom search engine id>'
Hemos proporcionado una interfaz de transmisión para ejecutar esta aplicación. Para usarlo:
Ejecute la aplicación Streamlit usando poesía:
poetry run streamlit run streamlit_run.py Abra http://localhost:8501
¡Puede ingresar fácilmente los parámetros necesarios (como el tipo de modelo, la palabra clave y la descripción) a través de la interfaz de usuario y generar su increíble lista!
La clase principal utilizada en este proyecto es el AwesomeListGenerator . Esta clase acepta los siguientes parámetros:
keyword : una cadena que representa la palabra clave para la cual se generará la lista impresionante.description : Una cadena que proporciona una descripción relacionada con la palabra clave.model : una cadena que representa el modelo OpenAI que se utilizará para generar el Markdown (el valor predeterminado es "GPT-3.5-TURBO-16K").data_extraction_batch_size : un entero que representa el número de elementos de datos a procesar en cada lote (el valor predeterminado es 10). Por ejemplo, si el tamaño del lote es 10, los datos se obtendrán de las fuentes de datos en lotes de 10 (como 10 proyectos de GitHub a la vez).number_of_results : un entero que representa el número de resultados para obtener de cada fuente de datos (el valor predeterminado es 20). El número de resultados para obtener de cada fuente de datos (el valor predeterminado es 20). Por ejemplo, obtenga 20 proyectos GitHub y luego los procese con el modelo LLM en lotes basados en data_extraction_batch_size. Después de inicializar la clase con estos parámetros, invoque el método save_and_return_awesome_list para generar el archivo Markdown. Aquí hay un ejemplo:
# Initialize an instance of the AwesomeListGenerator
generator = AwesomeListGenerator ( keyword = "Your Keyword" ,
description = "Your Description" ,
model = "gpt-3.5-turbo-16k" ,
data_extraction_batch_size = 10 ,
number_of_results = 20 )
# Generate and save the markdown
markdown_content = generator . save_and_return_awesome_list () El programa generará un archivo de Markdown en el directorio output que lleva el nombre de su palabra clave (por ejemplo, Your_Keyword.md ). Este archivo contiene la "lista impresionante" generada por el programa.
El programa AwesomeListGenerator opera en dos fases principales: raspado de datos y procesamiento de datos.
En la fase de raspado de datos, el programa obtiene recursos relacionados con su palabra clave proporcionada de múltiples fuentes de datos. Actualmente, los recursos incluyen repositorios de GitHub, artículos de Google Scholar, videos de YouTube y podcasts. El programa utiliza raspadores especializados para cada fuente, cada uno de los cuales está diseñado para obtener los recursos más relevantes y de la más alta calidad.
Por ejemplo, el raspador de GitHub obtiene repositorios que coinciden con la palabra clave, ordenada por el número de estrellas (un indicador común de la relevancia y calidad de un repositorio). Del mismo modo, el Screper de Google Scholar recupera artículos relacionados con la palabra clave y ordenados por el recuento de citas.
Una vez que se raspan los datos, se transmite a la fase de procesamiento de datos. En esta fase, el programa utiliza el modelo GPT seleccionado para procesar los recursos recuperados. El modelo filtra y clasifica los recursos en función de la relevancia para la palabra clave, la calidad del contenido y la utilidad potencial para los usuarios. El modelo GPT también formatea los datos en una lista de Markdown, agregando el formato necesario, como enlaces y descripciones breves.
En particular, tanto las operaciones de raspado como de procesamiento se ejecutan en lotes. Esta operación en cuanto a lotes permite que el programa admita tantos resultados como sea necesario, en función de number_of_results y data_extraction_batch_size configurados. De esta manera, tiene control sobre el alcance de los datos que se manejan a la vez, asegurando un uso eficiente de recursos.
Estamos buscando ampliar el número de fuentes de datos en el futuro. Aquí hay algunas ideas que tenemos en mente:
Si está interesado en contribuir, puede elegir una de las tareas anteriores o proponer sus propias ideas. ¡Agradecemos todo tipo de contribuciones y apreciamos su interés en nuestro proyecto!
Nos encanta ver las increíbles listas impresionantes que crea nuestra comunidad. Si ha utilizado nuestra herramienta para generar una lista increíble, siéntase libre de informarnos, ¡y presentaremos su proyecto aquí!
¿Encontraste este proyecto útil? Si le ha traído valor, danos un en Github. Este gesto no solo valida nuestros esfuerzos, sino que también ayuda a este proyecto a llegar a más personas y continuar el desarrollo.
Siéntase libre de bifurcar el repositorio, contribuir enviando solicitudes de extracción o abrir un problema. ¡Sus comentarios y contribuciones siempre son bienvenidos!