# SDK Python

<figure><img src="https://github.com/oxylabs/oxylabs-ai-studio-py/raw/main/Ai-Studio2.png" alt=""><figcaption></figcaption></figure>

[![](https://camo.githubusercontent.com/ec456302fbdba5490012a0bc8d2739619d0e57dd8840197d06b33b9ea3b35bda/68747470733a2f2f646362616467652e6c696d65732e70696e6b2f6170692f7365727665722f5064733367426d4b4d483f7374796c653d666f722d7468652d6261646765267468656d653d646973636f7264)](https://discord.gg/Pds3gBmKMH) [![YouTube](https://camo.githubusercontent.com/1b748ffea39adfb777030373ce78d8bc07d3625a9039b324bcbc708a91f376c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f596f75547562652d4f78796c6162732d7265643f7374796c653d666f722d7468652d6261646765266c6f676f3d796f7574756265266c6f676f436f6c6f723d7768697465)](https://www.youtube.com/@oxylabs)

Oferecemos um SDK Python simples para interagir perfeitamente com [Oxylabs AI Studio API](https://aistudio.oxylabs.io/) serviços, incluindo AI-Scraper, AI-Crawler, AI-Browser-Agent e outras ferramentas de extração de dados.

## Requisitos

* python 3.10 ou superior
* chave da API do AI Studio

## Instalação

```
pip install oxylabs-ai-studio
```

## Uso

### Rastrear (`AiCrawler.crawl`)

```python
from oxylabs_ai_studio.apps.ai_crawler import AiCrawler

crawler = AiCrawler(api_key="<API_KEY>")

url = "https://oxylabs.io"
result = crawler.crawl(
    url=url,
    user_prompt="Encontre todas as páginas com preços de produtos proxy",
    output_format="markdown",
    render_javascript=False,
    return_sources_limit=3,
    geo_location="US",
)
print("Resultados:")
for item in result.data:
    print(item, "\n")
```

#### **Parâmetros de entrada**

* `url` (str): URL inicial para rastrear (**obrigatório**)
* `user_prompt` (str): Prompt em linguagem natural para guiar a extração (**obrigatório**)
* `output_format` (Literal\["json", "markdown"]): Formato de saída (padrão: "markdown")
* `schema` (dict | None): Esquema OpenAPI para extração estruturada (obrigatório se output\_format for "json")
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `return_sources_limit` (int): Número máximo de fontes a retornar (padrão: 25)
* `geo_location` (str): localização do proxy em formato ISO2.

### Raspar (`AiScraper.scrape`)

```python
from oxylabs_ai_studio.apps.ai_scraper import AiScraper

scraper = AiScraper(api_key="<API_KEY>")

schema = scraper.generate_schema(prompt="quer parsear developer, platform, type, price game title, genre (array) and description")
print(f"Esquema gerado: {schema}")

url = "https://sandbox.oxylabs.io/products/3"
result = scraper.scrape(
    url=url,
    output_format="json",
    schema=schema,
    render_javascript=False,
)
print(result)
```

#### **Parâmetros de entrada**

* `url` (str): URL alvo para raspar (**obrigatório**)
* `output_format` (Literal\["json", "markdown"]): Formato de saída (padrão: "markdown")
* `schema` (dict | None): Esquema OpenAPI para extração estruturada (obrigatório se output\_format for "json")
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `geo_location` (str): localização do proxy em formato ISO2.

### Agente de Navegador (`BrowserAgent.run`)

```python
from oxylabs_ai_studio.apps.browser_agent import BrowserAgent

browser_agent = BrowserAgent(api_key="<API_KEY>")

schema = browser_agent.generate_schema(
    prompt="nome do jogo, plataforma, estrelas de avaliação e preço"
)
print("schema: ", schema)

prompt = "Verifique se existe o jogo 'super mario odyssey' na loja. Se existir, encontre o preço. Use a barra de busca para encontrar o jogo."
url = "https://sandbox.oxylabs.io/"
result = browser_agent.run(
    url=url,
    user_prompt=prompt,
    output_format="json",
    schema=schema,
)
print(result.data)
```

#### **Parâmetros de entrada**

* `url` (str): URL inicial para navegar (**obrigatório**)
* `user_prompt` (str): Prompt em linguagem natural para extração (**obrigatório**)
* `output_format` (Literal\["json", "markdown", "html", "screenshot"]): Formato de saída (padrão: "markdown")
* `schema` (dict | None): Esquema OpenAPI para extração estruturada (obrigatório se output\_format for "json")
* `geo_location` (str): localização do proxy em formato ISO2.

### Pesquisar (`AiSearch.search`)

```python
from oxylabs_ai_studio.apps.ai_search import AiSearch


search = AiSearch(api_key="<API_KEY>")

query = "receita de lasanha"
result = search.search(
    query=query,
    limit=5,
    render_javascript=False,
    return_content=True,
)
print(result.data)
```

#### **Parâmetros de entrada**

* `query` (str): O que buscar (**obrigatório**)
* `limit` (int): Número máximo de resultados a retornar (padrão: 10, máximo: 50)
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `return_content` (bool): Se deve retornar conteúdos em markdown nos resultados (padrão: True)
* `geo_location` (str): localização do proxy de busca em formato ISO2.

#### Mapa (`AiMap.map`)

```python
from oxylabs_ai_studio.apps.ai_map import AiMap


ai_map = AiMap(api_key="<API_KEY>")
payload = {
    "url": "https://career.oxylabs.io",
    "user_prompt": "páginas de anúncios de emprego",
    "return_sources_limit": 10,
    "geo_location": None,
    "render_javascript": False,
}
result = ai_map.map(**payload)
print(result.data)
```

#### **Parâmetros de entrada**

* `url` (str): URL inicial para rastrear (**obrigatório**)
* `user_prompt` (str): Prompt em linguagem natural para guiar a extração (**obrigatório**)
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `return_sources_limit` (int): Número máximo de fontes a retornar (padrão: 25)
* `geo_location` (str): localização do proxy em formato ISO2.

### Exemplos de uso

Veja o [exemplos](https://github.com/oxylabs/oxylabs-ai-studio-py/tree/main/examples) pasta para exemplos de uso de cada método.&#x20;

Cada método tem uma versão assíncrona correspondente.
