morikotikk commited on
Commit
9093dda
·
verified ·
1 Parent(s): 82fd311

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -10
app.py CHANGED
@@ -1,29 +1,31 @@
1
  import os
2
  import asyncio
3
- from fastapi import FastAPI, BackgroundTasks
4
  from pydantic import BaseModel
5
  from langchain_nvidia_ai_endpoints import ChatNVIDIA
6
  from browser_use import Agent
7
- from playwright.async_api import async_playwright
8
 
9
  app = FastAPI()
10
 
11
  class TaskRequest(BaseModel):
12
  task: str
13
 
14
- # Эндпоинт для n8n
 
 
 
15
  @app.post("/run")
16
  async def run_task(request: TaskRequest):
 
17
  api_key = os.environ.get("NVIDIA_API_KEY")
18
 
19
- # Настройка Llama 405B
20
  llm = ChatNVIDIA(
21
  model="meta/llama-3.1-405b-instruct",
22
  nvidia_api_key=api_key,
23
  temperature=0.1
24
  )
25
 
26
- # Агент выполняет задачу
27
  agent = Agent(
28
  task=request.task,
29
  llm=llm
@@ -31,14 +33,12 @@ async def run_task(request: TaskRequest):
31
 
32
  result = await agent.run()
33
 
34
- # Возвращаем результат в n8n
35
  return {
36
- "status": "success",
37
- "final_result": result.final_result(),
38
- "history": str(result.history)
39
  }
40
 
41
- # Чтобы Hugging Face не "засыпал" и открывал порт
42
  if __name__ == "__main__":
43
  import uvicorn
 
44
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
1
  import os
2
  import asyncio
3
+ from fastapi import FastAPI
4
  from pydantic import BaseModel
5
  from langchain_nvidia_ai_endpoints import ChatNVIDIA
6
  from browser_use import Agent
 
7
 
8
  app = FastAPI()
9
 
10
  class TaskRequest(BaseModel):
11
  task: str
12
 
13
+ @app.get("/")
14
+ def read_root():
15
+ return {"status": "Browser AI is running", "api_endpoint": "/run"}
16
+
17
  @app.post("/run")
18
  async def run_task(request: TaskRequest):
19
+ # Берем ключ из секретов HF
20
  api_key = os.environ.get("NVIDIA_API_KEY")
21
 
 
22
  llm = ChatNVIDIA(
23
  model="meta/llama-3.1-405b-instruct",
24
  nvidia_api_key=api_key,
25
  temperature=0.1
26
  )
27
 
28
+ # browser-use сам найдет запущенный xvfb дисплей
29
  agent = Agent(
30
  task=request.task,
31
  llm=llm
 
33
 
34
  result = await agent.run()
35
 
 
36
  return {
37
+ "status": "done",
38
+ "answer": result.final_result()
 
39
  }
40
 
 
41
  if __name__ == "__main__":
42
  import uvicorn
43
+ # Порт 7860 обязателен для HF
44
  uvicorn.run(app, host="0.0.0.0", port=7860)