Skip to content

Commit 08587f3

Browse files
authored
Merge branch 'main' into reasoning
2 parents cc774db + 44eccf0 commit 08587f3

File tree

339 files changed

+22994
-1434
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

339 files changed

+22994
-1434
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ examples/graph_store.json
162162
examples/image__vector_store.json
163163
examples/index_store.json
164164
.chroma
165+
.chroma_exp_data
166+
.role_memory_data
165167
*~$*
166168
workspace/*
167169
tmp
@@ -189,6 +191,7 @@ cov.xml
189191
*-structure.json
190192
*.dot
191193
.python-version
194+
tests/data/requirements/*.jpg
192195
*.csv
193196
metagpt/ext/sela/results/*
194197
.chainlit/

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM nikolaik/python-nodejs:python3.9-nodejs20-slim
33

44
# Install Debian software needed by MetaGPT and clean up in one RUN command to reduce image size
55
RUN apt update &&\
6-
apt install -y libgomp1 git chromium fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 --no-install-recommends &&\
6+
apt install -y libgomp1 git chromium fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 --no-install-recommends file &&\
77
apt clean && rm -rf /var/lib/apt/lists/*
88

99
# Install Mermaid CLI globally

News.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Earlier news
2+
3+
🚀 Oct. 29, 2024: We introduced three papers: [AFLOW](https://arxiv.org/abs/2410.10762), [FACT](https://arxiv.org/abs/2410.21012), and [SELA](https://arxiv.org/abs/2410.17238), check the [code](examples)!
4+
5+
🚀 Mar. 29, 2024: [v0.8.0](https://github.com/geekan/MetaGPT/releases/tag/v0.8.0) released. Now you can use Data Interpreter ([arxiv](https://arxiv.org/abs/2402.18679), [example](https://docs.deepwisdom.ai/main/en/DataInterpreter/), [code](https://github.com/geekan/MetaGPT/tree/main/examples/di)) via pypi package import. Meanwhile, we integrated the RAG module and supported multiple new LLMs.
6+
7+
🚀 Feb. 08, 2024: [v0.7.0](https://github.com/geekan/MetaGPT/releases/tag/v0.7.0) released, supporting assigning different LLMs to different Roles. We also introduced [Data Interpreter](https://github.com/geekan/MetaGPT/blob/main/examples/di/README.md), a powerful agent capable of solving a wide range of real-world problems.
8+
9+
🚀 Jan. 16, 2024: Our paper [MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework
10+
](https://openreview.net/forum?id=VtmBAGCN7o) accepted for **oral presentation (top 1.2%)** at ICLR 2024, **ranking #1** in the LLM-based Agent category.
11+
12+
🚀 Jan. 03, 2024: [v0.6.0](https://github.com/geekan/MetaGPT/releases/tag/v0.6.0) released, new features include serialization, upgraded OpenAI package and supported multiple LLM, provided [minimal example for debate](https://github.com/geekan/MetaGPT/blob/main/examples/debate_simple.py) etc.
13+
14+
🚀 Dec. 15, 2023: [v0.5.0](https://github.com/geekan/MetaGPT/releases/tag/v0.5.0) released, introducing some experimental features such as incremental development, multilingual, multiple programming languages, etc.
15+
16+
🔥 Nov. 08, 2023: MetaGPT is selected into [Open100: Top 100 Open Source achievements](https://www.benchcouncil.org/evaluation/opencs/annual.html).
17+
18+
🔥 Sep. 01, 2023: MetaGPT tops GitHub Trending Monthly for the **17th time** in August 2023.
19+
20+
🌟 Jun. 30, 2023: MetaGPT is now open source.
21+
22+
🌟 Apr. 24, 2023: First line of MetaGPT code committed.

README.md

Lines changed: 13 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,16 @@
2727
</p>
2828

2929
## News
30-
🚀 Feb. 19, 2025: Today we are officially launching our natural language programming product: MGX (MetaGPT X) - the world's first AI agent development team. [Offical website](https://mgx.dev/) [Twitter](https://x.com/MetaGPT_/status/1892199535130329356)
3130

32-
🚀 Jan. 22, 2025: Our paper [AFlow: Automating Agentic Workflow Generation](https://openreview.net/forum?id=z5uVAKwmjf) accepted for **oral presentation (top 1.8%)** at ICLR 2025, **ranking #2** in the LLM-based Agent category.
33-
34-
🚀 Oct. 29, 2024: We introduced three papers: [AFLOW](https://arxiv.org/abs/2410.10762), [FACT](https://arxiv.org/abs/2410.21012), and [SELA](https://arxiv.org/abs/2410.17238), check the [code](examples)!
35-
36-
🚀 Mar. 29, 2024: [v0.8.0](https://github.com/geekan/MetaGPT/releases/tag/v0.8.0) released. Now you can use Data Interpreter ([arxiv](https://arxiv.org/abs/2402.18679), [example](https://docs.deepwisdom.ai/main/en/DataInterpreter/), [code](https://github.com/geekan/MetaGPT/tree/main/examples/di)) via pypi package import. Meanwhile, we integrated the RAG module and supported multiple new LLMs.
37-
38-
🚀 Feb. 08, 2024: [v0.7.0](https://github.com/geekan/MetaGPT/releases/tag/v0.7.0) released, supporting assigning different LLMs to different Roles. We also introduced [Data Interpreter](https://github.com/geekan/MetaGPT/blob/main/examples/di/README.md), a powerful agent capable of solving a wide range of real-world problems.
39-
40-
🚀 Jan. 16, 2024: Our paper [MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework
41-
](https://openreview.net/forum?id=VtmBAGCN7o) accepted for **oral presentation (top 1.2%)** at ICLR 2024, **ranking #1** in the LLM-based Agent category.
31+
🚀 Mar. 4, 2025: 🎉 [mgx.dev](https://mgx.dev/) is the #1 Product of the Day on @ProductHunt! 🏆
4232

43-
🚀 Jan. 03, 2024: [v0.6.0](https://github.com/geekan/MetaGPT/releases/tag/v0.6.0) released, new features include serialization, upgraded OpenAI package and supported multiple LLM, provided [minimal example for debate](https://github.com/geekan/MetaGPT/blob/main/examples/debate_simple.py) etc.
33+
🚀 Feb. 19, 2025: Today we are officially launching our natural language programming product: [MGX (MetaGPT X)](https://mgx.dev/) - the world's first AI agent development team. More details on [Twitter](https://x.com/MetaGPT_/status/1892199535130329356).
4434

45-
🚀 Dec. 15, 2023: [v0.5.0](https://github.com/geekan/MetaGPT/releases/tag/v0.5.0) released, introducing some experimental features such as incremental development, multilingual, multiple programming languages, etc.
35+
🚀 Feb. 17, 2025: We introduced two papers: [SPO](https://arxiv.org/pdf/2502.06855) and [AOT](https://arxiv.org/pdf/2502.12018), check the [code](examples)!
4636

47-
🔥 Nov. 08, 2023: MetaGPT is selected into [Open100: Top 100 Open Source achievements](https://www.benchcouncil.org/evaluation/opencs/annual.html).
48-
49-
🔥 Sep. 01, 2023: MetaGPT tops GitHub Trending Monthly for the **17th time** in August 2023.
50-
51-
🌟 Jun. 30, 2023: MetaGPT is now open source.
37+
🚀 Jan. 22, 2025: Our paper [AFlow: Automating Agentic Workflow Generation](https://openreview.net/forum?id=z5uVAKwmjf) accepted for **oral presentation (top 1.8%)** at ICLR 2025, **ranking #2** in the LLM-based Agent category.
5238

53-
🌟 Apr. 24, 2023: First line of MetaGPT code committed.
39+
👉👉 [Earlier news](News.md)
5440

5541
## Software Company as Multi-Agent System
5642

@@ -75,6 +61,8 @@ pip install --upgrade metagpt
7561
# or `git clone https://github.com/geekan/MetaGPT && cd MetaGPT && pip install --upgrade -e .`
7662
```
7763

64+
**Install [node](https://nodejs.org/en/download) and [pnpm](https://pnpm.io/installation#using-npm) before actual use.**
65+
7866
For detailed installation guidance, please refer to [cli_install](https://docs.deepwisdom.ai/main/en/guide/get_started/installation.html#install-stable-version)
7967
or [docker_install](https://docs.deepwisdom.ai/main/en/guide/get_started/installation.html#install-with-docker)
8068

@@ -107,7 +95,9 @@ metagpt "Create a 2048 game" # this will create a repo in ./workspace
10795
or use it as library
10896

10997
```python
110-
from metagpt.software_company import generate_repo, ProjectRepo
98+
from metagpt.software_company import generate_repo
99+
from metagpt.utils.project_repo import ProjectRepo
100+
111101
repo: ProjectRepo = generate_repo("Create a 2048 game") # or ProjectRepo("<path>")
112102
print(repo) # it will print the repo structure with files
113103
```
@@ -173,7 +163,7 @@ We will respond to all questions within 2-3 business days.
173163

174164
To stay updated with the latest research and development, follow [@MetaGPT_](https://twitter.com/MetaGPT_) on Twitter.
175165

176-
To cite [MetaGPT](https://openreview.net/forum?id=VtmBAGCN7o) or [Data Interpreter](https://arxiv.org/abs/2402.18679) in publications, please use the following BibTeX entries.
166+
To cite [MetaGPT](https://openreview.net/forum?id=VtmBAGCN7o) in publications, please use the following BibTeX entries.
177167

178168
```bibtex
179169
@inproceedings{hong2024metagpt,
@@ -183,54 +173,6 @@ To cite [MetaGPT](https://openreview.net/forum?id=VtmBAGCN7o) or [Data Interpret
183173
year={2024},
184174
url={https://openreview.net/forum?id=VtmBAGCN7o}
185175
}
186-
@misc{teng2025atom,
187-
title={Atom of Thoughts for Markov LLM Test-Time Scaling},
188-
author={Fengwei Teng and Zhaoyang Yu and Quan Shi and Jiayi Zhang and Chenglin Wu and Yuyu Luo},
189-
year={2025},
190-
eprint={2502.12018},
191-
archivePrefix={arXiv},
192-
primaryClass={cs.CL},
193-
url={https://arxiv.org/abs/2502.12018},
194-
}
195-
@misc{xiang2025self,
196-
title={Self-Supervised Prompt Optimization},
197-
author={Jinyu Xiang and Jiayi Zhang and Zhaoyang Yu and Fengwei Teng and Jinhao Tu and Xinbing Liang and Sirui Hong and Chenglin Wu and Yuyu Luo},
198-
year={2025},
199-
eprint={2502.06855},
200-
archivePrefix={arXiv},
201-
primaryClass={cs.CL},
202-
url={https://arxiv.org/abs/2502.06855},
203-
}
204-
@inproceedings{wang2025fact,
205-
title={FACT: Examining the Effectiveness of Iterative Context Rewriting for Multi-fact Retrieval},
206-
author={Jinlin Wang and Suyuchen Wang and Ziwen Xia and Sirui Hong and Yun Zhu and Bang Liu and Chenglin Wu},
207-
booktitle={The 2025 Annual Conference of the Nations of the Americas Chapter of the ACL},
208-
year={2025},
209-
url={https://openreview.net/forum?id=VXOircx5h3}
210-
}
211-
@misc{chi2024sela,
212-
title={SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning},
213-
author={Yizhou Chi and Yizhang Lin and Sirui Hong and Duyi Pan and Yaying Fei and Guanghao Mei and Bangbang Liu and Tianqi Pang and Jacky Kwok and Ceyao Zhang and Bang Liu and Chenglin Wu},
214-
year={2024},
215-
eprint={2410.17238},
216-
archivePrefix={arXiv},
217-
primaryClass={cs.AI},
218-
url={https://arxiv.org/abs/2410.17238},
219-
}
220-
@inproceedings{zhang2025aflow,
221-
title={{AF}low: Automating Agentic Workflow Generation},
222-
author={Jiayi Zhang and Jinyu Xiang and Zhaoyang Yu and Fengwei Teng and Xiong-Hui Chen and Jiaqi Chen and Mingchen Zhuge and Xin Cheng and Sirui Hong and Jinlin Wang and Bingnan Zheng and Bang Liu and Yuyu Luo and Chenglin Wu},
223-
booktitle={The Thirteenth International Conference on Learning Representations},
224-
year={2025},
225-
url={https://openreview.net/forum?id=z5uVAKwmjf}
226-
}
227-
@misc{hong2024data,
228-
title={Data Interpreter: An LLM Agent For Data Science},
229-
author={Sirui Hong and Yizhang Lin and Bang Liu and Bangbang Liu and Binhao Wu and Danyang Li and Jiaqi Chen and Jiayi Zhang and Jinlin Wang and Li Zhang and Lingyao Zhang and Min Yang and Mingchen Zhuge and Taicheng Guo and Tuo Zhou and Wei Tao and Wenyi Wang and Xiangru Tang and Xiangtao Lu and Xiawu Zheng and Xinbing Liang and Yaying Fei and Yuheng Cheng and Zongze Xu and Chenglin Wu},
230-
year={2024},
231-
eprint={2402.18679},
232-
archivePrefix={arXiv},
233-
primaryClass={cs.AI},
234-
url={https://arxiv.org/abs/2402.18679},
235-
}
236176
```
177+
178+
For more work, please refer to [Academic Work](academic_work.md).

academic_work.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
```bibtex
2+
@inproceedings{hong2024metagpt,
3+
title={Meta{GPT}: Meta Programming for A Multi-Agent Collaborative Framework},
4+
author={Sirui Hong and Mingchen Zhuge and Jonathan Chen and Xiawu Zheng and Yuheng Cheng and Jinlin Wang and Ceyao Zhang and Zili Wang and Steven Ka Shing Yau and Zijuan Lin and Liyang Zhou and Chenyu Ran and Lingfeng Xiao and Chenglin Wu and J{\"u}rgen Schmidhuber},
5+
booktitle={The Twelfth International Conference on Learning Representations},
6+
year={2024},
7+
url={https://openreview.net/forum?id=VtmBAGCN7o}
8+
}
9+
10+
@misc{teng2025atom,
11+
title={Atom of Thoughts for Markov LLM Test-Time Scaling},
12+
author={Fengwei Teng and Zhaoyang Yu and Quan Shi and Jiayi Zhang and Chenglin Wu and Yuyu Luo},
13+
year={2025},
14+
eprint={2502.12018},
15+
archivePrefix={arXiv},
16+
primaryClass={cs.CL},
17+
url={https://arxiv.org/abs/2502.12018},
18+
}
19+
@misc{xiang2025self,
20+
title={Self-Supervised Prompt Optimization},
21+
author={Jinyu Xiang and Jiayi Zhang and Zhaoyang Yu and Fengwei Teng and Jinhao Tu and Xinbing Liang and Sirui Hong and Chenglin Wu and Yuyu Luo},
22+
year={2025},
23+
eprint={2502.06855},
24+
archivePrefix={arXiv},
25+
primaryClass={cs.CL},
26+
url={https://arxiv.org/abs/2502.06855},
27+
}
28+
@inproceedings{wang2025fact,
29+
title={FACT: Examining the Effectiveness of Iterative Context Rewriting for Multi-fact Retrieval},
30+
author={Jinlin Wang and Suyuchen Wang and Ziwen Xia and Sirui Hong and Yun Zhu and Bang Liu and Chenglin Wu},
31+
booktitle={The 2025 Annual Conference of the Nations of the Americas Chapter of the ACL},
32+
year={2025},
33+
url={https://openreview.net/forum?id=VXOircx5h3}
34+
}
35+
@misc{chi2024sela,
36+
title={SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning},
37+
author={Yizhou Chi and Yizhang Lin and Sirui Hong and Duyi Pan and Yaying Fei and Guanghao Mei and Bangbang Liu and Tianqi Pang and Jacky Kwok and Ceyao Zhang and Bang Liu and Chenglin Wu},
38+
year={2024},
39+
eprint={2410.17238},
40+
archivePrefix={arXiv},
41+
primaryClass={cs.AI},
42+
url={https://arxiv.org/abs/2410.17238},
43+
}
44+
@inproceedings{zhang2025aflow,
45+
title={{AF}low: Automating Agentic Workflow Generation},
46+
author={Jiayi Zhang and Jinyu Xiang and Zhaoyang Yu and Fengwei Teng and Xiong-Hui Chen and Jiaqi Chen and Mingchen Zhuge and Xin Cheng and Sirui Hong and Jinlin Wang and Bingnan Zheng and Bang Liu and Yuyu Luo and Chenglin Wu},
47+
booktitle={The Thirteenth International Conference on Learning Representations},
48+
year={2025},
49+
url={https://openreview.net/forum?id=z5uVAKwmjf}
50+
}
51+
@misc{hong2024data,
52+
title={Data Interpreter: An LLM Agent For Data Science},
53+
author={Sirui Hong and Yizhang Lin and Bang Liu and Bangbang Liu and Binhao Wu and Danyang Li and Jiaqi Chen and Jiayi Zhang and Jinlin Wang and Li Zhang and Lingyao Zhang and Min Yang and Mingchen Zhuge and Taicheng Guo and Tuo Zhou and Wei Tao and Wenyi Wang and Xiangru Tang and Xiangtao Lu and Xiawu Zheng and Xinbing Liang and Yaying Fei and Yuheng Cheng and Zongze Xu and Chenglin Wu},
54+
year={2024},
55+
eprint={2402.18679},
56+
archivePrefix={arXiv},
57+
primaryClass={cs.AI},
58+
url={https://arxiv.org/abs/2402.18679},
59+
}
60+
```

config/config2.example.yaml

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,37 @@ embedding:
2020
embed_batch_size: 100
2121
dimensions: # output dimension of embedding model
2222

23+
# Role's custom configuration
24+
roles:
25+
- role: "ProductManager" # role's className or role's role_id
26+
llm:
27+
api_type: "openai" # or azure / ollama / open_llm etc. Check LLMType for more options
28+
base_url: "YOUR_BASE_URL"
29+
api_key: "YOUR_API_KEY"
30+
proxy: "YOUR_PROXY" # for LLM API requests
31+
model: "gpt-4-turbo-1106"
32+
- role: "Architect"
33+
llm:
34+
api_type: "openai" # or azure / ollama / open_llm etc. Check LLMType for more options
35+
base_url: "YOUR_BASE_URL"
36+
api_key: "YOUR_API_KEY"
37+
proxy: "YOUR_PROXY" # for LLM API requests
38+
model: "gpt-35-turbo"
39+
- role: "ProjectManager"
40+
llm:
41+
api_type: "azure"
42+
base_url: "YOUR_BASE_URL"
43+
api_key: "YOUR_API_KEY"
44+
api_version: "YOUR_API_VERSION"
45+
model: "gpt-4-1106"
46+
- role: "Engineer"
47+
llm:
48+
api_type: "azure"
49+
base_url: "YOUR_BASE_URL"
50+
api_key: "YOUR_API_KEY"
51+
api_version: "YOUR_API_VERSION"
52+
model: "gpt-35-turbo-1106"
53+
2354
repair_llm_output: true # when the output is not a valid json, try to repair it
2455

2556
proxy: "YOUR_PROXY" # for tools like requests, playwright, selenium, etc.
@@ -50,6 +81,21 @@ s3:
5081
secure: false
5182
bucket: "test"
5283

84+
exp_pool:
85+
enabled: false
86+
enable_read: false
87+
enable_write: false
88+
persist_path: .chroma_exp_data # The directory.
89+
retrieval_type: bm25 # Default is `bm25`, can be set to `chroma` for vector storage, which requires setting up embedding.
90+
use_llm_ranker: true # Default is `true`, it will use LLM Reranker to get better result.
91+
collection_name: experience_pool # When `retrieval_type` is `chroma`, `collection_name` is the collection name in chromadb.
92+
93+
role_zero:
94+
enable_longterm_memory: false # Whether to use long-term memory. Default is `false`.
95+
longterm_memory_persist_path: .role_memory_data # The directory to save data.
96+
memory_k: 200 # The capacity of short-term memory.
97+
similarity_top_k: 5 # The number of long-term memories to retrieve.
98+
use_llm_ranker: false # Whether to use LLM Reranker to get better result. Default is `false`.
5399

54100
azure_tts_subscription_key: "YOUR_SUBSCRIPTION_KEY"
55101
azure_tts_region: "eastus"
@@ -81,5 +127,3 @@ models:
81127
# # timeout: 600 # Optional. If set to 0, default value is 300.
82128
# # Details: https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/
83129
# pricing_plan: "" # Optional. Use for Azure LLM when its model name is not the same as OpenAI's
84-
85-
agentops_api_key: "YOUR_AGENTOPS_API_KEY" # get key from https://app.agentops.ai/settings/projects

config/vault.example.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Usage:
2+
# 1. Get value.
3+
# >>> from metagpt.tools.libs.env import get_env
4+
# >>> access_token = await get_env(key="access_token", app_name="github")
5+
# >>> print(access_token)
6+
# YOUR_ACCESS_TOKEN
7+
#
8+
# 2. Get description for LLM understanding.
9+
# >>> from metagpt.tools.libs.env import get_env_description
10+
# >>> descriptions = await get_env_description
11+
# >>> for k, desc in descriptions.items():
12+
# >>> print(f"{key}:{desc}")
13+
# await get_env(key="access_token", app_name="github"):Get github access token
14+
# await get_env(key="access_token", app_name="gitlab"):Get gitlab access token
15+
# ...
16+
17+
vault:
18+
github:
19+
values:
20+
access_token: "YOUR_ACCESS_TOKEN"
21+
descriptions:
22+
access_token: "Get github access token"
23+
gitlab:
24+
values:
25+
access_token: "YOUR_ACCESS_TOKEN"
26+
descriptions:
27+
access_token: "Get gitlab access token"
28+
iflytek_tts:
29+
values:
30+
api_id: "YOUR_APP_ID"
31+
api_key: "YOUR_API_KEY"
32+
api_secret: "YOUR_API_SECRET"
33+
descriptions:
34+
api_id: "Get the API ID of IFlyTek Text to Speech"
35+
api_key: "Get the API KEY of IFlyTek Text to Speech"
36+
api_secret: "Get the API SECRET of IFlyTek Text to Speech"
37+
azure_tts:
38+
values:
39+
subscription_key: "YOUR_SUBSCRIPTION_KEY"
40+
region: "YOUR_REGION"
41+
descriptions:
42+
subscription_key: "Get the subscription key of Azure Text to Speech."
43+
region: "Get the region of Azure Text to Speech."
44+
default: # All key-value pairs whose app name is an empty string are placed below
45+
values:
46+
proxy: "YOUR_PROXY"
47+
descriptions:
48+
proxy: "Get proxy for tools like requests, playwright, selenium, etc."

examples/cr.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import fire
2+
3+
from metagpt.roles.di.engineer2 import Engineer2
4+
from metagpt.tools.libs.cr import CodeReview
5+
6+
7+
async def main(msg):
8+
role = Engineer2(tools=["Plan", "Editor:write,read", "RoleZero", "ValidateAndRewriteCode", "CodeReview"])
9+
cr = CodeReview()
10+
role.tool_execution_map.update({"CodeReview.review": cr.review, "CodeReview.fix": cr.fix})
11+
await role.run(msg)
12+
13+
14+
if __name__ == "__main__":
15+
fire.Fire(main)

examples/data/di/dog.jpg

14.7 KB
Loading
32.6 KB
Loading

0 commit comments

Comments
 (0)