Skip to content

Commit 402f64a

Browse files
committed
merge
1 parent fcc34b4 commit 402f64a

File tree

17 files changed

+1437
-260
lines changed

17 files changed

+1437
-260
lines changed

.github/workflows/main.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ env:
1515
WEAVIATE_129: 1.29.1
1616
WEAVIATE_130: 1.30.0-dev-9df35ca
1717

18+
concurrency:
19+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
20+
cancel-in-progress: true
21+
1822
jobs:
1923
checks:
2024
runs-on: ubuntu-latest

src/collections/config/types/generative.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,13 @@ export type GenerativeMistralConfig = {
5858
temperature?: number;
5959
};
6060

61+
export type GenerativeNvidiaConfig = {
62+
baseURL?: string;
63+
maxTokens?: number;
64+
model?: string;
65+
temperature?: number;
66+
};
67+
6168
export type GenerativeOllamaConfig = {
6269
apiEndpoint?: string;
6370
model?: string;

src/collections/configure/generative.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
GenerativeFriendliAIConfig,
99
GenerativeGoogleConfig,
1010
GenerativeMistralConfig,
11+
GenerativeNvidiaConfig,
1112
GenerativeOllamaConfig,
1213
GenerativeOpenAIConfig,
1314
GenerativePaLMConfig,
@@ -22,6 +23,7 @@ import {
2223
GenerativeDatabricksConfigCreate,
2324
GenerativeFriendliAIConfigCreate,
2425
GenerativeMistralConfigCreate,
26+
GenerativeNvidiaConfigCreate,
2527
GenerativeOllamaConfigCreate,
2628
GenerativeOpenAIConfigCreate,
2729
GenerativePaLMConfigCreate,
@@ -169,6 +171,22 @@ export default {
169171
config,
170172
};
171173
},
174+
/**
175+
* Create a `ModuleConfig<'generative-nvidia', GenerativeNvidiaConfig | undefined>` object for use when performing AI generation using the `generative-mistral` module.
176+
*
177+
* See the [documentation](https://weaviate.io/developers/weaviate/model-providers/nvidia/generative) for detailed usage.
178+
*
179+
* @param {GenerativeNvidiaConfigCreate} [config] The configuration for the `generative-nvidia` module.
180+
* @returns {ModuleConfig<'generative-nvidia', GenerativeNvidiaConfig | undefined>} The configuration object.
181+
*/
182+
nvidia(
183+
config?: GenerativeNvidiaConfigCreate
184+
): ModuleConfig<'generative-nvidia', GenerativeNvidiaConfig | undefined> {
185+
return {
186+
name: 'generative-nvidia',
187+
config,
188+
};
189+
},
172190
/**
173191
* Create a `ModuleConfig<'generative-ollama', GenerativeOllamaConfig | undefined>` object for use when performing AI generation using the `generative-ollama` module.
174192
*

src/collections/configure/types/generative.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
GenerativeDatabricksConfig,
66
GenerativeFriendliAIConfig,
77
GenerativeMistralConfig,
8+
GenerativeNvidiaConfig,
89
GenerativeOllamaConfig,
910
GenerativePaLMConfig,
1011
} from '../../index.js';
@@ -44,6 +45,8 @@ export type GenerativeFriendliAIConfigCreate = GenerativeFriendliAIConfig;
4445

4546
export type GenerativeMistralConfigCreate = GenerativeMistralConfig;
4647

48+
export type GenerativeNvidiaConfigCreate = GenerativeNvidiaConfig;
49+
4750
export type GenerativeOllamaConfigCreate = GenerativeOllamaConfig;
4851

4952
export type GenerativeOpenAIConfigCreate = GenerativeOpenAIConfigBaseCreate & {
@@ -61,6 +64,7 @@ export type GenerativeConfigCreate =
6164
| GenerativeDatabricksConfigCreate
6265
| GenerativeFriendliAIConfigCreate
6366
| GenerativeMistralConfigCreate
67+
| GenerativeNvidiaConfigCreate
6468
| GenerativeOllamaConfigCreate
6569
| GenerativeOpenAIConfigCreate
6670
| GenerativePaLMConfigCreate
@@ -81,6 +85,8 @@ export type GenerativeConfigCreateType<G> = G extends 'generative-anthropic'
8185
? GenerativeFriendliAIConfigCreate
8286
: G extends 'generative-mistral'
8387
? GenerativeMistralConfigCreate
88+
: G extends 'generative-nvidia'
89+
? GenerativeNvidiaConfigCreate
8490
: G extends 'generative-ollama'
8591
? GenerativeOllamaConfigCreate
8692
: G extends 'generative-openai'

src/collections/deserialize/index.ts

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import {
2525
AggregateResult,
2626
AggregateText,
2727
AggregateType,
28+
GenerativeConfigRuntime,
29+
GenerativeMetadata,
2830
PropertiesMetrics,
2931
} from '../index.js';
3032
import { referenceFromObjects } from '../references/utils.js';
@@ -207,19 +209,43 @@ export class Deserialize {
207209
};
208210
}
209211

210-
public generate<T>(reply: SearchReply): GenerativeReturn<T> {
212+
public generate<T, C extends GenerativeConfigRuntime | undefined>(
213+
reply: SearchReply
214+
): GenerativeReturn<T, C> {
211215
return {
212216
objects: reply.results.map((result) => {
213217
return {
214-
generated: result.metadata?.generativePresent ? result.metadata?.generative : undefined,
218+
generated: result.metadata?.generativePresent
219+
? result.metadata?.generative
220+
: result.generative
221+
? result.generative.values[0].result
222+
: undefined,
223+
generative: result.generative
224+
? {
225+
text: result.generative.values[0].result,
226+
debug: result.generative.values[0].debug,
227+
metadata: result.generative.values[0].metadata as GenerativeMetadata<C>,
228+
}
229+
: undefined,
215230
metadata: Deserialize.metadata(result.metadata),
216231
properties: this.properties(result.properties),
217232
references: this.references(result.properties),
218233
uuid: Deserialize.uuid(result.metadata),
219234
vectors: Deserialize.vectors(result.metadata),
220235
} as any;
221236
}),
222-
generated: reply.generativeGroupedResult,
237+
generated:
238+
reply.generativeGroupedResult !== ''
239+
? reply.generativeGroupedResult
240+
: reply.generativeGroupedResults
241+
? reply.generativeGroupedResults.values[0].result
242+
: undefined,
243+
generative: reply.generativeGroupedResults
244+
? {
245+
text: reply.generativeGroupedResults?.values[0].result,
246+
metadata: reply.generativeGroupedResults?.values[0].metadata as GenerativeMetadata<C>,
247+
}
248+
: undefined,
223249
};
224250
}
225251

@@ -252,9 +278,9 @@ export class Deserialize {
252278
};
253279
}
254280

255-
public generateGroupBy<T>(reply: SearchReply): GenerativeGroupByReturn<T> {
281+
public generateGroupBy<T>(reply: SearchReply): GenerativeGroupByReturn<T, any> {
256282
const objects: GroupByObject<T>[] = [];
257-
const groups: Record<string, GenerativeGroupByResult<T>> = {};
283+
const groups: Record<string, GenerativeGroupByResult<T, any>> = {};
258284
reply.groupByResults.forEach((result) => {
259285
const objs = result.objects.map((object) => {
260286
return {

0 commit comments

Comments
 (0)