From 98e26e6a5b0e33a3c3e34aa600ce549e09d424a9 Mon Sep 17 00:00:00 2001 From: chentianrui Date: Tue, 24 Jun 2025 14:45:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=B8=A4=E6=AC=A1=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..6eb75be --- /dev/null +++ b/main.py @@ -0,0 +1,85 @@ +import logging +import asyncio + +logging.basicConfig( + level=logging.DEBUG, # 生产环境可改为 INFO 或 WARNING + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", + handlers=[logging.FileHandler("BoweiAgent.log", encoding="utf-8"), logging.StreamHandler()], +) + +logger = logging.getLogger("BoweiAgent") + +import logging + +# 获取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并设置级别 +neo4j_logger = logging.getLogger("neo4j") +neo4j_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别 +# 可选:禁用传播(防止被根logger处理) +neo4j_logger.propagate = False + +# 获取logger并设置级别 +httpcore_logger = logging.getLogger("httpcore") +httpcore_logger.setLevel(logging.WARNING) # 设置httpcore及其子模块的级别 +# 可选:禁用传播(防止被根logger处理) +httpcore_logger.propagate = False + +from src.config import Config +from src.document_loader import load_file +from src.llm_client import LLMClient +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 + + +def main(): + config = Config() + + business_structure = load_file(config.business_object_structure_path) + bowei_api_docs = load_file(config.bowei_api_docs_path) + + llm_client = LLMClient(config.openai) + + prompt_manager = PromptManager() + + # code_executor = CodeExecutor(prompt_manager.prompts, llm_client) + + neo4j_conf = config.neo4j_conf + embedding_conf = config.embedding + + embedding_client = EmbeddingClient(embedding_conf) + + knowledge_retriever = Neo4jRawRetriever(neo4j_conf) + + code_executor = CodeExecutor(prompt_manager.prompts, llm_client, neo4j_driver=knowledge_retriever.driver) + + dialog_manager = DialogManager( + llm_client, + business_structure, + bowei_api_docs, + code_executor, + knowledge_retriever, + prompt_manager, + ) + + pre_input_question = "查找名称中包含“工程”的项目划分项,并返回其人工费乘以1000的值。" + + asyncio.run(dialog_manager.run_async(pre_input=pre_input_question)) + + +if __name__ == "__main__": + main()