From 60beb1e00f2eccd8993ee9714bf581f9c8b37509 Mon Sep 17 00:00:00 2001 From: nafer Date: Fri, 6 Mar 2026 01:49:59 +0300 Subject: [PATCH] 2 --- Dockerfile | 5 +++-- app.py | 40 ++++++++++++++++------------------------ 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8b0a10c..84d7614 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,15 @@ FROM mcr.microsoft.com/playwright/python:v1.49.0-noble # Установка дополнительных Python зависимостей -RUN pip install --no-cache-dir \ +RUN pip install --no-cache-dir --root-user-action=ignore \ fastapi \ uvicorn \ pydantic \ browser-use \ langchain-openai \ langchain \ - python-dotenv + python-dotenv \ + setuptools WORKDIR /app diff --git a/app.py b/app.py index b0d024e..caf39db 100644 --- a/app.py +++ b/app.py @@ -19,33 +19,25 @@ REMOTE_DEBUGGING_ENABLED = os.getenv("REMOTE_DEBUGGING_ENABLED", "false").lower( # Модель по умолчанию из переменной окружения DEFAULT_MODEL = os.getenv("LLM_MODEL_NAME", "openai/gpt-4o-mini") -app = FastAPI(title="Browser Use API", version="1.0.0") +from contextlib import asynccontextmanager + +@asynccontextmanager +async def lifespan(app: FastAPI): + # Startup logic + import sys + from importlib import metadata + print(f"Python version: {sys.version}") + print("Installed packages:") + dists = metadata.distributions() + for dist in dists: + print(f" {dist.metadata['Name']}=={dist.version}") + yield + # Shutdown logic (if needed) + +app = FastAPI(title="Browser Use API", version="1.0.0", lifespan=lifespan) # Модели запросов class TaskRequest(BaseModel): - task: str - max_steps: Optional[int] = 20 - model: Optional[str] = None - -class TaskResponse(BaseModel): - task_id: str - status: str - result: Optional[str] = None - error: Optional[str] = None - -# Хранилище задач -tasks = {} - -@app.on_event("startup") -async def startup_event(): - import sys - import pkg_resources - print(f"Python version: {sys.version}") - print("Installed packages:") - for dist in pkg_resources.working_set: - print(f" {dist.project_name}=={dist.version}") - -@app.post("/api/tasks", response_model=TaskResponse) async def create_task(request: TaskRequest): """Создать новую задачу браузера""" import uuid