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({
file: { buffer: Buffer.from('%PDF-1.7'), mediaType: 'application/pdf' },
locale: 'de-CH'
@ -206,6 +206,7 @@ describe('AiService', () => {
expect(chat).toHaveBeenCalledWith('vision-model', {
plugins: [{ id: 'file-parser', pdf: { engine: 'native' } }],
provider: { require_parameters: true, zdr: true },
reasoning: { effort: 'none' },
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
* 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
* name of the file is passed as well, as it can name the broker. A row above the
* maximum number of activities is left out. An output which reaches the
* maximum number of output tokens is cut, hence it 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.
* name of the file is passed as well, as it can name the broker. The
* reasoning is disabled, as it can add thousands of output tokens even for a
* single row. A row above the maximum number of activities is left out. An
* output which reaches the maximum number of output tokens is cut, hence it
* 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({
abortSignal,
@ -341,6 +342,7 @@ export class AiService {
settings: {
plugins: [{ id: 'file-parser', pdf: { engine: 'native' } }],
provider: { require_parameters: true, zdr: true },
reasoning: { effort: 'none' },
usage: { include: true }
}
}),

Loading…
Cancel
Save