- 新增 ai-core 目录,包含代码解析核心服务 - 添加 proto 定义、parser、service 模块 - 添加启动脚本和依赖配置 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
import argparse
|
|
import logging
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, os.path.dirname(__file__))
|
|
|
|
from service.grpc_server import serve
|
|
|
|
DEFAULT_PORT = 50051
|
|
DEFAULT_MAX_WORKERS = 10
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(
|
|
description="Document Parser gRPC Server (MarkItDown)",
|
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
)
|
|
parser.add_argument(
|
|
"--port",
|
|
type=int,
|
|
default=DEFAULT_PORT,
|
|
help="Port to listen on",
|
|
)
|
|
parser.add_argument(
|
|
"--max-workers",
|
|
type=int,
|
|
default=DEFAULT_MAX_WORKERS,
|
|
help="Maximum number of worker threads",
|
|
)
|
|
parser.add_argument(
|
|
"--log-level",
|
|
type=str,
|
|
default="INFO",
|
|
choices=["DEBUG", "INFO", "WARNING", "ERROR"],
|
|
help="Log level",
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
logging.basicConfig(
|
|
level=getattr(logging, args.log_level),
|
|
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
)
|
|
|
|
logger = logging.getLogger(__name__)
|
|
logger.info("Starting Document Parser gRPC Server (MarkItDown)")
|
|
logger.info("Port: %d", args.port)
|
|
logger.info("Max workers: %d", args.max_workers)
|
|
|
|
try:
|
|
serve(port=args.port, max_workers=args.max_workers)
|
|
except KeyboardInterrupt:
|
|
logger.info("Server shutdown requested")
|
|
except Exception as e:
|
|
logger.error("Server error: %s", str(e), exc_info=True)
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|