diff --git a/packages/core/src/config/types/generative.ts b/packages/core/src/config/types/generative.ts index 6af5a2cd..c4fb3afe 100644 --- a/packages/core/src/config/types/generative.ts +++ b/packages/core/src/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 GenerativeDigitalOceanConfig = { baseURL?: string; frequencyPenalty?: number; @@ -134,6 +145,7 @@ export type GenerativeConfig = | GenerativeCohereConfig | GenerativeContextualAIConfig | GenerativeDatabricksConfig + | GenerativeDeepseekConfig | GenerativeDigitalOceanConfig | GenerativeGoogleConfig | GenerativeFriendliAIConfig @@ -159,6 +171,8 @@ export type GenerativeConfigType = G extends 'generative-anthropic' ? GenerativeContextualAIConfig : G extends 'generative-databricks' ? GenerativeDatabricksConfig + : G extends 'generative-deepseek' + ? GenerativeDeepseekConfig : G extends 'generative-digitalocean' ? GenerativeDigitalOceanConfig : G extends 'generative-google' @@ -190,6 +204,7 @@ export type GenerativeSearch = | 'generative-cohere' | 'generative-contextualai' | 'generative-databricks' + | 'generative-deepseek' | 'generative-digitalocean' | 'generative-google' | 'generative-friendliai' diff --git a/packages/core/src/configure/generative.ts b/packages/core/src/configure/generative.ts index 734190e3..7bf2c084 100644 --- a/packages/core/src/configure/generative.ts +++ b/packages/core/src/configure/generative.ts @@ -6,6 +6,7 @@ import { GenerativeCohereConfigCreate, GenerativeContextualAIConfigCreate, GenerativeDatabricksConfigCreate, + GenerativeDeepseekConfigCreate, GenerativeDigitalOceanConfigCreate, GenerativeFriendliAIConfigCreate, GenerativeMistralConfigCreate, @@ -23,6 +24,7 @@ import { GenerativeCohereConfig, GenerativeContextualAIConfig, GenerativeDatabricksConfig, + GenerativeDeepseekConfig, GenerativeDigitalOceanConfig, GenerativeFriendliAIConfig, GenerativeGoogleConfig, @@ -173,6 +175,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-digitalocean', GenerativeDigitalOceanConfig | undefined>` object for use when performing AI generation using the `generative-digitalocean` module. * diff --git a/packages/core/src/configure/types/generative.ts b/packages/core/src/configure/types/generative.ts index f43a5d64..03209e48 100644 --- a/packages/core/src/configure/types/generative.ts +++ b/packages/core/src/configure/types/generative.ts @@ -3,6 +3,7 @@ import { GenerativeAnthropicConfig, GenerativeAnyscaleConfig, GenerativeDatabricksConfig, + GenerativeDeepseekConfig, GenerativeDigitalOceanConfig, GenerativeFriendliAIConfig, GenerativeMistralConfig, @@ -43,6 +44,8 @@ export type GenerativeCohereConfigCreate = { export type GenerativeDatabricksConfigCreate = GenerativeDatabricksConfig; +export type GenerativeDeepseekConfigCreate = GenerativeDeepseekConfig; + export type GenerativeDigitalOceanConfigCreate = GenerativeDigitalOceanConfig; export type GenerativeFriendliAIConfigCreate = GenerativeFriendliAIConfig; @@ -78,6 +81,7 @@ export type GenerativeConfigCreate = | GenerativeCohereConfigCreate | GenerativeContextualAIConfigCreate | GenerativeDatabricksConfigCreate + | GenerativeDeepseekConfigCreate | GenerativeDigitalOceanConfigCreate | GenerativeFriendliAIConfigCreate | GenerativeMistralConfigCreate @@ -101,6 +105,8 @@ export type GenerativeConfigCreateType = G extends 'generative-anthropic' ? GenerativeContextualAIConfigCreate : G extends 'generative-databricks' ? GenerativeDatabricksConfigCreate + : G extends 'generative-deepseek' + ? GenerativeDeepseekConfigCreate : G extends 'generative-digitalocean' ? GenerativeDigitalOceanConfigCreate : G extends 'generative-friendliai' diff --git a/packages/test/node/configure/unit.test.ts b/packages/test/node/configure/unit.test.ts index 60897c76..539fef7a 100644 --- a/packages/test/node/configure/unit.test.ts +++ b/packages/test/node/configure/unit.test.ts @@ -7,6 +7,7 @@ import { GenerativeCohereConfig, GenerativeContextualAIConfig, GenerativeDatabricksConfig, + GenerativeDeepseekConfig, GenerativeDigitalOceanConfig, GenerativeFriendliAIConfig, GenerativeGoogleConfig, @@ -2047,6 +2048,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 GenerativeDigitalOceanConfig type with required & default values', () => { const config = configure.generative.digitalOcean(); expect(config).toEqual>(