모듈식, 비동기 및 조합 가능한 AI 처리 파이프라인을 구축하기 위한 경량 Python 라이브러리로, 효율적인 병렬 콘텐츠 처리를 지원합니다.
GenAI Processors 프로젝트 상세 소개
프로젝트 개요
GenAI Processors는 생성형 AI 애플리케이션을 위해 특별히 설계된 모듈식, 비동기식, 조합 가능한 AI 처리 파이프라인을 구축하기 위한 경량 Python 라이브러리입니다. 이 프로젝트는 Google에서 출시되었으며, 특히 다중 모드 입력을 처리하고 실시간 응답을 요구하는 복잡한 AI 애플리케이션의 개발 프로세스를 간소화하는 것을 목표로 합니다.
핵심 개념
Processor (프로세서)
GenAI Processors의 핵심은 Processor 개념입니다. 이는 특정 작업 단위를 캡슐화하는 기본 구성 요소입니다. 입력 스트림을 받아 작업을 수행하고 결과 스트림을 출력합니다. 각 Processor는 간단하고 통일된 API를 가집니다:
# 어떤 클래스든 processor.Processor를 상속하고 이 함수를 구현하면 프로세서가 됩니다.
async def call(
content: AsyncIterable[ProcessorPart]
) -> AsyncIterable[ProcessorPartTypes]
ProcessorPart (프로세서 파트)
ProcessorPart는 genai.types.Part
를 감싸는 래퍼로, MIME 유형, 역할 및 사용자 정의 속성과 같은 풍부한 메타데이터를 포함합니다. 다양한 콘텐츠 유형(텍스트, 이미지, 오디오, 사용자 정의 JSON)을 지원합니다.
주요 기능
1. 모듈식 설계
- 복잡한 작업을 재사용 가능한
Processor
및PartProcessor
단위로 분해 - 복잡한 데이터 흐름 및 에이전트 동작을 생성하기 위해 쉽게 연결(
+
)하거나 병렬화(//
)할 수 있습니다.
2. GenAI API 통합
- 턴 기반 API 호출을 위한
GenaiModel
과 같은 즉시 사용 가능한 프로세서 포함 - 실시간 스트림 상호 작용을 지원하는
LiveProcessor
3. 확장성
- 기본 클래스를 상속하거나 간단한 함수 데코레이터를 사용하여 사용자 정의 프로세서 생성
- 커뮤니티 기여 프로세서 확장 지원
4. 비동기 및 동시성
- Python의 익숙한
asyncio
프레임워크 기반 - 동시 작업(네트워크 I/O 및 계산 집약적인 서브 스레드와의 통신 포함) 조정
5. 스트림 관리
ProcessorPart
비동기 스트림을 분할, 연결 및 병합하는 유틸리티 제공- 지연 시간 및 첫 번째 토큰 시간(TTFT) 감소를 위한 스트리밍 처리 지원
설치 요구 사항
이 라이브러리는 Python 3.10+ 버전이 필요합니다.
설치 명령:
pip install genai-processors
사용 예시
기본 사용법
from genai_processors import content_api
from genai_processors import streams
# 입력 스트림 생성 (문자열은 자동으로 Part로 변환됩니다)
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)
# 프로세서를 파트 스트림에 적용하고 결과를 반복합니다
async for part in simple_text_processor(input_stream):
print(part.text)
학습 자료
프로젝트는 사용자가 GenAI Processors에 익숙해지도록 돕는 일련의 Colab 노트북을 제공합니다 (순서대로 학습하는 것을 권장합니다):
- Content API Colab -
ProcessorPart
,ProcessorContent
의 기본 사항 및 생성 방법을 설명합니다. - Processor Intro Colab - GenAI Processors 핵심 개념 소개.
- Create Your Own Processor -
Processor
또는PartProcessor
생성의 일반적인 단계별 안내. - Work with the Live API -
LiveProcessor
클래스를 사용하여 Gemini Live API에서 실시간 프로세서를 구축하는 예시.
실제 적용 예시
1. 실시간 라이브 예시
examples/realtime_simple_cli.py
- Google 검색을 도구로 통합한 오디오 입력-오디오 출력 라이브 에이전트. 이는 GenAI Processors의 스트리밍 처리 및 오케스트레이션 기능을 보여주는 Live 프로세서의 클라이언트 구현입니다.
2. 연구 에이전트 예시
examples/research/README.md
- 3개의 서브 프로세서, 체인 처리, ProcessorPart
생성 등의 기능을 포함하여 Processors를 사용하여 구축된 연구 에이전트.
3. 실시간 해설 예시
examples/live/README.md
- Gemini Live API를 사용하여 구축된 실시간 해설 에이전트로, 이벤트 감지용 에이전트와 대화 관리용 에이전트 두 개로 구성됩니다.
프로젝트 구조
Core 디렉토리
core/
디렉토리에는 자체 애플리케이션에서 사용할 수 있는 기본 프로세서 세트가 포함되어 있습니다. 대부분의 실시간 애플리케이션에 필요한 일반적인 구성 요소를 포함하며, 시간이 지남에 따라 더 많은 핵심 구성 요소를 포함하도록 계속 발전할 것입니다.
Contrib 디렉토리
contrib/
디렉토리에는 내장 프로세서 컬렉션을 확장하기 위한 커뮤니티 기여 프로세서 확장이 포함되어 있습니다.
기술적 이점
1. 낮은 지연 시간 처리
비스트리밍 사용 사례에서도 데이터가 사용 가능해지는 즉시 처리하면 지연 시간과 첫 번째 토큰 시간(TTFT)을 크게 줄일 수 있으며, 이는 우수한 사용자 경험을 구축하는 데 필수적입니다.
2. 반응형 애플리케이션 개발
많은 LLM API가 동기식의 간소화된 인터페이스를 우선시하지만, GenAI Processors는 네이티브 Python 기능을 활용하여 코드를 복잡하게 만들지 않으면서 반응형 애플리케이션을 작성하는 방법을 제공합니다.
3. 동시 처리 능력
여행 플래너 및 연구 에이전트 예시는 턴 기반 에이전트가 GenAI Processors의 동시성 기능을 사용하여 응답성을 향상시키는 방법을 보여줍니다.
요약
GenAI Processors는 개발자가 복잡한 생성형 AI 애플리케이션을 구축할 수 있도록 강력하고 유연한 프레임워크를 제공합니다. 모듈식 설계, 비동기 처리 능력, Google AI 서비스와의 깊은 통합은 현대 AI 애플리케이션 개발을 위한 이상적인 선택이 되게 합니다. 실시간 대화 시스템, 다중 모드 처리 파이프라인 또는 복잡한 AI 에이전트를 구축하든, GenAI Processors는 개발 프로세스를 간소화하는 데 필요한 도구와 추상화 계층을 제공합니다.