Weekend Challenge: Passion Editionへの投稿です
構築したもの
Python Personaは、任意のGitHubユーザーのPythonコードを分析し、その人が開発者としてどのような人物かを示すデスクトップアプリです。ユーザー名を入力すると、リポジトリを取得し、Pythonファイルをダウンロードして、フレームワーク、パッケージ、機能、コードパターンを表示します。各データポイントはGitHub上の正確なファイルと行にリンクしているため、実際のコードを確認できます。
また、AI学習ロードマップ機能も構築しました。学習したいトピックを見つけると、それをクリックして逆依存関係グラフを構築します。トピックから基礎へと逆方向に働きかけ、ステップバイステップで教えてくれます。これは、ChatGPTやGrokに対する不満から生まれたものです。これらは適切だと判断したレベルで回答しますが、基礎が十分でないため回答を理解できないことがよくあります。このアプリは前提条件を最初に教えることで、その問題を解決します。
このアプリはすべての分析をSnowflakeに保存し、調査したすべてのユーザーと自分のコードを比較します。自分が欠けているパッケージ、使ったことのない機能、次に学習すべきトップ開発者のリポジトリを確認できます。
デモ
コード
🐍 Python Persona
学習内容を推測するのをやめて、本物のコードを研究し始めよう。
このアプリが存在する理由
Python Personaは、任意のGitHubユーザーのPythonコードを分析し、その人が開発者としてどのような人物かを示すデスクトップアプリです。ユーザー名を入力すると、リポジトリを取得し、Pythonファイルをダウンロードして、フレームワーク、パッケージ、機能、コードパターンを表示します。各データポイントはGitHub上の正確なファイルと行にリンクしているため、実際のコードを確認できます。
また、AI学習ロードマップ機能も構築しました。学習したいトピックを見つけると、それをクリックして逆依存関係グラフを構築します。トピックから基礎へと逆方向に働きかけ、ステップバイステップで教えてくれます。これは、ChatGPTやGrokに対する不満から生まれたものです。これらは適切だと判断したレベルで回答しますが、基礎が十分でないため回答を理解できないことがよくあります。このアプリは前提条件を最初に教えることで、その問題を解決します。
構築方法
アーキテクチャ
このアプリはデスクトップUIにElectron、バックエンドにPythonを使用しています。ユーザー名を入力すると、ElectronがPythonの子プロセスを起動し、GitHub APIからリポジトリを取得し、Pythonソースファイルをダウンロードして、Pythonのastモジュールで解析します。ASTアナライザーは、コンテキストマネージャー、非同期関数、データクラス、型ヒント、ジェネレーター、マッチ文、walrus演算子など15以上のPython機能を検出します。各機能についてファイルと行番号を記録し、レポートから直接GitHubにリンクできるようにしています。
AIロードマップについては、Google AI Studio(Gemini 2.0 Flash)を使用しました。プロンプトは、ユーザーのトピックから逆方向に働きかけ、すべての前提条件を再帰的に特定するようAIに指示します。出力は構造化されたJSONで、4〜8ステップで構成され、それぞれに抜粋、難易度レベル、学習時間、一般的な誤解、厳選されたリソースが含まれます。AIは検索リンクではなく実際の正規URLを選択します。Google AIキーがない場合は、ローカルフォールバックがasync、generators、decorators、context managersなどの一般的なトピックに対して深いチェーンを生成します。
Snowflakeについては、すべての分析がユーザーの独自のデータベースに保存されます。アプリは初回使用時にデータベースとテーブルを自動作成します。「自分と比較」機能は保存されたすべてのプロファイルをクエリし、全員が使用していて自分が使用していないパッケージ、まったく使用したことのない機能、トップ5のPythonistaのリポジトリで次に学習すべきものを表示します。比較結果はSnowflakeにキャッシュされるため、同じデータを2回取得することはありません。キャッシュはGitHub APIトークンを使用したかどうかを追跡するため、後でトークンを追加すると、より良いデータで再取得します。
また、プロフィールデータ、リポジトリ一覧、言語検出、ファイル内容、コミット履歴のためにGitHub APIも使用しました。dev.to APIはPythonタグ付きの記事を取得し、コードだけでなく彼らが書いたものからも学べるようにしています。
アプリには1対1の比較機能もあります。任意のレポートで「自分のプロフィールと比較」をクリックすると、両方のプロフィールが並べて表示されます。すでに知っているパッケージ、練習すべきトピック、探求すべき新しい概念を確認できます。比較内のすべてのトピックはクリック可能で、AIロードマップを起動します。
賞カテゴリ
Best Use of Snowflake: すべての分析がSnowflakeに保存されます。「自分と比較」機能は保存されたすべてのプロファイルを集計し、自分のコードを全員と比較します。比較結果はソース追跡付きでキャッシュされ、APIトークンのステータスが変更されると更新されます。
Best Use of Google AI: AIサマリー、roast、学習ロードマップはGoogle AI Studio(Gemini 2.0 Flash)によって提供されます。逆依存関係グラフプロンプトは、厳選されたリソースを含む構造化JSONロードマップを生成します。ローカルフォールバックにより、APIキーがなくても機能が動作します。

0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.