From af28ab232715f44b5142a926786e6eb73ade57fc Mon Sep 17 00:00:00 2001 From: Adrien Brault Date: Fri, 31 May 2024 23:56:12 +0200 Subject: [PATCH] feat: default with a dsn --- README.md | 2 ++ src/DependencyInjection/Configuration.php | 5 +++++ src/DependencyInjection/InstructriceExtension.php | 8 +++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d981f52..e2ce4e6 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Configure api keys: ```yaml # config/packages/instructrice.yaml instructrice: + default: + dsn: '%env(string:INSTRUCTRICE_DSN)%' anthropic: api_key: '%env(string:default::ANTHROPIC_API_KEY)%' anyscale: diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 3bcd9e2..92705a1 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -16,6 +16,11 @@ public function getConfigTreeBuilder(): TreeBuilder $rootNode ->children() + ->arrayNode('default') + ->children() + ->scalarNode('dsn')->end() + ->end() + ->end() ->arrayNode('anthropic') ->children() ->scalarNode('api_key')->end() diff --git a/src/DependencyInjection/InstructriceExtension.php b/src/DependencyInjection/InstructriceExtension.php index 4f16831..3924b58 100644 --- a/src/DependencyInjection/InstructriceExtension.php +++ b/src/DependencyInjection/InstructriceExtension.php @@ -27,6 +27,9 @@ class InstructriceExtension extends ConfigurableExtension { /** * @param array{ + * default?: array{ + * dsn?: string + * }, * anthropic?: array{ * api_key?: string * }, @@ -59,7 +62,7 @@ class InstructriceExtension extends ConfigurableExtension * }, * together?: array{ * api_key?: string - * }, + * } * } $mergedConfig */ protected function loadInternal(array $mergedConfig, ContainerBuilder $container): void @@ -78,12 +81,15 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container Together::class => $mergedConfig['together']['api_key'] ?? null, ]; + $defaultDsn = $mergedConfig['default']['dsn'] ?? null; + $definition = $container->register(Instructrice::class); $definition->setFactory(InstructriceFactory::class . '::create'); $definition->setArguments([ '$llmFactory' => new Reference(LLMFactory::class), '$serializer' => new Reference('serializer'), '$propertyInfo' => new Reference('property_info'), + '$defaultLlm' => $defaultDsn, ]); $definition = $container->register(SymfonyStreamingClient::class);