-
Notifications
You must be signed in to change notification settings - Fork 35
RDBC-992 - Introduce GenAI ETL Tasks, Configuration, and Operations #510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v7.1
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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
GenAiConfigurationclass with validation, serialization, and AI-specific settings (prompts, schemas, concurrency) AiTaskIdentifierHelperutility for generating and validating normalized task identifiersAddGenAiOperationandUpdateGenAiOperationfor 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.
d617ab3 to
e9c75d6
Compare
…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
GenAI ETL Task Support
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.GenAiTransformationclass to encapsulate and validate transformation scripts required for GenAI ETL, ensuring the presence of the necessaryai.genContextcall.AI Task Identifier Management
AiTaskIdentifierHelperfor generating and validating normalized, safe identifiers for AI tasks, enforcing naming conventions and providing normalization utilities.Operations for GenAI ETL Tasks
AddGenAiOperationandUpdateGenAiOperationclasses (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
AbstractAiIntegrationConfigurationas a base class for AI integration configurations, extending ETL configuration with AI-specific properties and connection handling.comparemethod inAiConnectionStringto simplify its signature.