Inglés |
validate_tests.sh
Dockerfile
build_image.sh
GitHub Sentinel es AI Agent
diseñado para recuperación de información inteligente y minería de contenido de alto valor diseñada especialmente para la era de los grandes modelos (LLM). Está dirigido a los usuarios que necesitan alta frecuencia y grandes cantidades de adquisición de información, especialmente entusiastas de código abierto, desarrolladores individuales e inversores.
GitHub Sentinel no solo ayuda a los usuarios automáticamente a rastrear y analizar automáticamente las últimas actualizaciones de GitHub 开源项目
, sino que también se expanden rápidamente a otros canales de información, como los temas populares de Hacker News
, proporcionando capacidades de análisis de información y minería de información más completa.
Rastreo y resumen del progreso del proyecto GitHub
Hacker News Hot Tech Topic Mining
Primero, instale las dependencias requeridas:
pip install -r requirements.txt
Edit the config.json
file to set your GitHub Token, Email settings (taking Tencent WeChat Mailbox as an example), subscription files, update settings, big model service configuration (supports OpenAI GPT API and Ollama's private big model service), and automatically retrieve and generate reports (GitHub project progress, Hacker News hot topics and cutting-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 "
}
}
Por razones de seguridad: tanto la configuración de la configuración de la contraseña de correo electrónico y el token de correo electrónico utilizando variables de entorno para evitar configurar explícitamente información importante, como se muestra a continuación:
# Github
export GITHUB_TOKEN= " github_pat_xxx "
# Email
export EMAIL_PASSWORD= " password "
GitHub Sentinel admite las siguientes tres formas de ejecutar:
Puede ejecutar la aplicación interactivamente desde la línea de comando:
python src/command_tool.py
En este modo, puede ingresar comandos manualmente para administrar suscripciones, recuperar actualizaciones y generar informes.
Para ejecutar la aplicación como un servicio de fondo (demonio), se actualizará automáticamente en función de la configuración relevante.
Puede iniciar, consultar el estado, cerrar y reiniciar directamente utilizando el script de administración de demonios demoemon_control.sh:
Inicie el servicio:
$ ./daemon_control.sh start
Starting DaemonProcess...
DaemonProcess started.
config.json
y envían correos electrónicos.logs/DaemonProcess.log
. Al mismo tiempo, los registros acumulativos históricos también se agregarán sincrónicamente al archivo de registro logs/app.log
.Estado del servicio de consulta:
$ ./daemon_control.sh status
DaemonProcess is running.
Cierre el servicio:
$ ./daemon_control.sh stop
Stopping DaemonProcess...
DaemonProcess stopped.
Reinicie el servicio:
$ ./daemon_control.sh restart
Stopping DaemonProcess...
DaemonProcess stopped.
Starting DaemonProcess...
DaemonProcess started.
Para ejecutar una aplicación utilizando la interfaz Gradio, permita a los usuarios interactuar con la herramienta a través de la interfaz web:
python src/gradio_server.py
http://localhost:7860
, pero puede compartirlo públicamente si lo desea. Ollama es una herramienta privada de gestión de modelos de grandes modelos que admite la implementación local y en contenedores, la interacción de línea de comandos y las llamadas API REST.
Para obtener instrucciones detalladas sobre el lanzamiento del servicio de implementación de instalación y privatización de Ollama, consulte el lanzamiento de la implementación y el servicio de instalación de Ollama.
Para llamar al servicio de maqueta privado con Ollama en GitHub Sentinel, siga estos pasos para instalar y configurar:
Instale Ollama : descargue e instale el servicio Ollama de acuerdo con la documentación oficial de Ollama. Ollama admite una variedad de sistemas operativos, incluidos Linux, Windows y MacOS.
Inicie el servicio Ollama : después de que se complete la instalación, inicie el servicio Ollama con el siguiente comando:
ollama serve
Por defecto, la API Ollama se ejecutará en http://localhost:11434
.
Configuración del uso de Ollama en GitHub Sentinel : en el archivo config.json
, configure la información relacionada con la API de Ollama:
{
"llm" : {
"model_type" : " ollama " ,
"ollama_model_name" : " llama3 " ,
"ollama_api_url" : " http://localhost:11434/api/chat "
}
}
Verifique la configuración : inicie GitHub Sentinel con el siguiente comando y genere un informe para verificar que la configuración de Ollama sea correcta:
python src/command_tool.py
Si está configurado correctamente, podrá generar informes a través del modelo Ollama.
Para garantizar la calidad y confiabilidad del código, GitHub Sentinel utiliza el módulo unittest
para las pruebas unitarias. Para obtener descripciones detalladas de unittest
y sus herramientas relacionadas como @patch
y MagicMock
, consulte los detalles de la prueba unitaria.
validate_tests.sh
validate_tests.sh
es un script de shell que ejecuta pruebas unitarias y valida los resultados. Se ejecuta durante el proceso de construcción de imágenes de Docker para garantizar la corrección y estabilidad del código.
test_results.txt
.Para facilitar la construcción y el despliegue de proyectos Sentinel de GitHub en una variedad de entornos, brindamos soporte de Docker. Este soporte incluye los siguientes archivos y características:
Dockerfile
Dockerfile
es un archivo de configuración utilizado para definir cómo construir una imagen de Docker. Describe los pasos para construir la imagen, incluida la instalación de dependencias, copiar archivos del proyecto, ejecutar pruebas unitarias, etc.
python:3.10-slim
como imagen base y configure el directorio de trabajo en /app
.requirements.txt
del proyecto e instale las dependencias de Python.validate_tests.sh
.validate_tests.sh
durante el proceso de compilación para garantizar que pasen todas las pruebas unitarias. Si la prueba falla, el proceso de compilación abortará.src/main.py
se ejecutará de forma predeterminada como punto de entrada del contenedor.build_image.sh
build_image.sh
es un script de shell para construir automáticamente imágenes de Docker. Toma el nombre de la rama de la rama Git actual y la usa como etiqueta para la imagen de Docker, lo que facilita la generación de diferentes imágenes de Docker en diferentes ramas.
docker build
para construir la imagen Docker y use el nombre actual de la rama GIT como etiqueta. chmod +x build_image.sh
./build_image.sh
A través de estos scripts y archivos de configuración, se asegura que en diferentes ramas de desarrollo, las imágenes de Docker creadas se basan en un código probado por unidad, mejorando así la calidad del código y la confiabilidad de la implementación.
La contribución es lo que hace que la comunidad de código abierto sea sorprendente de aprender, inspirar y crear. Muchas gracias por cualquier contribución que haya hecho. Si tiene alguna sugerencia o solicitud de funciones, inicie un tema para discutir lo que desea cambiar.
El proyecto tiene licencia bajo los términos de la licencia Apache-2.0. Consulte el archivo de licencia para obtener más detalles.
Django Peng - [email protected]
Enlace del proyecto: https://github.com/djangopeng/githubsentinel