| import os | |
| import sys | |
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| import asyncio | |
| from typing import List, Optional | |
| from langchain_openai import ChatOpenAI | |
| from pydantic import BaseModel | |
| from browser_use.agent.service import Agent | |
| from browser_use.controller.service import Controller | |
| # Initialize controller first | |
| controller = Controller() | |
| class Model(BaseModel): | |
| title: str | |
| url: str | |
| likes: int | |
| license: str | |
| class Models(BaseModel): | |
| models: List[Model] | |
| def save_models(params: Models): | |
| with open('models.txt', 'a') as f: | |
| for model in params.models: | |
| f.write(f'{model.title} ({model.url}): {model.likes} likes, {model.license}\n') | |
| # video: https://preview.screen.studio/share/EtOhIk0P | |
| async def main(): | |
| task = f'Look up models with a license of cc-by-sa-4.0 and sort by most likes on Hugging face, save top 5 to file.' | |
| model = ChatOpenAI(model='gpt-4o') | |
| agent = Agent(task=task, llm=model, controller=controller) | |
| await agent.run() | |
| if __name__ == '__main__': | |
| asyncio.run(main()) | |