Skip to content

Commit 989fcb0

Browse files
committed
fix(core): adjust embedding model usage handling and simplify provider model registry
1 parent 9c20af1 commit 989fcb0

File tree

3 files changed

+17
-36
lines changed

3 files changed

+17
-36
lines changed

packages/core/src/generate/embed.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export async function embed<T = string>({
4141
}
4242
}
4343

44-
return await chunkArray(value, (model.batchSize ?? 21) - 1).reduce(
44+
return await chunkArray(value, (model.batchSize ?? 20) - 1).reduce(
4545
async (acc, chunk) => {
4646
const result = await acc
4747
const response = await model.doEmbed({
@@ -52,14 +52,16 @@ export async function embed<T = string>({
5252
return {
5353
embedding: result.embedding.concat(response.embeddings),
5454
value,
55-
usage: addEmbeddingModelUsage(result.usage, response.usage)
55+
usage: response.usage
56+
? addEmbeddingModelUsage(result.usage, response.usage)
57+
: undefined
5658
} as EmbedResult<T>
5759
},
5860
Promise.resolve({
5961
embedding: [] as number[][],
6062
value,
6163
usage: {
62-
tokens: NaN
64+
tokens: 0
6365
}
6466
} as EmbedResult<T>)
6567
)
@@ -73,5 +75,5 @@ export interface EmbedResult<T> {
7375
? number[][]
7476
: number[]
7577

76-
readonly usage: EmbeddingModelUsage
78+
readonly usage?: EmbeddingModelUsage
7779
}

packages/core/src/provider/registry.ts

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,7 @@ export interface Provider<T extends ProviderConfig = ProviderConfig> {
1717
export class DefaultProviderRegistry implements Provider {
1818
private providers: Record<string, Provider> = {}
1919

20-
private _providerModels: Record<string, PlatformModelInfo[]> = new Proxy(
21-
{},
22-
{
23-
get(target, prop) {
24-
return Reflect.get(target, prop)
25-
},
26-
set(target, prop, value) {
27-
try {
28-
throw new Error(`6667`)
29-
} catch (err) {
30-
console.error(err)
31-
}
32-
return Reflect.set(target, prop, value)
33-
}
34-
}
35-
)
20+
private _providerModels: Record<string, PlatformModelInfo[]> = {}
3621

3722
providerName: string = 'default'
3823

@@ -121,7 +106,6 @@ export class DefaultProviderRegistry implements Provider {
121106
for (const providerId in this.providers) {
122107
if (this._providerModels[providerId]) {
123108
const cachedModels = this._providerModels[providerId]
124-
console.log(`[${providerId}] use cached models`, cachedModels)
125109
result.push(...cachedModels)
126110
promises.push(Promise.resolve(cachedModels))
127111
continue
@@ -137,11 +121,6 @@ export class DefaultProviderRegistry implements Provider {
137121
})
138122
)
139123

140-
console.log(
141-
`[${providerId}] use hardcode models`,
142-
cachePlatformModels
143-
)
144-
145124
result.push(...cachePlatformModels)
146125
this._providerModels[providerId] = cachePlatformModels
147126

@@ -153,8 +132,6 @@ export class DefaultProviderRegistry implements Provider {
153132

154133
this._providerModels[providerId] = platformModels
155134

156-
console.log(`[${providerId}] use latest models`, platformModels)
157-
158135
return platformModels
159136
})
160137
promises.push(latestPlatformModels)
@@ -180,9 +157,11 @@ export interface ModelInfo {
180157
costPerTokenOutput?: number
181158
}
182159

183-
export type PlatformModelInfo = ModelInfo & {
184-
provider: string
185-
}
160+
export type PlatformModelInfo = Readonly<
161+
ModelInfo & {
162+
provider: string
163+
}
164+
>
186165

187166
/**
188167
* Fetch function type (standardizes the version of fetch used).

packages/core/src/services/cortex-luna-service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ export class CortexLunaService extends Service {
1313
}
1414

1515
registerProvider({ id, provider }: { id: string; provider: Provider }) {
16-
const disposed = this._registry.registerProvider({
16+
const providerRegistration = this._registry.registerProvider({
1717
id,
1818
provider
1919
})
2020

21-
const dispose = () => {
21+
const cleanupProvider = () => {
2222
return () => {
23-
disposed()
23+
providerRegistration()
2424
this.ctx.emit('cortexluna/provider-updated', this)
2525
}
2626
}
2727

2828
this.ctx.emit('cortexluna/provider-updated', this)
2929

30-
return this.ctx.effect(() => dispose)
30+
return this.ctx.effect(() => cleanupProvider)
3131
}
3232

3333
languageModel(id: string) {
@@ -38,7 +38,7 @@ export class CortexLunaService extends Service {
3838
return this._registry.textEmbeddingModel(id)
3939
}
4040

41-
async models(): Promise<PlatformModelInfo[]> {
41+
async models(): Promise<readonly PlatformModelInfo[]> {
4242
const [cached, lateast] = this._registry.models()
4343

4444
try {

0 commit comments

Comments
 (0)