English | 中文
validate_tests.shDockerfilebuild_image.shGitHub Sentinel 是專為大模型(LLMs)時代打造的智能信息檢索和高價值內容挖掘AI Agent 。它面向那些需要高頻次、大量信息獲取的用戶,特別是開源愛好者、個人開發者和投資人等。
GitHub Sentinel 不僅能幫助用戶自動跟踪和分析GitHub 开源项目的最新動態,還能快速擴展到其他信息渠道,如Hacker News的熱門話題,提供更全面的信息挖掘與分析能力。
GitHub 項目進度跟踪與總結

Hacker News 熱門技術話題挖掘
首先,安裝所需的依賴項:
pip install -r requirements.txt編輯config.json文件,以設置您的GitHub Token、Email 設置(以騰訊企微郵箱為例)、訂閱文件、更新設置,大模型服務配置(支持OpenAI GPT API 和Ollama 私有化大模型服務),以及自動檢索和生成的報告類型(GitHub項目進展, Hacker News 熱門話題和前沿技術趨勢):
{
"github" : {
"token" : " your_github_token " ,
"subscriptions_file" : " subscriptions.json " ,
"progress_frequency_days" : 1 ,
"progress_execution_time" : " 08:00 "
},
"email" : {
"smtp_server" : " smtp.exmail.qq.com " ,
"smtp_port" : 465 ,
"from" : " [email protected] " ,
"password" : " your_email_password " ,
"to" : " [email protected] "
},
"llm" : {
"model_type" : " ollama " ,
"openai_model_name" : " gpt-4o-mini " ,
"ollama_model_name" : " llama3 " ,
"ollama_api_url" : " http://localhost:11434/api/chat "
},
"report_types" : [
" github " ,
" hacker_news_hours_topic " ,
" hacker_news_daily_report "
],
"slack" : {
"webhook_url" : " your_slack_webhook_url "
}
}出於安全考慮: GitHub Token 和Email Password 的設置均支持使用環境變量進行配置,以避免明文配置重要信息,如下所示:
# Github
export GITHUB_TOKEN= " github_pat_xxx "
# Email
export EMAIL_PASSWORD= " password "GitHub Sentinel 支持以下三種運行方式:
您可以從命令行交互式地運行該應用:
python src/command_tool.py在此模式下,您可以手動輸入命令來管理訂閱、檢索更新和生成報告。
要將該應用作為後台服務(守護進程)運行,它將根據相關配置定期自動更新。
您可以直接使用守護進程管理腳本daemon_control.sh 來啟動、查詢狀態、關閉和重啟:
啟動服務:
$ ./daemon_control.sh start
Starting DaemonProcess...
DaemonProcess started.config.json中設置的更新頻率和時間點定期生成報告,並發送郵件。logs/DaemonProcess.log文件中。同時,歷史累計日誌也將同步追加到logs/app.log日誌文件中。查詢服務狀態:
$ ./daemon_control.sh status
DaemonProcess is running.關閉服務:
$ ./daemon_control.sh stop
Stopping DaemonProcess...
DaemonProcess stopped.重啟服務:
$ ./daemon_control.sh restart
Stopping DaemonProcess...
DaemonProcess stopped.
Starting DaemonProcess...
DaemonProcess started.要使用Gradio 界面運行應用,允許用戶通過Web 界面與該工具交互:
python src/gradio_server.pyhttp://localhost:7860訪問,但如果需要,您可以公開共享它。 Ollama 是一個私有化大模型管理工具,支持本地和容器化部署,命令行交互和REST API 調用。
關於Ollama 安裝部署與私有化大模型服務發布的詳細說明,請參考Ollama 安裝部署與服務發布。
要在GitHub Sentinel 中使用Ollama 調用私有化大模型服務,請按照以下步驟進行安裝和配置:
安裝Ollama : 請根據Ollama 的官方文檔下載並安裝Ollama 服務。 Ollama 支持多種操作系統,包括Linux、Windows 和macOS。
啟動Ollama 服務: 安裝完成後,通過以下命令啟動Ollama 服務:
ollama serve默認情況下,Ollama API 將在http://localhost:11434運行。
配置Ollama 在GitHub Sentinel 中使用: 在config.json文件中,配置Ollama API 的相關信息:
{
"llm" : {
"model_type" : " ollama " ,
"ollama_model_name" : " llama3 " ,
"ollama_api_url" : " http://localhost:11434/api/chat "
}
}驗證配置: 使用以下命令啟動GitHub Sentinel 並生成報告,以驗證Ollama 配置是否正確:
python src/command_tool.py如果配置正確,您將能夠通過Ollama 模型生成報告。
為了確保代碼的質量和可靠性,GitHub Sentinel 使用了unittest模塊進行單元測試。關於unittest及其相關工具(如@patch和MagicMock )的詳細說明,請參考單元測試詳細說明。
validate_tests.sh validate_tests.sh是一個用於運行單元測試並驗證結果的Shell 腳本。它在Docker 鏡像構建過程中被執行,以確保代碼的正確性和穩定性。
test_results.txt文件中。為了便於在各種環境中構建和部署GitHub Sentinel 項目,我們提供了Docker 支持。該支持包括以下文件和功能:
Dockerfile Dockerfile是用於定義如何構建Docker 鏡像的配置文件。它描述了鏡像的構建步驟,包括安裝依賴、複製項目文件、運行單元測試等。
python:3.10-slim作為基礎鏡像,並設置工作目錄為/app 。requirements.txt文件並安裝Python 依賴。validate_tests.sh腳本執行權限。validate_tests.sh腳本,以確保所有單元測試通過。如果測試失敗,構建過程將中止。src/main.py作為容器的入口點。build_image.sh build_image.sh是一個用於自動構建Docker 鏡像的Shell 腳本。它從當前的Git 分支獲取分支名稱,並將其用作Docker 鏡像的標籤,便於在不同分支上生成不同的Docker 鏡像。
docker build命令構建Docker 鏡像,並使用當前Git 分支名稱作為標籤。 chmod +x build_image.sh
./build_image.sh
通過這些腳本和配置文件,確保在不同的開發分支中,構建的Docker 鏡像都是基於通過單元測試的代碼,從而提高了代碼質量和部署的可靠性。
貢獻是使開源社區成為學習、激勵和創造的驚人之處。非常感謝你所做的任何貢獻。如果你有任何建議或功能請求,請先開啟一個議題討論你想要改變的內容。
該項目根據Apache-2.0 許可證的條款進行許可。詳情請參見LICENSE 文件。
Django Peng - [email protected]
項目鏈接: https://github.com/DjangoPeng/GitHubSentinel