mirror of
https://github.com/browser-use/browser-use.git
synced 2025-02-18 01:18:20 +03:00
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
# Goal: Checks for available visa appointment slots on the Greece MFA website.
|
|
|
|
import asyncio
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
from langchain_openai import ChatOpenAI
|
|
from pydantic import BaseModel, SecretStr
|
|
|
|
from browser_use.agent.service import Agent
|
|
from browser_use.controller.service import Controller
|
|
|
|
# Load environment variables
|
|
load_dotenv()
|
|
if not os.getenv('OPENAI_API_KEY'):
|
|
raise ValueError('OPENAI_API_KEY is not set. Please add it to your environment variables.')
|
|
|
|
controller = Controller()
|
|
|
|
|
|
class WebpageInfo(BaseModel):
|
|
"""Model for webpage link."""
|
|
link: str = 'https://appointment.mfa.gr/en/reservations/aero/ireland-grcon-dub/'
|
|
|
|
|
|
@controller.action('Go to the webpage', param_model=WebpageInfo)
|
|
def go_to_webpage(webpage_info: WebpageInfo):
|
|
"""Returns the webpage link."""
|
|
return webpage_info.link
|
|
|
|
|
|
async def main():
|
|
"""Main function to execute the agent task."""
|
|
task = (
|
|
'Go to the Greece MFA webpage via the link I provided you.'
|
|
'Check the visa appointment dates. If there is no available date in this month, check the next month.'
|
|
'If there is no available date in both months, tell me there is no available date.'
|
|
)
|
|
|
|
model = ChatOpenAI(model='gpt-4o-mini', api_key=SecretStr(os.getenv('OPENAI_API_KEY', '')))
|
|
agent = Agent(task, model, controller=controller, use_vision=True)
|
|
|
|
await agent.run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|