diff --git a/README_CH.md b/README_CH.md new file mode 100644 index 00000000..57376592 --- /dev/null +++ b/README_CH.md @@ -0,0 +1,175 @@ +
+ +
+ + + ++ English | 中文 | 日本語 | Français +
+ +## 🗓️ 更新日志 +* 2024/10/20:我们正在积极开发2.0.0版本 🚧 令人兴奋的新功能正在开发中!欢迎在X和Discord上加入我们~ +* 2024/09/20:我们的论文已被EMNLP 2024接收。迈阿密见!🏝 +* 2024/07/04:OmAgent开源项目正式发布 🎉 +* 2024/06/24:[OmAgent研究论文已发表](https://arxiv.org/abs/2406.16620) + +## 📖 简介 +OmAgent是一个先进的多模态智能代理系统,致力于利用多模态大语言模型和其他多模态算法来完成有趣的任务。OmAgent项目包含一个轻量级智能代理框架omagent_core,专门设计用于解决多模态挑战。基于此框架,我们构建了一个复杂的长视频理解系统——OmAgent。当然,您也可以使用它来实现任何您的创新想法。 + +OmAgent包含三个核心组件: +- **Video2RAG**:该组件的核心理念是将长视频的理解转化为多模态RAG任务。这种方法的优点是突破了视频长度的限制;但缺点是这种预处理可能会导致大量视频细节的丢失。 +- **DnCLoop**:受经典分治算法范式的启发,我们设计了一个递归的通用任务处理逻辑。该方法通过迭代将复杂问题细化为任务树,最终将复杂任务转化为一系列可解决的简单任务。 +- **Rewinder工具**:为了解决Video2RAG过程中的信息损失问题,我们设计了一个名为Rewinder的"进度条"工具,可以被代理自主使用。这使得代理能够重新访问任何视频细节,从而获取必要的信息。 + ++ +
+ +更多详细信息,请查看我们的论文:**[OmAgent: 基于任务分治的复杂视频理解多模态代理框架](https://arxiv.org/abs/2406.16620)** + +## 🛠️ 安装方法 +- python >= 3.10 +- 安装omagent_core + ```bash + cd omagent-core + pip install -e . + ``` +- 其他依赖 + ```bash + cd .. + pip install -r requirements.txt + ``` + +## 🚀 快速开始 + +### 通用任务处理 +1. 创建配置文件并设置必要的环境变量 + ```shell + cd workflows/general && vim config.yaml + ``` + + | 配置名称 | 用途 | + |------------------------|----------------------------------------------------------------------------------------| + | custom_openai_endpoint | 调用OpenAI GPT或其他MLLM的API地址,格式:```{custom_openai_endpoint}/chat/completions``` | + | custom_openai_key | MLLM提供商提供的api_key | + | bing_api_key | Bing的api key,用于网络搜索 | + +2. 设置```run.py``` + ```python + 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("您的查询") # 输入您的查询 + ``` +3. 运行```python run.py```启动OmAgent。 + +### 视频理解任务 +#### 环境准备 +- **```可选```** OmAgent默认使用Milvus Lite作为向量数据库来存储向量数据。如果您希望使用完整的Milvus服务,可以使用docker部署[milvus向量数据库](https://milvus.io/docs/install_standalone-docker.md)。向量数据库用于存储视频特征向量,并根据查询检索相关向量以减少MLLM计算。未安装docker?请参考[docker安装指南](https://docs.docker.com/get-docker/)。 + ```shell + # 下载milvus启动脚本 + curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh + # 以独立模式启动milvus + bash standalone_embed.sh start + ``` + 部署后填写相关配置信息```workflows/video_understanding/config.yml``` + +- **```可选```** 配置人脸识别算法。人脸识别算法可以作为工具被代理调用,但这是可选的。您可以通过修改```workflows/video_understanding/tools/video_tools.json```配置文件并删除FaceRecognition部分来禁用此功能。默认的人脸识别数据库存储在```data/face_db```目录中,不同的文件夹对应不同的个人。 + +- **```可选```** 开放词汇检测(OVD)服务,用于增强OmAgent识别各种物体的能力。OVD工具依赖于此服务,但这是可选的。您可以按以下步骤禁用OVD工具。从```workflows/video_understanding/tools/video_tools.json```中删除以下内容: + ```json + { + "name": "ObjectDetection", + "ovd_endpoint": "$