|
599 | 599 | ->end() |
600 | 600 | ->end() |
601 | 601 | ->end() |
| 602 | + ->arrayNode('mariadb') |
| 603 | + ->useAttributeAsKey('name') |
| 604 | + ->arrayPrototype() |
| 605 | + ->children() |
| 606 | + ->stringNode('connection')->cannotBeEmpty()->end() |
| 607 | + ->stringNode('table_name')->cannotBeEmpty()->end() |
| 608 | + ->stringNode('index_name')->cannotBeEmpty()->end() |
| 609 | + ->stringNode('vector_field_name')->cannotBeEmpty()->end() |
| 610 | + ->arrayNode('setup_options') |
| 611 | + ->children() |
| 612 | + ->integerNode('dimensions')->end() |
| 613 | + ->end() |
| 614 | + ->end() |
| 615 | + ->end() |
| 616 | + ->end() |
| 617 | + ->end() |
602 | 618 | ->arrayNode('meilisearch') |
603 | 619 | ->useAttributeAsKey('name') |
604 | 620 | ->arrayPrototype() |
605 | 621 | ->children() |
606 | 622 | ->stringNode('endpoint')->cannotBeEmpty()->end() |
607 | 623 | ->stringNode('api_key')->cannotBeEmpty()->end() |
608 | 624 | ->stringNode('index_name')->cannotBeEmpty()->end() |
609 | | - ->stringNode('embedder')->end() |
610 | | - ->stringNode('vector_field')->end() |
611 | | - ->integerNode('dimensions')->end() |
| 625 | + ->stringNode('embedder')->cannotBeEmpty()->end() |
| 626 | + ->stringNode('vector_field')->cannotBeEmpty()->end() |
| 627 | + ->integerNode('dimensions')->isRequired()->end() |
612 | 628 | ->floatNode('semantic_ratio') |
613 | 629 | ->info('The ratio between semantic (vector) and full-text search (0.0 to 1.0). Default: 1.0 (100% semantic)') |
614 | 630 | ->defaultValue(1.0) |
|
626 | 642 | ->end() |
627 | 643 | ->end() |
628 | 644 | ->end() |
629 | | - ->arrayNode('mariadb') |
630 | | - ->useAttributeAsKey('name') |
631 | | - ->arrayPrototype() |
632 | | - ->children() |
633 | | - ->stringNode('connection')->cannotBeEmpty()->end() |
634 | | - ->stringNode('table_name')->cannotBeEmpty()->end() |
635 | | - ->stringNode('index_name')->cannotBeEmpty()->end() |
636 | | - ->stringNode('vector_field_name')->cannotBeEmpty()->end() |
637 | | - ->arrayNode('setup_options') |
638 | | - ->children() |
639 | | - ->integerNode('dimensions')->end() |
640 | | - ->end() |
641 | | - ->end() |
642 | | - ->end() |
643 | | - ->end() |
644 | | - ->end() |
645 | 645 | ->arrayNode('milvus') |
646 | 646 | ->useAttributeAsKey('name') |
647 | 647 | ->arrayPrototype() |
|
650 | 650 | ->stringNode('api_key')->isRequired()->end() |
651 | 651 | ->stringNode('database')->isRequired()->end() |
652 | 652 | ->stringNode('collection')->isRequired()->end() |
653 | | - ->stringNode('vector_field')->end() |
654 | | - ->integerNode('dimensions')->end() |
| 653 | + ->stringNode('vector_field')->isRequired()->end() |
| 654 | + ->integerNode('dimensions')->isRequired()->end() |
655 | 655 | ->stringNode('metric_type')->end() |
656 | 656 | ->end() |
657 | 657 | ->end() |
|
667 | 667 | ->stringNode('database')->isRequired()->end() |
668 | 668 | ->stringNode('collection')->isRequired()->end() |
669 | 669 | ->stringNode('index_name')->isRequired()->end() |
670 | | - ->stringNode('vector_field')->end() |
| 670 | + ->stringNode('vector_field')->isRequired()->end() |
671 | 671 | ->booleanNode('bulk_write')->end() |
672 | 672 | ->end() |
673 | 673 | ->end() |
|
682 | 682 | ->stringNode('database')->cannotBeEmpty()->end() |
683 | 683 | ->stringNode('vector_index_name')->cannotBeEmpty()->end() |
684 | 684 | ->stringNode('node_name')->cannotBeEmpty()->end() |
685 | | - ->stringNode('vector_field')->end() |
686 | | - ->integerNode('dimensions')->end() |
687 | | - ->stringNode('distance')->end() |
| 685 | + ->stringNode('vector_field')->isRequired()->end() |
| 686 | + ->integerNode('dimensions')->isRequired()->end() |
| 687 | + ->stringNode('distance')->isRequired()->end() |
688 | 688 | ->booleanNode('quantization')->end() |
689 | 689 | ->end() |
690 | 690 | ->end() |
|
699 | 699 | ->end() |
700 | 700 | ->stringNode('namespace')->end() |
701 | 701 | ->arrayNode('filter') |
702 | | - ->scalarPrototype()->end() |
| 702 | + ->scalarPrototype() |
| 703 | + ->defaultValue([]) |
| 704 | + ->end() |
703 | 705 | ->end() |
704 | 706 | ->integerNode('top_k')->end() |
705 | 707 | ->end() |
706 | 708 | ->end() |
707 | 709 | ->end() |
| 710 | + ->arrayNode('postgres') |
| 711 | + ->useAttributeAsKey('name') |
| 712 | + ->arrayPrototype() |
| 713 | + ->children() |
| 714 | + ->stringNode('dsn')->cannotBeEmpty()->end() |
| 715 | + ->stringNode('username')->end() |
| 716 | + ->stringNode('password')->end() |
| 717 | + ->stringNode('table_name')->isRequired()->end() |
| 718 | + ->stringNode('vector_field')->isRequired()->end() |
| 719 | + ->enumNode('distance') |
| 720 | + ->info('Distance metric to use for vector similarity search') |
| 721 | + ->enumFqcn(PostgresDistance::class) |
| 722 | + ->defaultValue(PostgresDistance::L2) |
| 723 | + ->end() |
| 724 | + ->stringNode('dbal_connection')->cannotBeEmpty()->end() |
| 725 | + ->end() |
| 726 | + ->validate() |
| 727 | + ->ifTrue(static fn ($v): bool => !isset($v['dsn']) && !isset($v['dbal_connection'])) |
| 728 | + ->thenInvalid('Either "dsn" or "dbal_connection" must be configured.') |
| 729 | + ->end() |
| 730 | + ->validate() |
| 731 | + ->ifTrue(static fn ($v): bool => isset($v['dsn'], $v['dbal_connection'])) |
| 732 | + ->thenInvalid('Either "dsn" or "dbal_connection" can be configured, but not both.') |
| 733 | + ->end() |
| 734 | + ->end() |
| 735 | + ->end() |
708 | 736 | ->arrayNode('qdrant') |
709 | 737 | ->useAttributeAsKey('name') |
710 | 738 | ->arrayPrototype() |
711 | 739 | ->children() |
712 | 740 | ->stringNode('endpoint')->cannotBeEmpty()->end() |
713 | 741 | ->stringNode('api_key')->cannotBeEmpty()->end() |
714 | 742 | ->stringNode('collection_name')->cannotBeEmpty()->end() |
715 | | - ->integerNode('dimensions')->end() |
716 | | - ->stringNode('distance')->end() |
| 743 | + ->integerNode('dimensions')->isRequired()->end() |
| 744 | + ->stringNode('distance')->isRequired()->end() |
717 | 745 | ->booleanNode('async')->end() |
718 | 746 | ->end() |
719 | 747 | ->end() |
|
805 | 833 | ->end() |
806 | 834 | ->end() |
807 | 835 | ->end() |
808 | | - ->arrayNode('postgres') |
809 | | - ->useAttributeAsKey('name') |
810 | | - ->arrayPrototype() |
811 | | - ->children() |
812 | | - ->stringNode('dsn')->cannotBeEmpty()->end() |
813 | | - ->stringNode('username')->end() |
814 | | - ->stringNode('password')->end() |
815 | | - ->stringNode('table_name')->isRequired()->end() |
816 | | - ->stringNode('vector_field')->end() |
817 | | - ->enumNode('distance') |
818 | | - ->info('Distance metric to use for vector similarity search') |
819 | | - ->enumFqcn(PostgresDistance::class) |
820 | | - ->defaultValue(PostgresDistance::L2) |
821 | | - ->end() |
822 | | - ->stringNode('dbal_connection')->cannotBeEmpty()->end() |
823 | | - ->end() |
824 | | - ->validate() |
825 | | - ->ifTrue(static fn ($v) => !isset($v['dsn']) && !isset($v['dbal_connection'])) |
826 | | - ->thenInvalid('Either "dsn" or "dbal_connection" must be configured.') |
827 | | - ->end() |
828 | | - ->validate() |
829 | | - ->ifTrue(static fn ($v) => isset($v['dsn'], $v['dbal_connection'])) |
830 | | - ->thenInvalid('Either "dsn" or "dbal_connection" can be configured, but not both.') |
831 | | - ->end() |
832 | | - ->end() |
833 | | - ->end() |
834 | 836 | ->end() |
835 | 837 | ->end() |
836 | 838 | ->arrayNode('message_store') |
|
0 commit comments