Repolode
cocoindex-io

cocoindex-io/cocoindex

Фреймворк инкрементальных конвейеров данных на Python с ядром на Rust, который синхронизирует векторные индексы и графы знаний с меняющимися источниками для AI-агентов и RAG-приложений.

Звёзды
11,721
Форки
921
Открытые issues
103
Последний коммит
вчера

Что это?

CocoIndex — фреймворк для создания конвейеров данных, которые преобразуют исходные данные — например, кодовые базы, документы, Slack, заметки со встреч, PDF-файлы и видео — в постоянно обновляемый контекст для AI-агентов и приложений на базе LLM. Вы описываете желаемое целевое состояние в виде Python-функции, обрабатывающей исходные данные, а движок отслеживает изменения и пересчитывает только затронутые строки, файлы или результаты, не обрабатывая заново весь корпус.

Движок кэширует результаты функций, хешируя как входные данные, так и код функций, поэтому при изменении преобразования заново выполняются только зависящие от него операции. Для каждой целевой строки можно отследить источник, что упрощает отладку и аудит. В качестве целевых хранилищ поддерживаются реляционные базы данных, например Postgres с векторными индексами, а также векторные хранилища вроде LanceDB и графовые базы данных, такие как Neo4j и Kuzu. В проекте есть примеры создания эмбеддингов кода, RAG по PDF-файлам, извлечения графов знаний и потоковой обработки данных из Kafka.

Проект написан на Python и использует ядро на Rust. В документации описаны установка через pip, краткое руководство, коннекторы и преобразования, а также навык для Claude Code и Cursor, помогающий генерировать корректный код.

Ключевые возможности

  • 01Инкрементальная обработка: пересчитываются только изменившиеся источники и зависящие от них результаты.
  • 02Кэширование на уровне функций с учётом хешей входных данных и кода.
  • 03Векторные индексы в качестве целевых хранилищ, например Postgres с pgvector и LanceDB.
  • 04Графовые базы данных в качестве целевых хранилищ, включая Neo4j и Kuzu.
  • 05Отслеживание происхождения каждой целевой строки вплоть до исходных данных.
  • 06Коннекторы к локальным файлам, S3 и Google Drive, а также поддержка Kafka в качестве целевого хранилища.

Сценарии использования

  • Поддержание актуальности RAG-индекса по корпусу документов без повторного создания эмбеддингов для неизменившихся файлов.
  • Создание обновляемого при каждом коммите индекса для поиска по коду для агентов-программистов.
  • Извлечение сущностей и связей из расшифровок встреч и их добавление в граф знаний.
  • Потоковая отправка изменившихся строк CSV в топик Kafka.

Быстрый старт

  1. 1

    Установите CocoIndex из PyPI

    pip install -U cocoindex
  2. 2

    Объявите целевой объект и один раз запустите инкрементальное обновление, чтобы выполнить первоначальную загрузку

    coco.App(coco.AppConfig(name="docs"), main, src="./docs").update_blocking()

Что важно знать

  • Для быстрого старта нужны база данных Postgres и функция эмбеддингов. В примере они используются, но не настраиваются за вас.
  • Проект находится на этапе до версии 1.0 и использует быстро меняющийся API v1, поэтому код может меняться от релиза к релизу.

Темы

Частые вопросы

Что такое cocoindex?
Фреймворк инкрементальных конвейеров данных на Python с ядром на Rust, который синхронизирует векторные индексы и графы знаний с меняющимися источниками для AI-агентов и RAG-приложений. CocoIndex — фреймворк для создания конвейеров данных, которые преобразуют исходные данные — например, кодовые базы, документы, Slack, заметки со встреч, PDF-файлы и видео — в постоянно обновляемый контекст для AI-агентов и приложений на базе LLM. Вы описываете желаемое целевое состояние в виде Python-функции, обрабатывающей исходные данные, а движок отслеживает изменения и пересчитывает только затронутые строки, файлы или результаты, не обрабатывая заново весь корпус.
cocoindex можно использовать бесплатно? Какая у него лицензия?
cocoindex распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
cocoindex всё ещё поддерживается?
Активно поддерживается. Последний коммит в cocoindex — 19 окт. 2026 г..
Для чего можно использовать cocoindex?
Поддержание актуальности RAG-индекса по корпусу документов без повторного создания эмбеддингов для неизменившихся файлов. Создание обновляемого при каждом коммите индекса для поиска по коду для агентов-программистов. Извлечение сущностей и связей из расшифровок встреч и их добавление в граф знаний. Потоковая отправка изменившихся строк CSV в топик Kafka.
Как установить cocoindex?
Установите CocoIndex из PyPI: pip install -U cocoindex Объявите целевой объект и один раз запустите инкрементальное обновление, чтобы выполнить первоначальную загрузку: coco.App(coco.AppConfig(name="docs"), main, src="./docs").update_blocking()
Где скачать cocoindex?
Исходный код и инструкции по установке — на GitHub: https://github.com/cocoindex-io/cocoindex

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты