Browse Source

Task/improve performance of reading activities with AI (#8138)

Improve performance
pull/8139/head
Thomas Kaul 4 days ago
committed by GitHub
parent
commit
9122858aa0
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      apps/api/src/app/endpoints/ai/ai.service.spec.ts
  2. 12
      apps/api/src/app/endpoints/ai/ai.service.ts

3
apps/api/src/app/endpoints/ai/ai.service.spec.ts

@ -197,7 +197,7 @@ describe('AiService', () => {
); );
}); });
it('Restricts the routing to endpoints with zero data retention and passes a PDF file to the model itself', async () => { it('Restricts the routing to endpoints with zero data retention, disables the reasoning and passes a PDF file to the model itself', async () => {
await aiService.getActivityRowsFromFile({ await aiService.getActivityRowsFromFile({
file: { buffer: Buffer.from('%PDF-1.7'), mediaType: 'application/pdf' }, file: { buffer: Buffer.from('%PDF-1.7'), mediaType: 'application/pdf' },
locale: 'de-CH' locale: 'de-CH'
@ -206,6 +206,7 @@ describe('AiService', () => {
expect(chat).toHaveBeenCalledWith('vision-model', { expect(chat).toHaveBeenCalledWith('vision-model', {
plugins: [{ id: 'file-parser', pdf: { engine: 'native' } }], plugins: [{ id: 'file-parser', pdf: { engine: 'native' } }],
provider: { require_parameters: true, zdr: true }, provider: { require_parameters: true, zdr: true },
reasoning: { effort: 'none' },
usage: { include: true } usage: { include: true }
}); });
}); });

12
apps/api/src/app/endpoints/ai/ai.service.ts

@ -289,11 +289,12 @@ export class AiService {
* OpenRouter is not covered by the zero data retention. The model gets no * OpenRouter is not covered by the zero data retention. The model gets no
* tools and copies the asset, the account and the broker as printed, hence * tools and copies the asset, the account and the broker as printed, hence
* the rows still have to be matched to asset profiles and accounts. The * the rows still have to be matched to asset profiles and accounts. The
* name of the file is passed as well, as it can name the broker. A row above the * name of the file is passed as well, as it can name the broker. The
* maximum number of activities is left out. An output which reaches the * reasoning is disabled, as it can add thousands of output tokens even for a
* maximum number of output tokens is cut, hence it gives an error for the * single row. A row above the maximum number of activities is left out. An
* caller. A cut output without any text is not parsed at all, hence the * output which reaches the maximum number of output tokens is cut, hence it
* finish reason is checked as well. * gives an error for the caller. A cut output without any text is not parsed
* at all, hence the finish reason is checked as well.
*/ */
public async getActivityRowsFromFile({ public async getActivityRowsFromFile({
abortSignal, abortSignal,
@ -341,6 +342,7 @@ export class AiService {
settings: { settings: {
plugins: [{ id: 'file-parser', pdf: { engine: 'native' } }], plugins: [{ id: 'file-parser', pdf: { engine: 'native' } }],
provider: { require_parameters: true, zdr: true }, provider: { require_parameters: true, zdr: true },
reasoning: { effort: 'none' },
usage: { include: true } usage: { include: true }
} }
}), }),

Loading…
Cancel
Save