|
584 | 584 | ->end() |
585 | 585 | ->end() |
586 | 586 | ->end() |
| 587 | + ->arrayNode('mariadb') |
| 588 | + ->useAttributeAsKey('name') |
| 589 | + ->arrayPrototype() |
| 590 | + ->children() |
| 591 | + ->stringNode('connection')->cannotBeEmpty()->end() |
| 592 | + ->stringNode('table_name')->cannotBeEmpty()->end() |
| 593 | + ->stringNode('index_name')->cannotBeEmpty()->end() |
| 594 | + ->stringNode('vector_field_name')->cannotBeEmpty()->end() |
| 595 | + ->arrayNode('setup_options') |
| 596 | + ->children() |
| 597 | + ->integerNode('dimensions')->end() |
| 598 | + ->end() |
| 599 | + ->end() |
| 600 | + ->end() |
| 601 | + ->end() |
| 602 | + ->end() |
587 | 603 | ->arrayNode('meilisearch') |
588 | 604 | ->useAttributeAsKey('name') |
589 | 605 | ->arrayPrototype() |
590 | 606 | ->children() |
591 | 607 | ->stringNode('endpoint')->cannotBeEmpty()->end() |
592 | 608 | ->stringNode('api_key')->cannotBeEmpty()->end() |
593 | 609 | ->stringNode('index_name')->cannotBeEmpty()->end() |
594 | | - ->stringNode('embedder')->end() |
595 | | - ->stringNode('vector_field')->end() |
596 | | - ->integerNode('dimensions')->end() |
| 610 | + ->stringNode('embedder')->cannotBeEmpty()->end() |
| 611 | + ->stringNode('vector_field')->cannotBeEmpty()->end() |
| 612 | + ->integerNode('dimensions')->isRequired()->end() |
597 | 613 | ->floatNode('semantic_ratio') |
598 | 614 | ->info('The ratio between semantic (vector) and full-text search (0.0 to 1.0). Default: 1.0 (100% semantic)') |
599 | 615 | ->defaultValue(1.0) |
|
611 | 627 | ->end() |
612 | 628 | ->end() |
613 | 629 | ->end() |
614 | | - ->arrayNode('mariadb') |
615 | | - ->useAttributeAsKey('name') |
616 | | - ->arrayPrototype() |
617 | | - ->children() |
618 | | - ->stringNode('connection')->cannotBeEmpty()->end() |
619 | | - ->stringNode('table_name')->cannotBeEmpty()->end() |
620 | | - ->stringNode('index_name')->cannotBeEmpty()->end() |
621 | | - ->stringNode('vector_field_name')->cannotBeEmpty()->end() |
622 | | - ->arrayNode('setup_options') |
623 | | - ->children() |
624 | | - ->integerNode('dimensions')->end() |
625 | | - ->end() |
626 | | - ->end() |
627 | | - ->end() |
628 | | - ->end() |
629 | | - ->end() |
630 | 630 | ->arrayNode('milvus') |
631 | 631 | ->useAttributeAsKey('name') |
632 | 632 | ->arrayPrototype() |
|
635 | 635 | ->stringNode('api_key')->isRequired()->end() |
636 | 636 | ->stringNode('database')->isRequired()->end() |
637 | 637 | ->stringNode('collection')->isRequired()->end() |
638 | | - ->stringNode('vector_field')->end() |
639 | | - ->integerNode('dimensions')->end() |
| 638 | + ->stringNode('vector_field')->isRequired()->end() |
| 639 | + ->integerNode('dimensions')->isRequired()->end() |
640 | 640 | ->stringNode('metric_type')->end() |
641 | 641 | ->end() |
642 | 642 | ->end() |
|
652 | 652 | ->stringNode('database')->isRequired()->end() |
653 | 653 | ->stringNode('collection')->isRequired()->end() |
654 | 654 | ->stringNode('index_name')->isRequired()->end() |
655 | | - ->stringNode('vector_field')->end() |
| 655 | + ->stringNode('vector_field')->isRequired()->end() |
656 | 656 | ->booleanNode('bulk_write')->end() |
657 | 657 | ->end() |
658 | 658 | ->end() |
|
667 | 667 | ->stringNode('database')->cannotBeEmpty()->end() |
668 | 668 | ->stringNode('vector_index_name')->cannotBeEmpty()->end() |
669 | 669 | ->stringNode('node_name')->cannotBeEmpty()->end() |
670 | | - ->stringNode('vector_field')->end() |
671 | | - ->integerNode('dimensions')->end() |
672 | | - ->stringNode('distance')->end() |
| 670 | + ->stringNode('vector_field')->isRequired()->end() |
| 671 | + ->integerNode('dimensions')->isRequired()->end() |
| 672 | + ->stringNode('distance')->isRequired()->end() |
673 | 673 | ->booleanNode('quantization')->end() |
674 | 674 | ->end() |
675 | 675 | ->end() |
|
684 | 684 | ->end() |
685 | 685 | ->stringNode('namespace')->end() |
686 | 686 | ->arrayNode('filter') |
687 | | - ->scalarPrototype()->end() |
| 687 | + ->scalarPrototype() |
| 688 | + ->defaultValue([]) |
| 689 | + ->end() |
688 | 690 | ->end() |
689 | 691 | ->integerNode('top_k')->end() |
690 | 692 | ->end() |
691 | 693 | ->end() |
692 | 694 | ->end() |
| 695 | + ->arrayNode('postgres') |
| 696 | + ->useAttributeAsKey('name') |
| 697 | + ->arrayPrototype() |
| 698 | + ->children() |
| 699 | + ->stringNode('dsn')->cannotBeEmpty()->end() |
| 700 | + ->stringNode('username')->end() |
| 701 | + ->stringNode('password')->end() |
| 702 | + ->stringNode('table_name')->isRequired()->end() |
| 703 | + ->stringNode('vector_field')->isRequired()->end() |
| 704 | + ->enumNode('distance') |
| 705 | + ->info('Distance metric to use for vector similarity search') |
| 706 | + ->enumFqcn(PostgresDistance::class) |
| 707 | + ->defaultValue(PostgresDistance::L2) |
| 708 | + ->end() |
| 709 | + ->stringNode('dbal_connection')->cannotBeEmpty()->end() |
| 710 | + ->end() |
| 711 | + ->validate() |
| 712 | + ->ifTrue(static fn ($v): bool => !isset($v['dsn']) && !isset($v['dbal_connection'])) |
| 713 | + ->thenInvalid('Either "dsn" or "dbal_connection" must be configured.') |
| 714 | + ->end() |
| 715 | + ->validate() |
| 716 | + ->ifTrue(static fn ($v): bool => isset($v['dsn'], $v['dbal_connection'])) |
| 717 | + ->thenInvalid('Either "dsn" or "dbal_connection" can be configured, but not both.') |
| 718 | + ->end() |
| 719 | + ->end() |
| 720 | + ->end() |
693 | 721 | ->arrayNode('qdrant') |
694 | 722 | ->useAttributeAsKey('name') |
695 | 723 | ->arrayPrototype() |
696 | 724 | ->children() |
697 | 725 | ->stringNode('endpoint')->cannotBeEmpty()->end() |
698 | 726 | ->stringNode('api_key')->cannotBeEmpty()->end() |
699 | 727 | ->stringNode('collection_name')->cannotBeEmpty()->end() |
700 | | - ->integerNode('dimensions')->end() |
701 | | - ->stringNode('distance')->end() |
| 728 | + ->integerNode('dimensions')->isRequired()->end() |
| 729 | + ->stringNode('distance')->isRequired()->end() |
702 | 730 | ->booleanNode('async')->end() |
703 | 731 | ->end() |
704 | 732 | ->end() |
|
790 | 818 | ->end() |
791 | 819 | ->end() |
792 | 820 | ->end() |
793 | | - ->arrayNode('postgres') |
794 | | - ->useAttributeAsKey('name') |
795 | | - ->arrayPrototype() |
796 | | - ->children() |
797 | | - ->stringNode('dsn')->cannotBeEmpty()->end() |
798 | | - ->stringNode('username')->end() |
799 | | - ->stringNode('password')->end() |
800 | | - ->stringNode('table_name')->isRequired()->end() |
801 | | - ->stringNode('vector_field')->end() |
802 | | - ->enumNode('distance') |
803 | | - ->info('Distance metric to use for vector similarity search') |
804 | | - ->enumFqcn(PostgresDistance::class) |
805 | | - ->defaultValue(PostgresDistance::L2) |
806 | | - ->end() |
807 | | - ->stringNode('dbal_connection')->cannotBeEmpty()->end() |
808 | | - ->end() |
809 | | - ->validate() |
810 | | - ->ifTrue(static fn ($v) => !isset($v['dsn']) && !isset($v['dbal_connection'])) |
811 | | - ->thenInvalid('Either "dsn" or "dbal_connection" must be configured.') |
812 | | - ->end() |
813 | | - ->validate() |
814 | | - ->ifTrue(static fn ($v) => isset($v['dsn'], $v['dbal_connection'])) |
815 | | - ->thenInvalid('Either "dsn" or "dbal_connection" can be configured, but not both.') |
816 | | - ->end() |
817 | | - ->end() |
818 | | - ->end() |
819 | 821 | ->end() |
820 | 822 | ->end() |
821 | 823 | ->arrayNode('message_store') |
|
0 commit comments