74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
|
|
"""MinerU File转Markdown服务的命令行界面。"""
|
|||
|
|
|
|||
|
|
import sys
|
|||
|
|
import argparse
|
|||
|
|
|
|||
|
|
from . import config
|
|||
|
|
from . import server
|
|||
|
|
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
"""命令行界面的入口点。"""
|
|||
|
|
parser = argparse.ArgumentParser(description="MinerU File转Markdown转换服务")
|
|||
|
|
|
|||
|
|
parser.add_argument(
|
|||
|
|
"--output-dir", "-o", type=str, help="保存转换后文件的目录 (默认: ./downloads)"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
parser.add_argument(
|
|||
|
|
"--transport",
|
|||
|
|
"-t",
|
|||
|
|
type=str,
|
|||
|
|
default="stdio",
|
|||
|
|
help="协议类型 (默认: stdio,可选: sse,streamable-http)",
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
parser.add_argument(
|
|||
|
|
"--port",
|
|||
|
|
"-p",
|
|||
|
|
type=int,
|
|||
|
|
default=8001,
|
|||
|
|
help="服务器端口 (默认: 8001, 仅在使用HTTP协议时有效)",
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
parser.add_argument(
|
|||
|
|
"--host",
|
|||
|
|
type=str,
|
|||
|
|
default="127.0.0.1",
|
|||
|
|
help="服务器主机地址 (默认: 127.0.0.1, 仅在使用HTTP协议时有效)",
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
args = parser.parse_args()
|
|||
|
|
|
|||
|
|
# 检查参数有效性
|
|||
|
|
if args.transport == "stdio" and (args.host != "127.0.0.1" or args.port != 8001):
|
|||
|
|
print("警告: 在STDIO模式下,--host和--port参数将被忽略", file=sys.stderr)
|
|||
|
|
|
|||
|
|
# 验证API密钥 - 移动到这里,以便 --help 等参数可以无密钥运行
|
|||
|
|
if not config.MINERU_API_KEY:
|
|||
|
|
print(
|
|||
|
|
"错误: 启动服务需要 MINERU_API_KEY 环境变量。"
|
|||
|
|
"\\n请检查是否已设置该环境变量,例如:"
|
|||
|
|
"\\n export MINERU_API_KEY='your_actual_api_key'"
|
|||
|
|
"\\n或者,确保在项目根目录的 `.env` 文件中定义了该变量。"
|
|||
|
|
"\\n\\n您可以使用 --help 查看可用的命令行选项。",
|
|||
|
|
file=sys.stderr, # 将错误消息输出到 stderr
|
|||
|
|
)
|
|||
|
|
sys.exit(1)
|
|||
|
|
|
|||
|
|
# 如果提供了输出目录,则进行设置
|
|||
|
|
if args.output_dir:
|
|||
|
|
server.set_output_dir(args.output_dir)
|
|||
|
|
|
|||
|
|
# 打印配置信息
|
|||
|
|
print("MinerU File转Markdown转换服务启动...")
|
|||
|
|
if args.transport in ["sse", "streamable-http"]:
|
|||
|
|
print(f"服务器地址: {args.host}:{args.port}")
|
|||
|
|
print("按 Ctrl+C 可以退出服务")
|
|||
|
|
|
|||
|
|
server.run_server(mode=args.transport, port=args.port, host=args.host)
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
main()
|