diff --git a/API_zh-CN.md b/API_zh-CN.md new file mode 100644 index 00000000..e69de29b diff --git a/llm_web_kit/api/models/response.py b/llm_web_kit/api/models/response.py index 99fbf98f..1ec6f491 100644 --- a/llm_web_kit/api/models/response.py +++ b/llm_web_kit/api/models/response.py @@ -45,6 +45,7 @@ class HTMLParseData(BaseModel): llm_response: Dict[str, int] = Field(default_factory=dict, description="LLM 项目打标结果") typical_main_html: Optional[str] = Field(None, description="解析得到的主体 HTML") html_target_list: List[Any] = Field(default_factory=list, description="正文候选/目标列表") + markdown: Optional[str] = Field(None, description="从正文HTML提取的Markdown格式内容") class HTMLParseResponse(BaseResponse): @@ -68,7 +69,8 @@ class HTMLParseResponse(BaseResponse): "item_id 9": 1 }, "typical_main_html": "", - "html_target_list": [] + "html_target_list": [], + "markdown": "# Hello World" }, "metadata": None } diff --git a/llm_web_kit/api/run_server.py b/llm_web_kit/api/run_server.py index 739b14fa..81039a12 100644 --- a/llm_web_kit/api/run_server.py +++ b/llm_web_kit/api/run_server.py @@ -1,9 +1,10 @@ #!/usr/bin/env python3 """API 服务器启动脚本. -用于启动 LLM Web Kit API 服务。 +用于启动 LLM Web Kit API 服务。 支持通过命令行参数 `--port` 指定端口号。 """ +import argparse import os import sys @@ -16,14 +17,29 @@ if __name__ == "__main__": settings = get_settings() + + # 创建参数解析器 + parser = argparse.ArgumentParser(description="启动 LLM Web Kit API 服务器。") + parser.add_argument( + "--port", + type=int, + default=settings.port, + help=f"指定服务器运行的端口号 (默认: {settings.port},从配置中读取)。" + ) + args = parser.parse_args() + + # 使用命令行参数指定的端口或配置中的默认端口 + port_to_use = args.port + print("启动 LLM Web Kit API 服务器...") - print(f"API 文档地址: http://{settings.host}:{settings.port}/docs") - print(f"ReDoc 文档地址: http://{settings.host}:{settings.port}/redoc") + print(f"服务将运行在: http://{settings.host}:{port_to_use}") + print(f"API 文档地址: http://{settings.host}:{port_to_use}/docs") + print(f"ReDoc 文档地址: http://{settings.host}:{port_to_use}/redoc") uvicorn.run( "llm_web_kit.api.main:app", host=settings.host, - port=settings.port, + port=port_to_use, reload=True, log_level=(settings.log_level or "INFO").lower() ) diff --git a/llm_web_kit/api/services/html_service.py b/llm_web_kit/api/services/html_service.py index 46c6d4a3..ba124e27 100644 --- a/llm_web_kit/api/services/html_service.py +++ b/llm_web_kit/api/services/html_service.py @@ -5,6 +5,8 @@ from typing import Any, Dict, Optional +from llm_web_kit.simple import extract_content_from_main_html + from ..dependencies import get_inference_service, get_logger, get_settings logger = get_logger(__name__) @@ -67,7 +69,9 @@ async def parse_html( pre_data[PreDataJsonKey.LLM_RESPONSE] = llm_response parser = MapItemToHtmlTagsParser({}) pre_data = parser.parse_single(pre_data) - + main_html = pre_data[PreDataJsonKey.TYPICAL_MAIN_HTML] + mm_nlp_md = extract_content_from_main_html(url, main_html, 'mm_md', use_raw_image_url=True) + pre_data['markdown'] = mm_nlp_md # 将 PreDataJson 转为标准 dict,避免响应模型校验错误 return dict(pre_data.items()) diff --git a/llm_web_kit/api/services/inference_service.py b/llm_web_kit/api/services/inference_service.py index 095404d9..6401f0fd 100644 --- a/llm_web_kit/api/services/inference_service.py +++ b/llm_web_kit/api/services/inference_service.py @@ -30,8 +30,8 @@ class InferenceConfig: top_p: float = 0.95 max_output_tokens: int = 8192 tensor_parallel_size: int = 1 - # 正式环境修改为bfloat16 - dtype: str = 'float16' + # 测试环境修改为float16 + dtype: str = 'bfloat16' template: bool = True @@ -339,8 +339,8 @@ async def _init_model(self): trust_remote_code=True, dtype=config.dtype, tensor_parallel_size=config.tensor_parallel_size, - # 正式环境删掉 - max_model_len=config.max_tokens, # 减少序列长度避免内存不足 + # 测试环境取消注释 + # max_model_len=config.max_tokens, # 减少序列长度避免内存不足 ) logger.info(f'模型初始化成功: {self.model_path}')