From f77e685bd19420f126eafa8b1705e5300735320f Mon Sep 17 00:00:00 2001 From: Wei-Jianan Date: Thu, 13 Jun 2024 05:04:47 +0000 Subject: [PATCH 01/14] [feat] support async in bedrockLLM by loop.run_in_executor --- metagpt/provider/bedrock_api.py | 41 ++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/metagpt/provider/bedrock_api.py b/metagpt/provider/bedrock_api.py index f30d4701e..005488ecf 100644 --- a/metagpt/provider/bedrock_api.py +++ b/metagpt/provider/bedrock_api.py @@ -1,4 +1,6 @@ +import asyncio import json +from functools import partial from typing import Literal import boto3 @@ -22,7 +24,6 @@ class BedrockLLM(BaseLLM): self.__client = self.__init_client("bedrock-runtime") self.__provider = get_provider(self.config.model) self.cost_manager = CostManager(token_costs=BEDROCK_TOKEN_COSTS) - logger.warning("Amazon bedrock doesn't support asynchronous now") if self.config.model in NOT_SUUPORT_STREAM_MODELS: logger.warning(f"model {self.config.model} doesn't support streaming output!") @@ -64,15 +65,21 @@ class BedrockLLM(BaseLLM): ] logger.info("\n" + "\n".join(summaries)) - def invoke_model(self, request_body: str) -> dict: - response = self.__client.invoke_model(modelId=self.config.model, body=request_body) + async def invoke_model(self, request_body: str) -> dict: + loop = asyncio.get_running_loop() + response = await loop.run_in_executor( + None, partial(self.client.invoke_model, modelId=self.config.model, body=request_body) + ) usage = self._get_usage(response) self._update_costs(usage, self.config.model) response_body = self._get_response_body(response) return response_body - def invoke_model_with_response_stream(self, request_body: str) -> EventStream: - response = self.__client.invoke_model_with_response_stream(modelId=self.config.model, body=request_body) + async def invoke_model_with_response_stream(self, request_body: str) -> EventStream: + loop = asyncio.get_running_loop() + response = await loop.run_in_executor( + None, partial(self.client.invoke_model_with_response_stream, modelId=self.config.model, body=request_body) + ) usage = self._get_usage(response) self._update_costs(usage, self.config.model) return response @@ -97,7 +104,7 @@ class BedrockLLM(BaseLLM): async def acompletion(self, messages: list[dict]) -> dict: request_body = self.__provider.get_request_body(messages, self._const_kwargs) - response_body = self.invoke_model(request_body) + response_body = await self.invoke_model(request_body) return response_body async def _achat_completion(self, messages: list[dict], timeout=USE_CONFIG_TIMEOUT) -> dict: @@ -111,14 +118,8 @@ class BedrockLLM(BaseLLM): return full_text request_body = self.__provider.get_request_body(messages, self._const_kwargs, stream=True) - - response = self.invoke_model_with_response_stream(request_body) - collected_content = [] - for event in response["body"]: - chunk_text = self.__provider.get_choice_text_from_stream(event) - collected_content.append(chunk_text) - log_llm_stream(chunk_text) - + stream_response = await self.invoke_model_with_response_stream(request_body) + collected_content = await self._get_stream_response_body(stream_response) log_llm_stream("\n") full_text = ("".join(collected_content)).lstrip() return full_text @@ -127,6 +128,18 @@ class BedrockLLM(BaseLLM): response_body = json.loads(response["body"].read()) return response_body + async def _get_stream_response_body(self, stream_response) -> str: + def collect_content() -> str: + collected_content = [] + for event in stream_response["body"]: + chunk_text = self.__provider.get_choice_text_from_stream(event) + collected_content.append(chunk_text) + log_llm_stream(chunk_text) + return collected_content + + loop = asyncio.get_running_loop() + return await loop.run_in_executor(None, collect_content) + def _get_usage(self, response) -> dict[str, int]: headers = response.get("ResponseMetadata", {}).get("HTTPHeaders", {}) prompt_tokens = int(headers.get("x-amzn-bedrock-input-token-count", 0)) From bcf1fcebc0f177554792d72b14ad509bbb6a4c81 Mon Sep 17 00:00:00 2001 From: Wei-Jianan Date: Thu, 13 Jun 2024 05:08:44 +0000 Subject: [PATCH 02/14] [fix] Type hint --- metagpt/provider/bedrock_api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metagpt/provider/bedrock_api.py b/metagpt/provider/bedrock_api.py index 005488ecf..03954e5c2 100644 --- a/metagpt/provider/bedrock_api.py +++ b/metagpt/provider/bedrock_api.py @@ -1,7 +1,7 @@ import asyncio import json from functools import partial -from typing import Literal +from typing import List, Literal import boto3 from botocore.eventstream import EventStream @@ -128,7 +128,7 @@ class BedrockLLM(BaseLLM): response_body = json.loads(response["body"].read()) return response_body - async def _get_stream_response_body(self, stream_response) -> str: + async def _get_stream_response_body(self, stream_response) -> List[str]: def collect_content() -> str: collected_content = [] for event in stream_response["body"]: From dcea8b71c8c6e360c0dec1fc5761df944971b4f2 Mon Sep 17 00:00:00 2001 From: huang-jl <1046678590@qq.com> Date: Tue, 18 Jun 2024 16:01:53 +0800 Subject: [PATCH 03/14] fix: invoice ocr assistant Currently, the invoice_ocr_assistant example cannot run, it will complain about the index out of range exceptions. The problem comes from adding actions in _act() but do not update the state and max_react_loop. The solution is copied from tutorial_assistants.py. --- metagpt/roles/invoice_ocr_assistant.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/metagpt/roles/invoice_ocr_assistant.py b/metagpt/roles/invoice_ocr_assistant.py index a39a48b97..afcc527a3 100644 --- a/metagpt/roles/invoice_ocr_assistant.py +++ b/metagpt/roles/invoice_ocr_assistant.py @@ -80,19 +80,17 @@ class InvoiceOCRAssistant(Role): raise Exception("Invoice file not uploaded") resp = await todo.run(file_path) + actions = list(self.actions) if len(resp) == 1: # Single file support for questioning based on OCR recognition results - self.set_actions([GenerateTable, ReplyQuestion]) + actions.extend([GenerateTable, ReplyQuestion]) self.orc_data = resp[0] else: - self.set_actions([GenerateTable]) - - self.set_todo(None) + actions.append(GenerateTable) + self.set_actions(actions) + self.rc.max_react_loop = len(self.actions) content = INVOICE_OCR_SUCCESS resp = OCRResults(ocr_result=json.dumps(resp)) - msg = Message(content=content, instruct_content=resp) - self.rc.memory.add(msg) - return await super().react() elif isinstance(todo, GenerateTable): ocr_results: OCRResults = msg.instruct_content resp = await todo.run(json.loads(ocr_results.ocr_result), self.filename) From 223a018083a8821ce3dc03ca1381e07bbdc70e2d Mon Sep 17 00:00:00 2001 From: Igor Pechersky Date: Wed, 19 Jun 2024 09:46:41 +0000 Subject: [PATCH 04/14] https://github.com/geekan/MetaGPT/issues/1356 --- metagpt/roles/researcher.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metagpt/roles/researcher.py b/metagpt/roles/researcher.py index fd40960e2..5c6c1d9f4 100644 --- a/metagpt/roles/researcher.py +++ b/metagpt/roles/researcher.py @@ -58,7 +58,7 @@ class Researcher(Role): ) elif isinstance(todo, WebBrowseAndSummarize): links = instruct_content.links - todos = (todo.run(*url, query=query, system_text=research_system_text) for (query, url) in links.items()) + todos = (todo.run(*url, query=query, system_text=research_system_text) for (query, url) in links.items() if url) if self.enable_concurrency: summaries = await asyncio.gather(*todos) else: From 1028184a1f03639ab54ed0962d5cb36aef45f9f5 Mon Sep 17 00:00:00 2001 From: Igor Pechersky Date: Wed, 19 Jun 2024 10:04:12 +0000 Subject: [PATCH 05/14] Got error from SerpAPI: Google hasn't returned any results for this query. --- metagpt/actions/research.py | 2 ++ metagpt/tools/search_engine_serpapi.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/metagpt/actions/research.py b/metagpt/actions/research.py index 2a99a8d99..5086f10cf 100644 --- a/metagpt/actions/research.py +++ b/metagpt/actions/research.py @@ -161,6 +161,8 @@ class CollectLinks(Action): """ max_results = max(num_results * 2, 6) results = await self.search_engine.run(query, max_results=max_results, as_string=False) + if len(results) == 0: + return [] _results = "\n".join(f"{i}: {j}" for i, j in zip(range(max_results), results)) prompt = COLLECT_AND_RANKURLS_PROMPT.format(topic=topic, query=query, results=_results) logger.debug(prompt) diff --git a/metagpt/tools/search_engine_serpapi.py b/metagpt/tools/search_engine_serpapi.py index 5744b1b62..15bcdf8b4 100644 --- a/metagpt/tools/search_engine_serpapi.py +++ b/metagpt/tools/search_engine_serpapi.py @@ -87,8 +87,11 @@ class SerpAPIWrapper(BaseModel): get_focused = lambda x: {i: j for i, j in x.items() if i in focus} if "error" in res.keys(): - raise ValueError(f"Got error from SerpAPI: {res['error']}") - if "answer_box" in res.keys() and "answer" in res["answer_box"].keys(): + if res["error"] == "Google hasn't returned any results for this query.": + toret = "No good search result found" + else: + raise ValueError(f"Got error from SerpAPI: {res['error']}") + elif "answer_box" in res.keys() and "answer" in res["answer_box"].keys(): toret = res["answer_box"]["answer"] elif "answer_box" in res.keys() and "snippet" in res["answer_box"].keys(): toret = res["answer_box"]["snippet"] From e56c06dafcee5a6421cbd45fad6610b26e86eda4 Mon Sep 17 00:00:00 2001 From: Kaushal_26 Date: Thu, 20 Jun 2024 01:55:42 +0530 Subject: [PATCH 06/14] feat: Integration of MetaGPT with UI framework, Chainlit - MetaGPT on UI Integrated using Chainlit: https://github.com/Chainlit/chainlit, as it gives flexibility - We can send an "idea" from UI as "Create a 2048 Game". - Added 2 chat starters, so easily clickable to run the idea. - Changed Team.env to use ChainlitEnv instead of Environment for chainlit configuration --- examples/ui_with_chainlit/.gitignore | 3 + examples/ui_with_chainlit/README.md | 34 +++++++ examples/ui_with_chainlit/__init__.py | 0 examples/ui_with_chainlit/app.py | 83 ++++++++++++++++++ examples/ui_with_chainlit/init_setup.py | 69 +++++++++++++++ examples/ui_with_chainlit/public/2048.jpg | Bin 0 -> 27808 bytes .../public/MetaGPT-new-log.jpg | Bin 0 -> 91027 bytes .../ui_with_chainlit/public/blackjack.jpg | Bin 0 -> 59009 bytes 8 files changed, 189 insertions(+) create mode 100644 examples/ui_with_chainlit/.gitignore create mode 100644 examples/ui_with_chainlit/README.md create mode 100644 examples/ui_with_chainlit/__init__.py create mode 100644 examples/ui_with_chainlit/app.py create mode 100644 examples/ui_with_chainlit/init_setup.py create mode 100644 examples/ui_with_chainlit/public/2048.jpg create mode 100644 examples/ui_with_chainlit/public/MetaGPT-new-log.jpg create mode 100644 examples/ui_with_chainlit/public/blackjack.jpg diff --git a/examples/ui_with_chainlit/.gitignore b/examples/ui_with_chainlit/.gitignore new file mode 100644 index 000000000..1e528c384 --- /dev/null +++ b/examples/ui_with_chainlit/.gitignore @@ -0,0 +1,3 @@ +*.chainlit +chainlit.md +.files \ No newline at end of file diff --git a/examples/ui_with_chainlit/README.md b/examples/ui_with_chainlit/README.md new file mode 100644 index 000000000..0ad466162 --- /dev/null +++ b/examples/ui_with_chainlit/README.md @@ -0,0 +1,34 @@ +# MetaGPT in UI with Chainlit! 🤖 + +- MetaGPT functionality in UI using Chainlit. +- It also takes a **one line requirement** as input and outputs **user stories / competitive analysis / requirements / data structures / APIs / documents, etc.**, But `everything in UI`. + +## Install Chainlit + +- Setup initial MetaGPT config from [Main](../../README.md). + +```bash +pip install chainlit +``` + +## Usage + +```bash +chainlit run app.py +``` + +- Now go to: http://localhost:8000 + +- Select, + - `Create a 2048 game` + - `Write a cli Blackjack Game` + - `Type your own message...` + +- It will run a metagpt software company. + +## To Setup with own application + +- We can change `Environment.run`, `Team.run`, `Role.run`, `Role._act`, `Action.run`. +- In this code, changed `Environment.run`, as it was easier to do. +- We will need to change `metagpt.logs.set_llm_stream_logfunc` to stream messages in UI with Chainlit Message. +- To use at some other place we need to call `chainlit.Message(content="").send()` with content. \ No newline at end of file diff --git a/examples/ui_with_chainlit/__init__.py b/examples/ui_with_chainlit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/ui_with_chainlit/app.py b/examples/ui_with_chainlit/app.py new file mode 100644 index 000000000..3b449a12c --- /dev/null +++ b/examples/ui_with_chainlit/app.py @@ -0,0 +1,83 @@ +import chainlit as cl +from init_setup import ChainlitEnv + +from metagpt.roles import ( + Architect, + Engineer, + ProductManager, + ProjectManager, + QaEngineer, +) +from metagpt.team import Team + + +# https://docs.chainlit.io/concepts/starters +@cl.set_chat_profiles +async def chat_profile() -> list[cl.ChatProfile]: + """Generates a chat profile containing starter messages which can be triggered to run MetaGPT + + Returns: + list[chainlit.ChatProfile]: List of Chat Profile + """ + return [ + cl.ChatProfile( + name="MetaGPT", + icon="/public/MetaGPT-new-log.jpg", + markdown_description="It takes a **one line requirement** as input and outputs **user stories / competitive analysis / requirements / data structures / APIs / documents, etc.**, But `everything in UI`.", + starters=[ + cl.Starter( + label="Create a 2048 Game", + message="Create a 2048 game", + icon="/public/2048.jpg", + ), + cl.Starter( + label="Write a cli Blackjack Game", + message="Write a cli Blackjack Game", + icon="/public/blackjack.jpg", + ), + ], + ) + ] + + +# https://docs.chainlit.io/concepts/message +@cl.on_message +async def startup(message: cl.Message) -> None: + """On Message in UI, Create a MetaGPT software company + + Args: + message (chainlit.Message): message by chainlist + """ + idea = message.content + company = Team(env=ChainlitEnv()) + + # Similar to software_company.py + company.hire( + [ + ProductManager(), + Architect(), + ProjectManager(), + Engineer(n_borg=5, use_code_review=True), + QaEngineer(), + ] + ) + + company.invest(investment=3.0) + company.run_project(idea=idea) + + await company.run(n_round=5) + + workdir = company.env.context.git_repo.workdir + files = company.env.context.git_repo.get_files(workdir) + files = "\n".join([f"{workdir}/{file}" for file in files if not file.startswith(".git")]) + + await cl.Message( + content=f""" +Codes can be found here: +{files} + +--- + +Total cost: `{company.cost_manager.total_cost}` +""" + ).send() diff --git a/examples/ui_with_chainlit/init_setup.py b/examples/ui_with_chainlit/init_setup.py new file mode 100644 index 000000000..2b00fe465 --- /dev/null +++ b/examples/ui_with_chainlit/init_setup.py @@ -0,0 +1,69 @@ +import asyncio + +import chainlit as cl + +from metagpt.environment import Environment +from metagpt.logs import logger, set_llm_stream_logfunc +from metagpt.roles import Role +from metagpt.utils.common import any_to_name + + +def log_llm_stream_chainlit(msg): + # Stream the message token into Chainlit UI. + cl.run_sync(chainlit_message.stream_token(msg)) + + +set_llm_stream_logfunc(func=log_llm_stream_chainlit) + + +class ChainlitEnv(Environment): + """Chainlit Environment for UI Integration""" + + async def run(self, k=1): + """处理一次所有信息的运行 + Process all Role runs at once + """ + for _ in range(k): + futures = [] + for role in self.roles.values(): + # Call role.run with chainlit configuration + future = self._chainlit_role_run(role=role) + futures.append(future) + + await asyncio.gather(*futures) + logger.debug(f"is idle: {self.is_idle}") + + async def _chainlit_role_run(self, role: Role) -> None: + """To run the role with chainlit config + + Args: + role (Role): metagpt.role.Role + """ + global chainlit_message + chainlit_message = cl.Message(content="") + + message = await role.run() + # If message is from role._act() publish to UI. + if message is not None and message.content != "No actions taken yet": + # Convert a message from action node in json format + chainlit_message.content = await self._convert_message_to_markdownjson(message=chainlit_message.content) + + # message content from which role and its action... + chainlit_message.content += f"---\n\nAction: `{any_to_name(message.cause_by)}` done by `{role._setting}`." + + await chainlit_message.send() + + # for clean view in UI + async def _convert_message_to_markdownjson(self, message: str) -> str: + """If the message is from MetaGPT Action Node output, then + convert it into markdown json for clear view in UI. + + Args: + message (str): message by role._act + + Returns: + str: message in mardown from + """ + if message.startswith("[CONTENT]"): + return f"```json\n{message}\n```\n" + return message diff --git a/examples/ui_with_chainlit/public/2048.jpg b/examples/ui_with_chainlit/public/2048.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7042e6f63ec0e38c2564fca8c06647950c26d006 GIT binary patch literal 27808 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 literal 0 HcmV?d00001 From e2881778257acdeb54f67d07582eec93b5d30ba0 Mon Sep 17 00:00:00 2001 From: usamimeri_renko <1710269958@qq.com> Date: Fri, 21 Jun 2024 00:13:49 +0800 Subject: [PATCH 07/14] update claude3.5-sonnet --- ...ic-claude-3-opus.yaml => anthropic-claude-3-5-sonnet.yaml} | 2 +- metagpt/utils/token_counter.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) rename config/examples/{anthropic-claude-3-opus.yaml => anthropic-claude-3-5-sonnet.yaml} (61%) diff --git a/config/examples/anthropic-claude-3-opus.yaml b/config/examples/anthropic-claude-3-5-sonnet.yaml similarity index 61% rename from config/examples/anthropic-claude-3-opus.yaml rename to config/examples/anthropic-claude-3-5-sonnet.yaml index db8095f4f..7c4df6064 100644 --- a/config/examples/anthropic-claude-3-opus.yaml +++ b/config/examples/anthropic-claude-3-5-sonnet.yaml @@ -2,4 +2,4 @@ llm: api_type: 'claude' # or anthropic base_url: 'https://api.anthropic.com' api_key: 'YOUR_API_KEY' - model: 'claude-3-opus-20240229' \ No newline at end of file + model: 'claude-3-5-sonnet-20240620' # or 'claude-3-opus-20240229' \ No newline at end of file diff --git a/metagpt/utils/token_counter.py b/metagpt/utils/token_counter.py index ef6f886e2..373b19973 100644 --- a/metagpt/utils/token_counter.py +++ b/metagpt/utils/token_counter.py @@ -57,7 +57,9 @@ TOKEN_COSTS = { "claude-2.0": {"prompt": 0.008, "completion": 0.024}, "claude-2.1": {"prompt": 0.008, "completion": 0.024}, "claude-3-sonnet-20240229": {"prompt": 0.003, "completion": 0.015}, + "claude-3-5-sonnet-20240620": {"prompt": 0.003, "completion": 0.015}, "claude-3-opus-20240229": {"prompt": 0.015, "completion": 0.075}, + "claude-3-haiku-20240307": {"prompt": 0.00025, "completion": 0.00125}, "yi-34b-chat-0205": {"prompt": 0.0003, "completion": 0.0003}, "yi-34b-chat-200k": {"prompt": 0.0017, "completion": 0.0017}, "yi-large": {"prompt": 0.0028, "completion": 0.0028}, @@ -208,6 +210,8 @@ TOKEN_MAX = { "claude-2.1": 200000, "claude-3-sonnet-20240229": 200000, "claude-3-opus-20240229": 200000, + "claude-3-5-sonnet-20240620":200000, + "claude-3-haiku-20240307":200000, "yi-34b-chat-0205": 4000, "yi-34b-chat-200k": 200000, "yi-large": 16385, From df0d6de5fd49799ee4343bd75c320773f563e162 Mon Sep 17 00:00:00 2001 From: Wei-Jianan Date: Fri, 21 Jun 2024 02:35:59 +0000 Subject: [PATCH 08/14] [upd] support claude-3.5-connet --- metagpt/provider/bedrock/utils.py | 1 + metagpt/utils/token_counter.py | 1 + 2 files changed, 2 insertions(+) diff --git a/metagpt/provider/bedrock/utils.py b/metagpt/provider/bedrock/utils.py index 4f3be47ae..46520d1d5 100644 --- a/metagpt/provider/bedrock/utils.py +++ b/metagpt/provider/bedrock/utils.py @@ -27,6 +27,7 @@ SUPPORT_STREAM_MODELS = { "anthropic.claude-3-sonnet-20240229-v1:0:28k": 28000, "anthropic.claude-3-sonnet-20240229-v1:0:200k": 200000, "anthropic.claude-3-haiku-20240307-v1:0": 200000, + "anthropic.claude-3-5-sonnet-20240620-v1:0": 200000, "anthropic.claude-3-haiku-20240307-v1:0:48k": 48000, "anthropic.claude-3-haiku-20240307-v1:0:200k": 200000, # currently (2024-4-29) only available at US West (Oregon) AWS Region. diff --git a/metagpt/utils/token_counter.py b/metagpt/utils/token_counter.py index ef6f886e2..90f44e350 100644 --- a/metagpt/utils/token_counter.py +++ b/metagpt/utils/token_counter.py @@ -245,6 +245,7 @@ BEDROCK_TOKEN_COSTS = { "anthropic.claude-3-sonnet-20240229-v1:0": {"prompt": 0.003, "completion": 0.015}, "anthropic.claude-3-sonnet-20240229-v1:0:28k": {"prompt": 0.003, "completion": 0.015}, "anthropic.claude-3-sonnet-20240229-v1:0:200k": {"prompt": 0.003, "completion": 0.015}, + "anthropic.claude-3-5-sonnet-20240620-v1:0": {"prompt": 0.003, "completion": 0.015}, "anthropic.claude-3-haiku-20240307-v1:0": {"prompt": 0.00025, "completion": 0.00125}, "anthropic.claude-3-haiku-20240307-v1:0:48k": {"prompt": 0.00025, "completion": 0.00125}, "anthropic.claude-3-haiku-20240307-v1:0:200k": {"prompt": 0.00025, "completion": 0.00125}, From a3b300bd1d49463450218698cf88d04d5f3a6015 Mon Sep 17 00:00:00 2001 From: kaven Date: Thu, 4 Jul 2024 11:39:48 +0800 Subject: [PATCH 09/14] Fixing Streamed Output Misalignment --- metagpt/utils/stream_pipe.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/metagpt/utils/stream_pipe.py b/metagpt/utils/stream_pipe.py index 4c4485158..1cccda7ee 100644 --- a/metagpt/utils/stream_pipe.py +++ b/metagpt/utils/stream_pipe.py @@ -11,8 +11,10 @@ from multiprocessing import Pipe class StreamPipe: - parent_conn, child_conn = Pipe() - finish: bool = False + def __init__(self,name=None): + self.name = name + self.parent_conn, self.child_conn = Pipe() + self.finish: bool = False format_data = { "id": "chatcmpl-96bVnBOOyPFZZxEoTIGbdpFcVEnur", From e4ed012507df894c11b349cdc146477b375d1c4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Sat, 6 Jul 2024 10:37:04 +0800 Subject: [PATCH 10/14] refactor: refactor codes --- metagpt/utils/di_graph_repository.py | 30 ++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/metagpt/utils/di_graph_repository.py b/metagpt/utils/di_graph_repository.py index fee706ece..8fdcda53a 100644 --- a/metagpt/utils/di_graph_repository.py +++ b/metagpt/utils/di_graph_repository.py @@ -23,8 +23,8 @@ from metagpt.utils.graph_repository import SPO, GraphRepository class DiGraphRepository(GraphRepository): """Graph repository based on DiGraph.""" - def __init__(self, name: str, **kwargs): - super().__init__(name=name, **kwargs) + def __init__(self, name: str | Path, **kwargs): + super().__init__(name=str(name), **kwargs) self._repo = networkx.DiGraph() async def insert(self, subject: str, predicate: str, object_: str): @@ -112,8 +112,28 @@ class DiGraphRepository(GraphRepository): async def load(self, pathname: str | Path): """Load a directed graph repository from a JSON file.""" data = await aread(filename=pathname, encoding="utf-8") - m = json.loads(data) + self.load_json(data) + + def load_json(self, val: str): + """ + Loads a JSON-encoded string representing a graph structure and updates + the internal repository (_repo) with the parsed graph. + + Args: + val (str): A JSON-encoded string representing a graph structure. + + Returns: + self: Returns the instance of the class with the updated _repo attribute. + + Raises: + TypeError: If val is not a valid JSON string or cannot be parsed into + a valid graph structure. + """ + if not val: + return self + m = json.loads(val) self._repo = networkx.node_link_graph(m) + return self @staticmethod async def load_from(pathname: str | Path) -> GraphRepository: @@ -126,9 +146,7 @@ class DiGraphRepository(GraphRepository): GraphRepository: A new instance of the graph repository loaded from the specified JSON file. """ pathname = Path(pathname) - name = pathname.with_suffix("").name - root = pathname.parent - graph = DiGraphRepository(name=name, root=root) + graph = DiGraphRepository(name=pathname.stem, root=pathname.parent) if pathname.exists(): await graph.load(pathname=pathname) return graph From 060ffb7e3933e63868f476102dbb3bd386064446 Mon Sep 17 00:00:00 2001 From: Andre Friedel Date: Sun, 7 Jul 2024 20:17:02 -0400 Subject: [PATCH 11/14] Update const.py --- metagpt/const.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/metagpt/const.py b/metagpt/const.py index aec86baa1..f33b46b68 100644 --- a/metagpt/const.py +++ b/metagpt/const.py @@ -1,14 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -""" -@Time : 2023/5/1 11:59 -@Author : alexanderwu -@File : const.py -@Modified By: mashenquan, 2023-11-1. According to Section 2.2.1 and 2.2.2 of RFC 116, added key definitions for - common properties in the Message. -@Modified By: mashenquan, 2023-11-27. Defines file repository paths according to Section 2.2.3.4 of RFC 135. -@Modified By: mashenquan, 2023/12/5. Add directories for code summarization.. -""" + import os from pathlib import Path From 6edf7001d649ad2a0fb86cc87598c62c8079211a Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Mon, 15 Jul 2024 19:52:17 +0800 Subject: [PATCH 12/14] Support configuration of QianFan API base_url to fix #1392 --- metagpt/provider/qianfan_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/metagpt/provider/qianfan_api.py b/metagpt/provider/qianfan_api.py index 3d78c8bfc..04334f305 100644 --- a/metagpt/provider/qianfan_api.py +++ b/metagpt/provider/qianfan_api.py @@ -50,6 +50,9 @@ class QianFanLLM(BaseLLM): else: raise ValueError("Set the `access_key`&`secret_key` or `api_key`&`secret_key` first") + if self.config.base_url: + os.environ.setdefault("QIANFAN_BASE_URL", self.config.base_url) + support_system_pairs = [ ("ERNIE-Bot-4", "completions_pro"), # (model, corresponding-endpoint) ("ERNIE-Bot-8k", "ernie_bot_8k"), From d562c98c40af6ef39654f268b7f011ad4eea6ce1 Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Mon, 15 Jul 2024 21:44:13 +0800 Subject: [PATCH 13/14] Update README according to #1391 --- README.md | 18 ++++++++---------- docs/README_CN.md | 13 ++++++------- docs/README_JA.md | 13 ++++++------- 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 5e485b1e3..3410e08fc 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ ## News 🚀 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. 🚀 Jan. 16, 2024: Our paper [MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework -](https://arxiv.org/abs/2308.00352) accepted for **oral presentation (top 1.2%)** at ICLR 2024, **ranking #1** in the LLM-based Agent category. +](https://openreview.net/forum?id=VtmBAGCN7o) accepted for **oral presentation (top 1.2%)** at ICLR 2024, **ranking #1** in the LLM-based Agent category. 🚀 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. @@ -166,16 +166,15 @@ ## Citation To stay updated with the latest research and development, follow [@MetaGPT_](https://twitter.com/MetaGPT_) on Twitter. -To cite [MetaGPT](https://arxiv.org/abs/2308.00352) or [Data Interpreter](https://arxiv.org/abs/2402.18679) in publications, please use the following BibTeX entries. +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. ```bibtex -@misc{hong2023metagpt, - title={MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework}, - author={Sirui Hong and Mingchen Zhuge and Jonathan Chen and Xiawu Zheng and Yuheng Cheng and Ceyao Zhang and Jinlin Wang 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ürgen Schmidhuber}, - year={2023}, - eprint={2308.00352}, - archivePrefix={arXiv}, - primaryClass={cs.AI} +@inproceedings{hong2024metagpt, + title={Meta{GPT}: Meta Programming for A Multi-Agent Collaborative Framework}, + 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}, + booktitle={The Twelfth International Conference on Learning Representations}, + year={2024}, + url={https://openreview.net/forum?id=VtmBAGCN7o} } @misc{hong2024data, title={Data Interpreter: An LLM Agent For Data Science}, @@ -185,6 +184,5 @@ ## Citation archivePrefix={arXiv}, primaryClass={cs.AI} } - ``` diff --git a/docs/README_CN.md b/docs/README_CN.md index 8aea5e4cb..4e7866d83 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -119,13 +119,12 @@ ## 引用 如果您在研究论文中使用 MetaGPT 或 Data Interpreter,请引用我们的工作: ```bibtex -@misc{hong2023metagpt, - title={MetaGPT: Meta Programming for Multi-Agent Collaborative Framework}, - author={Sirui Hong and Xiawu Zheng and Jonathan Chen 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}, - year={2023}, - eprint={2308.00352}, - archivePrefix={arXiv}, - primaryClass={cs.AI} +@inproceedings{hong2024metagpt, + title={Meta{GPT}: Meta Programming for A Multi-Agent Collaborative Framework}, + 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}, + booktitle={The Twelfth International Conference on Learning Representations}, + year={2024}, + url={https://openreview.net/forum?id=VtmBAGCN7o} } @misc{hong2024data, title={Data Interpreter: An LLM Agent For Data Science}, diff --git a/docs/README_JA.md b/docs/README_JA.md index 91155532b..8981361a8 100644 --- a/docs/README_JA.md +++ b/docs/README_JA.md @@ -298,13 +298,12 @@ ## 引用 研究論文でMetaGPTやData Interpreterを使用する場合は、以下のように当社の作業を引用してください: ```bibtex -@misc{hong2023metagpt, - title={MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework}, - author={Sirui Hong and Mingchen Zhuge and Jonathan Chen and Xiawu Zheng and Yuheng Cheng and Ceyao Zhang and Jinlin Wang 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ürgen Schmidhuber}, - year={2023}, - eprint={2308.00352}, - archivePrefix={arXiv}, - primaryClass={cs.AI} +@inproceedings{hong2024metagpt, + title={Meta{GPT}: Meta Programming for A Multi-Agent Collaborative Framework}, + 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}, + booktitle={The Twelfth International Conference on Learning Representations}, + year={2024}, + url={https://openreview.net/forum?id=VtmBAGCN7o} } @misc{hong2024data, title={Data Interpreter: An LLM Agent For Data Science}, From 20b362353636b2c58f1efb4dc51626f5f243ae89 Mon Sep 17 00:00:00 2001 From: voidking Date: Tue, 16 Jul 2024 15:21:50 +0800 Subject: [PATCH 14/14] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=E5=8D=95?= =?UTF-8?q?=E6=B5=8B=E4=BE=9D=E8=B5=96=E9=97=AE=E9=A2=98(=E5=BF=BD?= =?UTF-8?q?=E7=95=A5=E5=AE=89=E5=8D=93=E5=8D=95=E6=B5=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/unittest.yaml | 2 +- metagpt/configs/llm_config.py | 11 +++---- metagpt/roles/researcher.py | 4 ++- metagpt/utils/stream_pipe.py | 2 +- metagpt/utils/token_counter.py | 5 ++-- setup.py | 52 +++++++++++++++++---------------- 6 files changed, 40 insertions(+), 36 deletions(-) diff --git a/.github/workflows/unittest.yaml b/.github/workflows/unittest.yaml index afa9faba7..dc5ae605b 100644 --- a/.github/workflows/unittest.yaml +++ b/.github/workflows/unittest.yaml @@ -32,7 +32,7 @@ jobs: run: | export ALLOW_OPENAI_API_CALL=0 mkdir -p ~/.metagpt && cp tests/config2.yaml ~/.metagpt/config2.yaml - pytest tests/ --doctest-modules --cov=./metagpt/ --cov-report=xml:cov.xml --cov-report=html:htmlcov --durations=20 | tee unittest.txt + pytest tests/ --ignore=tests/metagpt/environment/android_env --ignore=tests/metagpt/ext/android_assistant --doctest-modules --cov=./metagpt/ --cov-report=xml:cov.xml --cov-report=html:htmlcov --durations=20 | tee unittest.txt - name: Show coverage report run: | coverage report -m diff --git a/metagpt/configs/llm_config.py b/metagpt/configs/llm_config.py index 0284c8993..67fb6afdb 100644 --- a/metagpt/configs/llm_config.py +++ b/metagpt/configs/llm_config.py @@ -10,9 +10,9 @@ from typing import Optional from pydantic import field_validator -from metagpt.const import LLM_API_TIMEOUT +from metagpt.const import CONFIG_ROOT, LLM_API_TIMEOUT, METAGPT_ROOT from metagpt.utils.yaml_model import YamlModel -from metagpt.const import METAGPT_ROOT, CONFIG_ROOT + class LLMType(Enum): OPENAI = "openai" @@ -97,12 +97,13 @@ class LLMConfig(YamlModel): repo_config_path = METAGPT_ROOT / "config/config2.yaml" root_config_path = CONFIG_ROOT / "config2.yaml" if root_config_path.exists(): - raise ValueError( - f"Please set your API key in {root_config_path}. If you also set your config in {repo_config_path}, \nthe former will overwrite the latter. This may cause unexpected result.\n") + raise ValueError( + f"Please set your API key in {root_config_path}. If you also set your config in {repo_config_path}, \nthe former will overwrite the latter. This may cause unexpected result.\n" + ) elif repo_config_path.exists(): raise ValueError(f"Please set your API key in {repo_config_path}") else: - raise ValueError(f"Please set your API key in config2.yaml") + raise ValueError("Please set your API key in config2.yaml") return v @field_validator("timeout") diff --git a/metagpt/roles/researcher.py b/metagpt/roles/researcher.py index 5c6c1d9f4..8be2ba6f4 100644 --- a/metagpt/roles/researcher.py +++ b/metagpt/roles/researcher.py @@ -58,7 +58,9 @@ class Researcher(Role): ) elif isinstance(todo, WebBrowseAndSummarize): links = instruct_content.links - todos = (todo.run(*url, query=query, system_text=research_system_text) for (query, url) in links.items() if url) + todos = ( + todo.run(*url, query=query, system_text=research_system_text) for (query, url) in links.items() if url + ) if self.enable_concurrency: summaries = await asyncio.gather(*todos) else: diff --git a/metagpt/utils/stream_pipe.py b/metagpt/utils/stream_pipe.py index 1cccda7ee..15a1eef1f 100644 --- a/metagpt/utils/stream_pipe.py +++ b/metagpt/utils/stream_pipe.py @@ -11,7 +11,7 @@ from multiprocessing import Pipe class StreamPipe: - def __init__(self,name=None): + def __init__(self, name=None): self.name = name self.parent_conn, self.child_conn = Pipe() self.finish: bool = False diff --git a/metagpt/utils/token_counter.py b/metagpt/utils/token_counter.py index 0d69fca10..fda19cdba 100644 --- a/metagpt/utils/token_counter.py +++ b/metagpt/utils/token_counter.py @@ -226,8 +226,8 @@ TOKEN_MAX = { "claude-2.1": 200000, "claude-3-sonnet-20240229": 200000, "claude-3-opus-20240229": 200000, - "claude-3-5-sonnet-20240620":200000, - "claude-3-haiku-20240307":200000, + "claude-3-5-sonnet-20240620": 200000, + "claude-3-haiku-20240307": 200000, "yi-34b-chat-0205": 4000, "yi-34b-chat-200k": 200000, "yi-large": 16385, @@ -263,7 +263,6 @@ TOKEN_MAX = { "qwen-7b-chat": 32000, "qwen-1.8b-longcontext-chat": 32000, "qwen-1.8b-chat": 8000, - } # For Amazon Bedrock US region diff --git a/setup.py b/setup.py index 6a15d5eda..8ba4c8a72 100644 --- a/setup.py +++ b/setup.py @@ -45,30 +45,6 @@ extras_require = { "llama-index-postprocessor-flag-embedding-reranker==0.1.2", "docx2txt==0.8", ], - "android_assistant": [ - "pyshine==0.0.9", - "opencv-python==4.6.0.66", - "protobuf<3.20,>=3.9.2", - "modelscope", - "tensorflow==2.9.1; os_name == 'linux'", - "tensorflow==2.9.1; os_name == 'win32'", - "tensorflow-macos==2.9; os_name == 'darwin'", - "keras==2.9.0", - "torch", - "torchvision", - "transformers", - "opencv-python", - "matplotlib", - "pycocotools", - "SentencePiece", - "tf_slim", - "tf_keras", - "pyclipper", - "shapely", - "groundingdino-py", - "datasets==2.18.0", - "clip-openai", - ], } extras_require["test"] = [ @@ -85,6 +61,9 @@ extras_require["test"] = [ "aioboto3~=12.4.0", "gradio==3.0.0", "grpcio-status==1.48.2", + "grpcio-tools==1.48.2", + "google-api-core==2.17.1", + "protobuf==3.19.6", "pylint==3.0.3", "pybrowsers", ] @@ -93,7 +72,30 @@ extras_require["pyppeteer"] = [ "pyppeteer>=1.0.2" ] # pyppeteer is unmaintained and there are conflicts with dependencies extras_require["dev"] = (["pylint~=3.0.3", "black~=23.3.0", "isort~=5.12.0", "pre-commit~=3.6.0"],) - +extras_require["android_assistant"] = [ + "pyshine==0.0.9", + "opencv-python==4.6.0.66", + "protobuf<3.20,>=3.9.2", + "modelscope", + "tensorflow==2.9.1; os_name == 'linux'", + "tensorflow==2.9.1; os_name == 'win32'", + "tensorflow-macos==2.9; os_name == 'darwin'", + "keras==2.9.0", + "torch", + "torchvision", + "transformers", + "opencv-python", + "matplotlib", + "pycocotools", + "SentencePiece", + "tf_slim", + "tf_keras", + "pyclipper", + "shapely", + "groundingdino-py", + "datasets==2.18.0", + "clip-openai", +] setup( name="metagpt",