@@ -18,6 +18,7 @@ export const EmbeddingProvider = {
18
18
OpenAI : "OpenAI" ,
19
19
Ollama : "Ollama" ,
20
20
GaiaNet : "GaiaNet" ,
21
+ Heurist : "Heurist" ,
21
22
BGE : "BGE" ,
22
23
} as const ;
23
24
@@ -39,23 +40,30 @@ export const getEmbeddingConfig = (): EmbeddingConfig => ({
39
40
: settings . USE_GAIANET_EMBEDDING ?. toLowerCase ( ) === "true"
40
41
? getEmbeddingModelSettings ( ModelProviderName . GAIANET )
41
42
. dimensions
42
- : 384 , // BGE
43
+ : settings . USE_HEURIST_EMBEDDING ?. toLowerCase ( ) === "true"
44
+ ? getEmbeddingModelSettings ( ModelProviderName . HEURIST )
45
+ . dimensions
46
+ : 384 , // BGE
43
47
model :
44
48
settings . USE_OPENAI_EMBEDDING ?. toLowerCase ( ) === "true"
45
49
? getEmbeddingModelSettings ( ModelProviderName . OPENAI ) . name
46
50
: settings . USE_OLLAMA_EMBEDDING ?. toLowerCase ( ) === "true"
47
51
? getEmbeddingModelSettings ( ModelProviderName . OLLAMA ) . name
48
52
: settings . USE_GAIANET_EMBEDDING ?. toLowerCase ( ) === "true"
49
53
? getEmbeddingModelSettings ( ModelProviderName . GAIANET ) . name
50
- : "BGE-small-en-v1.5" ,
54
+ : settings . USE_HEURIST_EMBEDDING ?. toLowerCase ( ) === "true"
55
+ ? getEmbeddingModelSettings ( ModelProviderName . HEURIST ) . name
56
+ : "BGE-small-en-v1.5" ,
51
57
provider :
52
58
settings . USE_OPENAI_EMBEDDING ?. toLowerCase ( ) === "true"
53
59
? "OpenAI"
54
60
: settings . USE_OLLAMA_EMBEDDING ?. toLowerCase ( ) === "true"
55
61
? "Ollama"
56
62
: settings . USE_GAIANET_EMBEDDING ?. toLowerCase ( ) === "true"
57
63
? "GaiaNet"
58
- : "BGE" ,
64
+ : settings . USE_HEURIST_EMBEDDING ?. toLowerCase ( ) === "true"
65
+ ? "Heurist"
66
+ : "BGE" ,
59
67
} ) ;
60
68
61
69
async function getRemoteEmbedding (
@@ -126,6 +134,7 @@ export function getEmbeddingType(runtime: IAgentRuntime): "local" | "remote" {
126
134
isNode &&
127
135
runtime . character . modelProvider !== ModelProviderName . OPENAI &&
128
136
runtime . character . modelProvider !== ModelProviderName . GAIANET &&
137
+ runtime . character . modelProvider !== ModelProviderName . HEURIST &&
129
138
! settings . USE_OPENAI_EMBEDDING ;
130
139
131
140
return isLocal ? "local" : "remote" ;
@@ -146,6 +155,10 @@ export function getEmbeddingZeroVector(): number[] {
146
155
embeddingDimension = getEmbeddingModelSettings (
147
156
ModelProviderName . GAIANET
148
157
) . dimensions ; // GaiaNet dimension
158
+ } else if ( settings . USE_HEURIST_EMBEDDING ?. toLowerCase ( ) === "true" ) {
159
+ embeddingDimension = getEmbeddingModelSettings (
160
+ ModelProviderName . HEURIST
161
+ ) . dimensions ; // Heurist dimension
149
162
}
150
163
151
164
return Array ( embeddingDimension ) . fill ( 0 ) ;
@@ -229,6 +242,15 @@ export async function embed(runtime: IAgentRuntime, input: string) {
229
242
} ) ;
230
243
}
231
244
245
+ if ( config . provider === EmbeddingProvider . Heurist ) {
246
+ return await getRemoteEmbedding ( input , {
247
+ model : config . model ,
248
+ endpoint : getEndpoint ( ModelProviderName . HEURIST ) ,
249
+ apiKey : runtime . token ,
250
+ dimensions : config . dimensions ,
251
+ } ) ;
252
+ }
253
+
232
254
// BGE - try local first if in Node
233
255
if ( isNode ) {
234
256
try {
0 commit comments