Anglais |
validate_tests.sh
Dockerfile
build_image.sh
GitHub Sentinel est AI Agent
conçu pour la récupération intelligente des informations et l'extraction de contenu de grande valeur spécialement conçue pour l'ère des grands modèles (LLM). Il s'adresse aux utilisateurs qui ont besoin d'une fréquence élevée et de grandes quantités d'acquisition d'informations, en particulier des amateurs d'open source, des développeurs individuels et des investisseurs.
GitHub Sentinel aide non seulement les utilisateurs à suivre et à analyser automatiquement les dernières mises à jour des GitHub 开源项目
, mais aussi à se développer rapidement à d'autres canaux d'information, tels que les sujets populaires des Hacker News
, offrant des capacités d'exploration de informations et d'analyse plus complètes.
Suivi et résumé du projet GitHub Project
Hacker News Hot Tech Topic Mining
Tout d'abord, installez les dépendances requises:
pip install -r requirements.txt
Modifiez le fichier config.json
pour définir votre jeton GitHub, les paramètres de messagerie (en prenant Tencent WeChat Mail Box à titre d'exemple), des fichiers d'abonnement, des paramètres de mise à jour, une configuration de service Big Model (prend en charge l'Openai GPT API et les progrès du projet privé d'Olllama), et récupérer automatiquement et générer des rapports (Github Project Progress, Hacker News Hot Tropics Hot-Edge Technology Trends):
{
"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 "
}
}
Pour des raisons de sécurité: les paramètres de jeton GitHub et de mot de passe e-mail prennent en charge la configuration de la configuration à l'aide des variables d'environnement pour éviter de configurer explicitement des informations importantes, comme indiqué ci-dessous:
# Github
export GITHUB_TOKEN= " github_pat_xxx "
# Email
export EMAIL_PASSWORD= " password "
GitHub Sentinel prend en charge les trois façons de courir suivantes:
Vous pouvez exécuter l'application de manière interactive à partir de la ligne de commande:
python src/command_tool.py
Dans ce mode, vous pouvez saisir manuellement les commandes pour gérer les abonnements, récupérer des mises à jour et générer des rapports.
Pour exécuter l'application en tant que service d'arrière-plan (démon), il sera mis à jour automatiquement en fonction de la configuration pertinente.
Vous pouvez démarrer, interroger l'état, fermer et redémarrer directement à l'aide du script de gestion de démon daemon_control.sh:
Démarrer le service:
$ ./daemon_control.sh start
Starting DaemonProcess...
DaemonProcess started.
config.json
et envoient des e-mails.logs/DaemonProcess.log
. Dans le même temps, les journaux cumulatifs historiques seront également annexés de manière synchrone dans logs/app.log
.État du service de requête:
$ ./daemon_control.sh status
DaemonProcess is running.
Fermez le service:
$ ./daemon_control.sh stop
Stopping DaemonProcess...
DaemonProcess stopped.
Redémarrez le service:
$ ./daemon_control.sh restart
Stopping DaemonProcess...
DaemonProcess stopped.
Starting DaemonProcess...
DaemonProcess started.
Pour exécuter une application à l'aide de l'interface Gradio, permettez aux utilisateurs d'interagir avec l'outil via l'interface Web:
python src/gradio_server.py
http://localhost:7860
, mais vous pouvez le partager publiquement si vous le souhaitez. Olllama est un outil de gestion privé de gros modèles qui prend en charge le déploiement local et conteneurisé, l'interaction en ligne de commande et les appels API REST.
Pour des instructions détaillées sur la publication du service de déploiement d'installation d'Olllama et du service de maquette de privatisation, veuillez vous référer à la publication du déploiement et du service d'installation d'Olllama.
Pour appeler le service de maquette privé à l'aide d'Olllama dans GitHub Sentinel, suivez ces étapes pour installer et configurer:
Installez Olllama : veuillez télécharger et installer le service Olllama selon la documentation officielle d'Olllama. Olllama prend en charge une variété de systèmes d'exploitation, notamment Linux, Windows et MacOS.
Démarrez le service Olllama : Une fois l'installation terminée, démarrez le service Olllama avec la commande suivante:
ollama serve
Par défaut, l'API OLLAMA fonctionnera sur http://localhost:11434
.
Configuration de l'utilisation d'Olllama dans GitHub Sentinel : Dans le fichier config.json
, configurez les informations liées à l'API OLLAMA:
{
"llm" : {
"model_type" : " ollama " ,
"ollama_model_name" : " llama3 " ,
"ollama_api_url" : " http://localhost:11434/api/chat "
}
}
Vérifiez la configuration : Démarrez GitHub Sentinel avec la commande suivante et générez un rapport pour vérifier que la configuration Olllama est correcte:
python src/command_tool.py
Si vous êtes configuré correctement, vous pourrez générer des rapports via le modèle Olllama.
Pour garantir la qualité et la fiabilité du code, GitHub Sentinel utilise le module unittest
pour les tests unitaires. Pour des descriptions détaillées de unittest
et de ses outils connexes tels que @patch
et MagicMock
, veuillez vous référer aux détails du test unitaire.
validate_tests.sh
validate_tests.sh
est un script shell qui exécute des tests unitaires et valide les résultats. Il est exécuté pendant le processus de création d'images Docker pour garantir l'exactitude et la stabilité du code.
test_results.txt
.Pour faciliter la construction et le déploiement de projets GitHub Sentinel dans une variété d'environnements, nous fournissons un support Docker. Cette prise en charge comprend les fichiers et fonctionnalités suivants:
Dockerfile
Dockerfile
est un fichier de configuration utilisé pour définir comment créer une image Docker. Il décrit les étapes pour construire l'image, y compris l'installation de dépendances, la copie des fichiers de projet, l'exécution de tests unitaires, etc.
python:3.10-slim
comme image de base et définissez le répertoire de travail sur /app
.requirements.txt
du projet et installez les dépendances Python.validate_tests.sh
.validate_tests.sh
pendant le processus de construction pour vous assurer que tous les tests unitaires passent. Si le test échoue, le processus de construction s'abortera.src/main.py
sera exécutée par défaut comme point d'entrée du conteneur.build_image.sh
build_image.sh
est un script shell pour créer automatiquement des images Docker. Il prend le nom de la branche de la branche GIT actuelle et l'utilise comme étiquette pour l'image Docker, ce qui facilite la génération de différentes images Docker sur différentes branches.
docker build
pour construire l'image Docker et utilisez le nom actuel de la branche GIT comme étiquette. chmod +x build_image.sh
./build_image.sh
Grâce à ces scripts et fichiers de configuration, il est assuré que dans différentes branches de développement, les images Docker construites sont basées sur du code testé par unité, améliorant ainsi la qualité du code et la fiabilité du déploiement.
La contribution est ce qui rend la communauté open source incroyable pour apprendre, inspirer et créer. Merci beaucoup pour toute contribution que vous avez apportée. Si vous avez des suggestions ou des demandes de fonctionnalités, veuillez démarrer un sujet pour discuter de ce que vous voulez changer.
Le projet est concédé sous licence de la licence Apache-2.0. Voir le fichier de licence pour plus de détails.
Django Peng - [email protected]
Lien du projet: https://github.com/djangopeng/githubsentinel