Skip to content

Conversation

@M4xymm
Copy link
Member

@M4xymm M4xymm commented Dec 15, 2025

GenAI ETL Task Support

  • Introduced GenAiConfiguration, a detailed configuration class for GenAI ETL tasks, supporting validation, serialization, and management of AI-specific settings such as prompt templates, transformation scripts, concurrency, and response schemas.
  • Added GenAiTransformation class to encapsulate and validate transformation scripts required for GenAI ETL, ensuring the presence of the necessary ai.genContext call.

AI Task Identifier Management

  • Implemented AiTaskIdentifierHelper for generating and validating normalized, safe identifiers for AI tasks, enforcing naming conventions and providing normalization utilities.

Operations for GenAI ETL Tasks

  • Added AddGenAiOperation and UpdateGenAiOperation classes (and their associated result types) to enable adding and updating GenAI ETL tasks on the server, including support for starting points and optional transformation state resets. [1] [2] [3]

Base Class and Type Improvements

  • Introduced AbstractAiIntegrationConfiguration as a base class for AI integration configurations, extending ETL configuration with AI-specific properties and connection handling.
  • Minor improvement to the compare method in AiConnectionString to simplify its signature.

@M4xymm M4xymm requested review from Copilot and kalczur December 15, 2025 11:39
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces comprehensive support for GenAI ETL tasks in RavenDB, enabling AI-powered document transformation pipelines. The implementation adds configuration classes, validation helpers, and operations for managing GenAI ETL tasks that monitor collections, apply AI transformations, and update documents based on AI responses.

Key changes:

  • New GenAiConfiguration class with validation, serialization, and AI-specific settings (prompts, schemas, concurrency)
  • AiTaskIdentifierHelper utility for generating and validating normalized task identifiers
  • AddGenAiOperation and UpdateGenAiOperation for creating and modifying GenAI ETL tasks

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/Ported/Documents/Operations/GenAiEtlTest.ts Integration tests for adding and updating GenAI ETL tasks
test/Documents/Operations/AI/StartingPointChangeVectorTest.ts Tests for ETL starting point constants and custom change vectors
test/Documents/Operations/AI/GenAiTransformationTest.ts Tests for transformation script validation requiring ai.genContext
test/Documents/Operations/AI/GenAiOperationsTest.ts Unit tests for Add/Update operation classes and HTTP request generation
test/Documents/Operations/AI/GenAiConfigurationTest.ts Tests for configuration validation, serialization, and property defaults
test/Documents/Operations/AI/AiTaskIdentifierHelperTest.ts Tests for identifier validation rules and normalization logic
src/index.ts Export for StartingPointChangeVector class
src/Documents/StartingPointChangeVector.ts Class for ETL starting point with predefined constants
src/Documents/Operations/OngoingTasks/OngoingTaskType.ts Added "GenAi" to task type union
src/Documents/Operations/Etl/ConnectionString.ts Added "GenAi" to ETL type union
src/Documents/Operations/AI/index.ts Exports for GenAI ETL classes
src/Documents/Operations/AI/UpdateGenAiOperation.ts Operation for updating GenAI ETL tasks with reset support
src/Documents/Operations/AI/GenAiTransformation.ts Transformation script wrapper with validation
src/Documents/Operations/AI/GenAiConfiguration.ts Complete GenAI ETL configuration with validation and serialization
src/Documents/Operations/AI/ConnectionStrings/AiConnectionString.ts Simplified compare method signature
src/Documents/Operations/AI/AiTaskIdentifierHelper.ts Helper for generating and validating normalized identifiers
src/Documents/Operations/AI/AddGenAiOperation.ts Operation for adding new GenAI ETL tasks
src/Documents/Operations/AI/AddAiTaskOperationResult.ts Result interfaces for AI task operations
src/Documents/Operations/AI/AbstractAiIntegrationConfiguration.ts Base class for AI integration configurations

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@M4xymm M4xymm marked this pull request as draft December 15, 2025 12:12
@M4xymm M4xymm force-pushed the RDBC-992 branch 2 times, most recently from d617ab3 to e9c75d6 Compare December 15, 2025 13:52
@M4xymm M4xymm marked this pull request as ready for review December 15, 2025 13:52
…framework

- Added `GenAiConfiguration` and `GenAiTransformation` for handling AI-related ETL tasks.
- Introduced `AddGenAiOperation` and `AddGenAiOperationResult` for new GenAI ETL task creation.
- Created `AiConnectionString` for managing AI service integrations (e.g., OpenAI, Azure, Hugging Face).
- Enhanced validation and identifier generation for AI task configurations.
- Updated ETL framework with `GenAi` and `EmbeddingsGeneration` types.
- Added tests for creating, updating, and validating GenAI ETL tasks.
- Introduced coverage for `AddGenAiOperation` and `UpdateGenAiOperation`.
- Validated error handling for missing schema or sample object in configurations.

RDBC-992 update test script validation logic, eslint fixes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant