これは、特定のキーワードの「素晴らしいリスト」をマークダウンファイルとして自動的に生成するPythonプログラムです。 「素晴らしいリスト」は、特定のトピックに関連するリソースのリストです。現在、リソースには、GitHubプロジェクト、Google Scholarの記事、YouTubeビデオ、コース、スライドとプレゼンテーション、ソフトウェアとツール、ポッドキャストが含まれます。素晴らしいリストは、GPTモデルを使用して自動的に生成されます。 GPT 3.5やGPT 4など、さまざまなモデルを選択してリストを生成できます。
poetry install OPENAI_API_KEY=<your_openai_api_key>
Googleアカウント。
Google Cloud Consoleにアクセスしてください。
まだおかしい場合は、右上隅で「プロジェクトの選択」ドロップダウンをクリックして新しいプロジェクトを作成し、[新しいプロジェクト]をクリックします。
プロジェクトが作成されて選択されたら、ナビゲーションメニュー(左上コーナーの3つの水平線)に移動し、「APIS&Services」>「資格情報」をクリックします。
[資格情報の作成]ボタンをクリックし、[APIキー]を選択します。作成すると、APIキーが表示されます。
APIキーをコピーして、安全に保存します。アプリケーションでこのキーを使用して、リクエストを認証します。
Googleカスタム検索ホームページに移動します。
「カスタム検索エンジンの作成」をクリックします。
「検索するサイト」セクションでは、検索するWebサイトを指定するか、「Web全体を検索」を選択して、より広範な検索機能を可能にすることができます。ただし、「Web全体を検索」を選択した場合は、「サイトのみを検索するサイトのみ」を「検索する」セクションの下で「検索」を切り替えてください。
検索エンジンの名前のような他の必要なフィールドを入力します。
下部の[作成]ボタンをクリックします。
検索エンジンが作成されたら、セットアップページに向けられます。ここで、「検索エンジンID」(一部のコンテキストでは「CX」とも呼ばれます)を見つけてコピーします。アプリケーションでこのIDを使用して、クエリに使用するカスタム検索エンジンを指定します。
最後に、次の環境変数を.envファイルに追加します。
GOOGLE_CLOUD_API_KEY='<google cloud api key>'
CUSTOM_SEARCH_ENGINE_ID='<custom search engine id>'
このアプリケーションを実行するための流線インターフェイスを提供しました。それを使用するには:
詩を使用して、流線照明アプリケーションを実行します。
poetry run streamlit run streamlit_run.py http://localhost:8501を開きます
UIを介して必要なパラメーター(モデルタイプ、キーワード、説明など)を簡単に入力して、素晴らしいリストを生成できます。
このプロジェクトで使用されるメインクラスは、 AwesomeListGeneratorです。このクラスは、次のパラメーターを受け入れます。
keyword :素晴らしいリストが生成されるキーワードを表す文字列。description :キーワードに関連する説明を提供する文字列。model :マークダウンを生成するために使用されるOpenAIモデルを表す文字列(デフォルトは「GPT-3.5-Turbo-16K」です)。data_extraction_batch_size :各バッチで処理するデータ項目の数を表す整数(デフォルトは10)。たとえば、バッチサイズが10の場合、データは10のバッチのデータソースから取得されます(一度に10のGithubプロジェクトなど)。number_of_results :各データソースから取得する結果の数を表す整数(デフォルトは20)。各データソースから取得する結果の数(デフォルトは20)。たとえば、20個のGitHubプロジェクトをフェッチし、data_extraction_batch_sizeに基づいてバッチでLLMモデルでそれらを処理します。これらのパラメーターでクラスを初期化した後、 save_and_return_awesome_listメソッドを呼び出して、Markdownファイルを生成します。これが例です:
# 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 ()このプログラムは、キーワード( Your_Keyword.mdなど)にちなんで名付けられたoutputディレクトリにマークダウンファイルを生成します。このファイルには、プログラムによって生成された「素晴らしいリスト」が含まれています。
AwesomeListGeneratorプログラムは、データのスクレイピングとデータ処理という2つの主要なフェーズで動作します。
データスクレーピングフェーズでは、プログラムは、複数のデータソースから提供されたキーワードに関連するリソースを取得します。現在、リソースには、GitHubリポジトリ、Google Scholarの記事、YouTubeビデオ、ポッドキャストが含まれます。このプログラムは、各ソースに特殊なスクレーパーを利用しています。各ソースは、最も関連性が高く最高品質のリソースを取得するように設計されています。
たとえば、GitHubスクレーパーは、星の数(リポジトリの関連性と品質の一般的なインジケーター)でソートされたキーワードに一致するリポジトリを取得します。同様に、Google Scholarスクレーパーは、キーワードに関連する記事を取得し、引用数でソートします。
データが削減されると、データ処理フェーズに渡されます。このフェーズでは、プログラムは選択したGPTモデルを使用して、フェッチされたリソースを処理します。このモデルは、キーワード、コンテンツの品質、およびユーザーに対する潜在的な有用性に関連することに基づいて、リソースをフィルタリングおよびランク付けします。 GPTモデルは、データをMarkdownリストにフォーマットし、リンクや簡単な説明などの必要なフォーマットを追加します。
特に、スクレイピング操作と処理操作の両方がバッチで実行されます。このバッチごとの操作により、プログラムは、構成されたnumber_of_resultsとdata_extraction_batch_sizeに基づいて、必要な数の結果をサポートできます。このようにして、一度に処理されるデータの範囲を制御し、効率的なリソース使用量を確保できます。
将来、データソースの数を拡大しようとしています。ここに私たちが念頭に置いているいくつかのアイデアがあります:
貢献に興味がある場合は、上記のタスクのいずれかを選択したり、独自のアイデアを提案したりできます。私たちはあらゆる種類の貢献を歓迎し、私たちのプロジェクトへのあなたの興味を感謝します!
私たちは、コミュニティが作成する信じられないほどの素晴らしいリストを見るのが大好きです。私たちのツールを使用して素晴らしいリストを生成した場合は、お気軽にお知らせください。ここでプロジェクトを紹介します。
このプロジェクトは役に立ちましたか?それがあなたに価値をもたらしたなら、Githubで私たちに与えてください。このジェスチャーは、私たちの努力を検証するだけでなく、このプロジェクトがより多くの人々に到達し、開発を継続するのに役立ちます。
リポジトリを自由にフォークするか、プルリクエストを送信して貢献するか、問題を開きます。あなたのフィードバックと貢献はいつでも大歓迎です!