Apify#

Apify - платформа для веб-скрейпинга и автоматизации браузеров, включающая магазин приложений, содержащий более 1500 предварительно созданных микро-приложений под названием «Актеры» (Actors). Эти облачные программы серверного типа, по сути являющиеся средствами контейнеризации под капотом, предназначены для различных задач веб-автоматизации, включая сбор данных.

Один из таких актеров, специально разработанный для приложений искусственного интеллекта и поиска информации (RAG), называется Скрайпер содержимого сайта.

Он идеально подходит для этой цели, поскольку имеет встроенные функции обработки HTML и очистки данных. Это означает, что можно легко удалить ненужные элементы, дубликаты и другие вещи на веб-странице, которые не имеют значения, предоставляя языку модели только необходимые данные.

Markdown затем можно использовать для подачи данных в Vector DB для обучения моделей ИИ или предоставления им свежего контента с веб-сайтов.

Vector DB доступен как официальная интеграция для загрузки наборов данных Apify в коллекцию.

Можно обратиться к документации Apify, чтобы настроить интеграцию через интерфейс Apify.

Программное использование#

Apify также поддерживает программный доступ к интеграциям через SDK Apify для Python.

  1. Установите SDK Apify для Python, выполнив следующую команду:

    pip install apify-client
    
  2. Создайте сценарий на Python и импортируйте все необходимые модули:

    from apify_client import ApifyClient
    
    APIFY_API_TOKEN = "YOUR-APIFY-TOKEN"
    OPENAI_API_KEY = "YOUR-OPENAI-API-KEY"
    # COHERE_API_KEY = "YOUR-COHERE-API-KEY"
    
    QDRANT_URL = "YOUR-QDRANT-URL"
    QDRANT_API_KEY = "YOUR-QDRANT-API-KEY"
    
    client = ApifyClient(APIFY_API_TOKEN)
    
  3. Вызовите актера Скрайпер содержимого сайта, чтобы просканировать документацию Vector DB и извлечь текстовый контент со страниц веб-сайта:

    actor_call = client.actor("apify/website-content-crawler").call(
        run_input={"startUrls": [{"url": "https://qdrant.tech/documentation/"}]}
    )
    
  4. Вызовите интеграцию Vector DB и сохраните все данные в векторной базе данных Vector DB:

    qdrant_integration_inputs = {
        "qdrantUrl": QDRANT_URL,
        "qdrantApiKey": QDRANT_API_KEY,
        "qdrantCollectionName": "apify",
        "qdrantAutoCreateCollection": True,
        "datasetId": actor_call["defaultDatasetId"],
        "datasetFields": ["text"],
        "enableDeltaUpdates": True,
        "deltaUpdatesPrimaryDatasetFields": ["url"],
        "expiredObjectDeletionPeriodDays": 30,
        "embeddingsProvider": "OpenAI", # "Cohere"
        "embeddingsApiKey": OPENAI_API_KEY,
        "performChunking": True,
        "chunkSize": 1000,
        "chunkOverlap": 0,
    }
    actor_call = client.actor("apify/qdrant-integration").call(run_input=qdrant_integration_inputs)
    

После запуска сценария данные с https://qdrant.tech/documentation/ будут извлечены, преобразованы в векторные вложения и сохранены в коллекции Vector DB.

Дополнительная документация#

  • Документация Apify

  • Шаблоны Apify

  • Исходный код интеграции