Il s'agit d'un programme Python qui génère automatiquement une "liste impressionnante" pour un mot-clé spécifique en tant que fichier Markdown. Une "liste impressionnante" est une liste de ressources liées à un sujet spécifique. Actuellement, les ressources incluent les projets GitHub, les articles Google Scholar, les vidéos YouTube, les cours, les diapositives et les présentations, les logiciels et les outils et les podcasts. La liste impressionnante est automatiquement générée à l'aide de modèles GPT; Vous pouvez choisir entre différents modèles pour générer la liste, comme GPT 3.5 ou GPT 4.
poetry install OPENAI_API_KEY=<your_openai_api_key>
Un compte Google.
Visitez la console Google Cloud.
Si vous ne l'avez pas déjà fait, créez un nouveau projet en cliquant sur la liste déroulante "Sélectionnez un projet" dans le coin supérieur droit, puis cliquez sur "Nouveau projet".
Une fois votre projet créé et sélectionné, accédez au menu de navigation (trois lignes horizontales dans le coin supérieur gauche), puis cliquez sur "APIS & Services"> "Indementiels".
Cliquez sur le bouton "Créer des informations d'identification" et sélectionnez "Key API". Une fois créée, votre clé API sera affichée.
Copiez votre clé API et enregistrez-le en toute sécurité. Vous utiliserez cette clé dans votre application pour authentifier vos demandes.
Accédez à Google Rechercher la maison de recherche personnalisée.
Cliquez sur "Créer un moteur de recherche personnalisé".
Dans la section "Sites to Search", vous pouvez spécifier des sites Web que vous souhaitez rechercher ou choisir "Rechercher le Web entier" pour permettre des capacités de recherche plus larges. Cependant, si vous choisissez "Recherchez le Web entier", assurez-vous de basculer "Rechercher uniquement les sites" dans la section "Sites à rechercher".
Remplissez les autres champs requis comme le nom de votre moteur de recherche.
Cliquez sur le bouton "Créer" en bas.
Une fois votre moteur de recherche créé, vous serez dirigé vers une page de configuration. Ici, recherchez et copiez «l'ID de moteur de recherche» (également appelé «CX» dans certains contextes). Vous utiliserez cet ID dans votre application pour spécifier le moteur de recherche personnalisé à utiliser pour les requêtes.
Enfin, ajoutez les variables d'environnement suivantes au fichier .env:
GOOGLE_CLOUD_API_KEY='<google cloud api key>'
CUSTOM_SEARCH_ENGINE_ID='<custom search engine id>'
Nous avons fourni une interface rationalisée pour exécuter cette application. Pour l'utiliser:
Exécutez l'application Streamlit à l'aide de la poésie:
poetry run streamlit run streamlit_run.py Ouvert http://localhost:8501
Vous pouvez facilement saisir les paramètres nécessaires (comme le type de modèle, le mot-clé et la description) via l'interface utilisateur et générer votre liste impressionnante!
La classe principale utilisée dans ce projet est le AwesomeListGenerator . Cette classe accepte les paramètres suivants:
keyword : une chaîne représentant le mot-clé pour lequel la liste impressionnante sera générée.description : Une chaîne fournissant une description liée au mot clé.model : une chaîne représentant le modèle OpenAI à utiliser pour générer la marque (par défaut est "GPT-3.5-turbo-16k").data_extraction_batch_size : un entier représentant le nombre d'éléments de données à traiter dans chaque lot (par défaut est 10). Par exemple, si la taille du lot est de 10, les données seront récupérées à partir des sources de données par lots de 10 (comme 10 projets GitHub à la fois).number_of_results : un entier représentant le nombre de résultats à récupérer à partir de chaque source de données (par défaut est 20). Le nombre de résultats à récupérer à partir de chaque source de données (la valeur par défaut est de 20). Par exemple, récupérez 20 projets GitHub, puis traitez-les avec le modèle LLM en lots basés sur data_extraction_batch_size. Après avoir initialisé la classe avec ces paramètres, invoquez la méthode save_and_return_awesome_list pour générer le fichier Markdown. Voici un exemple:
# 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 () Le programme générera un fichier Markdown dans le répertoire output nommé d'après votre mot-clé (par exemple, Your_Keyword.md ). Ce fichier contient la "liste impressionnante" générée par le programme.
Le programme AwesomeListGenerator fonctionne en deux phases principales: le grattage des données et le traitement des données.
Dans la phase de grattage des données, le programme récupère les ressources liées à votre mot-clé fourni à partir de plusieurs sources de données. Actuellement, les ressources incluent les référentiels GitHub, les articles Google Scholar, les vidéos YouTube et les podcasts. Le programme utilise des grattoirs spécialisés pour chaque source, dont chacun est conçu pour récupérer les ressources les plus pertinentes et les plus élevées.
Par exemple, le grattoir GitHub récupère les référentiels qui correspondent au mot clé, trié par le nombre d'étoiles (un indicateur commun de la pertinence et de la qualité d'un référentiel). De même, le Scraper Google Scholar récupère des articles liés au mot clé et trié par le nombre de citations.
Une fois les données grattées, elles sont transmises à la phase de traitement des données. Dans cette phase, le programme utilise le modèle GPT sélectionné pour traiter les ressources récupérées. Le modèle filtre et classe les ressources basées sur la pertinence pour le mot-clé, la qualité du contenu et l'utilité potentielle pour les utilisateurs. Le modèle GPT formate également les données dans une liste de démarrage, ajoutant le formatage nécessaire tel que les liens et les brèves descriptions.
Notamment, les opérations de grattage et de traitement sont exécutées par lots. Cette opération par lots permet au programme de prendre en charge autant de résultats que nécessaire, sur la base du number_of_results configuré_of_results et data_extraction_batch_size . De cette façon, vous contrôlez l'étendue des données gérées à la fois, assurant une utilisation efficace des ressources.
Nous cherchons à étendre le nombre de sources de données à l'avenir. Voici quelques idées que nous avons en tête:
Si vous souhaitez contribuer, vous pouvez choisir l'une des tâches ci-dessus ou proposer vos propres idées. Nous accueillons toutes sortes de contributions et apprécions votre intérêt pour notre projet!
Nous aimons voir les listes incroyables incroyables que notre communauté crée. Si vous avez utilisé notre outil pour générer une liste impressionnante, n'hésitez pas à nous le faire savoir, et nous présenterons votre projet ici!
Avez-vous trouvé ce projet utile? Si cela vous a apporté de la valeur, veuillez nous donner un sur github. Ce geste valide non seulement nos efforts, mais aide également ce projet à atteindre plus de personnes et à poursuivre le développement.
N'hésitez pas à alimenter le référentiel, à contribuer en soumettant des demandes de traction ou en ouvrir un problème. Vos commentaires et contributions sont toujours les bienvenus!