From ab2b19364b0956050438496f5577f27a957e81f7 Mon Sep 17 00:00:00 2001 From: Jack Ulf Date: Sat, 28 Jun 2025 07:29:14 -0600 Subject: [PATCH] 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. --- apps/api/src/app/endpoints/ai/ai.service.ts | 8 ++++---- .../src/services/data-provider/data-provider.module.ts | 6 ------ libs/common/src/lib/config.ts | 4 ++-- libs/common/src/lib/config/properties.ts | 4 ---- package-lock.json | 4 ++-- 5 files changed, 8 insertions(+), 18 deletions(-) delete mode 100644 libs/common/src/lib/config/properties.ts diff --git a/apps/api/src/app/endpoints/ai/ai.service.ts b/apps/api/src/app/endpoints/ai/ai.service.ts index f0a6cdb61..25109eaa0 100644 --- a/apps/api/src/app/endpoints/ai/ai.service.ts +++ b/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.', diff --git a/apps/api/src/services/data-provider/data-provider.module.ts b/apps/api/src/services/data-provider/data-provider.module.ts index 9ec2bf851..9c5359520 100644 --- a/apps/api/src/services/data-provider/data-provider.module.ts +++ b/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 {} diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 116b22a54..df652079d 100644 --- a/libs/common/src/lib/config.ts +++ b/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'; diff --git a/libs/common/src/lib/config/properties.ts b/libs/common/src/lib/config/properties.ts deleted file mode 100644 index d35618091..000000000 --- a/libs/common/src/lib/config/properties.ts +++ /dev/null @@ -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'; diff --git a/package-lock.json b/package-lock.json index a8cfd8712..de3205aeb 100644 --- a/package-lock.json +++ b/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",