Skip to content

Commit

Permalink
Add support for generative-databricks
Browse files Browse the repository at this point in the history
  • Loading branch information
tsmith023 committed Sep 16, 2024
1 parent b450b77 commit 8f35761
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 13 deletions.
36 changes: 24 additions & 12 deletions src/collections/config/types/generative.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,23 @@ export type GenerativeAnyscaleConfig = {
temperature?: number;
};

export type GenerativeCohereConfig = {
kProperty?: number;
model?: string;
maxTokensProperty?: number;
returnLikelihoodsProperty?: string;
stopSequencesProperty?: string[];
temperatureProperty?: number;
};

export type GenerativeDatabricksConfig = {
endpoint: string;
maxTokens?: number;
temperature?: number;
topK?: number;
topP?: number;
};

export type GenerativeFriendliAIConfig = {
baseURL?: string;
maxTokens?: number;
Expand Down Expand Up @@ -62,15 +79,6 @@ export type GenerativeAzureOpenAIConfig = GenerativeOpenAIConfigBase & {
deploymentId: string;
};

export type GenerativeCohereConfig = {
kProperty?: number;
model?: string;
maxTokensProperty?: number;
returnLikelihoodsProperty?: string;
stopSequencesProperty?: string[];
temperatureProperty?: number;
};

export type GenerativePaLMConfig = {
apiEndpoint?: string;
maxOutputTokens?: number;
Expand Down Expand Up @@ -105,15 +113,17 @@ export type GenerativeConfigType<G> = G extends 'generative-anthropic'
? GenerativeOpenAIConfig
: G extends 'generative-cohere'
? GenerativeAzureOpenAIConfig
: G extends 'generative-databricks'
? GenerativeDatabricksConfig
: G extends 'generative-friendliai'
? GenerativeFriendliAIConfig
: G extends 'generative-mistral'
? GenerativeMistralConfig
: G extends 'generative-octoai'
? GenerativeOctoAIConfig
: G extends 'generative-ollama'
? GenerativeOllamaConfig
: G extends 'generative-openai'
? GenerativeCohereConfig
: G extends 'generative-palm'
? GenerativePaLMConfig
: G extends 'none'
? undefined
Expand All @@ -124,11 +134,13 @@ export type GenerativeSearch =
| 'generative-anyscale'
| 'generative-aws'
| 'generative-azure-openai'
| 'generative-cohere'
| 'generative-databricks'
| 'generative-friendliai'
| 'generative-mistral'
| 'generative-octoai'
| 'generative-ollama'
| 'generative-openai'
| 'generative-cohere'
| 'generative-palm'
| 'none'
| string;
20 changes: 19 additions & 1 deletion src/collections/configure/generative.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
GenerativeAnyscaleConfig,
GenerativeAzureOpenAIConfig,
GenerativeCohereConfig,
GenerativeDatabricksConfig,
GenerativeFriendliAIConfig,
GenerativeMistralConfig,
GenerativeOctoAIConfig,
Expand All @@ -18,6 +19,7 @@ import {
GenerativeAnyscaleConfigCreate,
GenerativeAzureOpenAIConfigCreate,
GenerativeCohereConfigCreate,
GenerativeDatabricksConfigCreate,
GenerativeFriendliAIConfigCreate,
GenerativeMistralConfigCreate,
GenerativeOctoAIConfigCreate,
Expand Down Expand Up @@ -104,7 +106,7 @@ export default {
* See the [documentation](https://weaviate.io/developers/weaviate/model-providers/cohere/generative) for detailed usage.
*
* @param {GenerativeCohereConfigCreate} [config] The configuration for the `generative-cohere` module.
* @returns {ModuleConfig<'generative-cohere', GenerativeCohereConfig>} The configuration object.
* @returns {ModuleConfig<'generative-cohere', GenerativeCohereConfig | undefined>} The configuration object.
*/
cohere: (
config?: GenerativeCohereConfigCreate
Expand All @@ -123,6 +125,22 @@ export default {
: undefined,
};
},
/**
* Create a `ModuleConfig<'generative-databricks', GenerativeDatabricksConfig>` object for use when performing AI generation using the `generative-databricks` module.
*
* See the [documentation](https://weaviate.io/developers/weaviate/model-providers/databricks/generative) for detailed usage.
*
* @param {GenerativeDatabricksConfigCreate} config The configuration for the `generative-databricks` module.
* @returns {ModuleConfig<'generative-databricks', GenerativeDatabricksConfig>} The configuration object.
*/
databricks: (
config: GenerativeDatabricksConfigCreate
): ModuleConfig<'generative-databricks', GenerativeDatabricksConfig> => {
return {
name: 'generative-databricks',
config,
};
},
/**
* Create a `ModuleConfig<'generative-friendliai', GenerativeFriendliAIConfig | undefined>` object for use when performing AI generation using the `generative-friendliai` module.
*
Expand Down
6 changes: 6 additions & 0 deletions src/collections/configure/types/generative.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {
GenerativeAWSConfig,
GenerativeAnthropicConfig,
GenerativeAnyscaleConfig,
GenerativeDatabricksConfig,
GenerativeFriendliAIConfig,
GenerativeMistralConfig,
GenerativeOctoAIConfig,
Expand Down Expand Up @@ -38,6 +39,8 @@ export type GenerativeCohereConfigCreate = {
temperature?: number;
};

export type GenerativeDatabricksConfigCreate = GenerativeDatabricksConfig;

export type GenerativeFriendliAIConfigCreate = GenerativeFriendliAIConfig;

export type GenerativeMistralConfigCreate = GenerativeMistralConfig;
Expand All @@ -58,6 +61,7 @@ export type GenerativeConfigCreate =
| GenerativeAWSConfigCreate
| GenerativeAzureOpenAIConfigCreate
| GenerativeCohereConfigCreate
| GenerativeDatabricksConfigCreate
| GenerativeFriendliAIConfigCreate
| GenerativeMistralConfigCreate
| GenerativeOctoAIConfigCreate
Expand All @@ -75,6 +79,8 @@ export type GenerativeConfigCreateType<G> = G extends 'generative-anthropic'
? GenerativeAzureOpenAIConfigCreate
: G extends 'generative-cohere'
? GenerativeCohereConfigCreate
: G extends 'generative-databricks'
? GenerativeDatabricksConfigCreate
: G extends 'generative-friendliai'
? GenerativeFriendliAIConfigCreate
: G extends 'generative-mistral'
Expand Down
33 changes: 33 additions & 0 deletions src/collections/configure/unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
GenerativeAnyscaleConfig,
GenerativeAzureOpenAIConfig,
GenerativeCohereConfig,
GenerativeDatabricksConfig,
GenerativeFriendliAIConfig,
GenerativeMistralConfig,
GenerativeOctoAIConfig,
Expand Down Expand Up @@ -1259,6 +1260,38 @@ describe('Unit testing of the generative factory class', () => {
});
});

it('should create the correct GenerativeDatabricksConfig type with required & default values', () => {
const config = configure.generative.databricks({
endpoint: 'endpoint',
});
expect(config).toEqual<ModuleConfig<'generative-databricks', GenerativeDatabricksConfig>>({
name: 'generative-databricks',
config: {
endpoint: 'endpoint',
},
});
});

it('should create the correct GenerativeDatabricksConfig type with all values', () => {
const config = configure.generative.databricks({
endpoint: 'endpoint',
maxTokens: 100,
temperature: 0.5,
topK: 10,
topP: 0.8,
});
expect(config).toEqual<ModuleConfig<'generative-databricks', GenerativeDatabricksConfig>>({
name: 'generative-databricks',
config: {
endpoint: 'endpoint',
maxTokens: 100,
temperature: 0.5,
topK: 10,
topP: 0.8,
},
});
});

it('should create the correct GenerativeFriendliAIConfig type with required & default values', () => {
const config = configure.generative.friendliai();
expect(config).toEqual<ModuleConfig<'generative-friendliai', GenerativeFriendliAIConfig | undefined>>({
Expand Down

0 comments on commit 8f35761

Please sign in to comment.