更新最新代码
This commit is contained in:
@@ -1,64 +1,53 @@
|
||||
# main.py
|
||||
|
||||
import os
|
||||
import logging
|
||||
from datetime import datetime
|
||||
import logging
|
||||
import os
|
||||
import asyncio
|
||||
import os
|
||||
|
||||
current_file = os.path.splitext(os.path.basename(__file__))[0]
|
||||
now_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
||||
log_filename = f"{current_file}_{now_str}.log"
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.DEBUG, # 生产环境可改为 INFO 或 WARNING
|
||||
level=logging.DEBUG,
|
||||
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
||||
handlers=[logging.FileHandler("BoweiAgent.log", encoding="utf-8"), logging.StreamHandler()],
|
||||
handlers=[
|
||||
logging.FileHandler(os.path.join("logs", log_filename), encoding="utf-8"),
|
||||
logging.StreamHandler()
|
||||
],
|
||||
)
|
||||
|
||||
logger = logging.getLogger("BoweiAgent")
|
||||
logger = logging.getLogger(current_file)
|
||||
|
||||
import logging
|
||||
def setup_logger(logger_name):
|
||||
"""
|
||||
设置指定名称的logger,将其级别设置为WARNING并禁用传播
|
||||
:param logger_name: logger的名称
|
||||
"""
|
||||
logger = logging.getLogger(logger_name)
|
||||
logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
logger.propagate = False # 可选:禁用传播(防止被根logger处理)
|
||||
return logger
|
||||
|
||||
# 获取logger并设置级别
|
||||
httpx_logger = logging.getLogger("httpx")
|
||||
httpx_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
# 可选:禁用传播(防止被根logger处理)
|
||||
httpx_logger.propagate = False
|
||||
|
||||
# 获取logger并设置级别
|
||||
openai_logger = logging.getLogger("openai")
|
||||
openai_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
# 可选:禁用传播(防止被根logger处理)
|
||||
openai_logger.propagate = False
|
||||
|
||||
# 获取logger并设置级别
|
||||
langsmith_logger = logging.getLogger("langsmith.client")
|
||||
langsmith_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
# 可选:禁用传播(防止被根logger处理)
|
||||
langsmith_logger.propagate = False
|
||||
|
||||
# 获取logger并设置级别
|
||||
neo4j_logger = logging.getLogger("neo4j")
|
||||
neo4j_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
# 可选:禁用传播(防止被根logger处理)
|
||||
neo4j_logger.propagate = False
|
||||
|
||||
# 获取logger并设置级别
|
||||
urllib3_logger = logging.getLogger("urllib3")
|
||||
urllib3_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
# 可选:禁用传播(防止被根logger处理)
|
||||
urllib3_logger.propagate = False
|
||||
|
||||
# 获取logger并设置级别
|
||||
httpcore_logger = logging.getLogger("httpcore")
|
||||
httpcore_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别
|
||||
# 可选:禁用传播(防止被根logger处理)
|
||||
httpcore_logger.propagate = False
|
||||
logger_names = ["httpx", "openai", "langsmith.client", "neo4j", "urllib3", "httpcore"]
|
||||
for name in logger_names:
|
||||
setup_logger(name)
|
||||
|
||||
from src.config import Config
|
||||
from src.document_loader import load_file
|
||||
from src.llm_client import LLMClient
|
||||
from src.multi_llm_client import MultiAPIKeyChatOpenAI
|
||||
from src.prompt_manager import PromptManager
|
||||
from src.code_executor import CodeExecutor
|
||||
from src.dialog_manager import DialogManager
|
||||
from src.neo4j_raw_retriever import Neo4jRawRetriever
|
||||
from src.embedding_client import EmbeddingClient
|
||||
|
||||
from project import ProjectBuilder, ProjectToolkit
|
||||
from project_implementation import ProjectToolkitNeo4j
|
||||
from src.project import ProjectBuilder, ProjectToolkit
|
||||
from src.project_implementation import ProjectToolkitNeo4j
|
||||
|
||||
|
||||
|
||||
@@ -73,8 +62,8 @@ def main():
|
||||
business_structure = load_file(config.business_object_structure_path)
|
||||
bowei_api_docs = load_file(config.bowei_api_docs_path)
|
||||
|
||||
llm_client = LLMClient(config.openai)
|
||||
llm_client_coder = LLMClient(config.openai_coder)
|
||||
llm_client = MultiAPIKeyChatOpenAI(config.openai)
|
||||
llm_client_coder = MultiAPIKeyChatOpenAI(config.openai_coder)
|
||||
prompt_manager = PromptManager()
|
||||
|
||||
neo4j_conf = config.neo4j_conf
|
||||
@@ -102,7 +91,7 @@ def main():
|
||||
pre_input_question = '查找名称中包含"工程"的项目划分项,并返回单位。'
|
||||
|
||||
try:
|
||||
asyncio.run(dialog_manager.run_async(pre_input=pre_input_question))
|
||||
asyncio.run(dialog_manager.run_async(pre_input=pre_input_question))
|
||||
finally:
|
||||
|
||||
neo4j_driver.close()
|
||||
|
||||
Reference in New Issue
Block a user