Browse Source

Refactor AI service to import properties directly from the config module, update dependency versions to exact matches in package-lock.json, and remove obsolete properties.ts file. Added OpenRouter API key constant to config.ts.

pull/5025/head
Jack Ulf 3 days ago
parent
commit
ab2b19364b
  1. 8
      apps/api/src/app/endpoints/ai/ai.service.ts
  2. 6
      apps/api/src/services/data-provider/data-provider.module.ts
  3. 4
      libs/common/src/lib/config.ts
  4. 4
      libs/common/src/lib/config/properties.ts
  5. 4
      package-lock.json

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

@ -3,7 +3,7 @@ import { PropertyService } from '@ghostfolio/api/services/property/property.serv
import {
PROPERTY_API_KEY_OPENROUTER,
PROPERTY_OPENROUTER_MODEL
} from '@ghostfolio/common/config/properties';
} from '@ghostfolio/common/config';
import { Filter } from '@ghostfolio/common/interfaces';
import type { AiPromptMode } from '@ghostfolio/common/types';
@ -55,8 +55,8 @@ export class AiService {
});
return streamText({
model: chat(openRouterModel as string),
prompt
prompt,
model: chat(openRouterModel as string)
});
}
@ -110,7 +110,7 @@ export class AiService {
`You are a neutral financial assistant. Please analyze the following investment portfolio (base currency being ${userCurrency}) in simple words.`,
...holdingsTable,
'Structure your answer with these sections:',
"Overview: Briefly summarize the portfolio's composition and allocation rationale.",
'Overview: Briefly summarize the portfolio’s composition and allocation rationale.',
'Risk Assessment: Identify potential risks, including market volatility, concentration, and sectoral imbalances.',
'Advantages: Highlight strengths, focusing on growth potential, diversification, or other benefits.',
'Disadvantages: Point out weaknesses, such as overexposure or lack of defensive assets.',

6
apps/api/src/services/data-provider/data-provider.module.ts

@ -79,12 +79,6 @@ import { DataProviderService } from './data-provider.service';
]
},
YahooFinanceDataEnhancerService
],
exports: [
DataProviderService,
ManualService,
YahooFinanceDataEnhancerService,
YahooFinanceService
]
})
export class DataProviderModule {}

4
libs/common/src/lib/config.ts

@ -112,6 +112,8 @@ export const MAX_TOP_HOLDINGS = 50;
export const NUMERICAL_PRECISION_THRESHOLD = 100000;
export const PROPERTY_API_KEY_GHOSTFOLIO = 'API_KEY_GHOSTFOLIO';
export const PROPERTY_API_KEY_OPENROUTER = 'API_KEY_OPENROUTER';
export const PROPERTY_BENCHMARKS = 'BENCHMARKS';
export const PROPERTY_BETTER_UPTIME_MONITOR_ID = 'BETTER_UPTIME_MONITOR_ID';
export const PROPERTY_COUNTRIES_OF_SUBSCRIBERS = 'COUNTRIES_OF_SUBSCRIBERS';
@ -125,8 +127,6 @@ export const PROPERTY_DEMO_USER_ID = 'DEMO_USER_ID';
export const PROPERTY_IS_DATA_GATHERING_ENABLED = 'IS_DATA_GATHERING_ENABLED';
export const PROPERTY_IS_READ_ONLY_MODE = 'IS_READ_ONLY_MODE';
export const PROPERTY_IS_USER_SIGNUP_ENABLED = 'IS_USER_SIGNUP_ENABLED';
export const PROPERTY_MAX_PORTFOLIOS = 'MAX_PORTFOLIOS';
export const PROPERTY_MAX_USERS = 'MAX_USERS';
export const PROPERTY_OPENROUTER_MODEL = 'OPENROUTER_MODEL';
export const PROPERTY_SLACK_COMMUNITY_USERS = 'SLACK_COMMUNITY_USERS';
export const PROPERTY_STRIPE_CONFIG = 'STRIPE_CONFIG';

4
libs/common/src/lib/config/properties.ts

@ -1,4 +0,0 @@
export const PROPERTY_DATA_GATHERING_QUEUE_INTERVAL =
'DATA_GATHERING_QUEUE_INTERVAL';
export const PROPERTY_API_KEY_OPENROUTER = 'API_KEY_OPENROUTER';
export const PROPERTY_OPENROUTER_MODEL = 'OPENROUTER_MODEL';

4
package-lock.json

@ -42,12 +42,12 @@
"@nestjs/platform-express": "11.1.3",
"@nestjs/schedule": "6.0.0",
"@nestjs/serve-static": "5.0.3",
"@openrouter/ai-sdk-provider": "^0.7.2",
"@openrouter/ai-sdk-provider": "0.7.2",
"@prisma/client": "6.10.1",
"@simplewebauthn/browser": "13.1.0",
"@simplewebauthn/server": "13.1.1",
"@stripe/stripe-js": "7.3.1",
"ai": "^4.3.16",
"ai": "4.3.16",
"alphavantage": "2.2.0",
"big.js": "7.0.1",
"bootstrap": "4.6.2",

Loading…
Cancel
Save