- 20/10/2024 : Nous nous engageons activement à développer la version 2.0.0 🚧 De nouvelles fonctionnalités passionnantes sont en cours ! Vous êtes invités à nous rejoindre sur X et Discord~
- 20/09/2024 : Notre article a été accepté par EMNLP 2024 ! Rejoignez-nous à Miami ! 🏝
- 04/07/2024 : Le projet open-source OmAgent est officiellement lancé ! 🎉
- 24/06/2024 : Publication de l'article de recherche OmAgent.
OmAgent est un système intelligent et multimodal avancé, conçu pour exploiter la puissance des grands modèles de langage multimodal et d'algorithmes innovants afin d'accomplir des tâches complexes. Le projet OmAgent comprend un cadre léger, omagent_core, développé pour relever les défis liés au multimodal. Il est adaptable à vos propres idées et cas d'usage !
Les trois principaux composants d'OmAgent sont :
- Video2RAG : Transforme la compréhension de longues vidéos en une tâche RAG multimodale, avec l'avantage de dépasser les limitations liées à la longueur des vidéos. Attention toutefois à la perte potentielle de détails durant le prétraitement.
- DnCLoop : Inspiré par la méthode algorithmique « Diviser pour Régner », ce module permet une approche itérative de résolution de problèmes complexes, en décomposant chaque tâche jusqu'à ce qu'elle soit facile à résoudre.
- Rewinder : Conçu pour pallier la perte de détails induite par le prétraitement dans Video2RAG, Rewinder permet aux agents de revisiter des moments clés des vidéos pour recueillir des informations supplémentaires.
Pour plus d'informations, consultez notre article : OmAgent : Un cadre d'agent multimodal pour la compréhension vidéo complexe avec Diviser pour Régner.
-
Python ≥ 3.10
-
Installation de
omagent_core
:cd omagent-core pip install -e .
-
Installation des autres dépendances :
cd .. pip install -r requirements.txt
-
Créez un fichier de configuration
config.yaml
et définissez les variables requises :cd workflows/general vim config.yaml
Nom de la configuration Utilisation custom_openai_endpoint API pour OpenAI GPT ou un autre modèle, format : {custom_openai_endpoint}/chat/completions
custom_openai_key Clé API fournie par le fournisseur du modèle de langage bing_api_key Clé API de Bing pour la recherche Web -
Configurez
run.py
pour exécuter l'agent :def run_agent(task): logging.init_logger("omagent", "omagent", level="INFO") registry.import_module(project_root=Path(__file__).parent, custom=["./engine"]) bot_builder = Builder.from_file("workflows/general") input = DnCInterface(bot_id="1", task=AgentTask(id=0, task=task)) bot_builder.run_bot(input) return input.last_output if __name__ == "__main__": run_agent("Votre requête ici")
-
Démarrez OmAgent en exécutant :
python run.py
-
Optionnel : Par défaut, OmAgent utilise Milvus Lite comme base de données vectorielle pour stocker les données. Vous pouvez déployer la version complète via Docker si nécessaire :
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh bash standalone_embed.sh start
-
Optionnel : Algorithme de reconnaissance faciale. Vous pouvez désactiver cette fonctionnalité dans
video_tools.json
si elle n'est pas nécessaire.Si vous activez cette option, la base de données des visages est située dans
data/face_db
. -
Optionnel : Intégration d'OmDet pour la détection d'objets dans les vidéos.
- Installez OmDet depuis son dépôt.
- Exposez l'inférence en tant qu'API via FastAPI :
pip install pydantic fastapi uvicorn
Si ce projet vous est utile, veuillez citer notre article :
@article{zhang2024omagent,
title={OmAgent: A Multi-modal Agent Framework for Complex Video Understanding with Task Divide-and-Conquer},
author={Zhang, Lu et al.},
journal={arXiv preprint arXiv:2406.16620},
year={2024}
}