mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 06:16:59 +08:00
fix(server): batch size in gemini embedding (#13120)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved reliability of embedding generation for multiple messages, allowing partial results even if some embeddings fail. * Enhanced error handling to ensure only valid embeddings are returned. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -239,12 +239,16 @@ export abstract class GeminiProvider<T> extends CopilotProvider<T> {
|
|||||||
taskType: 'RETRIEVAL_DOCUMENT',
|
taskType: 'RETRIEVAL_DOCUMENT',
|
||||||
});
|
});
|
||||||
|
|
||||||
const { embeddings } = await embedMany({
|
const embeddings = await Promise.allSettled(
|
||||||
model: modelInstance,
|
messages.map(m =>
|
||||||
values: messages,
|
embedMany({ model: modelInstance, values: [m], maxRetries: 3 })
|
||||||
});
|
)
|
||||||
|
);
|
||||||
|
|
||||||
return embeddings.filter(v => v && Array.isArray(v));
|
return embeddings
|
||||||
|
.map(e => (e.status === 'fulfilled' ? e.value.embeddings : null))
|
||||||
|
.flat()
|
||||||
|
.filter((v): v is number[] => !!v && Array.isArray(v));
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
metrics.ai
|
metrics.ai
|
||||||
.counter('generate_embedding_errors')
|
.counter('generate_embedding_errors')
|
||||||
|
|||||||
Reference in New Issue
Block a user