-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
136 lines (104 loc) · 4.16 KB
/
main.py
File metadata and controls
136 lines (104 loc) · 4.16 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# from langchain_ollama import ChatOllama
# from browser_use import Agent, Browser, BrowserConfig, Controller
# from pydantic import BaseModel
# from dotenv import load_dotenv
# from typing import List
# load_dotenv()
# import asyncio
# # class Post(BaseModel):
# # caption: str
# class Product(BaseModel):
# productName: str
# price: int
# discountedPrice: int
# url: str
# class Products(BaseModel):
# products: List[Product]
# # NOTE: Para o modelo utilizar o formato de Product acima
# controller = Controller(output_model=Products)
# # NOTE: Configure the browser to connect to your Chrome instance
# # NOTA: Para abrir o navegador Chrome padrão, para que a IA possa navegar com as contas do usuário
# # browser = Browser(
# # config=BrowserConfig(
# # # Specify the path to your Chrome executable
# # chrome_instance_path="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
# # )
# # )
# # Initialize the model
# llm = ChatOllama(model="qwen2.5", num_ctx=32000)
# # Create agent with the model
# async def main():
# # NOTE: Ações inicial do Agent AI
# initial_actions = [
# {"open_tab": {"url": "https://www.kabum.com.br"}},
# ]
# # NOTE: Para senhas e logins utilizados em sites
# # sensitive_data = {"x_name": "magnus", "x_password": "12345678"}
# agent = Agent(
# task="Obtenha os 5 primeiros produtos em oferta.",
# llm=llm,
# # browser=browser, # NOTE: Use the browser instance created above
# controller=controller, # NOTE: Para o modelo utilizar o formato de Product
# initial_actions=initial_actions, # NOTE: Ações iniciais para abrir a aba do Chrome de acessar a url tal
# # sensitive_data=sensitive_data,
# )
# result = await agent.run()
# # print(result) # Print the raw result
# # print(result.extracted_content()) # Print the extracted content
# print(result.final_result()) # Print the final result
# data = result.final_result()
# parsed: Products = Products.model_validate_json(data)
# # await browser.close() # NOTE: Close the browser instance
# asyncio.run(main())
from langchain_ollama import ChatOllama
from browser_use import Agent, Browser, BrowserConfig, Controller
from pydantic import BaseModel
from dotenv import load_dotenv
from typing import List
load_dotenv()
import asyncio
# class Post(BaseModel):
# caption: str
class Product(BaseModel):
productName: str
price: int
discountedPrice: int
url: str
class Products(BaseModel):
products: List[Product]
# NOTE: Para o modelo utilizar o formato de Product acima
controller = Controller(output_model=Products)
# NOTE: Configure the browser to connect to your Chrome instance
# NOTA: Para abrir o navegador Chrome padrão, para que a IA possa navegar com as contas do usuário
# browser = Browser(
# config=BrowserConfig(
# # Specify the path to your Chrome executable
# chrome_instance_path="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
# )
# )
# Initialize the model
llm = ChatOllama(model="qwen2.5", num_ctx=32000)
# Create agent with the model
async def main():
# NOTE: Ações inicial do Agent AI
initial_actions = [
{"open_tab": {"url": "https://www.kabum.com.br"}},
]
# NOTE: Para senhas e logins utilizados em sites
# sensitive_data = {"x_name": "magnus", "x_password": "12345678"}
agent = Agent(
task="Obtenha os 5 primeiros produtos em oferta.",
llm=llm,
# browser=browser, # NOTE: Use the browser instance created above
controller=controller, # NOTE: Para o modelo utilizar o formato de Product
initial_actions=initial_actions, # NOTE: Ações iniciais para abrir a aba do Chrome de acessar a url tal
# sensitive_data=sensitive_data,
)
result = await agent.run()
# print(result) # Print the raw result
# print(result.extracted_content()) # Print the extracted content
print(result.final_result()) # Print the final result
data = result.final_result()
parsed: Products = Products.model_validate_json(data)
# await browser.close() # NOTE: Close the browser instance
asyncio.run(main())