validops-east-1 commited on
Commit
c57f130
·
1 Parent(s): a952141

feat: updated code

Browse files
Files changed (2) hide show
  1. api/server.py +6 -3
  2. main.py +11 -6
api/server.py CHANGED
@@ -33,14 +33,16 @@ from typing import Annotated, Any, Dict, List, Optional
33
  from urllib.parse import urlparse
34
 
35
  import httpx
36
- from fastapi import FastAPI, File, Form, HTTPException, UploadFile, status
 
37
  from fastapi.middleware.cors import CORSMiddleware
38
  from fastapi.middleware.gzip import GZipMiddleware
39
- from fastapi.responses import PlainTextResponse
40
- from pydantic import BaseModel, field_validator
41
 
 
42
  from core import ConversionError, ConversionResult, DocumentConverter, SUPPORTED_EXTENSIONS
43
  from extraction.generic_json_extractor import extract
 
44
  from logger import get_logger
45
 
46
  logger = get_logger(__name__)
@@ -98,6 +100,7 @@ def _start_ping_scheduler() -> None:
98
  @asynccontextmanager
99
  async def lifespan(app: FastAPI):
100
  """Application lifespan handler — runs startup and shutdown logic."""
 
101
  logger.info(
102
  "MarkItDown API starting | version=2.1.0 | host=0.0.0.0:7860 | started_at=%s",
103
  datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC"),
 
33
  from urllib.parse import urlparse
34
 
35
  import httpx
36
+ import uvicorn
37
+ from fastapi import FastAPI, File, Form, HTTPException, UploadFile
38
  from fastapi.middleware.cors import CORSMiddleware
39
  from fastapi.middleware.gzip import GZipMiddleware
40
+ from pydantic import BaseModel, Field
 
41
 
42
+ from banner import print_banner
43
  from core import ConversionError, ConversionResult, DocumentConverter, SUPPORTED_EXTENSIONS
44
  from extraction.generic_json_extractor import extract
45
+ from extraction.label_mapper import validate_mappings
46
  from logger import get_logger
47
 
48
  logger = get_logger(__name__)
 
100
  @asynccontextmanager
101
  async def lifespan(app: FastAPI):
102
  """Application lifespan handler — runs startup and shutdown logic."""
103
+ print_banner()
104
  logger.info(
105
  "MarkItDown API starting | version=2.1.0 | host=0.0.0.0:7860 | started_at=%s",
106
  datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC"),
main.py CHANGED
@@ -4,26 +4,31 @@ MarkItDown API — entry point.
4
  Run directly::
5
  python main.py
6
 
7
- Or via start.sh for production (environment variable overrides supported).
 
 
8
  """
9
  from __future__ import annotations
10
 
 
 
11
  import uvicorn
12
 
13
- from banner import print_banner
14
  from logger import get_logger
15
 
16
  logger = get_logger(__name__)
17
 
18
  if __name__ == "__main__":
19
- print_banner()
20
- logger.info("Starting MarkItDown API server")
 
 
21
  uvicorn.run(
22
  "api.server:app",
23
  host="0.0.0.0",
24
- port=7860,
25
  reload=False,
26
- workers=1,
27
  log_level="info",
28
  access_log=True,
29
  )
 
4
  Run directly::
5
  python main.py
6
 
7
+ Environment variables:
8
+ WORKERS uvicorn worker count (default: 1)
9
+ PORT listen port (default: 7860)
10
  """
11
  from __future__ import annotations
12
 
13
+ import os
14
+
15
  import uvicorn
16
 
 
17
  from logger import get_logger
18
 
19
  logger = get_logger(__name__)
20
 
21
  if __name__ == "__main__":
22
+ workers = int(os.getenv("WORKERS", os.cpu_count() or 1))
23
+ port = int(os.getenv("PORT", "7860"))
24
+
25
+ logger.info("Starting server | workers=%d | port=%d", workers, port)
26
  uvicorn.run(
27
  "api.server:app",
28
  host="0.0.0.0",
29
+ port=port,
30
  reload=False,
31
+ workers=workers,
32
  log_level="info",
33
  access_log=True,
34
  )