From 65bce5061ec7bde326db69c54d6bda30215e45e4 Mon Sep 17 00:00:00 2001 From: Osama Ansar Date: Mon, 31 Aug 2026 01:28:56 +0500 Subject: [PATCH] gh-446: add configure.generative.deepseek() module config builder --- src/collections/config/types/generative.ts | 15 ++++++++ src/collections/configure/generative.ts | 18 ++++++++++ src/collections/configure/types/generative.ts | 6 ++++ src/collections/configure/unit.test.ts | 35 +++++++++++++++++++ 4 files changed, 74 insertions(+) diff --git a/src/collections/config/types/generative.ts b/src/collections/config/types/generative.ts index 3b3b7363..6b88f091 100644 --- a/src/collections/config/types/generative.ts +++ b/src/collections/config/types/generative.ts @@ -48,6 +48,17 @@ export type GenerativeDatabricksConfig = { topP?: number; }; +export type GenerativeDeepseekConfig = { + baseURL?: string; + frequencyPenalty?: number; + maxTokens?: number; + model?: string; + presencePenalty?: number; + stop?: string[]; + temperature?: number; + topP?: number; +}; + export type GenerativeFriendliAIConfig = { baseURL?: string; maxTokens?: number; @@ -123,6 +134,7 @@ export type GenerativeConfig = | GenerativeCohereConfig | GenerativeContextualAIConfig | GenerativeDatabricksConfig + | GenerativeDeepseekConfig | GenerativeGoogleConfig | GenerativeFriendliAIConfig | GenerativeMistralConfig @@ -147,6 +159,8 @@ export type GenerativeConfigType = G extends 'generative-anthropic' ? GenerativeContextualAIConfig : G extends 'generative-databricks' ? GenerativeDatabricksConfig + : G extends 'generative-deepseek' + ? GenerativeDeepseekConfig : G extends 'generative-google' ? GenerativeGoogleConfig : G extends 'generative-friendliai' @@ -176,6 +190,7 @@ export type GenerativeSearch = | 'generative-cohere' | 'generative-contextualai' | 'generative-databricks' + | 'generative-deepseek' | 'generative-google' | 'generative-friendliai' | 'generative-mistral' diff --git a/src/collections/configure/generative.ts b/src/collections/configure/generative.ts index f00ca85c..c291a680 100644 --- a/src/collections/configure/generative.ts +++ b/src/collections/configure/generative.ts @@ -6,6 +6,7 @@ import { GenerativeCohereConfig, GenerativeContextualAIConfig, GenerativeDatabricksConfig, + GenerativeDeepseekConfig, GenerativeFriendliAIConfig, GenerativeGoogleConfig, GenerativeMistralConfig, @@ -24,6 +25,7 @@ import { GenerativeCohereConfigCreate, GenerativeContextualAIConfigCreate, GenerativeDatabricksConfigCreate, + GenerativeDeepseekConfigCreate, GenerativeFriendliAIConfigCreate, GenerativeMistralConfigCreate, GenerativeNvidiaConfigCreate, @@ -171,6 +173,22 @@ export default { config, }; }, + /** + * Create a `ModuleConfig<'generative-deepseek', GenerativeDeepseekConfig | undefined>` object for use when performing AI generation using the `generative-deepseek` module. + * + * See the [documentation](https://weaviate.io/developers/weaviate/model-providers/deepseek/generative) for detailed usage. + * + * @param {GenerativeDeepseekConfigCreate} [config] The configuration for the `generative-deepseek` module. + * @returns {ModuleConfig<'generative-deepseek', GenerativeDeepseekConfig | undefined>} The configuration object. + */ + deepseek( + config?: GenerativeDeepseekConfigCreate + ): ModuleConfig<'generative-deepseek', GenerativeDeepseekConfig | undefined> { + return { + name: 'generative-deepseek', + config, + }; + }, /** * Create a `ModuleConfig<'generative-friendliai', GenerativeFriendliAIConfig | undefined>` object for use when performing AI generation using the `generative-friendliai` module. * diff --git a/src/collections/configure/types/generative.ts b/src/collections/configure/types/generative.ts index b46a0de3..11d0aeab 100644 --- a/src/collections/configure/types/generative.ts +++ b/src/collections/configure/types/generative.ts @@ -3,6 +3,7 @@ import { GenerativeAnthropicConfig, GenerativeAnyscaleConfig, GenerativeDatabricksConfig, + GenerativeDeepseekConfig, GenerativeFriendliAIConfig, GenerativeMistralConfig, GenerativeNvidiaConfig, @@ -42,6 +43,8 @@ export type GenerativeCohereConfigCreate = { export type GenerativeDatabricksConfigCreate = GenerativeDatabricksConfig; +export type GenerativeDeepseekConfigCreate = GenerativeDeepseekConfig; + export type GenerativeFriendliAIConfigCreate = GenerativeFriendliAIConfig; export type GenerativeMistralConfigCreate = GenerativeMistralConfig; @@ -75,6 +78,7 @@ export type GenerativeConfigCreate = | GenerativeCohereConfigCreate | GenerativeContextualAIConfigCreate | GenerativeDatabricksConfigCreate + | GenerativeDeepseekConfigCreate | GenerativeFriendliAIConfigCreate | GenerativeMistralConfigCreate | GenerativeNvidiaConfigCreate @@ -97,6 +101,8 @@ export type GenerativeConfigCreateType = G extends 'generative-anthropic' ? GenerativeContextualAIConfigCreate : G extends 'generative-databricks' ? GenerativeDatabricksConfigCreate + : G extends 'generative-deepseek' + ? GenerativeDeepseekConfigCreate : G extends 'generative-friendliai' ? GenerativeFriendliAIConfigCreate : G extends 'generative-mistral' diff --git a/src/collections/configure/unit.test.ts b/src/collections/configure/unit.test.ts index 43e3c849..7134cf1b 100644 --- a/src/collections/configure/unit.test.ts +++ b/src/collections/configure/unit.test.ts @@ -8,6 +8,7 @@ import { GenerativeCohereConfig, GenerativeContextualAIConfig, GenerativeDatabricksConfig, + GenerativeDeepseekConfig, GenerativeFriendliAIConfig, GenerativeGoogleConfig, GenerativeMistralConfig, @@ -2048,6 +2049,40 @@ describe('Unit testing of the generative factory class', () => { }); }); + it('should create the correct GenerativeDeepseekConfig type with required & default values', () => { + const config = configure.generative.deepseek(); + expect(config).toEqual>({ + name: 'generative-deepseek', + config: undefined, + }); + }); + + it('should create the correct GenerativeDeepseekConfig type with all values', () => { + const config = configure.generative.deepseek({ + baseURL: 'base-url', + frequencyPenalty: 0.2, + maxTokens: 100, + model: 'model', + presencePenalty: 0.3, + stop: ['stop'], + temperature: 0.5, + topP: 0.8, + }); + expect(config).toEqual>({ + name: 'generative-deepseek', + config: { + baseURL: 'base-url', + frequencyPenalty: 0.2, + maxTokens: 100, + model: 'model', + presencePenalty: 0.3, + stop: ['stop'], + temperature: 0.5, + topP: 0.8, + }, + }); + }); + it('should create the correct GenerativeFriendliAIConfig type with required & default values', () => { const config = configure.generative.friendliai(); expect(config).toEqual>({