Skip to content

Commit cfa3804

Browse files
authored
Merge pull request PaddlePaddle#20 from qingzhong1/eb8
add logging
2 parents 6f5460d + a998294 commit cfa3804

File tree

4 files changed

+40
-26
lines changed

4 files changed

+40
-26
lines changed

erniebot-agent/applications/erniebot_researcher/sample_report_example.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
parser.add_argument(
6868
"--embedding_type",
6969
type=str,
70-
default="open_embedding",
71-
help="['open_embedding','baizhong','ernie_embedding']",
70+
default="openai_embedding",
71+
help="['openai_embedding','baizhong','ernie_embedding']",
7272
)
7373

7474
args = parser.parse_args()
@@ -77,7 +77,7 @@
7777

7878

7979
def get_retrievers():
80-
if args.embedding_type == "open_embedding":
80+
if args.embedding_type == "openai_embedding":
8181
embeddings = OpenAIEmbeddings(deployment="text-embedding-ada")
8282
paper_db = build_index(faiss_name=args.index_name_full_text, embeddings=embeddings)
8383
abstract_db = build_index(faiss_name=args.index_name_abstract, embeddings=embeddings)

erniebot-agent/applications/erniebot_researcher/tools/utils.py

+21
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
from erniebot_agent.agents.callback import LoggingHandler
1818
from erniebot_agent.agents.schema import ToolResponse
1919
from erniebot_agent.tools.base import BaseTool
20+
from erniebot_agent.utils import config_from_environ as C
2021
from erniebot_agent.utils.json import to_pretty_json
22+
from erniebot_agent.utils.logging import ColorFormatter, set_role_color
2123
from erniebot_agent.utils.output_style import ColoredContent
2224

2325
default_logger = logging.getLogger(__name__)
@@ -216,3 +218,22 @@ def parse_json(self, json_str, start_indicator: str = "{", end_indicator: str =
216218
corrected_data = json_str[start_idx : end_idx + 1]
217219
response = json.loads(corrected_data)
218220
return response
221+
222+
223+
def setup_logging(log_file_path: str):
224+
logger = logging.getLogger("generate_report")
225+
verbosity = C.get_logging_level()
226+
if verbosity:
227+
numeric_level = getattr(logging, verbosity.upper(), None)
228+
if not isinstance(numeric_level, int):
229+
raise ValueError(f"Invalid logging level: {verbosity}")
230+
logger.setLevel(numeric_level)
231+
logger.propagate = False
232+
console_handler = logging.StreamHandler()
233+
console_handler.setFormatter(ColorFormatter("%(levelname)s - %(message)s"))
234+
logger.addHandler(console_handler)
235+
set_role_color()
236+
file_handler = logging.FileHandler(log_file_path)
237+
file_handler.setFormatter(ColorFormatter("%(levelname)s - %(message)s"))
238+
logger.addHandler(file_handler)
239+
return logger

erniebot-agent/applications/erniebot_researcher/ui.py

+15-17
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@
1818
from tools.semantic_citation_tool import SemanticCitationTool
1919
from tools.summarization_tool import TextSummarizationTool
2020
from tools.task_planning_tool import TaskPlanningTool
21-
from tools.utils import FaissSearch, ReportCallbackHandler, build_index
21+
from tools.utils import FaissSearch, ReportCallbackHandler, build_index, setup_logging
2222

2323
from erniebot_agent.chat_models import ERNIEBot
2424
from erniebot_agent.extensions.langchain.embeddings import ErnieEmbeddings
2525
from erniebot_agent.memory import SystemMessage
2626
from erniebot_agent.retrieval import BaizhongSearch
27-
from erniebot_agent.utils.logging import setup_logging
2827

2928
parser = argparse.ArgumentParser()
3029
parser.add_argument("--api_type", type=str, default="aistudio")
@@ -79,10 +78,10 @@
7978
args = parser.parse_args()
8079
os.environ["api_type"] = args.api_type
8180
access_token = os.environ.get("EB_AGENT_ACCESS_TOKEN", None)
82-
os.environ["EB_AGENT_LOGGING_FILE"] = args.log_path
81+
# os.environ["EB_AGENT_LOGGING_FILE"] = args.log_path
8382
# sh = logging.StreamHandler()
8483
# logging.basicConfig(filename=args.log_path, level=logging.INFO)
85-
logger = setup_logging(use_fileformatter=False)
84+
logger = setup_logging(args.log_path)
8685

8786

8887
def get_logs(path=args.log_path):
@@ -148,8 +147,8 @@ def get_agents(retriever_sets, tool_sets, llm, llm_long, dir_path, target_path):
148147
system_message=SystemMessage("你是一个报告生成助手。你可以根据用户的指定内容生成一份报告手稿"),
149148
dir_path=dir_path,
150149
report_type=args.report_type,
151-
retriever_abstract_tool=retriever_sets["abstract"],
152-
retriever_tool=retriever_sets["full_text"],
150+
retriever_abstract_db=retriever_sets["abstract"],
151+
retriever_fulltext_db=retriever_sets["full_text"],
153152
intent_detection_tool=tool_sets["intent_detection"],
154153
task_planning_tool=tool_sets["task_planning"],
155154
report_writing_tool=tool_sets["report_writing"],
@@ -176,22 +175,20 @@ def get_agents(retriever_sets, tool_sets, llm, llm_long, dir_path, target_path):
176175
name="polish",
177176
llm=llm,
178177
llm_long=llm_long,
179-
faiss_name_citation=args.index_name_citation,
178+
citation_index_name=args.index_name_citation,
180179
embeddings=retriever_sets["embeddings"],
181180
dir_path=target_path,
182181
report_type=args.report_type,
183182
citation_tool=tool_sets["semantic_citation"],
184183
callbacks=ReportCallbackHandler(logger=logger),
185184
)
186-
team_actor = ResearchTeam(
187-
ranker_actor=ranker_actor,
188-
research_actor=research_actor,
189-
editor_actor=editor_actor,
190-
reviser_actor=reviser_actor,
191-
polish_actor=polish_actor,
192-
use_reflection=True,
193-
)
194-
return team_actor
185+
return {
186+
"research_actor": research_actor,
187+
"editor_actor": editor_actor,
188+
"reviser_actor": reviser_actor,
189+
"ranker_actor": ranker_actor,
190+
"polish_actor": polish_actor,
191+
}
195192

196193

197194
def generate_report(query, history=[]):
@@ -203,7 +200,8 @@ def generate_report(query, history=[]):
203200
llm_long = ERNIEBot(model="ernie-longtext")
204201
retriever_sets = get_retrievers()
205202
tool_sets = get_tools(llm, llm_long)
206-
team_actor = get_agents(retriever_sets, tool_sets, llm, llm_long, dir_path, target_path)
203+
agent_sets = get_agents(retriever_sets, tool_sets, llm, llm_long, dir_path, target_path)
204+
team_actor = ResearchTeam(**agent_sets, use_reflection=True)
207205
report, path = asyncio.run(team_actor.run(query, args.iterations))
208206
return report, path
209207

erniebot-agent/src/erniebot_agent/utils/logging.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ def setup_logging(
158158
use_standard_format: bool = True,
159159
use_file_handler: bool = False,
160160
max_log_length: int = 100,
161-
use_fileformatter: bool = True,
162161
):
163162
"""Configures logging for the ERNIE Bot Agent library.
164163
@@ -195,11 +194,7 @@ def setup_logging(
195194
log_file_path = "erniebot-agent.log"
196195
if use_file_handler or log_file_path:
197196
file_handler = logging.FileHandler(log_file_path)
198-
if use_fileformatter:
199-
file_handler.setFormatter(FileFormatter("%(message)s"))
200-
else:
201-
file_handler.setFormatter(ColorFormatter("%(levelname)s - %(message)s"))
197+
file_handler.setFormatter(FileFormatter("%(message)s"))
202198
logger.addHandler(file_handler)
203199

204200
ColoredContent.set_global_max_length(max_log_length)
205-
return logger

0 commit comments

Comments
 (0)