From 15dbdb68d5abfba3fcffa85a58aa7ba257ab939f Mon Sep 17 00:00:00 2001 From: you-n-g Date: Mon, 22 Jul 2024 12:49:03 +0800 Subject: [PATCH] Document in High-level (#93) * Add init information * Adjust order and move content * GPU support * edit docs * README structure * Update Dockerfile * Update rdagent/utils/env.py * Update read the docs * Update framework --- README.md | 176 +++++++++--------------- docs/_static/scen.jpg | Bin 0 -> 118096 bytes docs/api_reference.rst | 23 ++-- docs/conf.py | 4 +- docs/demo_and_introduction.rst | 18 +-- docs/development.rst | 66 ++++++++- docs/index.rst | 12 +- docs/installation.rst | 19 ++- docs/project_framework_introduction.rst | 25 ++-- docs/scenarios_and_quickstart.rst | 29 +++- docs/test_dropdown/test1.rst | 2 +- rdagent/utils/env.py | 2 +- 12 files changed, 199 insertions(+), 177 deletions(-) create mode 100644 docs/_static/scen.jpg diff --git a/README.md b/README.md index 167cf00f..f007e96d 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,89 @@ -# Project +TODO: Add badges. -> This repo has been populated by an initial template to help get you started. Please -> make sure to update the content to build a great experience for community-building. - -As the maintainer of this project, please make a few updates: - -- Improving this README.MD file to provide a great experience -- Updating SUPPORT.MD with content about this project's support experience -- Understanding the security reporting process in SECURITY.MD -- Remove this section from the README +# News +| 🗞️News | 📝Description | +| -- | ------ | +| First release | RDAgent are release on Github | -# Motivation -R&D Agent: Focusing on automating the most core and valuable part of the industrial R&D process. +# Introduction -Core method: Evolving; +![](docs/_static/scen.jpg) + +RDAgent aims to automate the most critical and valuable aspects of the industrial R&D process, and we begins with focusing on the data-driven scenarios to streamline the development of models and data. +Methodologically, we have identified a framework with two key components: 'R' for proposing new ideas and 'D' for implementing them. +We believe that the automatic evolution of R&D will lead to solutions of significant industrial value. + + + +R&D is a very general scenario. The advent of RDAgent can be your +- [🎥Automatic Quant Factory]() +- Data mining copilot: iteratively proposing [🎥data]() & [models]() and implementing them by gaining knowledge from data. +- Research copilot: Auto read [🎥research papers]()/[🎥reports]() and implement model structures or building datasets. +- ... + +You can click the [🎥link]() above to view the demo. More methods and scenarios are being added to the project to empower your R&D processes and boost productivity. + +We have a quick 🎥demo for one use case of RDAgent. +- TODO: Demo + + +# ⚡Quick start +You can try our demo by running the following command: + +```bash +# TODO: +# prepare environment +# installation +# App entrance +``` + +The [🎥demo]() is implemented by the above commands. # Scenarios -## Data-driven R&D -TODO: importance justification +We have applied RD-Agent to multiple valuable data-driven industrial scenarios.. -### 🎯 Goal -In this project, we are aiming to build a Data-Centric R\&D Agent that can +## 🎯 Goal: Agent for Data-driven R&D -+ Read real-world material (reports, papers, etc.) and extract key formulas, descriptions of interested features, factors and models. - -+ Implement the extracted formulas, features, factors and models in runnable codes. +In this project, we are aiming to build a Agent to automate Data-Driven R\&D that can ++ 📄Read real-world material (reports, papers, etc.) and **extract** key formulas, descriptions of interested **features** and **models**, which are the key components of data-driven R&D . ++ 🛠️**Implement** the extracted formulas, features, factors and models in runnable codes. + Due the limited ability for LLM in implementing in once, evolving the agent to be able to extend abilities by learn from feedback and knowledge and improve the agent's ability to implement more complex models. - -+ Further propose new ideas based on current knowledge and observations. ++ 💡Propose **new ideas** based on current knowledge and observations. ![Data-Centric R&D Overview](docs/_static/overview.png) -### 🛣️ Brief Roadmap -In this section, we will briefly introduce the roadmap/technical type of this project. +## 📈 Scenarios Matrix +Here is our supported scenarios -1. Backbone LLM: We use GPT series as main backbone of the agent. `.env` file uis used to config settings (such as APIkey, APIEndpoint and etc) in the environment variables way. Check this [Readme](src/scripts/benchmark/README.md) for environment set up. +| Scenario/Target | Model Implementation | Data Building | +| -- | -- | -- | +| 💹Finance | Iteratively Proposing Ideas & Evolving | Auto reports reading & implementation
Iteratively Proposing Ideas & Evolving | +| 🩺Medical | Iteratively Proposing Ideas & Evolving | - | +| General | Auto paper reading & implementation | - | -2. KnowledgeGraph based evolving: We do not do any further pertain or fine-tune on the LLM model. Instead, we modify prompts like RAG, but use knowledge graph query information to evolve the agent's ability to implement more complex models. - + Typically, we build a knowledge consisted with `Error`, `Component`(you can think of it as a numeric operation or function), `Trail` and etc. We add nodes of these types to the knowledge graph with relationship while the agent tries to implement a model. For each attempts, the agent will query the knowledge graph to get the information of current status as prompt input. The agent will also update the knowledge graph with the new information after the attempt. +Different scenarios vary in entrance and configuration. Please check the detailed setup tutorial in the scenarios documents. + +# ⚙️Framework -## Code Refinement -Example: code standard, design. Lint - - -# 🔧 Development -- Set up the development environment. - - ```bash - make dev - ``` - -- Run linting and formatting. - - ```bash - make lint - ``` - -### 📚 Code Structure -1. Backbone/APIBackend of LLm are encapsulated in [src/finco/llm.py](src/finco/llm.py). All chat completion request are managed by this file. - -2. All frequently modified codes under tense development are included in the [src/scripts](src/scripts) folder. - + The most important task is to improve the agent's performance in the benchmark of factor implementation. - -3. Currently, factor implementation is the main task. We define basic class of factor implementation in [src/scripts/factor_implementation/share_modules] and implementation strategies in [src/scripts/factor_implementation/baselines]. - - -### 🔮 Future Code Structure - -Currently, the code structure is unstable and will frequently change for quick updates. The code will be refactored before a standard release. Please try to align with the following principles when developing to minimize the effort required for future refactoring. - -``` -📂 src -➥ 📂 : avoid namespace - ➥ 📁 core - ➥ 📁 component A - ➥ 📁 component B - ➥ 📁 component C - ➥ 📂 app - ➥ 📁 scenario1 - ➥ 📁 scenario2 -➥ 📁 scripts -``` - -| Folder Name | Description | -|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 📁 core | The core framework of the system. All classes should be abstract and usually can't be used directly. | -| 📁 component X | Useful components that can be used by others(e.g. scenario). Many subclasses of core classes are located here. | -| 📁 app | Applications for specific scenarios (usually built based on components). Removing any of them does not affect the system's completeness or other scenarios. | -| 📁 scripts | Quick and dirty things. These are candidates for core, components, and apps. | +- TODOs: + - Framework introdution + - Research problems. -# Configuration: +# 📃Paper list -You can manually source the `.env` file in your shell before running the Python script: -Most of the workflow are controlled by the environment variables. -```sh -# Export each variable in the .env file; Please note that it is different from `source .env` without export -export $(grep -v '^#' .env | xargs) -# Run the Python script -python your_script.py -``` +TODO: under review. Please check the. -# Naming convention - -## File naming convention - -| Name | Description | -| -- | -- | -| `conf.py` | The configuration for the module & app & project | - - - # Contributing +More documents can be found in the [📚readthedocs](). TODO: add link + ## Guidance This project welcomes contributions and suggestions. You can find issues in the issues list or simply running `grep -r "TODO:"`. @@ -126,24 +91,7 @@ You can find issues in the issues list or simply running `grep -r "TODO:"`. Making contributions is not a hard thing. Solving an issue(maybe just answering a question raised in issues list ), fixing/issuing a bug, improving the documents and even fixing a typo are important contributions to RDAgent. -## Policy + -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. + -When you submit a pull request, a CLA bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -# Trademarks - -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft -trademarks or logos is subject to and must follow -[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). -Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. -Any use of third-party trademarks or logos are subject to those third-party's policies. diff --git a/docs/_static/scen.jpg b/docs/_static/scen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7242883d99dd24a5a76317d4390b4550f5beab2 GIT binary patch literal 118096 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 literal 0 HcmV?d00001 diff --git a/docs/api_reference.rst b/docs/api_reference.rst index b1758e0f..393d177a 100644 --- a/docs/api_reference.rst +++ b/docs/api_reference.rst @@ -1,18 +1,15 @@ -========================= -API reference -========================= +============= +API Reference +============= -title1 -========================= +Here you can find all ``RDAgent``'s interfaces. -content1 -title2 -========================= +RD Loop +======= -content2 +Research +-------- -title3 -========================= - -content3 \ No newline at end of file +.. automodule:: rdagent.core.proposal + :members: diff --git a/docs/conf.py b/docs/conf.py index 244a5626..426a57cd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,7 +15,9 @@ author = "Microsoft" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = [] +extensions = [ + 'sphinx.ext.autodoc', +] autodoc_member_order = "bysource" diff --git a/docs/demo_and_introduction.rst b/docs/demo_and_introduction.rst index 8e8102a5..0db9eb7a 100644 --- a/docs/demo_and_introduction.rst +++ b/docs/demo_and_introduction.rst @@ -2,17 +2,17 @@ Demo and Introduction ========================= -title1 -========================= +Introduction +============ -content1 +TODO: copy the content in the README.md -title2 -========================= +A Quick Demo +============ -content2 +TODO: +- copy the demo content in the README.md +- Quick start for the demo. -title3 -========================= -content3 \ No newline at end of file +TODO: link to more demos diff --git a/docs/development.rst b/docs/development.rst index cba11b8b..4ab01b06 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -2,17 +2,69 @@ For Development ========================= -title1 +🔧Prepare for development ========================= -content1 +- Set up the development environment. -title2 + ```bash + make dev + ``` + +- Run linting and formatting. + + ```bash + make lint + ``` + + +Code Structure ========================= -content2 +.. code-block:: text -title3 -========================= + 📂 src + ➥ 📂 : avoid namespace conflict + ➥ 📁 core + ➥ 📁 components/A + ➥ 📁 components/B + ➥ 📁 components/C + ➥ 📁 scenarios/X + ➥ 📁 scenarios/Y + ➥ 📂 app + ➥ 📁 scripts -content3 \ No newline at end of file +.. list-table:: + :header-rows: 1 + + * - Folder Name + - Description + * - 📁 core + - The core framework of the system. All classes should be abstract and usually can't be used directly. + * - 📁 component/A + - Useful components that can be used by others (e.g., scenarios). Many subclasses of core classes are located here. + * - 📁 scenarios/X + - Concrete features for specific scenarios (usually built based on components or core). These modules are often unreusable across scenarios. + * - 📁 app + - Applications for specific scenarios (usually built based on components or scenarios). Removing any of them does not affect the system's completeness or other scenarios. + * - 📁 scripts + - Quick and dirty things. These are candidates for core, components, scenarios, and apps. + + + +Conventions +=========== + + +File Naming Convention +---------------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + * - `conf.py` + - The configuration for the module, app, and project. + + diff --git a/docs/index.rst b/docs/index.rst index e313b96d..1bba0c85 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,16 +7,18 @@ Welcome to RDAgent's documentation! =================================== .. toctree:: - :maxdepth: 2 + :maxdepth: 3 :caption: Doctree: + demo_and_introduction installation + scenarios_and_quickstart + project_framework_introduction development api_reference - demo_and_introduction - project_framework_introduction - scenarios_and_quickstart - test_dropdown/test1 + policy + +.. test_dropdown/test1 Indices and tables diff --git a/docs/installation.rst b/docs/installation.rst index 3b1b7327..90a3f1a0 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -2,17 +2,14 @@ Installation ========================= -title1 -========================= +Installation +============ -content1 +For different scenarios +- for purely users: +- for dev users: link to development -title2 -========================= +Configuration +============= -content2 - -title3 -========================= - -content3 \ No newline at end of file +Quick configuration diff --git a/docs/project_framework_introduction.rst b/docs/project_framework_introduction.rst index e665dffa..4ec57d3b 100644 --- a/docs/project_framework_introduction.rst +++ b/docs/project_framework_introduction.rst @@ -1,18 +1,27 @@ =============================== -Project framework introduction +Framework Design & Components =============================== -title1 +Framework & Components ========================= -content1 +- TODO: Components & Feature Level -title2 +- Class Level Figure + +Detailed Design ========================= -content2 -title3 -========================= +Configuration +------------- + +You can manually source the `.env` file in your shell before running the Python script: +Most of the workflow are controlled by the environment variables. +```sh +# Export each variable in the .env file; Please note that it is different from `source .env` without export +export $(grep -v '^#' .env | xargs) +# Run the Python script +python your_script.py +``` -content3 \ No newline at end of file diff --git a/docs/scenarios_and_quickstart.rst b/docs/scenarios_and_quickstart.rst index 3bb9c0aa..cdc613b6 100644 --- a/docs/scenarios_and_quickstart.rst +++ b/docs/scenarios_and_quickstart.rst @@ -2,17 +2,32 @@ Scenarios and Quick Start ========================= -title1 +Scenario lists ========================= -content1 +TODO: Copy the content in the README.md -title2 + +Scnarios' demo & quick start ========================= -content2 +Scen1 +----- -title3 -========================= +Scen1 Intro +~~~~~~~~~~~ + +Scen1 Demo +~~~~~~~~~~ + +Scen1 Quick Start +~~~~~~~~~~~~~~~~~ + + + + + +Usage of modules +================ +TODO: Show some examples: -content3 \ No newline at end of file diff --git a/docs/test_dropdown/test1.rst b/docs/test_dropdown/test1.rst index 6523ec90..aa5e0799 100644 --- a/docs/test_dropdown/test1.rst +++ b/docs/test_dropdown/test1.rst @@ -25,4 +25,4 @@ content3 :caption: Doctree: :hidden: - test2 \ No newline at end of file + test2 diff --git a/rdagent/utils/env.py b/rdagent/utils/env.py index 17906c3c..24b0e230 100644 --- a/rdagent/utils/env.py +++ b/rdagent/utils/env.py @@ -174,7 +174,7 @@ class DockerEnv(Env[DockerConf]): try: client.containers.run(self.conf.image, "nvidia-smi", **gpu_kwargs) logger.info("GPU Devices are available.") - except docker.errors.APIError as e: + except docker.errors.APIError: return {} return gpu_kwargs