File size: 1,045 Bytes
9b988f1
 
9093dda
9b988f1
 
 
 
 
 
 
 
 
9093dda
 
 
 
9b988f1
 
9093dda
9b988f1
 
 
 
 
 
 
 
9093dda
9b988f1
 
 
 
 
 
 
 
9093dda
 
9b988f1
 
 
 
9093dda
9b988f1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os
import asyncio
from fastapi import FastAPI
from pydantic import BaseModel
from langchain_nvidia_ai_endpoints import ChatNVIDIA
from browser_use import Agent

app = FastAPI()

class TaskRequest(BaseModel):
    task: str

@app.get("/")
def read_root():
    return {"status": "Browser AI is running", "api_endpoint": "/run"}

@app.post("/run")
async def run_task(request: TaskRequest):
    # Берем ключ из секретов HF
    api_key = os.environ.get("NVIDIA_API_KEY")
    
    llm = ChatNVIDIA(
        model="meta/llama-3.1-405b-instruct",
        nvidia_api_key=api_key,
        temperature=0.1
    )

    # browser-use сам найдет запущенный xvfb дисплей
    agent = Agent(
        task=request.task,
        llm=llm
    )
    
    result = await agent.run()
    
    return {
        "status": "done",
        "answer": result.final_result()
    }

if __name__ == "__main__":
    import uvicorn
    # Порт 7860 обязателен для HF
    uvicorn.run(app, host="0.0.0.0", port=7860)