mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-07-20 16:51:07 +02:00
feat: merge geekan:dev
This commit is contained in:
commit
dadd09bfb5
105 changed files with 5201 additions and 350 deletions
|
|
@ -8,12 +8,12 @@
|
|||
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic import Field, model_validator
|
||||
|
||||
from metagpt.actions import SearchAndSummarize, UserRequirement
|
||||
from metagpt.document_store.base_store import BaseStore
|
||||
from metagpt.roles import Role
|
||||
from metagpt.tools import SearchEngineType
|
||||
from metagpt.tools.search_engine import SearchEngine
|
||||
|
||||
|
||||
class Sales(Role):
|
||||
|
|
@ -29,14 +29,13 @@ class Sales(Role):
|
|||
|
||||
store: Optional[BaseStore] = Field(default=None, exclude=True)
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self._set_store(self.store)
|
||||
|
||||
def _set_store(self, store):
|
||||
if store:
|
||||
action = SearchAndSummarize(name="", engine=SearchEngineType.CUSTOM_ENGINE, search_func=store.asearch)
|
||||
@model_validator(mode="after")
|
||||
def validate_stroe(self):
|
||||
if self.store:
|
||||
search_engine = SearchEngine.from_search_func(search_func=self.store.asearch, proxy=self.config.proxy)
|
||||
action = SearchAndSummarize(search_engine=search_engine, context=self.context)
|
||||
else:
|
||||
action = SearchAndSummarize()
|
||||
action = SearchAndSummarize
|
||||
self.set_actions([action])
|
||||
self._watch([UserRequirement])
|
||||
return self
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@
|
|||
the `cause_by` value in the `Message` to a string to support the new message distribution feature.
|
||||
"""
|
||||
|
||||
from pydantic import Field
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field, model_validator
|
||||
|
||||
from metagpt.actions import SearchAndSummarize
|
||||
from metagpt.actions.action_node import ActionNode
|
||||
|
|
@ -16,7 +18,7 @@ from metagpt.actions.action_output import ActionOutput
|
|||
from metagpt.logs import logger
|
||||
from metagpt.roles import Role
|
||||
from metagpt.schema import Message
|
||||
from metagpt.tools import SearchEngineType
|
||||
from metagpt.tools.search_engine import SearchEngine
|
||||
|
||||
|
||||
class Searcher(Role):
|
||||
|
|
@ -28,33 +30,22 @@ class Searcher(Role):
|
|||
profile (str): Role profile.
|
||||
goal (str): Goal of the searcher.
|
||||
constraints (str): Constraints or limitations for the searcher.
|
||||
engine (SearchEngineType): The type of search engine to use.
|
||||
search_engine (SearchEngine): The search engine to use.
|
||||
"""
|
||||
|
||||
name: str = Field(default="Alice")
|
||||
profile: str = Field(default="Smart Assistant")
|
||||
goal: str = "Provide search services for users"
|
||||
constraints: str = "Answer is rich and complete"
|
||||
engine: SearchEngineType = SearchEngineType.SERPAPI_GOOGLE
|
||||
search_engine: Optional[SearchEngine] = None
|
||||
|
||||
def __init__(self, **kwargs) -> None:
|
||||
"""
|
||||
Initializes the Searcher role with given attributes.
|
||||
|
||||
Args:
|
||||
name (str): Name of the searcher.
|
||||
profile (str): Role profile.
|
||||
goal (str): Goal of the searcher.
|
||||
constraints (str): Constraints or limitations for the searcher.
|
||||
engine (SearchEngineType): The type of search engine to use.
|
||||
"""
|
||||
super().__init__(**kwargs)
|
||||
self.set_actions([SearchAndSummarize(engine=self.engine)])
|
||||
|
||||
def set_search_func(self, search_func):
|
||||
"""Sets a custom search function for the searcher."""
|
||||
action = SearchAndSummarize(name="", engine=SearchEngineType.CUSTOM_ENGINE, search_func=search_func)
|
||||
self.set_actions([action])
|
||||
@model_validator(mode="after")
|
||||
def post_root(self):
|
||||
if self.search_engine:
|
||||
self.set_actions([SearchAndSummarize(search_engine=self.search_engine, context=self.context)])
|
||||
else:
|
||||
self.set_actions([SearchAndSummarize])
|
||||
return self
|
||||
|
||||
async def _act_sp(self) -> Message:
|
||||
"""Performs the search action in a single process."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue