Spaces:
Sleeping
Sleeping
File size: 2,077 Bytes
b3131aa e0ce4a8 b3131aa da1e01a e0ce4a8 b3131aa e0ce4a8 b3131aa e0ce4a8 da1e01a e0ce4a8 b3131aa da1e01a e0ce4a8 b3131aa da1e01a b3131aa e0ce4a8 b3131aa da1e01a b3131aa da1e01a b3131aa da1e01a e0ce4a8 da1e01a b3131aa e0ce4a8 da1e01a b3131aa da1e01a b3131aa |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import os
import asyncio
import gradio as gr
from browser_use import Agent
from langchain_openai import ChatOpenAI
# 1. Функция для установки браузера
async def install_playwright():
process = await asyncio.create_subprocess_exec(
'playwright', 'install', 'chromium',
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE
)
await process.communicate()
# 2. Основная функция агента
async def run_browser_agent(task):
api_key = os.getenv("NVIDIA_API_KEY")
if not api_key:
return "ОШИБКА: Секрет 'NVIDIA_API_KEY' не найден в Settings -> Secrets!"
try:
# Создаем модель
llm = ChatOpenAI(
model="meta/llama-3.1-405b-instruct",
openai_api_key=api_key,
base_url="https://integrate.api.nvidia.com/v1"
)
# ХАК: Вручную добавляем атрибут, который требует browser-use
llm.provider = "openai"
agent = Agent(
task=task,
llm=llm,
browser_context_config={
"browser_args": ["--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage"]
}
)
result = await agent.run()
# Возвращаем финальный результат как строку
return str(result.final_result())
except Exception as e:
return f"Произошла ошибка: {str(e)}"
# Установка браузера при старте (один раз)
try:
asyncio.run(install_playwright())
except:
pass
# 3. Интерфейс Gradio
demo = gr.Interface(
fn=lambda task: asyncio.run(run_browser_agent(task)),
inputs=[gr.Textbox(label="Задание", placeholder="Например: какая погода в Киеве?")],
outputs=gr.Textbox(label="Результат"),
title="Browser-Use AI (Fixed Version)"
)
if __name__ == "__main__":
demo.launch() |