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()
|