mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-23 15:48:11 +02:00
feat: Action Node + exclude parameter
refactor: awrite feat: +unit test
This commit is contained in:
parent
0adabfe53f
commit
16f0a0fd06
14 changed files with 145 additions and 78 deletions
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
@Time : 2023/7/1 22:50
|
||||
@Author : alexanderwu
|
||||
@File : test_azure_tts.py
|
||||
"""
|
||||
from metagpt.tools.azure_tts import AzureTTS
|
||||
|
||||
|
||||
def test_azure_tts():
|
||||
azure_tts = AzureTTS()
|
||||
azure_tts.synthesize_speech("zh-CN", "zh-CN-YunxiNeural", "Boy", "你好,我是卡卡", "output.wav")
|
||||
|
||||
# 运行需要先配置 SUBSCRIPTION_KEY
|
||||
# TODO: 这里如果要检验,还要额外加上对应的asr,才能确保前后生成是接近一致的,但现在还没有
|
||||
22
tests/metagpt/actions/test_research.py
Normal file
22
tests/metagpt/actions/test_research.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
@Time : 2023/12/28
|
||||
@Author : mashenquan
|
||||
@File : test_research.py
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from metagpt.actions import CollectLinks
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_action():
|
||||
action = CollectLinks()
|
||||
result = await action.run(topic="baidu")
|
||||
assert result
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
51
tests/metagpt/actions/test_talk_action.py
Normal file
51
tests/metagpt/actions/test_talk_action.py
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
@Time : 2023/12/28
|
||||
@Author : mashenquan
|
||||
@File : test_talk_action.py
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from metagpt.actions.talk_action import TalkAction
|
||||
from metagpt.config import CONFIG
|
||||
from metagpt.schema import Message
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
("agent_description", "language", "context", "knowledge", "history_summary"),
|
||||
[
|
||||
(
|
||||
"mathematician",
|
||||
"English",
|
||||
"How old is Susie?",
|
||||
"Susie is a girl born in 2011/11/14. Today is 2023/12/3",
|
||||
"balabala... (useless words)",
|
||||
),
|
||||
(
|
||||
"mathematician",
|
||||
"Chinese",
|
||||
"Does Susie have an apple?",
|
||||
"Susie is a girl born in 2011/11/14. Today is 2023/12/3",
|
||||
"Susie had an apple, and she ate it right now",
|
||||
),
|
||||
],
|
||||
)
|
||||
async def test_prompt(agent_description, language, context, knowledge, history_summary):
|
||||
# Prerequisites
|
||||
CONFIG.agent_description = agent_description
|
||||
CONFIG.language = language
|
||||
|
||||
action = TalkAction(context=context, knowledge=knowledge, history_summary=history_summary)
|
||||
assert "{" not in action.prompt
|
||||
assert "{" not in action.prompt_gpt4
|
||||
|
||||
rsp = await action.run()
|
||||
assert rsp
|
||||
assert isinstance(rsp, Message)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
|
|
@ -12,7 +12,6 @@ import asyncio
|
|||
from pydantic import BaseModel
|
||||
|
||||
from metagpt.learn.text_to_embedding import text_to_embedding
|
||||
from metagpt.tools.openai_text_to_embedding import ResultEmbedding
|
||||
|
||||
|
||||
async def mock_text_to_embedding():
|
||||
|
|
@ -23,8 +22,7 @@ async def mock_text_to_embedding():
|
|||
|
||||
for i in inputs:
|
||||
seed = Input(**i)
|
||||
data = await text_to_embedding(seed.input)
|
||||
v = ResultEmbedding(**data)
|
||||
v = await text_to_embedding(seed.input)
|
||||
assert len(v.data) > 0
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
import importlib
|
||||
import os
|
||||
import platform
|
||||
import uuid
|
||||
from pathlib import Path
|
||||
from typing import Any, Set
|
||||
|
||||
|
|
@ -25,6 +26,8 @@ from metagpt.utils.common import (
|
|||
OutputParser,
|
||||
any_to_str,
|
||||
any_to_str_set,
|
||||
aread,
|
||||
awrite,
|
||||
check_cmd_exists,
|
||||
concat_namespace,
|
||||
import_class_inst,
|
||||
|
|
@ -170,6 +173,14 @@ class TestGetProjectRoot:
|
|||
async def test_read_file_block(self):
|
||||
assert await read_file_block(filename=__file__, lineno=6, end_lineno=6) == "@File : test_common.py\n"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_read_write(self):
|
||||
pathname = Path(__file__).parent / uuid.uuid4().hex / "test.tmp"
|
||||
await awrite(pathname, "ABC")
|
||||
data = await aread(pathname)
|
||||
assert data == "ABC"
|
||||
pathname.unlink(missing_ok=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue