Skip to content

Commit d3169ac

Browse files
committed
More features, but still non-functional
1 parent 48ebe49 commit d3169ac

39 files changed

+9223
-938
lines changed
Lines changed: 35 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -1,148 +1,62 @@
1-
# FILE: php-symfony-neuron/config/services.yaml
2-
# Purpose: Defines application services and default configurations.
3-
41
parameters:
5-
llm.api_key: '%env(GENAI_API_KEY)%'
6-
llm.base_url: '%env(GENAI_BASE_URL)%'
7-
llm.model: '%env(GENAI_MODEL)%'
8-
use_mock_data: '%env(bool:USE_MOCK_DATA)%'
9-
alpha_vantage.api_key: '%env(ALPHA_VANTAGE_API_KEY)%'
10-
kaleidoscope_api.key: '%env(KALEIDOSCOPE_API_KEY)%' # API key for Kaleidoscope API
2+
app.rapid_api_key: '%env(resolve:RAPID_API_KEY)%'
3+
app.genai_api_key: '%env(resolve:GENAI_API_KEY)%'
4+
app.genai_base_url: '%env(resolve:GENAI_BASE_URL)%'
5+
app.genai_model: '%env(resolve:GENAI_MODEL)%'
116

127
services:
13-
# Default configuration for services in *this* file
8+
# default configuration for services in *this* file
149
_defaults:
15-
autowire: true # Automatically injects dependencies
16-
autoconfigure: true # Automatically registers services
17-
bind:
18-
Psr\Log\LoggerInterface: '@logger'
19-
# API keys are best bound in package configs or injected via constructor args
10+
autowire: true # Automatically injects dependencies in your services.
11+
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
2012

21-
# Makes classes in src/ available to be used as services
13+
# makes classes in src/ available to be used as services
14+
# this creates a service per class whose id is the fully-qualified class name
2215
App\:
2316
resource: '../src/'
2417
exclude:
18+
- '../src/DependencyInjection/'
2519
- '../src/Entity/'
2620
- '../src/Kernel.php'
2721

28-
# Configure LLM services explicitly
29-
App\Service\LlmClientFactory:
30-
arguments:
31-
$apiKey: '%llm.api_key%'
32-
$baseUrl: '%llm.base_url%'
33-
$model: '%llm.model%'
22+
# controllers are imported separately to make sure services can be injected
23+
# as action arguments even if you don't extend any base controller class
24+
App\Controller\:
25+
resource: '../src/Controller/'
26+
tags: ['controller.service_arguments']
3427

35-
# Configure NeuronAiService explicitly with the LlmClientFactory dependency
36-
App\Service\NeuronAiService:
37-
arguments:
38-
$clientFactory: '@App\Service\LlmClientFactory'
28+
# add more service definitions when explicit configuration is needed
29+
# please note that last definitions always *replace* previous ones
3930

40-
# --- Define ALL Concrete Implementations (Real & Mock) ---
41-
# Alpha Vantage
42-
App\Service\ApiClient\AlphaVantageClient:
43-
public: true
44-
arguments:
45-
$httpClient: '@http_client'
46-
$params: '@parameter_bag'
47-
$logger: '@logger'
48-
49-
App\Service\ApiClient\MockAlphaVantageClient:
50-
public: true
51-
52-
# Yahoo Finance
31+
# Yahoo Finance API Configuration
5332
App\Service\ApiClient\YahooFinanceClient:
54-
public: true
55-
arguments:
56-
$httpClient: '@http_client'
57-
$params: '@parameter_bag'
58-
$logger: '@logger'
59-
60-
App\Service\ApiClient\MockYahooFinanceClient:
61-
public: true
62-
63-
# SEC API (Kaleidoscope)
64-
App\Service\ApiClient\SecApiClient:
65-
public: true
66-
arguments:
67-
$httpClient: '@http_client'
68-
$params: '@parameter_bag'
69-
$logger: '@logger'
70-
71-
App\Service\ApiClient\MockSecApiClient:
72-
public: true
73-
74-
# News API
75-
App\Service\ApiClient\NewsApiClient:
76-
public: true
7733
arguments:
78-
$httpClient: '@http_client'
7934
$params: '@parameter_bag'
80-
$logger: '@logger'
81-
82-
App\Service\ApiClient\MockNewsApiClient:
83-
public: true
8435

85-
# Kaleidoscope API (Now the only SEC filings provider)
86-
App\Service\ApiClient\KaleidoscopeApiClient:
87-
public: true
36+
# Yahoo Finance API Service using the client
37+
App\Service\YahooFinanceService:
8838
arguments:
89-
$httpClient: '@http_client'
90-
$params: '@parameter_bag'
91-
$logger: '@logger'
92-
93-
App\Service\ApiClient\MockKaleidoscopeApiClient:
94-
public: true
39+
$rapidApiKey: '%app.rapid_api_key%'
40+
$useMockData: '%env(default:false:bool:USE_MOCK_DATA)%'
9541

96-
# LinkedIn API
97-
App\Service\ApiClient\LinkedInApiClient:
98-
public: true
42+
# Stock Clients Factory Configuration
43+
App\Service\ApiClient\StockClientsFactory:
9944
arguments:
100-
$params: '@parameter_bag'
101-
$logger: '@logger'
102-
$requestStack: '@request_stack'
103-
104-
App\Service\ApiClient\MockLinkedInApiClient:
105-
public: true
106-
107-
# LinkedIn Client Factory
108-
App\Service\ApiClient\LinkedInClientFactory.locator:
109-
public: true
110-
class: Symfony\Component\DependencyInjection\ServiceLocator
111-
tags: ['container.service_locator']
112-
arguments:
113-
-
114-
App\Service\ApiClient\LinkedInApiClient: '@App\Service\ApiClient\LinkedInApiClient'
115-
App\Service\ApiClient\MockLinkedInApiClient: '@App\Service\ApiClient\MockLinkedInApiClient'
45+
$useMockData: '%env(default:false:bool:USE_MOCK_DATA)%'
11646

47+
# LinkedIn Client Factory Configuration
11748
App\Service\ApiClient\LinkedInClientFactory:
118-
public: true
119-
arguments:
120-
$locator: '@App\Service\ApiClient\LinkedInClientFactory.locator'
121-
$useMockData: '%env(bool:USE_MOCK_DATA)%'
122-
tags: ['container.service_subscriber']
123-
124-
# SEC API Client Factory (Kaleidoscope only)
125-
App\Service\ApiClient\SecApiClientFactory.locator:
126-
public: true
127-
class: Symfony\Component\DependencyInjection\ServiceLocator
128-
tags: ['container.service_locator']
12949
arguments:
130-
-
131-
App\Service\ApiClient\KaleidoscopeApiClient: '@App\Service\ApiClient\KaleidoscopeApiClient'
132-
App\Service\ApiClient\MockKaleidoscopeApiClient: '@App\Service\ApiClient\MockKaleidoscopeApiClient'
50+
$useMockData: '%env(default:false:bool:USE_MOCK_DATA)%'
13351

134-
App\Service\ApiClient\SecApiClientFactory:
135-
public: true
52+
# LLM Client Factory Configuration
53+
App\Service\LlmClientFactory:
13654
arguments:
137-
$locator: '@App\Service\ApiClient\SecApiClientFactory.locator'
138-
$useMockData: '%env(bool:USE_MOCK_DATA)%'
139-
$logger: '@logger'
140-
tags: ['container.service_subscriber']
55+
$apiKey: '%app.genai_api_key%'
56+
$baseUrl: '%app.genai_base_url%'
57+
$model: '%app.genai_model%'
14158

142-
# Define the stock data cache service
143-
stock_data.cache:
144-
class: Symfony\Component\Cache\Adapter\FilesystemAdapter
59+
# Neuron AI Service Configuration
60+
App\Service\NeuronAiService:
14561
arguments:
146-
$namespace: 'stock_data'
147-
$defaultLifetime: 3600
148-
$directory: '%kernel.cache_dir%/stock_data'
62+
$clientFactory: '@App\Service\LlmClientFactory'

0 commit comments

Comments
 (0)