feat: merge main

This commit is contained in:
莘权 马 2023-09-06 16:31:11 +08:00
commit eac30b8551
6 changed files with 16 additions and 16 deletions

View file

@ -40,9 +40,8 @@ class ArgumentsParingAction(Action):
async def run(self, *args, **kwargs) -> ActionOutput:
prompt = self.prompt
logger.info(prompt)
rsp = await self.llm.aask(msg=prompt, system_msgs=[])
logger.info(rsp)
logger.debug(f"SKILL:{prompt}\n, RESULT:{rsp}")
self.args = ArgumentsParingAction.parse_arguments(skill_name=self.skill.name, txt=rsp)
self.rsp = ActionOutput(content=rsp)
return self.rsp

View file

@ -44,11 +44,11 @@ class TalkAction(Action):
f"Answer the following questions strictly in {language}, and the answers must follow the Markdown format.\n "
f"{self._talk}"
)
logger.info(f"PROMPT: {prompt}")
logger.debug(f"PROMPT: {prompt}")
return prompt
@property
def prompt_bad(self):
def prompt_gpt4(self):
kvs = {
"{role}": CONFIG.agent_description or "",
"{history}": self._history_summary or "",
@ -64,9 +64,8 @@ class TalkAction(Action):
async def run(self, *args, **kwargs) -> ActionOutput:
prompt = self.prompt
logger.info(prompt)
rsp = await self.llm.aask(msg=prompt, system_msgs=[])
logger.info(rsp)
logger.debug(f"PROMPT:{prompt}\nRESULT:{rsp}\n")
self._rsp = ActionOutput(content=rsp)
return self._rsp

View file

@ -20,9 +20,10 @@ from metagpt.logs import logger
class FaissStore(LocalStore):
def __init__(self, raw_data: Path, cache_dir=None, meta_col="source", content_col="output"):
def __init__(self, raw_data: Path, cache_dir=None, meta_col="source", content_col="output", embedding_conf=None):
self.meta_col = meta_col
self.content_col = content_col
self.embedding_conf = embedding_conf or {}
super().__init__(raw_data, cache_dir)
def _load(self) -> Optional["FaissStore"]:
@ -37,7 +38,7 @@ class FaissStore(LocalStore):
return store
def _write(self, docs, metadatas):
store = FAISS.from_texts(docs, OpenAIEmbeddings(openai_api_version="2020-11-07"), metadatas=metadatas)
store = FAISS.from_texts(docs, OpenAIEmbeddings(openai_api_version="2020-11-07", **self.embedding_conf), metadatas=metadatas)
return store
def persist(self):

View file

@ -72,7 +72,7 @@ class BrainMemory(pydantic.BaseModel):
if not redis.is_valid() or not redis_key:
return BrainMemory()
v = await redis.get(key=redis_key)
logger.info(f"REDIS GET {redis_key} {v}")
logger.debug(f"REDIS GET {redis_key} {v}")
if v:
data = json.loads(v)
bm = BrainMemory(**data)
@ -86,7 +86,7 @@ class BrainMemory(pydantic.BaseModel):
return False
v = self.json()
await redis.set(key=redis_key, data=v, timeout_sec=timeout_sec)
logger.info(f"REDIS SET {redis_key} {v}")
logger.debug(f"REDIS SET {redis_key} {v}")
self.is_dirty = False
@staticmethod

View file

@ -257,9 +257,9 @@ class OpenAIGPTAPI(BaseGPTAPI, RateLimiter):
else:
command = f"Translate the above content into a summary of less than {max_words} words."
msg = text + "\n\n" + command
logger.info(f"summary ask:{msg}")
logger.debug(f"summary ask:{msg}")
response = await self.aask(msg=msg, system_msgs=[])
logger.info(f"summary rsp: {response}")
logger.debug(f"summary rsp: {response}")
return response
async def get_context_title(self, text: str, max_words=5) -> str:
@ -270,9 +270,9 @@ class OpenAIGPTAPI(BaseGPTAPI, RateLimiter):
command = f"Translate the above summary into a {language} title of less than {max_words} words."
summaries = [summary, command]
msg = "\n".join(summaries)
logger.info(f"title ask:{msg}")
logger.debug(f"title ask:{msg}")
response = await self.aask(msg=msg, system_msgs=[])
logger.info(f"title rsp: {response}")
logger.debug(f"title rsp: {response}")
return response
async def is_related(self, text1, text2):
@ -282,7 +282,7 @@ class OpenAIGPTAPI(BaseGPTAPI, RateLimiter):
result = True if "TRUE" in rsp else False
p2 = text2.replace("\n", "")
p1 = text1.replace("\n", "")
logger.info(f"IS_RELATED:\nParagraph 1: {p2}\nParagraph 2: {p1}\nRESULT: {result}")
logger.info(f"IS_RELATED:\nParagraph 1: {p2}\nParagraph 2: {p1}\nRESULT: {result}\n")
return result
async def rewrite(self, sentence: str, context: str):
@ -291,7 +291,7 @@ class OpenAIGPTAPI(BaseGPTAPI, RateLimiter):
# )
command = f"{context}\n\nExtract relevant information from every preceding sentence and use it to succinctly supplement or rewrite the following text in brief and clear:\n{sentence}"
rsp = await self.aask(msg=command, system_msgs=[])
logger.info(f"REWRITE:\nCommand: {command}\nRESULT: {rsp}")
logger.info(f"REWRITE:\nCommand: {command}\nRESULT: {rsp}\n")
return rsp
@staticmethod

View file

@ -93,6 +93,7 @@ class Assistant(Role):
async def talk_handler(self, text, **kwargs) -> bool:
history = self.memory.history_text
text = kwargs.get("last_talk") or text
action = TalkAction(
talk=text, knowledge=self.memory.get_knowledge(), history_summary=history, llm=self._llm, **kwargs
)