semantic-kernel 1.41.0__tar.gz → 1.41.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/PKG-INFO +6 -6
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/pyproject.toml +6 -6
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/__init__.py +1 -1
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/responses_agent_thread_actions.py +13 -4
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_chat_completion.py +13 -1
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_text_completion.py +3 -1
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_text_embedding.py +3 -1
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/utils.py +32 -12
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/shared_utils.py +60 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/utils.py +21 -11
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_chat_completion.py +10 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/chat_history.py +17 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_reducer_utils.py +25 -1
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_summarization_reducer.py +29 -2
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_truncation_reducer.py +30 -3
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/step_actor.py +6 -4
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_kernel_process_context.py +15 -2
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_process_info.py +9 -4
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_step_info.py +11 -5
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/step_utils.py +15 -7
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/handlebars_system_helpers.py +18 -8
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/jinja2_system_helpers.py +3 -12
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/LICENSE +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/__init__.pyi +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/autogen/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/autogen/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/autogen/autogen_conversable_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/agent_content_generation.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/agent_thread_actions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_agent_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_agent_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_channel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/action_group_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/bedrock_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/bedrock_agent_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/bedrock_agent_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_action_group_model.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_agent_event_type.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_agent_model.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_agent_status.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/agent_channel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/bedrock_agent_channel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/chat_history_channel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/open_ai_assistant_channel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/chat_completion/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/chat_completion/chat_completion_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/copilot_studio/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/copilot_studio/copilot_studio_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/copilot_studio/copilot_studio_agent_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/agent_chat.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/agent_chat_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/agent_group_chat.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/broadcast_queue.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/assistant_content_generation.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/assistant_thread_actions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/azure_assistant_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/azure_responses_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/function_action_result.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/openai_assistant_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/openai_responses_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/run_polling_options.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/agent_actor_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/concurrent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/group_chat.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/handoffs.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/magentic.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/orchestration_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/prompts/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/prompts/_magentic_prompts.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/sequential.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/tools.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent_id.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent_metadata.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent_type.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/base_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/cancellation_token.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/core_runtime.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/intervention.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/logging.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/message_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/routed_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/serialization.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/subscription.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/constants.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/propagation.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/tracing.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/tracing_config.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/topic.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/type_helpers.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/validation_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/agent_instantiation_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/default_subscription.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/default_topic.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/in_process_runtime.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/message_handler_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/queue.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/runtime_impl_helpers.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/subscription_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/type_prefix_subscription.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/type_subscription.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/kernel_function_selection_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/selection_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/sequential_selection_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/aggregator_termination_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/default_termination_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/kernel_function_termination_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/termination_strategy.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/_search_shared.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/prompt_execution_settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/prompt_execution_settings/anthropic_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/services/anthropic_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/services/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/settings/anthropic_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/audio_to_text_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/azure_ai_inference_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/azure_ai_inference_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_tracing.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/bedrock_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/bedrock_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_ai21_labs.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_amazon_titan.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_anthropic_claude.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_cohere.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_meta_llama.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_mistralai.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_model_provider.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/chat_completion_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/completion_usage.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/embedding_generator_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/embeddings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/embeddings/embedding_generator_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_call_choice_configuration.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_calling_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_choice_behavior.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_choice_type.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/google_ai_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/google_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/vertex_ai_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/vertex_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/hf_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/services/hf_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/services/hf_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/prompt_execution_settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/prompt_execution_settings/mistral_ai_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/mistral_ai_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/mistral_ai_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/mistral_ai_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/settings/mistral_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/prompt_execution_settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/prompt_execution_settings/nvidia_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_handler.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_model_types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/settings/nvidia_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/ollama_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/ollama_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/onnx_gen_ai_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/onnx_gen_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/onnx_gen_ai_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/onnx_gen_ai_completion_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/onnx_gen_ai_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/const.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/exceptions/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/exceptions/content_filter_ai_exception.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/azure_chat_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_audio_to_text_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_realtime_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_text_to_audio_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_text_to_image_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/_open_ai_realtime.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_audio_to_text.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_realtime.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_to_audio.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_to_image.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_audio_to_text.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_audio_to_text_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_chat_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_chat_completion_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_config_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_model_types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_realtime.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_completion.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_completion_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_embedding.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_embedding_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_audio.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_audio_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_image.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_image_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/settings/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/settings/azure_open_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/settings/open_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/prompt_execution_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/realtime_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/text_completion_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/text_to_audio_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/text_to_image_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/azure_ai_search.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/azure_cosmos_db.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/brave.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/chroma.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/faiss.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/google_search.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/in_memory.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/mcp.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory.pyi +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/astra_client.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/astradb_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/astradb_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cognitive_search/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cognitive_search/azure_cognitive_search_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cognitive_search/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/azure_cosmos_db_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/azure_cosmos_db_store_api.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/mongo_vcore_store_api.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb_no_sql/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb_no_sql/azure_cosmosdb_no_sql_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/chroma/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/chroma/chroma_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/chroma/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/milvus/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/milvus/milvus_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/mongodb_atlas_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/pinecone/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/pinecone/pinecone_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/pinecone/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/postgres/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/postgres/postgres_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/qdrant/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/qdrant/qdrant_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/redis_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/usearch/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/usearch/usearch_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/weaviate/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/weaviate/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/weaviate/weaviate_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/mongodb.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/const.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_expected_response.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_oauth_flow.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_oauth_flows.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_operation.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_parameter.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_parameter_location.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_parameter_style.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_payload.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_payload_property.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_run_options.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_security_requirement.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_security_scheme.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_uri.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_function_execution_parameters.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_manager.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_parser.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_runner.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/operation_selection_predicate_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/oracle.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/pinecone.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/postgres.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/qdrant.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/redis.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/search.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/search.pyi +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/sql_server.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/utils/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/utils/document_loader.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/utils/structured_output_schema.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/weaviate.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/const.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/annotation_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/audio_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/binary_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/chat_message_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/const.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/file_reference_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/function_call_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/function_result_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_reducer.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/image_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/kernel_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/realtime_events.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/reasoning_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_annotation_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_chat_message_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_content_mixin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_file_reference_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_reasoning_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_text_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/text_content.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/author_role.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/data_uri.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/finish_reason.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/hashing.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/status.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/conversation_summary_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_enterprise.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_enterprise_client.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_models.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/http_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/math_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/sessions_python_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/sessions_python_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/sessions_remote_file_metadata.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/text_memory_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/text_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/time_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/wait_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/web_search_engine_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/_shared.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/text_search.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/vector.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/agent_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/content_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/filter_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/function_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/kernel_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/memory_connector_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/process_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/search_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/service_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/template_engine_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/vector_store_exceptions.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/auto_function_invocation/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/auto_function_invocation/auto_function_invocation_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/filter_context_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/filter_types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/functions/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/functions/function_invocation_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/kernel_filters_extension.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/prompts/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/prompts/prompt_render_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/function_result.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_arguments.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_decorator.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_extension.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_from_method.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_from_prompt.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_log_messages.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_metadata.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_parameter_metadata.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_plugin.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/prompt_rendering_result.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/kernel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/kernel_pydantic.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/kernel_types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/memory_query_result.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/memory_record.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/memory_store_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/null_memory.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/semantic_text_memory.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/semantic_text_memory_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/volatile_memory_store.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/const.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/actor_state_key.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/event_buffer_actor.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/external_event_buffer_actor.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/message_buffer_actor.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/process_actor.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_actor_registration.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_kernel_process.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/event_buffer_interface.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/external_event_buffer_interface.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/message_buffer_interface.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/process_interface.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/step_interface.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_edge.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_event.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_function_target.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_message_channel.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_state.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_info.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_metadata.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_state.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_state_metadata.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_event.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_kernel_process.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_kernel_process_context.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_message.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_message_factory.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_process.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_step.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_builder.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_edge_builder.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_end_step.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_event.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_function_target_builder.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_message.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_message_factory.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_state_metadata_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_step_builder.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_step_edge_builder.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/const.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/handlebars_prompt_template.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/input_variable.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/jinja2_prompt_template.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/kernel_prompt_template.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/prompt_template_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/prompt_template_config.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/template_function_helpers.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/py.typed +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/kernel_reliability_extension.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/pass_through_without_retry.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/retry_mechanism_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/schema/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/schema/kernel_json_schema_builder.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/ai_service_client_base.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/ai_service_selector.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/kernel_services_extension.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/README.md +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/block_types.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/code_block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/function_id_block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/named_arg_block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/symbols.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/text_block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/val_block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/var_block.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/code_tokenizer.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/protocols/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/protocols/code_renderer.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/protocols/text_renderer.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/template_tokenizer.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/text/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/text/function_extension.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/text/text_chunker.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/async_utils.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/authentication/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/authentication/entra_id_authentication.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/chat.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/feature_stage_decorator.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/list_handler.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/logging.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/naming.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/agent_diagnostics/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/agent_diagnostics/decorators.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/agent_diagnostics/gen_ai_attributes.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/__init__.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/decorators.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/function_tracer.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/gen_ai_attributes.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/model_diagnostics_settings.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/user_agent.py +0 -0
- {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-kernel
|
|
3
|
-
Version: 1.41.
|
|
3
|
+
Version: 1.41.2
|
|
4
4
|
Summary: Semantic Kernel Python SDK
|
|
5
5
|
Author-email: Microsoft <SK-Support@microsoft.com>
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -19,7 +19,7 @@ Requires-Dist: azure-ai-projects ~= 1.0.0b12
|
|
|
19
19
|
Requires-Dist: azure-ai-agents >= 1.2.0b3
|
|
20
20
|
Requires-Dist: aiohttp ~= 3.8
|
|
21
21
|
Requires-Dist: cloudevents ~=1.0
|
|
22
|
-
Requires-Dist: pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.
|
|
22
|
+
Requires-Dist: pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13
|
|
23
23
|
Requires-Dist: pydantic-settings ~= 2.0
|
|
24
24
|
Requires-Dist: defusedxml ~= 0.7
|
|
25
25
|
Requires-Dist: azure-identity >= 1.13
|
|
@@ -47,7 +47,7 @@ Requires-Dist: azure-ai-inference >= 1.0.0b6 ; extra == "azure"
|
|
|
47
47
|
Requires-Dist: azure-core-tracing-opentelemetry >= 1.0.0b11 ; extra == "azure"
|
|
48
48
|
Requires-Dist: azure-search-documents >= 11.6.0b4 ; extra == "azure"
|
|
49
49
|
Requires-Dist: azure-cosmos ~= 4.7 ; extra == "azure"
|
|
50
|
-
Requires-Dist: chromadb >= 0.5,< 1.
|
|
50
|
+
Requires-Dist: chromadb >= 0.5,< 1.4 ; extra == "chroma"
|
|
51
51
|
Requires-Dist: microsoft-agents-copilotstudio-client >= 0.3.1 ; extra == "copilotstudio"
|
|
52
52
|
Requires-Dist: microsoft-agents-activity >= 0.3.1 ; extra == "copilotstudio"
|
|
53
53
|
Requires-Dist: faiss-cpu>=1.10.0 ; extra == "faiss"
|
|
@@ -60,9 +60,9 @@ Requires-Dist: mcp>=1.8 ; extra == "mcp"
|
|
|
60
60
|
Requires-Dist: pymilvus >= 2.3,< 2.7 ; extra == "milvus"
|
|
61
61
|
Requires-Dist: milvus >= 2.3,<2.3.8 ; extra == "milvus" and ( platform_system != 'Windows')
|
|
62
62
|
Requires-Dist: mistralai >= 1.2,< 2.0 ; extra == "mistralai"
|
|
63
|
-
Requires-Dist: pymongo >= 4.8.0, < 4.
|
|
63
|
+
Requires-Dist: pymongo >= 4.8.0, < 4.16 ; extra == "mongo"
|
|
64
64
|
Requires-Dist: motor >= 3.3.2,< 3.8.0 ; extra == "mongo"
|
|
65
|
-
Requires-Dist: ipykernel
|
|
65
|
+
Requires-Dist: ipykernel >= 6.29,< 8.0 ; extra == "notebooks"
|
|
66
66
|
Requires-Dist: ollama ~= 0.4 ; extra == "ollama"
|
|
67
67
|
Requires-Dist: onnxruntime==1.22.1 ; extra == "onnx"
|
|
68
68
|
Requires-Dist: onnxruntime-genai==0.9.0 ; extra == "onnx"
|
|
@@ -73,7 +73,7 @@ Requires-Dist: psycopg[binary, pool] ~= 3.2 ; extra == "postgres"
|
|
|
73
73
|
Requires-Dist: qdrant-client ~= 1.9 ; extra == "qdrant"
|
|
74
74
|
Requires-Dist: websockets >= 13, < 16 ; extra == "realtime"
|
|
75
75
|
Requires-Dist: aiortc>=1.9.0 ; extra == "realtime"
|
|
76
|
-
Requires-Dist: redis[hiredis]
|
|
76
|
+
Requires-Dist: redis[hiredis] >= 6,< 8 ; extra == "redis"
|
|
77
77
|
Requires-Dist: types-redis ~= 4.6.0.20240425 ; extra == "redis"
|
|
78
78
|
Requires-Dist: redisvl ~= 0.4 ; extra == "redis"
|
|
79
79
|
Requires-Dist: pyodbc >= 5.2 ; extra == "sql"
|
|
@@ -28,7 +28,7 @@ dependencies = [
|
|
|
28
28
|
"azure-ai-agents >= 1.2.0b3",
|
|
29
29
|
"aiohttp ~= 3.8",
|
|
30
30
|
"cloudevents ~=1.0",
|
|
31
|
-
"pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.
|
|
31
|
+
"pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13",
|
|
32
32
|
"pydantic-settings ~= 2.0",
|
|
33
33
|
"defusedxml ~= 0.7",
|
|
34
34
|
# azure identity
|
|
@@ -77,7 +77,7 @@ azure = [
|
|
|
77
77
|
"azure-cosmos ~= 4.7"
|
|
78
78
|
]
|
|
79
79
|
chroma = [
|
|
80
|
-
"chromadb >= 0.5,< 1.
|
|
80
|
+
"chromadb >= 0.5,< 1.4"
|
|
81
81
|
]
|
|
82
82
|
copilotstudio = [
|
|
83
83
|
"microsoft-agents-copilotstudio-client >= 0.3.1",
|
|
@@ -106,11 +106,11 @@ mistralai = [
|
|
|
106
106
|
"mistralai >= 1.2,< 2.0"
|
|
107
107
|
]
|
|
108
108
|
mongo = [
|
|
109
|
-
"pymongo >= 4.8.0, < 4.
|
|
109
|
+
"pymongo >= 4.8.0, < 4.16",
|
|
110
110
|
"motor >= 3.3.2,< 3.8.0"
|
|
111
111
|
]
|
|
112
112
|
notebooks = [
|
|
113
|
-
"ipykernel
|
|
113
|
+
"ipykernel >= 6.29,< 8.0"
|
|
114
114
|
]
|
|
115
115
|
ollama = [
|
|
116
116
|
"ollama ~= 0.4"
|
|
@@ -136,7 +136,7 @@ qdrant = [
|
|
|
136
136
|
"qdrant-client ~= 1.9"
|
|
137
137
|
]
|
|
138
138
|
redis = [
|
|
139
|
-
"redis[hiredis]
|
|
139
|
+
"redis[hiredis] >= 6,< 8",
|
|
140
140
|
"types-redis ~= 4.6.0.20240425",
|
|
141
141
|
"redisvl ~= 0.4"
|
|
142
142
|
]
|
|
@@ -158,7 +158,7 @@ weaviate = [
|
|
|
158
158
|
[dependency-groups]
|
|
159
159
|
dev = [
|
|
160
160
|
"pre-commit ~= 3.7",
|
|
161
|
-
"ipykernel
|
|
161
|
+
"ipykernel >= 6.29,< 8.0",
|
|
162
162
|
"nbconvert ~= 7.16",
|
|
163
163
|
"pytest ~= 8.2",
|
|
164
164
|
"pytest-xdist[psutil] ~= 3.6",
|
|
@@ -1214,10 +1214,19 @@ class ResponsesAgentThreadActions:
|
|
|
1214
1214
|
if agent.tools:
|
|
1215
1215
|
tools.extend(agent.tools)
|
|
1216
1216
|
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1217
|
+
if not function_choice_behavior.enable_kernel_functions:
|
|
1218
|
+
return tools
|
|
1219
|
+
|
|
1220
|
+
if not kernel.plugins:
|
|
1221
|
+
return tools
|
|
1222
|
+
|
|
1223
|
+
funcs = (
|
|
1224
|
+
kernel.get_list_of_function_metadata(function_choice_behavior.filters)
|
|
1225
|
+
if function_choice_behavior.filters
|
|
1226
|
+
else kernel.get_full_list_of_function_metadata()
|
|
1227
|
+
)
|
|
1228
|
+
|
|
1229
|
+
tools.extend([kernel_function_metadata_to_response_function_call_format(f) for f in funcs])
|
|
1221
1230
|
|
|
1222
1231
|
return tools
|
|
1223
1232
|
|
|
@@ -119,7 +119,9 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
|
|
|
119
119
|
if not client:
|
|
120
120
|
if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id:
|
|
121
121
|
raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.")
|
|
122
|
-
if not google_ai_settings.
|
|
122
|
+
if google_ai_settings.use_vertexai and not google_ai_settings.cloud_region:
|
|
123
|
+
raise ServiceInitializationError("Region must be provided when use_vertexai is True.")
|
|
124
|
+
if not google_ai_settings.use_vertexai and not google_ai_settings.api_key:
|
|
123
125
|
raise ServiceInitializationError("The API key is required when use_vertexai is False.")
|
|
124
126
|
|
|
125
127
|
super().__init__(
|
|
@@ -303,6 +305,10 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
|
|
|
303
305
|
if part.text:
|
|
304
306
|
items.append(TextContent(text=part.text, inner_content=response, metadata=response_metadata))
|
|
305
307
|
elif part.function_call:
|
|
308
|
+
fc_metadata: dict[str, Any] = {}
|
|
309
|
+
thought_sig = getattr(part, "thought_signature", None)
|
|
310
|
+
if thought_sig:
|
|
311
|
+
fc_metadata["thought_signature"] = thought_sig
|
|
306
312
|
items.append(
|
|
307
313
|
FunctionCallContent(
|
|
308
314
|
id=f"{part.function_call.name}_{idx!s}",
|
|
@@ -310,6 +316,7 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
|
|
|
310
316
|
part.function_call.name # type: ignore[arg-type]
|
|
311
317
|
),
|
|
312
318
|
arguments={k: v for k, v in part.function_call.args.items()}, # type: ignore
|
|
319
|
+
metadata=fc_metadata if fc_metadata else None,
|
|
313
320
|
)
|
|
314
321
|
)
|
|
315
322
|
|
|
@@ -360,6 +367,10 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
|
|
|
360
367
|
)
|
|
361
368
|
)
|
|
362
369
|
elif part.function_call:
|
|
370
|
+
fc_metadata: dict[str, Any] = {}
|
|
371
|
+
thought_sig = getattr(part, "thought_signature", None)
|
|
372
|
+
if thought_sig:
|
|
373
|
+
fc_metadata["thought_signature"] = thought_sig
|
|
363
374
|
items.append(
|
|
364
375
|
FunctionCallContent(
|
|
365
376
|
id=f"{part.function_call.name}_{idx!s}",
|
|
@@ -367,6 +378,7 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
|
|
|
367
378
|
part.function_call.name # type: ignore[arg-type]
|
|
368
379
|
),
|
|
369
380
|
arguments={k: v for k, v in part.function_call.args.items()}, # type: ignore
|
|
381
|
+
metadata=fc_metadata if fc_metadata else None,
|
|
370
382
|
)
|
|
371
383
|
)
|
|
372
384
|
|
|
@@ -90,7 +90,9 @@ class GoogleAITextCompletion(GoogleAIBase, TextCompletionClientBase):
|
|
|
90
90
|
if not client:
|
|
91
91
|
if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id:
|
|
92
92
|
raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.")
|
|
93
|
-
if not google_ai_settings.
|
|
93
|
+
if google_ai_settings.use_vertexai and not google_ai_settings.cloud_region:
|
|
94
|
+
raise ServiceInitializationError("Region must be provided when use_vertexai is True.")
|
|
95
|
+
if not google_ai_settings.use_vertexai and not google_ai_settings.api_key:
|
|
94
96
|
raise ServiceInitializationError("The API key is required when use_vertexai is False.")
|
|
95
97
|
|
|
96
98
|
super().__init__(
|
|
@@ -81,7 +81,9 @@ class GoogleAITextEmbedding(GoogleAIBase, EmbeddingGeneratorBase):
|
|
|
81
81
|
if not client:
|
|
82
82
|
if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id:
|
|
83
83
|
raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.")
|
|
84
|
-
if not google_ai_settings.
|
|
84
|
+
if google_ai_settings.use_vertexai and not google_ai_settings.cloud_region:
|
|
85
|
+
raise ServiceInitializationError("Region must be provided when use_vertexai is True.")
|
|
86
|
+
if not google_ai_settings.use_vertexai and not google_ai_settings.api_key:
|
|
85
87
|
raise ServiceInitializationError("The API key is required when use_vertexai is False.")
|
|
86
88
|
|
|
87
89
|
super().__init__(
|
|
@@ -13,6 +13,7 @@ from semantic_kernel.connectors.ai.google.google_ai.google_ai_prompt_execution_s
|
|
|
13
13
|
from semantic_kernel.connectors.ai.google.shared_utils import (
|
|
14
14
|
FUNCTION_CHOICE_TYPE_TO_GOOGLE_FUNCTION_CALLING_MODE,
|
|
15
15
|
GEMINI_FUNCTION_NAME_SEPARATOR,
|
|
16
|
+
sanitize_schema_for_google_ai,
|
|
16
17
|
)
|
|
17
18
|
from semantic_kernel.contents.chat_message_content import ChatMessageContent
|
|
18
19
|
from semantic_kernel.contents.function_call_content import FunctionCallContent
|
|
@@ -91,12 +92,24 @@ def format_assistant_message(message: ChatMessageContent) -> list[Part]:
|
|
|
91
92
|
if item.text:
|
|
92
93
|
parts.append(Part.from_text(text=item.text))
|
|
93
94
|
elif isinstance(item, FunctionCallContent):
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
thought_signature = item.metadata.get("thought_signature") if item.metadata else None
|
|
96
|
+
if thought_signature:
|
|
97
|
+
parts.append(
|
|
98
|
+
Part(
|
|
99
|
+
function_call={
|
|
100
|
+
"name": item.name, # type: ignore[arg-type]
|
|
101
|
+
"args": json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments,
|
|
102
|
+
},
|
|
103
|
+
thought_signature=thought_signature,
|
|
104
|
+
)
|
|
105
|
+
)
|
|
106
|
+
else:
|
|
107
|
+
parts.append(
|
|
108
|
+
Part.from_function_call(
|
|
109
|
+
name=item.name, # type: ignore[arg-type]
|
|
110
|
+
args=json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments, # type: ignore[arg-type]
|
|
111
|
+
)
|
|
98
112
|
)
|
|
99
|
-
)
|
|
100
113
|
elif isinstance(item, ImageContent):
|
|
101
114
|
parts.append(_create_image_part(item))
|
|
102
115
|
else:
|
|
@@ -135,16 +148,23 @@ def format_tool_message(message: ChatMessageContent) -> list[Part]:
|
|
|
135
148
|
|
|
136
149
|
def kernel_function_metadata_to_google_ai_function_call_format(metadata: KernelFunctionMetadata) -> dict[str, Any]:
|
|
137
150
|
"""Convert the kernel function metadata to function calling format."""
|
|
151
|
+
parameters: dict[str, Any] | None = None
|
|
152
|
+
if metadata.parameters:
|
|
153
|
+
properties = {}
|
|
154
|
+
for param in metadata.parameters:
|
|
155
|
+
if param.name is None:
|
|
156
|
+
continue
|
|
157
|
+
prop_schema = sanitize_schema_for_google_ai(param.schema_data) if param.schema_data else param.schema_data
|
|
158
|
+
properties[param.name] = prop_schema
|
|
159
|
+
parameters = {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"properties": properties,
|
|
162
|
+
"required": [p.name for p in metadata.parameters if p.is_required and p.name is not None],
|
|
163
|
+
}
|
|
138
164
|
return {
|
|
139
165
|
"name": metadata.custom_fully_qualified_name(GEMINI_FUNCTION_NAME_SEPARATOR),
|
|
140
166
|
"description": metadata.description or "",
|
|
141
|
-
"parameters":
|
|
142
|
-
"type": "object",
|
|
143
|
-
"properties": {param.name: param.schema_data for param in metadata.parameters},
|
|
144
|
-
"required": [p.name for p in metadata.parameters if p.is_required],
|
|
145
|
-
}
|
|
146
|
-
if metadata.parameters
|
|
147
|
-
else None,
|
|
167
|
+
"parameters": parameters,
|
|
148
168
|
}
|
|
149
169
|
|
|
150
170
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Copyright (c) Microsoft. All rights reserved.
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
from copy import deepcopy
|
|
5
|
+
from typing import Any
|
|
4
6
|
|
|
5
7
|
from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoiceType
|
|
6
8
|
from semantic_kernel.const import DEFAULT_FULLY_QUALIFIED_NAME_SEPARATOR
|
|
@@ -51,6 +53,64 @@ def format_gemini_function_name_to_kernel_function_fully_qualified_name(gemini_f
|
|
|
51
53
|
return gemini_function_name
|
|
52
54
|
|
|
53
55
|
|
|
56
|
+
def sanitize_schema_for_google_ai(schema: dict[str, Any] | None) -> dict[str, Any] | None:
|
|
57
|
+
"""Sanitize a JSON schema dict so it is compatible with Google AI / Vertex AI.
|
|
58
|
+
|
|
59
|
+
The Google AI protobuf ``Schema`` does not support ``anyOf``, ``oneOf``, or
|
|
60
|
+
``allOf``. It also does not accept ``type`` as an array (e.g.
|
|
61
|
+
``["string", "null"]``). This helper recursively rewrites those constructs
|
|
62
|
+
into the subset that Google AI understands, using ``nullable`` where
|
|
63
|
+
appropriate.
|
|
64
|
+
"""
|
|
65
|
+
if schema is None:
|
|
66
|
+
return None
|
|
67
|
+
|
|
68
|
+
schema = deepcopy(schema)
|
|
69
|
+
return _sanitize_node(schema)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _sanitize_node(node: dict[str, Any]) -> dict[str, Any]:
|
|
73
|
+
"""Recursively sanitize a single schema node."""
|
|
74
|
+
# --- handle ``type`` given as a list (e.g. ["string", "null"]) ---
|
|
75
|
+
type_val = node.get("type")
|
|
76
|
+
if isinstance(type_val, list):
|
|
77
|
+
non_null = [t for t in type_val if t != "null"]
|
|
78
|
+
if len(type_val) != len(non_null):
|
|
79
|
+
node["nullable"] = True
|
|
80
|
+
node["type"] = non_null[0] if non_null else "string"
|
|
81
|
+
|
|
82
|
+
# --- handle ``anyOf`` / ``oneOf`` / ``allOf`` ---
|
|
83
|
+
for key in ("anyOf", "oneOf", "allOf"):
|
|
84
|
+
variants = node.get(key)
|
|
85
|
+
if not variants:
|
|
86
|
+
continue
|
|
87
|
+
non_null = [v for v in variants if v.get("type") != "null"]
|
|
88
|
+
has_null = len(variants) != len(non_null)
|
|
89
|
+
chosen = _sanitize_node(non_null[0]) if non_null else {"type": "string"}
|
|
90
|
+
# Preserve description from the outer node
|
|
91
|
+
desc = node.get("description")
|
|
92
|
+
node.clear()
|
|
93
|
+
node.update(chosen)
|
|
94
|
+
if has_null:
|
|
95
|
+
node["nullable"] = True
|
|
96
|
+
if desc and "description" not in node:
|
|
97
|
+
node["description"] = desc
|
|
98
|
+
break # only process the first matching key
|
|
99
|
+
|
|
100
|
+
# --- recurse into nested structures ---
|
|
101
|
+
props = node.get("properties")
|
|
102
|
+
if isinstance(props, dict):
|
|
103
|
+
for prop_name, prop_schema in props.items():
|
|
104
|
+
if isinstance(prop_schema, dict):
|
|
105
|
+
props[prop_name] = _sanitize_node(prop_schema)
|
|
106
|
+
|
|
107
|
+
items = node.get("items")
|
|
108
|
+
if isinstance(items, dict):
|
|
109
|
+
node["items"] = _sanitize_node(items)
|
|
110
|
+
|
|
111
|
+
return node
|
|
112
|
+
|
|
113
|
+
|
|
54
114
|
def collapse_function_call_results_in_chat_history(chat_history: ChatHistory):
|
|
55
115
|
"""The Gemini API expects the results of parallel function calls to be contained in a single message to be returned.
|
|
56
116
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
|
-
from typing import TYPE_CHECKING
|
|
5
|
+
from typing import TYPE_CHECKING, Any
|
|
6
6
|
|
|
7
7
|
from google.cloud.aiplatform_v1beta1.types.content import Candidate
|
|
8
8
|
from vertexai.generative_models import FunctionDeclaration, Part, Tool, ToolConfig
|
|
@@ -11,6 +11,7 @@ from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoic
|
|
|
11
11
|
from semantic_kernel.connectors.ai.google.shared_utils import (
|
|
12
12
|
FUNCTION_CHOICE_TYPE_TO_GOOGLE_FUNCTION_CALLING_MODE,
|
|
13
13
|
GEMINI_FUNCTION_NAME_SEPARATOR,
|
|
14
|
+
sanitize_schema_for_google_ai,
|
|
14
15
|
)
|
|
15
16
|
from semantic_kernel.connectors.ai.google.vertex_ai.vertex_ai_prompt_execution_settings import (
|
|
16
17
|
VertexAIChatPromptExecutionSettings,
|
|
@@ -89,14 +90,16 @@ def format_assistant_message(message: ChatMessageContent) -> list[Part]:
|
|
|
89
90
|
if item.text:
|
|
90
91
|
parts.append(Part.from_text(item.text))
|
|
91
92
|
elif isinstance(item, FunctionCallContent):
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
part_dict: dict[str, Any] = {
|
|
94
|
+
"function_call": {
|
|
95
|
+
"name": item.name, # type: ignore[arg-type]
|
|
96
|
+
"args": json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments,
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
thought_signature = item.metadata.get("thought_signature") if item.metadata else None
|
|
100
|
+
if thought_signature:
|
|
101
|
+
part_dict["thought_signature"] = thought_signature
|
|
102
|
+
parts.append(Part.from_dict(part_dict))
|
|
100
103
|
elif isinstance(item, ImageContent):
|
|
101
104
|
parts.append(_create_image_part(item))
|
|
102
105
|
else:
|
|
@@ -135,13 +138,20 @@ def format_tool_message(message: ChatMessageContent) -> list[Part]:
|
|
|
135
138
|
|
|
136
139
|
def kernel_function_metadata_to_vertex_ai_function_call_format(metadata: KernelFunctionMetadata) -> FunctionDeclaration:
|
|
137
140
|
"""Convert the kernel function metadata to function calling format."""
|
|
141
|
+
properties: dict[str, Any] = {}
|
|
142
|
+
if metadata.parameters:
|
|
143
|
+
for param in metadata.parameters:
|
|
144
|
+
if param.name is None:
|
|
145
|
+
continue
|
|
146
|
+
prop_schema = sanitize_schema_for_google_ai(param.schema_data) if param.schema_data else param.schema_data
|
|
147
|
+
properties[param.name] = prop_schema
|
|
138
148
|
return FunctionDeclaration(
|
|
139
149
|
name=metadata.custom_fully_qualified_name(GEMINI_FUNCTION_NAME_SEPARATOR),
|
|
140
150
|
description=metadata.description or "",
|
|
141
151
|
parameters={
|
|
142
152
|
"type": "object",
|
|
143
|
-
"properties":
|
|
144
|
-
"required": [p.name for p in metadata.parameters if p.is_required],
|
|
153
|
+
"properties": properties,
|
|
154
|
+
"required": [p.name for p in metadata.parameters if p.is_required and p.name is not None],
|
|
145
155
|
},
|
|
146
156
|
)
|
|
147
157
|
|
|
@@ -252,6 +252,10 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
|
|
|
252
252
|
if "text" in part_dict:
|
|
253
253
|
items.append(TextContent(text=part.text, inner_content=response, metadata=response_metadata))
|
|
254
254
|
elif "function_call" in part_dict:
|
|
255
|
+
fc_metadata: dict[str, Any] = {}
|
|
256
|
+
thought_sig = part_dict.get("thought_signature")
|
|
257
|
+
if thought_sig:
|
|
258
|
+
fc_metadata["thought_signature"] = thought_sig
|
|
255
259
|
items.append(
|
|
256
260
|
FunctionCallContent(
|
|
257
261
|
id=f"{part.function_call.name}_{idx!s}",
|
|
@@ -259,6 +263,7 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
|
|
|
259
263
|
part.function_call.name
|
|
260
264
|
),
|
|
261
265
|
arguments={k: v for k, v in part.function_call.args.items()},
|
|
266
|
+
metadata=fc_metadata if fc_metadata else None,
|
|
262
267
|
)
|
|
263
268
|
)
|
|
264
269
|
|
|
@@ -309,6 +314,10 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
|
|
|
309
314
|
)
|
|
310
315
|
)
|
|
311
316
|
elif "function_call" in part_dict:
|
|
317
|
+
fc_metadata_s: dict[str, Any] = {}
|
|
318
|
+
thought_sig_s = part_dict.get("thought_signature")
|
|
319
|
+
if thought_sig_s:
|
|
320
|
+
fc_metadata_s["thought_signature"] = thought_sig_s
|
|
312
321
|
items.append(
|
|
313
322
|
FunctionCallContent(
|
|
314
323
|
id=f"{part.function_call.name}_{idx!s}",
|
|
@@ -316,6 +325,7 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
|
|
|
316
325
|
part.function_call.name
|
|
317
326
|
),
|
|
318
327
|
arguments={k: v for k, v in part.function_call.args.items()},
|
|
328
|
+
metadata=fc_metadata_s if fc_metadata_s else None,
|
|
319
329
|
)
|
|
320
330
|
)
|
|
321
331
|
|
|
@@ -353,6 +353,23 @@ class ChatHistory(KernelBaseModel):
|
|
|
353
353
|
elif item.tag == CHAT_HISTORY_TAG:
|
|
354
354
|
for message in item:
|
|
355
355
|
messages.append(ChatMessageContent.from_element(message))
|
|
356
|
+
else:
|
|
357
|
+
# Unknown XML tags (e.g. HTML tags like <p>, <div>) are not SK
|
|
358
|
+
# template tags. Serialize them back to text and append to the
|
|
359
|
+
# previous message so that the original content is preserved.
|
|
360
|
+
saved_tail = item.tail
|
|
361
|
+
item.tail = None
|
|
362
|
+
raw = unescape(tostring(item, encoding="unicode", short_empty_elements=False))
|
|
363
|
+
item.tail = saved_tail
|
|
364
|
+
if messages:
|
|
365
|
+
messages[-1].content = (messages[-1].content or "") + raw
|
|
366
|
+
else:
|
|
367
|
+
messages.append(ChatMessageContent(role=AuthorRole.USER, content=raw))
|
|
368
|
+
# For unknown tags the tail is part of the surrounding text,
|
|
369
|
+
# so keep it in the same message instead of starting a new one.
|
|
370
|
+
if item.tail:
|
|
371
|
+
messages[-1].content = (messages[-1].content or "") + unescape(item.tail)
|
|
372
|
+
continue
|
|
356
373
|
if item.tail and item.tail.strip():
|
|
357
374
|
messages.append(ChatMessageContent(role=AuthorRole.USER, content=unescape(item.tail.strip())))
|
|
358
375
|
if len(messages) == 1 and messages[0].role == AuthorRole.SYSTEM:
|
|
@@ -66,6 +66,7 @@ def locate_safe_reduction_index(
|
|
|
66
66
|
target_count: int,
|
|
67
67
|
threshold_count: int = 0,
|
|
68
68
|
offset_count: int = 0,
|
|
69
|
+
has_system_message: bool = False,
|
|
69
70
|
) -> int | None:
|
|
70
71
|
"""Identify the index of the first message at or beyond the specified target_count.
|
|
71
72
|
|
|
@@ -83,11 +84,27 @@ def locate_safe_reduction_index(
|
|
|
83
84
|
threshold_count: The threshold beyond target_count required to trigger reduction.
|
|
84
85
|
If total messages <= (target_count + threshold_count), no reduction occurs.
|
|
85
86
|
offset_count: Optional number of messages to skip at the start (e.g. existing summary messages).
|
|
87
|
+
has_system_message: Whether the history contains a system message that will be preserved
|
|
88
|
+
separately. When True, the target_count is adjusted to account for the
|
|
89
|
+
system message being re-added after reduction.
|
|
86
90
|
|
|
87
91
|
Returns:
|
|
88
92
|
The index that identifies the starting point for a reduced history that does not orphan
|
|
89
93
|
sensitive content. Returns None if reduction is not needed.
|
|
90
94
|
"""
|
|
95
|
+
# Adjust target_count to account for the system message that will be preserved separately.
|
|
96
|
+
# This matches the .NET SDK behavior.
|
|
97
|
+
if has_system_message:
|
|
98
|
+
target_count -= 1
|
|
99
|
+
if target_count <= 0:
|
|
100
|
+
logger.warning(
|
|
101
|
+
"target_count after accounting for system message is %d; reduction will keep only the system message.",
|
|
102
|
+
target_count,
|
|
103
|
+
)
|
|
104
|
+
# Reduce to just the system message — return index past all non-system messages.
|
|
105
|
+
# The caller will prepend the system message to the empty/minimal tail.
|
|
106
|
+
return len(history)
|
|
107
|
+
|
|
91
108
|
total_count = len(history)
|
|
92
109
|
threshold_index = total_count - (threshold_count or 0) - target_count
|
|
93
110
|
if threshold_index <= offset_count:
|
|
@@ -220,5 +237,12 @@ def extract_range(
|
|
|
220
237
|
|
|
221
238
|
@experimental
|
|
222
239
|
def contains_function_call_or_result(msg: ChatMessageContent) -> bool:
|
|
223
|
-
"""Return True if the message has any function call or function result.
|
|
240
|
+
"""Return True if the message has any function call or function result.
|
|
241
|
+
|
|
242
|
+
Also returns True for TOOL role messages, which are always responses to
|
|
243
|
+
a preceding assistant message with tool_calls and must not be separated
|
|
244
|
+
from it.
|
|
245
|
+
"""
|
|
246
|
+
if msg.role == AuthorRole.TOOL:
|
|
247
|
+
return True
|
|
224
248
|
return any(isinstance(item, (FunctionCallContent, FunctionResultContent)) for item in msg.items)
|
|
@@ -26,6 +26,7 @@ from semantic_kernel.contents.history_reducer.chat_history_reducer_utils import
|
|
|
26
26
|
locate_safe_reduction_index,
|
|
27
27
|
locate_summarization_boundary,
|
|
28
28
|
)
|
|
29
|
+
from semantic_kernel.contents.utils.author_role import AuthorRole
|
|
29
30
|
from semantic_kernel.exceptions.content_exceptions import ChatHistoryReducerException
|
|
30
31
|
from semantic_kernel.utils.feature_stage_decorator import experimental
|
|
31
32
|
|
|
@@ -89,6 +90,21 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
|
|
|
89
90
|
|
|
90
91
|
logger.info("Performing chat history summarization check...")
|
|
91
92
|
|
|
93
|
+
# Preserve system/developer messages so they are not lost during summarization.
|
|
94
|
+
# This matches the .NET SDK behavior and the truncation reducer.
|
|
95
|
+
# Only the first system/developer message is preserved; this mirrors .NET semantics.
|
|
96
|
+
# Exclude summary messages (which may have SYSTEM role) — they are generated content,
|
|
97
|
+
# not original system prompts.
|
|
98
|
+
system_message_index = next(
|
|
99
|
+
(
|
|
100
|
+
i
|
|
101
|
+
for i, msg in enumerate(history)
|
|
102
|
+
if msg.role in (AuthorRole.SYSTEM, AuthorRole.DEVELOPER) and not msg.metadata.get(SUMMARY_METADATA_KEY)
|
|
103
|
+
),
|
|
104
|
+
-1,
|
|
105
|
+
)
|
|
106
|
+
system_message = history[system_message_index] if system_message_index >= 0 else None
|
|
107
|
+
|
|
92
108
|
# 1. Identify where existing summary messages end
|
|
93
109
|
insertion_point = locate_summarization_boundary(history)
|
|
94
110
|
if insertion_point == len(history):
|
|
@@ -96,12 +112,19 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
|
|
|
96
112
|
logger.warning("All messages are summaries, forcing boundary to 0.")
|
|
97
113
|
insertion_point = 0
|
|
98
114
|
|
|
115
|
+
# Only adjust target_count if the system message would be truncated away.
|
|
116
|
+
# If the system message is already in the retained portion, no adjustment needed.
|
|
117
|
+
system_would_be_truncated = (
|
|
118
|
+
system_message is not None and system_message_index < len(history) - self.target_count
|
|
119
|
+
)
|
|
120
|
+
|
|
99
121
|
# 2. Locate the safe reduction index
|
|
100
122
|
truncation_index = locate_safe_reduction_index(
|
|
101
123
|
history,
|
|
102
124
|
self.target_count,
|
|
103
125
|
self.threshold_count,
|
|
104
126
|
offset_count=insertion_point,
|
|
127
|
+
has_system_message=system_would_be_truncated,
|
|
105
128
|
)
|
|
106
129
|
if truncation_index is None:
|
|
107
130
|
logger.info("No valid truncation index found.")
|
|
@@ -138,7 +161,13 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
|
|
|
138
161
|
keep_existing_summaries = history[:insertion_point]
|
|
139
162
|
|
|
140
163
|
remainder = history[truncation_index:]
|
|
164
|
+
|
|
165
|
+
# Prepend the system/developer message if it was summarized away.
|
|
166
|
+
# Use identity comparison to avoid false matches from value-equal messages.
|
|
141
167
|
new_history = [*keep_existing_summaries, summary_msg, *remainder]
|
|
168
|
+
if system_message is not None and not any(m is system_message for m in new_history):
|
|
169
|
+
new_history = [system_message, *new_history]
|
|
170
|
+
|
|
142
171
|
self.messages = new_history
|
|
143
172
|
|
|
144
173
|
return self
|
|
@@ -151,8 +180,6 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
|
|
|
151
180
|
|
|
152
181
|
async def _summarize(self, messages: list[ChatMessageContent]) -> ChatMessageContent | None:
|
|
153
182
|
"""Use the ChatCompletion service to generate a single summary message."""
|
|
154
|
-
from semantic_kernel.contents.utils.author_role import AuthorRole
|
|
155
|
-
|
|
156
183
|
chat_history = ChatHistory(messages=messages)
|
|
157
184
|
execution_settings = self.execution_settings or self.service.get_prompt_execution_settings_from_settings(
|
|
158
185
|
PromptExecutionSettings()
|
|
@@ -15,9 +15,9 @@ else:
|
|
|
15
15
|
|
|
16
16
|
from semantic_kernel.contents.history_reducer.chat_history_reducer import ChatHistoryReducer
|
|
17
17
|
from semantic_kernel.contents.history_reducer.chat_history_reducer_utils import (
|
|
18
|
-
extract_range,
|
|
19
18
|
locate_safe_reduction_index,
|
|
20
19
|
)
|
|
20
|
+
from semantic_kernel.contents.utils.author_role import AuthorRole
|
|
21
21
|
from semantic_kernel.utils.feature_stage_decorator import experimental
|
|
22
22
|
|
|
23
23
|
logger = logging.getLogger(__name__)
|
|
@@ -45,7 +45,28 @@ class ChatHistoryTruncationReducer(ChatHistoryReducer):
|
|
|
45
45
|
|
|
46
46
|
logger.info("Performing chat history truncation check...")
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
# Preserve system/developer messages so they are not lost during truncation.
|
|
49
|
+
# This matches the .NET SDK behavior where system messages are always retained.
|
|
50
|
+
# Only the first system/developer message is preserved; this mirrors .NET semantics.
|
|
51
|
+
system_message_index = next(
|
|
52
|
+
(i for i, msg in enumerate(history) if msg.role in (AuthorRole.SYSTEM, AuthorRole.DEVELOPER)),
|
|
53
|
+
-1,
|
|
54
|
+
)
|
|
55
|
+
system_message = history[system_message_index] if system_message_index >= 0 else None
|
|
56
|
+
|
|
57
|
+
# Only adjust target_count if the system message would be truncated away
|
|
58
|
+
# (i.e., it falls before the naive tail). If the system message is already in the
|
|
59
|
+
# retained portion, no adjustment is needed — it naturally occupies a slot.
|
|
60
|
+
system_would_be_truncated = (
|
|
61
|
+
system_message is not None and system_message_index < len(history) - self.target_count
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
truncation_index = locate_safe_reduction_index(
|
|
65
|
+
history,
|
|
66
|
+
self.target_count,
|
|
67
|
+
self.threshold_count,
|
|
68
|
+
has_system_message=system_would_be_truncated,
|
|
69
|
+
)
|
|
49
70
|
if truncation_index is None:
|
|
50
71
|
logger.info(
|
|
51
72
|
f"No truncation index found. Target count: {self.target_count}, Threshold: {self.threshold_count}"
|
|
@@ -53,7 +74,13 @@ class ChatHistoryTruncationReducer(ChatHistoryReducer):
|
|
|
53
74
|
return None
|
|
54
75
|
|
|
55
76
|
logger.info(f"Truncating history to {truncation_index} messages.")
|
|
56
|
-
truncated_list =
|
|
77
|
+
truncated_list = history[truncation_index:]
|
|
78
|
+
|
|
79
|
+
# Prepend the system/developer message if it was truncated away.
|
|
80
|
+
# Use identity comparison (is) to avoid false matches from value-equal messages.
|
|
81
|
+
if system_message is not None and all(msg is not system_message for msg in truncated_list):
|
|
82
|
+
truncated_list = [system_message, *truncated_list]
|
|
83
|
+
|
|
57
84
|
self.messages = truncated_list
|
|
58
85
|
return self
|
|
59
86
|
|