morikotikk commited on
Commit
da1e01a
·
verified ·
1 Parent(s): e0ce4a8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -12
app.py CHANGED
@@ -4,7 +4,7 @@ import gradio as gr
4
  from browser_use import Agent
5
  from langchain_openai import ChatOpenAI
6
 
7
- # 1. Функция для установки браузера (нужна для Gradio Spaces)
8
  async def install_playwright():
9
  process = await asyncio.create_subprocess_exec(
10
  'playwright', 'install', 'chromium',
@@ -15,20 +15,22 @@ async def install_playwright():
15
 
16
  # 2. Основная функция агента
17
  async def run_browser_agent(task):
18
- # ПЫТАЕМСЯ ВЗЯТЬ КЛЮЧ ИЗ СЕКРЕТОВ (Settings -> Variables and secrets)
19
  api_key = os.getenv("NVIDIA_API_KEY")
20
 
21
  if not api_key:
22
- return "ОШИБКА: Секрет 'NVIDIA_API_KEY' не найден в настройках Space!"
23
 
24
  try:
25
- # Используем ChatOpenAI интерфейс для работы с NVIDIA
26
  llm = ChatOpenAI(
27
  model="meta/llama-3.1-405b-instruct",
28
  openai_api_key=api_key,
29
  base_url="https://integrate.api.nvidia.com/v1"
30
  )
31
 
 
 
 
32
  agent = Agent(
33
  task=task,
34
  llm=llm,
@@ -38,22 +40,24 @@ async def run_browser_agent(task):
38
  )
39
 
40
  result = await agent.run()
 
41
  return str(result.final_result())
 
42
  except Exception as e:
43
  return f"Произошла ошибка: {str(e)}"
44
 
45
- # Устанавливаем браузер при запуске
46
- asyncio.run(install_playwright())
 
 
 
47
 
48
- # 3. Интерфейс Gradio (теперь только одно поле для задания)
49
  demo = gr.Interface(
50
  fn=lambda task: asyncio.run(run_browser_agent(task)),
51
- inputs=[
52
- gr.Textbox(label="Что должен сделать агент?", placeholder="Например: Найди цену золота на сегодня")
53
- ],
54
  outputs=gr.Textbox(label="Результат"),
55
- title="Browser-Use AI (NVIDIA Auto-Key)",
56
- description="Агент берет ключ из Secrets и использует NVIDIA API."
57
  )
58
 
59
  if __name__ == "__main__":
 
4
  from browser_use import Agent
5
  from langchain_openai import ChatOpenAI
6
 
7
+ # 1. Функция для установки браузера
8
  async def install_playwright():
9
  process = await asyncio.create_subprocess_exec(
10
  'playwright', 'install', 'chromium',
 
15
 
16
  # 2. Основная функция агента
17
  async def run_browser_agent(task):
 
18
  api_key = os.getenv("NVIDIA_API_KEY")
19
 
20
  if not api_key:
21
+ return "ОШИБКА: Секрет 'NVIDIA_API_KEY' не найден в Settings -> Secrets!"
22
 
23
  try:
24
+ # Создаем модель
25
  llm = ChatOpenAI(
26
  model="meta/llama-3.1-405b-instruct",
27
  openai_api_key=api_key,
28
  base_url="https://integrate.api.nvidia.com/v1"
29
  )
30
 
31
+ # ХАК: Вручную добавляем атрибут, который требует browser-use
32
+ llm.provider = "openai"
33
+
34
  agent = Agent(
35
  task=task,
36
  llm=llm,
 
40
  )
41
 
42
  result = await agent.run()
43
+ # Возвращаем финальный результат как строку
44
  return str(result.final_result())
45
+
46
  except Exception as e:
47
  return f"Произошла ошибка: {str(e)}"
48
 
49
+ # Установка браузера при старте (один раз)
50
+ try:
51
+ asyncio.run(install_playwright())
52
+ except:
53
+ pass
54
 
55
+ # 3. Интерфейс Gradio
56
  demo = gr.Interface(
57
  fn=lambda task: asyncio.run(run_browser_agent(task)),
58
+ inputs=[gr.Textbox(label="Задание", placeholder="Например: какая погода в Киеве?")],
 
 
59
  outputs=gr.Textbox(label="Результат"),
60
+ title="Browser-Use AI (Fixed Version)"
 
61
  )
62
 
63
  if __name__ == "__main__":