Dies ist ein Python -Programm, das automatisch eine "fantastische Liste" für ein bestimmtes Schlüsselwort als Markdown -Datei generiert. Eine "fantastische Liste" ist eine Liste von Ressourcen, die sich auf ein bestimmtes Thema beziehen. Derzeit umfassen die Ressourcen Github -Projekte, Google Scholar -Artikel, YouTube -Videos, Kurse, Folien und Präsentationen, Software sowie Tools und Podcasts. Die fantastische Liste wird automatisch mit GPT -Modellen generiert. Sie können zwischen verschiedenen Modellen auswählen, um die Liste zu generieren, z. B. GPT 3.5 oder GPT 4.
poetry install OPENAI_API_KEY=<your_openai_api_key>
Ein Google -Konto.
Besuchen Sie die Google Cloud -Konsole.
Wenn Sie es noch nicht getan haben, erstellen Sie ein neues Projekt, indem Sie in der Top-Right-Ecke auf die Dropdown "Wählen Sie ein Projekt auswählen" klicken und dann auf "neues Projekt" klicken.
Sobald Ihr Projekt erstellt und ausgewählt wurde, navigieren Sie zum Navigationsmenü (drei horizontale Linien an der oberen linken Ecke) und klicken Sie dann auf "APIs & Dienste"> "Anmeldeinformationen".
Klicken Sie auf die Schaltfläche "Anmeldeinformationen erstellen" und wählen Sie "API -Taste". Nach der Erstellung wird Ihre API -Taste angezeigt.
Kopieren Sie Ihren API -Schlüssel und speichern Sie sie sicher. Sie verwenden diesen Schlüssel in Ihrer Anwendung, um Ihre Anfragen zu authentifizieren.
Gehen Sie zu Google Custom Search Homepage.
Klicken Sie auf "Erstellen einer benutzerdefinierten Suchmaschine".
Im Abschnitt "Websites zu suchen" können Sie Websites angeben, die Sie suchen oder "das gesamte Web suchen" auswählen möchten, um breitere Suchfunktionen zu ermöglichen. Wenn Sie jedoch "das gesamte Web durchsuchen" wählen, stellen Sie sicher, dass die Suche "Suchen nur enthaltene Websites" unter den Abschnitt "Sites to Search" ausgeschaltet werden.
Füllen Sie andere erforderliche Felder wie den Namen Ihrer Suchmaschine aus.
Klicken Sie unten auf die Schaltfläche "Erstellen".
Sobald Ihre Suchmaschine erstellt wurde, werden Sie auf eine Setup -Seite geleitet. Finden und kopieren Sie hier die "Suchmaschinen -ID" (auch in einigen Kontexten "CX" genannt). Sie verwenden diese ID in Ihrer Anwendung, um anzugeben, welche benutzerdefinierte Suchmaschine für Abfragen verwendet werden soll.
Fügen Sie schließlich die folgenden Umgebungsvariablen zur .Env -Datei hinzu:
GOOGLE_CLOUD_API_KEY='<google cloud api key>'
CUSTOM_SEARCH_ENGINE_ID='<custom search engine id>'
Wir haben eine optimistische Schnittstelle zum Ausführen dieser Anwendung bereitgestellt. Um es zu verwenden:
Führen Sie die stromlitische Anwendung mithilfe von Poesie aus:
poetry run streamlit run streamlit_run.py Öffnen Sie http://localhost:8501
Sie können die erforderlichen Parameter (wie Modelltyp, Schlüsselwort und Beschreibung) einfach über die Benutzeroberfläche eingeben und Ihre fantastische Liste generieren!
Die in diesem Projekt verwendete Hauptklasse ist der AwesomeListGenerator . Diese Klasse akzeptiert die folgenden Parameter:
keyword : Eine Zeichenfolge, die das Schlüsselwort darstellt, für das die fantastische Liste generiert wird.description : Eine Zeichenfolge, die eine Beschreibung im Zusammenhang mit dem Schlüsselwort enthält.model : Eine Zeichenfolge, die das OpenAI-Modell darstellt, das zum Generieren des Markdowns verwendet werden soll (Standardeinstellung ist "GPT-3,5-Turbo-16K").data_extraction_batch_size : Eine Ganzzahl, die die Anzahl der in jeder Stapel zu verarbeitenden Datenelemente darstellt (Standard ist 10). Wenn die Chargengröße beispielsweise 10 beträgt, werden die Daten aus den Datenquellen in Stapeln von 10 (wie 10 Github -Projekten gleichzeitig) abgerufen.number_of_results : Eine Ganzzahl, die die Anzahl der Ergebnisse darstellt, die von jeder Datenquelle abgerufen werden sollen (Standard ist 20). Die Anzahl der Ergebnisse, die von jeder Datenquelle abgerufen werden sollen (Standardeinstellung beträgt 20). Abrufen Sie beispielsweise 20 Github -Projekte ab und verarbeiten Sie sie dann mit LLM -Modell in Stapeln basierend auf data_extraction_batch_size. Nachdem Sie die Klasse mit diesen Parametern initialisiert haben, rufen Sie die Methode save_and_return_awesome_list auf, um die Markdown -Datei zu generieren. Hier ist ein Beispiel:
# 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 () Das Programm generiert eine Markdown -Datei in dem nach Ihrem Schlüsselwort benannten output (z. B. Your_Keyword.md ). Diese Datei enthält die vom Programm generierte "fantastische Liste".
Das AwesomeListGenerator -Programm arbeitet in zwei Hauptphasen: Datenkratzen und Datenverarbeitung.
In der Datenkratzphase erfasst das Programm Ressourcen, die sich auf Ihr bereitgestelltes Schlüsselwort aus mehreren Datenquellen beziehen. Derzeit umfassen die Ressourcen Github -Repositories, Google Scholar -Artikel, YouTube -Videos und Podcasts. Das Programm nutzt spezialisierte Schaber für jede Quelle, von denen jede die relevantesten und hochwertigsten Ressourcen erzielt.
Zum Beispiel holt der GitHub Scraper Repositories, die dem Schlüsselwort übereinstimmen, sortiert nach der Anzahl der Sterne (ein gemeinsamer Indikator für die Relevanz und Qualität eines Repositorys). In ähnlicher Weise ruft der Google Scham Scraper Artikel im Zusammenhang mit dem Schlüsselwort ab und sortiert nach Zitat.
Sobald die Daten abgekratzt sind, wird sie an die Datenverarbeitungsphase weitergegeben. In dieser Phase verwendet das Programm das ausgewählte GPT -Modell, um die abgerufenen Ressourcen zu verarbeiten. Das Modell filtert und bewertet die Ressourcen, die auf der Relevanz für das Schlüsselwort, die Qualität des Inhalts und den potenziellen Nutzen für Benutzer basieren. Das GPT -Modell formatiert die Daten auch in eine Markdown -Liste und fügt die erforderlichen Formatierung wie Links und kurze Beschreibungen hinzu.
Bemerkenswerterweise werden sowohl Scraping- als auch Verarbeitungsvorgänge in Chargen ausgeführt. Mit diesem Stapelbetrieb kann das Programm basierend auf der konfigurierten number_of_results und data_extraction_batch_size so viele Ergebnisse wie erforderlich unterstützen. Auf diese Weise haben Sie die Kontrolle über das Ausmaß der Daten, die gleichzeitig behandelt werden, und gewährleisten den effizienten Ressourcenverbrauch.
Wir möchten die Anzahl der Datenquellen in Zukunft erweitern. Hier sind einige Ideen, die wir im Sinn haben:
Wenn Sie einen Beitrag leisten möchten, können Sie eine der oben genannten Aufgaben auswählen oder Ihre eigenen Ideen vorschlagen. Wir begrüßen alle möglichen Beiträge und schätzen Ihr Interesse an unserem Projekt!
Wir lieben es, die unglaublichen großartigen Listen zu sehen, die unsere Community erstellt. Wenn Sie unser Tool verwendet haben, um eine fantastische Liste zu generieren, können Sie uns gerne wissen, und wir werden Ihr Projekt hier vorstellen!
Fanden Sie dieses Projekt nützlich? Wenn es Ihnen einen Mehrwert für Sie gebracht hat, geben Sie uns bitte ein auf GitHub. Diese Geste bestätigt nicht nur unsere Bemühungen, sondern hilft diesem Projekt auch, mehr Menschen zu erreichen und die Entwicklung fortzusetzen.
Fühlen Sie sich frei, das Repository zu geben, durch Einreichen von Pull -Anfragen beizutragen oder ein Problem zu öffnen. Ihr Feedback und Ihre Beiträge sind immer willkommen!