smallestai 3.1.0__tar.gz → 4.2.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.
- {smallestai-3.1.0/smallestai.egg-info → smallestai-4.2.2}/PKG-INFO +16 -5
- {smallestai-3.1.0 → smallestai-4.2.2}/README.md +3 -3
- {smallestai-3.1.0 → smallestai-4.2.2}/pyproject.toml +30 -10
- smallestai-4.2.2/smallestai/__init__.py +85 -0
- smallestai-4.2.2/smallestai/atoms/__init__.py +319 -0
- smallestai-4.2.2/smallestai/atoms/agent/clients/__init__.py +21 -0
- smallestai-4.2.2/smallestai/atoms/agent/clients/base.py +41 -0
- smallestai-4.2.2/smallestai/atoms/agent/clients/openai.py +327 -0
- smallestai-4.2.2/smallestai/atoms/agent/clients/types.py +62 -0
- smallestai-4.2.2/smallestai/atoms/agent/context.py +16 -0
- smallestai-4.2.2/smallestai/atoms/agent/events.py +262 -0
- smallestai-4.2.2/smallestai/atoms/agent/nodes/__init__.py +9 -0
- smallestai-4.2.2/smallestai/atoms/agent/nodes/background_agent.py +57 -0
- smallestai-4.2.2/smallestai/atoms/agent/nodes/base.py +196 -0
- smallestai-4.2.2/smallestai/atoms/agent/nodes/output_agent.py +148 -0
- smallestai-4.2.2/smallestai/atoms/agent/server.py +163 -0
- smallestai-4.2.2/smallestai/atoms/agent/session.py +438 -0
- smallestai-4.2.2/smallestai/atoms/agent/task_manager.py +232 -0
- smallestai-4.2.2/smallestai/atoms/agent/tools/__init__.py +21 -0
- smallestai-4.2.2/smallestai/atoms/agent/tools/decorator.py +130 -0
- smallestai-4.2.2/smallestai/atoms/agent/tools/registry.py +267 -0
- smallestai-4.2.2/smallestai/atoms/agent/tools/schema.py +181 -0
- smallestai-4.2.2/smallestai/atoms/agent/type.py +56 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/__init__.py +0 -1
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/agent_templates_api.py +26 -26
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/agents_api.py +1316 -190
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/calls_api.py +29 -29
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/campaigns_api.py +165 -165
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/knowledge_base_api.py +290 -290
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/logs_api.py +13 -13
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/organization_api.py +13 -13
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api/user_api.py +13 -13
- smallestai-4.2.2/smallestai/atoms/atoms_client.py +1096 -0
- smallestai-4.2.2/smallestai/atoms/audience.py +175 -0
- smallestai-4.2.2/smallestai/atoms/call.py +126 -0
- smallestai-4.2.2/smallestai/atoms/campaign.py +128 -0
- smallestai-4.2.2/smallestai/atoms/kb.py +165 -0
- smallestai-4.2.2/smallestai/atoms/models/__init__.py +132 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_agent_id_webhook_subscriptions_delete200_response.py +89 -0
- smallestai-3.1.0/smallestai/atoms/models/get_agent_templates200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_agent_id_webhook_subscriptions_get200_response.py +7 -7
- smallestai-4.2.2/smallestai/atoms/models/agent_agent_id_webhook_subscriptions_get404_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_agent_id_webhook_subscriptions_post201_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_agent_id_webhook_subscriptions_post400_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_agent_id_webhook_subscriptions_post_request.py +97 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/agent_dto.py +8 -6
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/agent_dto_language.py +17 -3
- smallestai-4.2.2/smallestai/atoms/models/agent_dto_language_switching.py +95 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/agent_dto_synthesizer.py +1 -1
- smallestai-3.1.0/smallestai/atoms/models/create_agent_from_template200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_from_template_post200_response.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/get_agents200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/get_agents200_response_data.py → smallestai-4.2.2/smallestai/atoms/models/agent_get200_response_data.py +9 -13
- smallestai-3.1.0/smallestai/atoms/models/delete_agent200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_delete200_response.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/get_agent_by_id200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_get200_response.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/update_agent200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch200_response.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/update_agent_request.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request.py +17 -15
- smallestai-3.1.0/smallestai/atoms/models/update_agent_request_language.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request_language.py +14 -10
- smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request_language_switching.py +96 -0
- smallestai-3.1.0/smallestai/atoms/models/update_agent_request_synthesizer.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request_synthesizer.py +6 -6
- smallestai-3.1.0/smallestai/atoms/models/update_agent_request_synthesizer_voice_config.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request_synthesizer_voice_config.py +27 -27
- smallestai-3.1.0/smallestai/atoms/models/update_agent_request_synthesizer_voice_config_one_of.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request_synthesizer_voice_config_one_of.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/update_agent_request_synthesizer_voice_config_one_of1.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_patch_request_synthesizer_voice_config_one_of1.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/get_campaign_by_id200_response.py → smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response.py +7 -7
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data.py +105 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_edges_inner.py +127 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_edges_inner_data.py +91 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_edges_inner_marker_end.py +91 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_nodes_inner.py +114 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_nodes_inner_data.py +115 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_nodes_inner_data_variables.py +97 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_nodes_inner_data_variables_data_inner.py +91 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get200_response_data_nodes_inner_position.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_id_workflow_get404_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/agent_template_get200_response.py +97 -0
- smallestai-3.1.0/smallestai/atoms/models/get_agent_templates200_response_data_inner.py → smallestai-4.2.2/smallestai/atoms/models/agent_template_get200_response_data_inner.py +6 -6
- smallestai-3.1.0/smallestai/atoms/models/get_campaigns200_response.py → smallestai-4.2.2/smallestai/atoms/models/audience_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/create_campaign201_response_data.py → smallestai-4.2.2/smallestai/atoms/models/audience_get200_response_data_inner.py +16 -18
- smallestai-4.2.2/smallestai/atoms/models/audience_id_delete200_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_delete400_response.py +89 -0
- smallestai-3.1.0/smallestai/atoms/models/get_current_user200_response.py → smallestai-4.2.2/smallestai/atoms/models/audience_id_get200_response.py +7 -7
- smallestai-4.2.2/smallestai/atoms/models/audience_id_get400_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_get403_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_get404_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_delete200_response.py +93 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_delete200_response_data.py +87 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_delete_request.py +87 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_get200_response.py +93 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_get200_response_data.py +101 -0
- smallestai-3.1.0/smallestai/atoms/models/get_campaigns200_response_data_inner_audience.py → smallestai-4.2.2/smallestai/atoms/models/audience_id_members_get200_response_data_members_inner.py +8 -8
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_get400_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_get500_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_post200_response.py +97 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_post200_response_data_inner.py +93 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_post200_response_data_inner_data.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_post400_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_post403_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_post_request.py +87 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_search_get200_response.py +93 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_search_get200_response_data.py +101 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_search_get200_response_data_search_info.py +103 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_search_get400_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_id_members_search_get500_response.py +89 -0
- smallestai-3.1.0/smallestai/atoms/models/create_campaign201_response.py → smallestai-4.2.2/smallestai/atoms/models/audience_post200_response.py +7 -7
- smallestai-4.2.2/smallestai/atoms/models/audience_post200_response_data.py +104 -0
- smallestai-4.2.2/smallestai/atoms/models/audience_post400_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/campaign_get200_response.py +93 -0
- smallestai-4.2.2/smallestai/atoms/models/campaign_get200_response_data.py +87 -0
- smallestai-3.1.0/smallestai/atoms/models/get_campaigns_request.py → smallestai-4.2.2/smallestai/atoms/models/campaign_get_request.py +4 -4
- smallestai-4.2.2/smallestai/atoms/models/campaign_id_get200_response.py +93 -0
- smallestai-3.1.0/smallestai/atoms/models/get_campaign_by_id200_response_data.py → smallestai-4.2.2/smallestai/atoms/models/campaign_id_get200_response_data.py +4 -4
- smallestai-4.2.2/smallestai/atoms/models/campaign_post201_response.py +89 -0
- smallestai-3.1.0/smallestai/atoms/models/create_campaign_request.py → smallestai-4.2.2/smallestai/atoms/models/campaign_post_request.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/start_outbound_call200_response.py → smallestai-4.2.2/smallestai/atoms/models/conversation_id_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/get_conversation_logs200_response_data.py → smallestai-4.2.2/smallestai/atoms/models/conversation_id_get200_response_data.py +4 -4
- smallestai-4.2.2/smallestai/atoms/models/conversation_outbound_post200_response.py +93 -0
- smallestai-3.1.0/smallestai/atoms/models/start_outbound_call200_response_data.py → smallestai-4.2.2/smallestai/atoms/models/conversation_outbound_post200_response_data.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/start_outbound_call_request.py → smallestai-4.2.2/smallestai/atoms/models/conversation_outbound_post_request.py +4 -4
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/create_agent_request.py +10 -6
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/create_agent_request_language.py +11 -7
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/create_agent_request_language_synthesizer_voice_config.py +24 -24
- smallestai-3.1.0/smallestai/atoms/models/knowledge_base_dto.py → smallestai-4.2.2/smallestai/atoms/models/knowledge_base.py +15 -8
- smallestai-3.1.0/smallestai/atoms/models/knowledge_base_item_dto.py → smallestai-4.2.2/smallestai/atoms/models/knowledge_base_item.py +19 -17
- smallestai-3.1.0/smallestai/atoms/models/get_knowledge_bases200_response.py → smallestai-4.2.2/smallestai/atoms/models/knowledgebase_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/get_knowledge_base_by_id200_response.py → smallestai-4.2.2/smallestai/atoms/models/knowledgebase_id_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/get_knowledge_base_items200_response.py → smallestai-4.2.2/smallestai/atoms/models/knowledgebase_id_items_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/upload_text_to_knowledge_base_request.py → smallestai-4.2.2/smallestai/atoms/models/knowledgebase_id_items_upload_text_post_request.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/create_knowledge_base201_response.py → smallestai-4.2.2/smallestai/atoms/models/knowledgebase_post201_response.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/create_knowledge_base_request.py → smallestai-4.2.2/smallestai/atoms/models/knowledgebase_post_request.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/get_organization200_response.py → smallestai-4.2.2/smallestai/atoms/models/organization_get200_response.py +7 -7
- smallestai-3.1.0/smallestai/atoms/models/get_organization200_response_data.py → smallestai-4.2.2/smallestai/atoms/models/organization_get200_response_data.py +10 -10
- smallestai-3.1.0/smallestai/atoms/models/get_organization200_response_data_members_inner.py → smallestai-4.2.2/smallestai/atoms/models/organization_get200_response_data_members_inner.py +4 -4
- smallestai-3.1.0/smallestai/atoms/models/get_organization200_response_data_subscription.py → smallestai-4.2.2/smallestai/atoms/models/organization_get200_response_data_subscription.py +4 -4
- smallestai-4.2.2/smallestai/atoms/models/product_phone_numbers_get200_response.py +97 -0
- smallestai-4.2.2/smallestai/atoms/models/product_phone_numbers_get200_response_data_inner.py +100 -0
- smallestai-4.2.2/smallestai/atoms/models/product_phone_numbers_get200_response_data_inner_attributes.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/user_get200_response.py +93 -0
- smallestai-3.1.0/smallestai/atoms/models/get_current_user200_response_data.py → smallestai-4.2.2/smallestai/atoms/models/user_get200_response_data.py +4 -4
- smallestai-4.2.2/smallestai/atoms/models/webhook.py +124 -0
- smallestai-3.1.0/smallestai/atoms/models/get_campaigns200_response_data_inner_agent.py → smallestai-4.2.2/smallestai/atoms/models/webhook_agent.py +8 -6
- smallestai-4.2.2/smallestai/atoms/models/webhook_event.py +98 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_get200_response.py +93 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_get200_response_data.py +140 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_id_delete404_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_post201_response.py +89 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_post_request.py +99 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_post_request_events_inner.py +99 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_subscription.py +108 -0
- smallestai-4.2.2/smallestai/atoms/models/webhook_subscription_populated.py +112 -0
- smallestai-4.2.2/smallestai/cli/agent.py +454 -0
- smallestai-4.2.2/smallestai/cli/auth.py +43 -0
- smallestai-4.2.2/smallestai/cli/lib/atoms.py +337 -0
- smallestai-4.2.2/smallestai/cli/lib/auth.py +48 -0
- smallestai-4.2.2/smallestai/cli/lib/chat.py +603 -0
- smallestai-4.2.2/smallestai/cli/lib/project_config.py +39 -0
- smallestai-4.2.2/smallestai/cli/main.py +32 -0
- smallestai-4.2.2/smallestai/cli/utils.py +185 -0
- smallestai-4.2.2/smallestai/waves/__init__.py +5 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/waves/async_waves_client.py +100 -74
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/waves/exceptions.py +4 -4
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/waves/models.py +8 -0
- smallestai-4.2.2/smallestai/waves/stream_tts.py +207 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/waves/utils.py +23 -51
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/waves/waves_client.py +86 -77
- {smallestai-3.1.0 → smallestai-4.2.2/smallestai.egg-info}/PKG-INFO +16 -5
- smallestai-4.2.2/smallestai.egg-info/SOURCES.txt +181 -0
- smallestai-4.2.2/smallestai.egg-info/entry_points.txt +2 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai.egg-info/requires.txt +13 -2
- smallestai-3.1.0/smallestai/__init__.py +0 -95
- smallestai-3.1.0/smallestai/atoms/__init__.py +0 -182
- smallestai-3.1.0/smallestai/atoms/atoms_client.py +0 -560
- smallestai-3.1.0/smallestai/atoms/models/__init__.py +0 -72
- smallestai-3.1.0/smallestai/atoms/models/get_campaigns200_response_data_inner.py +0 -118
- smallestai-3.1.0/smallestai/atoms/models/get_conversation_logs200_response.py +0 -93
- smallestai-3.1.0/smallestai/waves/__init__.py +0 -5
- smallestai-3.1.0/smallestai/waves/stream_tts.py +0 -272
- smallestai-3.1.0/smallestai.egg-info/SOURCES.txt +0 -90
- {smallestai-3.1.0 → smallestai-4.2.2}/LICENSE +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/setup.cfg +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api_client.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/api_response.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/configuration.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/exceptions.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/agent_dto_synthesizer_voice_config.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/api_response.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/bad_request_error_response.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/create_agent_from_template_request.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/create_agent_request_language_synthesizer.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/internal_server_error_response.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/models/unauthorized_error_reponse.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/py.typed +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai/atoms/rest.py +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai.egg-info/dependency_links.txt +0 -0
- {smallestai-3.1.0 → smallestai-4.2.2}/smallestai.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: smallestai
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.2.2
|
|
4
4
|
Summary: Official Python client for the Smallest AI API
|
|
5
5
|
Author-email: Smallest <support@smallest.ai>
|
|
6
6
|
License: MIT
|
|
@@ -16,18 +16,29 @@ Requires-Dist: aiohttp
|
|
|
16
16
|
Requires-Dist: aiofiles
|
|
17
17
|
Requires-Dist: requests
|
|
18
18
|
Requires-Dist: pydub
|
|
19
|
+
Requires-Dist: websocket-client
|
|
19
20
|
Requires-Dist: urllib3<3.0.0,>=1.25.3
|
|
20
21
|
Requires-Dist: python-dateutil>=2.8.2
|
|
21
22
|
Requires-Dist: pydantic>=2
|
|
22
23
|
Requires-Dist: typing-extensions>=4.7.1
|
|
23
24
|
Requires-Dist: audioop-lts; python_version >= "3.13"
|
|
25
|
+
Requires-Dist: loguru>=0.7.0
|
|
26
|
+
Requires-Dist: fastapi>=0.115.0
|
|
27
|
+
Requires-Dist: httpx>=0.28.1
|
|
28
|
+
Requires-Dist: python-dotenv>=1.2.1
|
|
29
|
+
Requires-Dist: questionary>=2.1.1
|
|
30
|
+
Requires-Dist: rich>=14.2.0
|
|
31
|
+
Requires-Dist: tomli>=2.3.0
|
|
32
|
+
Requires-Dist: tomli-w>=1.2.0
|
|
33
|
+
Requires-Dist: typer>=0.20.0
|
|
34
|
+
Requires-Dist: uvicorn>=0.32.0
|
|
35
|
+
Requires-Dist: websockets>=14.0
|
|
36
|
+
Requires-Dist: openai>=2.14.0
|
|
24
37
|
Provides-Extra: test
|
|
25
38
|
Requires-Dist: jiwer; extra == "test"
|
|
26
|
-
Requires-Dist: httpx; extra == "test"
|
|
27
39
|
Requires-Dist: pytest>=7.2.1; extra == "test"
|
|
28
40
|
Requires-Dist: pytest-asyncio; extra == "test"
|
|
29
41
|
Requires-Dist: deepgram-sdk; extra == "test"
|
|
30
|
-
Requires-Dist: python-dotenv; extra == "test"
|
|
31
42
|
Requires-Dist: pytest-cov>=2.8.1; extra == "test"
|
|
32
43
|
Requires-Dist: tox>=3.9.0; extra == "test"
|
|
33
44
|
Requires-Dist: flake8>=4.0.0; extra == "test"
|
|
@@ -58,7 +69,7 @@ Smallest AI offers an end to end Voice AI suite for developers trying to build r
|
|
|
58
69
|
|
|
59
70
|
With this sdk, you can easily interact with both Waves and Atoms from any Python 3.9+ application, by utilising WavesClient and AtomsClient classes respectively. Currently, the WavesClient supports direct synthesis and the ability to synthesize streamed LLM output, both synchronously and asynchronously. AtomsClient provides a simpler way of interacting with all our API's to develop and run agentic workflows.
|
|
60
71
|
|
|
61
|
-
To learn how to use our API's, check out our documentation for [Atoms](https://atoms-docs.smallest.ai/introduction) and [Waves](https://waves-docs.smallest.ai/content/introduction/)
|
|
72
|
+
To learn how to use our API's, check out our documentation for [Atoms](https://atoms-docs.smallest.ai/introduction) and [Waves](https://waves-docs.smallest.ai/content/introduction/introduction)
|
|
62
73
|
|
|
63
74
|
## Table of Contents
|
|
64
75
|
|
|
@@ -141,7 +152,7 @@ def main():
|
|
|
141
152
|
"similarity": 0,
|
|
142
153
|
"enhancement": 1
|
|
143
154
|
},
|
|
144
|
-
"slmModel": "electron
|
|
155
|
+
"slmModel": "electron",
|
|
145
156
|
}
|
|
146
157
|
).data
|
|
147
158
|
|
|
@@ -21,7 +21,7 @@ Smallest AI offers an end to end Voice AI suite for developers trying to build r
|
|
|
21
21
|
|
|
22
22
|
With this sdk, you can easily interact with both Waves and Atoms from any Python 3.9+ application, by utilising WavesClient and AtomsClient classes respectively. Currently, the WavesClient supports direct synthesis and the ability to synthesize streamed LLM output, both synchronously and asynchronously. AtomsClient provides a simpler way of interacting with all our API's to develop and run agentic workflows.
|
|
23
23
|
|
|
24
|
-
To learn how to use our API's, check out our documentation for [Atoms](https://atoms-docs.smallest.ai/introduction) and [Waves](https://waves-docs.smallest.ai/content/introduction/)
|
|
24
|
+
To learn how to use our API's, check out our documentation for [Atoms](https://atoms-docs.smallest.ai/introduction) and [Waves](https://waves-docs.smallest.ai/content/introduction/introduction)
|
|
25
25
|
|
|
26
26
|
## Table of Contents
|
|
27
27
|
|
|
@@ -104,7 +104,7 @@ def main():
|
|
|
104
104
|
"similarity": 0,
|
|
105
105
|
"enhancement": 1
|
|
106
106
|
},
|
|
107
|
-
"slmModel": "electron
|
|
107
|
+
"slmModel": "electron",
|
|
108
108
|
}
|
|
109
109
|
).data
|
|
110
110
|
|
|
@@ -497,4 +497,4 @@ When implementing audio streaming with chunks of synthesized speech, WAV headers
|
|
|
497
497
|
2. Add a single WAV header only when:
|
|
498
498
|
- Saving the complete stream to a file
|
|
499
499
|
- Initializing the audio playback system
|
|
500
|
-
- Converting the stream to a standard audio format
|
|
500
|
+
- Converting the stream to a standard audio format
|
|
@@ -1,44 +1,60 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "smallestai"
|
|
3
|
-
version = "
|
|
3
|
+
version = "4.2.2"
|
|
4
4
|
description = "Official Python client for the Smallest AI API"
|
|
5
|
-
authors = [
|
|
6
|
-
{name = "Smallest", email = "support@smallest.ai"},
|
|
7
|
-
]
|
|
5
|
+
authors = [{ name = "Smallest", email = "support@smallest.ai" }]
|
|
8
6
|
readme = "README.md"
|
|
9
|
-
license = {text = "MIT"}
|
|
7
|
+
license = { text = "MIT" }
|
|
10
8
|
requires-python = ">=3.9"
|
|
11
9
|
classifiers = [
|
|
12
10
|
"Intended Audience :: Developers",
|
|
13
11
|
"License :: OSI Approved :: MIT License",
|
|
14
12
|
"Programming Language :: Python :: 3",
|
|
15
13
|
]
|
|
16
|
-
keywords = [
|
|
14
|
+
keywords = [
|
|
15
|
+
"smallest",
|
|
16
|
+
"smallest.ai",
|
|
17
|
+
"tts",
|
|
18
|
+
"text-to-speech",
|
|
19
|
+
"waves",
|
|
20
|
+
"atoms",
|
|
21
|
+
]
|
|
17
22
|
dependencies = [
|
|
18
23
|
"aiohttp",
|
|
19
24
|
"aiofiles",
|
|
20
25
|
"requests",
|
|
21
26
|
"pydub",
|
|
27
|
+
"websocket-client",
|
|
22
28
|
"urllib3 >= 1.25.3, < 3.0.0",
|
|
23
29
|
"python-dateutil >= 2.8.2",
|
|
24
30
|
"pydantic >= 2",
|
|
25
31
|
"typing-extensions >= 4.7.1",
|
|
26
|
-
"audioop-lts; python_version >= '3.13'"
|
|
32
|
+
"audioop-lts; python_version >= '3.13'",
|
|
33
|
+
"loguru >= 0.7.0",
|
|
34
|
+
"fastapi>=0.115.0",
|
|
35
|
+
"httpx>=0.28.1",
|
|
36
|
+
"python-dotenv>=1.2.1",
|
|
37
|
+
"questionary>=2.1.1",
|
|
38
|
+
"rich>=14.2.0",
|
|
39
|
+
"tomli>=2.3.0",
|
|
40
|
+
"tomli-w>=1.2.0",
|
|
41
|
+
"typer>=0.20.0",
|
|
42
|
+
"uvicorn>=0.32.0",
|
|
43
|
+
"websockets>=14.0",
|
|
44
|
+
"openai>=2.14.0",
|
|
27
45
|
]
|
|
28
46
|
|
|
29
47
|
[project.optional-dependencies]
|
|
30
48
|
test = [
|
|
31
49
|
"jiwer",
|
|
32
|
-
"httpx",
|
|
33
50
|
"pytest >= 7.2.1",
|
|
34
51
|
"pytest-asyncio",
|
|
35
52
|
"deepgram-sdk",
|
|
36
|
-
"python-dotenv",
|
|
37
53
|
"pytest-cov >= 2.8.1",
|
|
38
54
|
"tox >= 3.9.0",
|
|
39
55
|
"flake8 >= 4.0.0",
|
|
40
56
|
"types-python-dateutil >= 2.8.19.14",
|
|
41
|
-
"mypy >= 1.5"
|
|
57
|
+
"mypy >= 1.5",
|
|
42
58
|
]
|
|
43
59
|
|
|
44
60
|
[project.urls]
|
|
@@ -51,3 +67,7 @@ build-backend = "setuptools.build_meta"
|
|
|
51
67
|
[tool.setuptools.packages.find]
|
|
52
68
|
where = ["."]
|
|
53
69
|
include = ["smallest*"]
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
[project.scripts]
|
|
73
|
+
smallestai = "smallestai.cli.main:main"
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SmallestAI Python SDK
|
|
3
|
+
|
|
4
|
+
This package provides access to both the Atoms API (agent management)
|
|
5
|
+
and Waves API components.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from smallestai.atoms import (
|
|
9
|
+
AgentTemplatesApi,
|
|
10
|
+
AgentsApi,
|
|
11
|
+
CallsApi,
|
|
12
|
+
CampaignsApi,
|
|
13
|
+
KnowledgeBaseApi,
|
|
14
|
+
LogsApi,
|
|
15
|
+
OrganizationApi,
|
|
16
|
+
UserApi,
|
|
17
|
+
ApiResponse,
|
|
18
|
+
ApiClient,
|
|
19
|
+
Configuration,
|
|
20
|
+
OpenApiException,
|
|
21
|
+
ApiTypeError,
|
|
22
|
+
ApiValueError,
|
|
23
|
+
ApiKeyError,
|
|
24
|
+
ApiAttributeError,
|
|
25
|
+
ApiException,
|
|
26
|
+
AgentDTO,
|
|
27
|
+
AgentDTOLanguage,
|
|
28
|
+
AgentDTOSynthesizer,
|
|
29
|
+
AgentDTOSynthesizerVoiceConfig,
|
|
30
|
+
BadRequestErrorResponse,
|
|
31
|
+
AgentFromTemplatePost200Response,
|
|
32
|
+
CreateAgentFromTemplateRequest,
|
|
33
|
+
CreateAgentRequest,
|
|
34
|
+
CreateAgentRequestLanguage,
|
|
35
|
+
CreateAgentRequestLanguageSynthesizer,
|
|
36
|
+
CreateAgentRequestLanguageSynthesizerVoiceConfig,
|
|
37
|
+
CampaignPost201Response,
|
|
38
|
+
CampaignPostRequest,
|
|
39
|
+
CampaignGetRequest,
|
|
40
|
+
AgentIdDelete200Response,
|
|
41
|
+
AgentIdGet200Response,
|
|
42
|
+
AgentTemplateGet200Response,
|
|
43
|
+
AgentTemplateGet200ResponseDataInner,
|
|
44
|
+
AgentGet200Response,
|
|
45
|
+
CampaignIdGet200Response,
|
|
46
|
+
CampaignGet200Response,
|
|
47
|
+
ConversationIdGet200Response,
|
|
48
|
+
ConversationIdGet200ResponseData,
|
|
49
|
+
UserGet200Response,
|
|
50
|
+
UserGet200ResponseData,
|
|
51
|
+
KnowledgebaseIdGet200Response,
|
|
52
|
+
KnowledgebasePost201Response,
|
|
53
|
+
KnowledgebasePostRequest,
|
|
54
|
+
KnowledgebaseIdItemsUploadTextPostRequest,
|
|
55
|
+
OrganizationGet200Response,
|
|
56
|
+
OrganizationGet200ResponseData,
|
|
57
|
+
OrganizationGet200ResponseDataMembersInner,
|
|
58
|
+
OrganizationGet200ResponseDataSubscription,
|
|
59
|
+
InternalServerErrorResponse,
|
|
60
|
+
ConversationOutboundPost200Response,
|
|
61
|
+
ConversationOutboundPost200ResponseData,
|
|
62
|
+
ConversationOutboundPostRequest,
|
|
63
|
+
UnauthorizedErrorReponse,
|
|
64
|
+
AgentIdPatch200Response,
|
|
65
|
+
AgentIdPatchRequest,
|
|
66
|
+
AgentIdPatchRequestLanguage,
|
|
67
|
+
AgentIdPatchRequestSynthesizer,
|
|
68
|
+
AgentIdPatchRequestSynthesizerVoiceConfig,
|
|
69
|
+
AgentIdPatchRequestSynthesizerVoiceConfigOneOf,
|
|
70
|
+
AgentIdPatchRequestSynthesizerVoiceConfigOneOf1,
|
|
71
|
+
AtomsClient
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
from smallestai.waves import (
|
|
75
|
+
WavesClient,
|
|
76
|
+
AsyncWavesClient,
|
|
77
|
+
WavesStreamingTTS
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
from smallestai.atoms import __all__ as atoms_all
|
|
81
|
+
from smallestai.waves import __all__ as waves_all
|
|
82
|
+
|
|
83
|
+
__all__ = atoms_all + waves_all
|
|
84
|
+
|
|
85
|
+
__version__ = "4.0.1"
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
Agent Management API
|
|
7
|
+
|
|
8
|
+
API for managing agents, their templates, and call logs
|
|
9
|
+
|
|
10
|
+
The version of the OpenAPI document: 1.0.0
|
|
11
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
12
|
+
|
|
13
|
+
Do not edit the class manually.
|
|
14
|
+
""" # noqa: E501
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# import apis into sdk package
|
|
18
|
+
from smallestai.atoms.api.agent_templates_api import AgentTemplatesApi
|
|
19
|
+
from smallestai.atoms.api.agents_api import AgentsApi
|
|
20
|
+
from smallestai.atoms.api.calls_api import CallsApi
|
|
21
|
+
from smallestai.atoms.api.campaigns_api import CampaignsApi
|
|
22
|
+
from smallestai.atoms.api.knowledge_base_api import KnowledgeBaseApi
|
|
23
|
+
from smallestai.atoms.api.logs_api import LogsApi
|
|
24
|
+
from smallestai.atoms.api.organization_api import OrganizationApi
|
|
25
|
+
from smallestai.atoms.api.user_api import UserApi
|
|
26
|
+
|
|
27
|
+
# import ApiClient
|
|
28
|
+
from smallestai.atoms.api_response import ApiResponse
|
|
29
|
+
from smallestai.atoms.api_client import ApiClient
|
|
30
|
+
from smallestai.atoms.configuration import Configuration
|
|
31
|
+
from smallestai.atoms.exceptions import OpenApiException
|
|
32
|
+
from smallestai.atoms.exceptions import ApiTypeError
|
|
33
|
+
from smallestai.atoms.exceptions import ApiValueError
|
|
34
|
+
from smallestai.atoms.exceptions import ApiKeyError
|
|
35
|
+
from smallestai.atoms.exceptions import ApiAttributeError
|
|
36
|
+
from smallestai.atoms.exceptions import ApiException
|
|
37
|
+
from smallestai.atoms.atoms_client import AtomsClient
|
|
38
|
+
|
|
39
|
+
# import models into sdk package
|
|
40
|
+
from smallestai.atoms.models.agent_agent_id_webhook_subscriptions_delete200_response import AgentAgentIdWebhookSubscriptionsDelete200Response
|
|
41
|
+
from smallestai.atoms.models.agent_agent_id_webhook_subscriptions_get200_response import AgentAgentIdWebhookSubscriptionsGet200Response
|
|
42
|
+
from smallestai.atoms.models.agent_agent_id_webhook_subscriptions_get404_response import AgentAgentIdWebhookSubscriptionsGet404Response
|
|
43
|
+
from smallestai.atoms.models.agent_agent_id_webhook_subscriptions_post201_response import AgentAgentIdWebhookSubscriptionsPost201Response
|
|
44
|
+
from smallestai.atoms.models.agent_agent_id_webhook_subscriptions_post400_response import AgentAgentIdWebhookSubscriptionsPost400Response
|
|
45
|
+
from smallestai.atoms.models.agent_agent_id_webhook_subscriptions_post_request import AgentAgentIdWebhookSubscriptionsPostRequest
|
|
46
|
+
from smallestai.atoms.models.agent_dto import AgentDTO
|
|
47
|
+
from smallestai.atoms.models.agent_dto_language import AgentDTOLanguage
|
|
48
|
+
from smallestai.atoms.models.agent_dto_synthesizer import AgentDTOSynthesizer
|
|
49
|
+
from smallestai.atoms.models.agent_dto_synthesizer_voice_config import AgentDTOSynthesizerVoiceConfig
|
|
50
|
+
from smallestai.atoms.models.agent_from_template_post200_response import AgentFromTemplatePost200Response
|
|
51
|
+
from smallestai.atoms.models.agent_get200_response import AgentGet200Response
|
|
52
|
+
from smallestai.atoms.models.agent_id_delete200_response import AgentIdDelete200Response
|
|
53
|
+
from smallestai.atoms.models.agent_id_get200_response import AgentIdGet200Response
|
|
54
|
+
from smallestai.atoms.models.agent_id_patch200_response import AgentIdPatch200Response
|
|
55
|
+
from smallestai.atoms.models.agent_id_patch_request import AgentIdPatchRequest
|
|
56
|
+
from smallestai.atoms.models.agent_id_patch_request_language import AgentIdPatchRequestLanguage
|
|
57
|
+
from smallestai.atoms.models.agent_id_patch_request_synthesizer import AgentIdPatchRequestSynthesizer
|
|
58
|
+
from smallestai.atoms.models.agent_id_patch_request_synthesizer_voice_config import AgentIdPatchRequestSynthesizerVoiceConfig
|
|
59
|
+
from smallestai.atoms.models.agent_id_patch_request_synthesizer_voice_config_one_of import AgentIdPatchRequestSynthesizerVoiceConfigOneOf
|
|
60
|
+
from smallestai.atoms.models.agent_id_patch_request_synthesizer_voice_config_one_of1 import AgentIdPatchRequestSynthesizerVoiceConfigOneOf1
|
|
61
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response import AgentIdWorkflowGet200Response
|
|
62
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data import AgentIdWorkflowGet200ResponseData
|
|
63
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_edges_inner import AgentIdWorkflowGet200ResponseDataEdgesInner
|
|
64
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_edges_inner_data import AgentIdWorkflowGet200ResponseDataEdgesInnerData
|
|
65
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_edges_inner_marker_end import AgentIdWorkflowGet200ResponseDataEdgesInnerMarkerEnd
|
|
66
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_nodes_inner import AgentIdWorkflowGet200ResponseDataNodesInner
|
|
67
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_nodes_inner_data import AgentIdWorkflowGet200ResponseDataNodesInnerData
|
|
68
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_nodes_inner_data_variables import AgentIdWorkflowGet200ResponseDataNodesInnerDataVariables
|
|
69
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_nodes_inner_data_variables_data_inner import AgentIdWorkflowGet200ResponseDataNodesInnerDataVariablesDataInner
|
|
70
|
+
from smallestai.atoms.models.agent_id_workflow_get200_response_data_nodes_inner_position import AgentIdWorkflowGet200ResponseDataNodesInnerPosition
|
|
71
|
+
from smallestai.atoms.models.agent_id_workflow_get404_response import AgentIdWorkflowGet404Response
|
|
72
|
+
from smallestai.atoms.models.agent_template_get200_response import AgentTemplateGet200Response
|
|
73
|
+
from smallestai.atoms.models.agent_template_get200_response_data_inner import AgentTemplateGet200ResponseDataInner
|
|
74
|
+
from smallestai.atoms.models.api_response import ApiResponse
|
|
75
|
+
from smallestai.atoms.models.audience_get200_response import AudienceGet200Response
|
|
76
|
+
from smallestai.atoms.models.audience_get200_response_data_inner import AudienceGet200ResponseDataInner
|
|
77
|
+
from smallestai.atoms.models.audience_id_delete200_response import AudienceIdDelete200Response
|
|
78
|
+
from smallestai.atoms.models.audience_id_delete400_response import AudienceIdDelete400Response
|
|
79
|
+
from smallestai.atoms.models.audience_id_get200_response import AudienceIdGet200Response
|
|
80
|
+
from smallestai.atoms.models.audience_id_get400_response import AudienceIdGet400Response
|
|
81
|
+
from smallestai.atoms.models.audience_id_get403_response import AudienceIdGet403Response
|
|
82
|
+
from smallestai.atoms.models.audience_id_get404_response import AudienceIdGet404Response
|
|
83
|
+
from smallestai.atoms.models.audience_id_members_delete200_response import AudienceIdMembersDelete200Response
|
|
84
|
+
from smallestai.atoms.models.audience_id_members_delete200_response_data import AudienceIdMembersDelete200ResponseData
|
|
85
|
+
from smallestai.atoms.models.audience_id_members_delete_request import AudienceIdMembersDeleteRequest
|
|
86
|
+
from smallestai.atoms.models.audience_id_members_get200_response import AudienceIdMembersGet200Response
|
|
87
|
+
from smallestai.atoms.models.audience_id_members_get200_response_data import AudienceIdMembersGet200ResponseData
|
|
88
|
+
from smallestai.atoms.models.audience_id_members_get200_response_data_members_inner import AudienceIdMembersGet200ResponseDataMembersInner
|
|
89
|
+
from smallestai.atoms.models.audience_id_members_get400_response import AudienceIdMembersGet400Response
|
|
90
|
+
from smallestai.atoms.models.audience_id_members_get500_response import AudienceIdMembersGet500Response
|
|
91
|
+
from smallestai.atoms.models.audience_id_members_post200_response import AudienceIdMembersPost200Response
|
|
92
|
+
from smallestai.atoms.models.audience_id_members_post200_response_data_inner import AudienceIdMembersPost200ResponseDataInner
|
|
93
|
+
from smallestai.atoms.models.audience_id_members_post200_response_data_inner_data import AudienceIdMembersPost200ResponseDataInnerData
|
|
94
|
+
from smallestai.atoms.models.audience_id_members_post400_response import AudienceIdMembersPost400Response
|
|
95
|
+
from smallestai.atoms.models.audience_id_members_post403_response import AudienceIdMembersPost403Response
|
|
96
|
+
from smallestai.atoms.models.audience_id_members_post_request import AudienceIdMembersPostRequest
|
|
97
|
+
from smallestai.atoms.models.audience_id_members_search_get200_response import AudienceIdMembersSearchGet200Response
|
|
98
|
+
from smallestai.atoms.models.audience_id_members_search_get200_response_data import AudienceIdMembersSearchGet200ResponseData
|
|
99
|
+
from smallestai.atoms.models.audience_id_members_search_get200_response_data_search_info import AudienceIdMembersSearchGet200ResponseDataSearchInfo
|
|
100
|
+
from smallestai.atoms.models.audience_id_members_search_get400_response import AudienceIdMembersSearchGet400Response
|
|
101
|
+
from smallestai.atoms.models.audience_id_members_search_get500_response import AudienceIdMembersSearchGet500Response
|
|
102
|
+
from smallestai.atoms.models.audience_post200_response import AudiencePost200Response
|
|
103
|
+
from smallestai.atoms.models.audience_post200_response_data import AudiencePost200ResponseData
|
|
104
|
+
from smallestai.atoms.models.audience_post400_response import AudiencePost400Response
|
|
105
|
+
from smallestai.atoms.models.bad_request_error_response import BadRequestErrorResponse
|
|
106
|
+
from smallestai.atoms.models.campaign_get200_response import CampaignGet200Response
|
|
107
|
+
from smallestai.atoms.models.campaign_get200_response_data import CampaignGet200ResponseData
|
|
108
|
+
from smallestai.atoms.models.campaign_get_request import CampaignGetRequest
|
|
109
|
+
from smallestai.atoms.models.campaign_id_get200_response import CampaignIdGet200Response
|
|
110
|
+
from smallestai.atoms.models.campaign_post201_response import CampaignPost201Response
|
|
111
|
+
from smallestai.atoms.models.campaign_post_request import CampaignPostRequest
|
|
112
|
+
from smallestai.atoms.models.conversation_id_get200_response import ConversationIdGet200Response
|
|
113
|
+
from smallestai.atoms.models.conversation_id_get200_response_data import ConversationIdGet200ResponseData
|
|
114
|
+
from smallestai.atoms.models.conversation_outbound_post200_response import ConversationOutboundPost200Response
|
|
115
|
+
from smallestai.atoms.models.conversation_outbound_post200_response_data import ConversationOutboundPost200ResponseData
|
|
116
|
+
from smallestai.atoms.models.conversation_outbound_post_request import ConversationOutboundPostRequest
|
|
117
|
+
from smallestai.atoms.models.create_agent_from_template_request import CreateAgentFromTemplateRequest
|
|
118
|
+
from smallestai.atoms.models.create_agent_request import CreateAgentRequest
|
|
119
|
+
from smallestai.atoms.models.create_agent_request_language import CreateAgentRequestLanguage
|
|
120
|
+
from smallestai.atoms.models.create_agent_request_language_synthesizer import CreateAgentRequestLanguageSynthesizer
|
|
121
|
+
from smallestai.atoms.models.create_agent_request_language_synthesizer_voice_config import CreateAgentRequestLanguageSynthesizerVoiceConfig
|
|
122
|
+
from smallestai.atoms.models.internal_server_error_response import InternalServerErrorResponse
|
|
123
|
+
from smallestai.atoms.models.knowledge_base import KnowledgeBase
|
|
124
|
+
from smallestai.atoms.models.knowledge_base_item import KnowledgeBaseItem
|
|
125
|
+
from smallestai.atoms.models.knowledgebase_get200_response import KnowledgebaseGet200Response
|
|
126
|
+
from smallestai.atoms.models.knowledgebase_id_get200_response import KnowledgebaseIdGet200Response
|
|
127
|
+
from smallestai.atoms.models.knowledgebase_id_items_get200_response import KnowledgebaseIdItemsGet200Response
|
|
128
|
+
from smallestai.atoms.models.knowledgebase_id_items_upload_text_post_request import KnowledgebaseIdItemsUploadTextPostRequest
|
|
129
|
+
from smallestai.atoms.models.knowledgebase_post201_response import KnowledgebasePost201Response
|
|
130
|
+
from smallestai.atoms.models.knowledgebase_post_request import KnowledgebasePostRequest
|
|
131
|
+
from smallestai.atoms.models.organization_get200_response import OrganizationGet200Response
|
|
132
|
+
from smallestai.atoms.models.organization_get200_response_data import OrganizationGet200ResponseData
|
|
133
|
+
from smallestai.atoms.models.organization_get200_response_data_members_inner import OrganizationGet200ResponseDataMembersInner
|
|
134
|
+
from smallestai.atoms.models.organization_get200_response_data_subscription import OrganizationGet200ResponseDataSubscription
|
|
135
|
+
from smallestai.atoms.models.product_phone_numbers_get200_response import ProductPhoneNumbersGet200Response
|
|
136
|
+
from smallestai.atoms.models.product_phone_numbers_get200_response_data_inner import ProductPhoneNumbersGet200ResponseDataInner
|
|
137
|
+
from smallestai.atoms.models.product_phone_numbers_get200_response_data_inner_attributes import ProductPhoneNumbersGet200ResponseDataInnerAttributes
|
|
138
|
+
from smallestai.atoms.models.unauthorized_error_reponse import UnauthorizedErrorReponse
|
|
139
|
+
from smallestai.atoms.models.user_get200_response import UserGet200Response
|
|
140
|
+
from smallestai.atoms.models.user_get200_response_data import UserGet200ResponseData
|
|
141
|
+
from smallestai.atoms.models.webhook import Webhook
|
|
142
|
+
from smallestai.atoms.models.webhook_agent import WebhookAgent
|
|
143
|
+
from smallestai.atoms.models.webhook_event import WebhookEvent
|
|
144
|
+
from smallestai.atoms.models.webhook_get200_response import WebhookGet200Response
|
|
145
|
+
from smallestai.atoms.models.webhook_get200_response_data import WebhookGet200ResponseData
|
|
146
|
+
from smallestai.atoms.models.webhook_id_delete404_response import WebhookIdDelete404Response
|
|
147
|
+
from smallestai.atoms.models.webhook_post201_response import WebhookPost201Response
|
|
148
|
+
from smallestai.atoms.models.webhook_post_request import WebhookPostRequest
|
|
149
|
+
from smallestai.atoms.models.webhook_post_request_events_inner import WebhookPostRequestEventsInner
|
|
150
|
+
from smallestai.atoms.models.webhook_subscription import WebhookSubscription
|
|
151
|
+
from smallestai.atoms.models.webhook_subscription_populated import WebhookSubscriptionPopulated
|
|
152
|
+
|
|
153
|
+
# Modular Classes
|
|
154
|
+
from smallestai.atoms.call import Call
|
|
155
|
+
from smallestai.atoms.audience import Audience
|
|
156
|
+
from smallestai.atoms.campaign import Campaign
|
|
157
|
+
from smallestai.atoms.kb import KB
|
|
158
|
+
|
|
159
|
+
__all__ = [
|
|
160
|
+
# API Classes
|
|
161
|
+
"AgentTemplatesApi",
|
|
162
|
+
"AgentsApi",
|
|
163
|
+
"CallsApi",
|
|
164
|
+
"CampaignsApi",
|
|
165
|
+
"KnowledgeBaseApi",
|
|
166
|
+
"LogsApi",
|
|
167
|
+
"OrganizationApi",
|
|
168
|
+
"UserApi",
|
|
169
|
+
|
|
170
|
+
# Core Classes
|
|
171
|
+
"ApiResponse",
|
|
172
|
+
"ApiClient",
|
|
173
|
+
"Configuration",
|
|
174
|
+
"Configuration",
|
|
175
|
+
"AtomsClient",
|
|
176
|
+
"Call",
|
|
177
|
+
"Audience",
|
|
178
|
+
"Campaign",
|
|
179
|
+
"KB",
|
|
180
|
+
|
|
181
|
+
# Exceptions
|
|
182
|
+
"OpenApiException",
|
|
183
|
+
"ApiTypeError",
|
|
184
|
+
"ApiValueError",
|
|
185
|
+
"ApiKeyError",
|
|
186
|
+
"ApiAttributeError",
|
|
187
|
+
"ApiException",
|
|
188
|
+
|
|
189
|
+
# Agent Models
|
|
190
|
+
"AgentDTO",
|
|
191
|
+
"AgentDTOLanguage",
|
|
192
|
+
"AgentDTOSynthesizer",
|
|
193
|
+
"AgentDTOSynthesizerVoiceConfig",
|
|
194
|
+
"AgentFromTemplatePost200Response",
|
|
195
|
+
"AgentGet200Response",
|
|
196
|
+
"AgentIdDelete200Response",
|
|
197
|
+
"AgentIdGet200Response",
|
|
198
|
+
"AgentIdPatch200Response",
|
|
199
|
+
"AgentIdPatchRequest",
|
|
200
|
+
"AgentIdPatchRequestLanguage",
|
|
201
|
+
"AgentIdPatchRequestSynthesizer",
|
|
202
|
+
"AgentIdPatchRequestSynthesizerVoiceConfig",
|
|
203
|
+
"AgentIdPatchRequestSynthesizerVoiceConfigOneOf",
|
|
204
|
+
"AgentIdPatchRequestSynthesizerVoiceConfigOneOf1",
|
|
205
|
+
"AgentIdWorkflowGet200Response",
|
|
206
|
+
"AgentIdWorkflowGet200ResponseData",
|
|
207
|
+
"AgentIdWorkflowGet200ResponseDataEdgesInner",
|
|
208
|
+
"AgentIdWorkflowGet200ResponseDataEdgesInnerData",
|
|
209
|
+
"AgentIdWorkflowGet200ResponseDataEdgesInnerMarkerEnd",
|
|
210
|
+
"AgentIdWorkflowGet200ResponseDataNodesInner",
|
|
211
|
+
"AgentIdWorkflowGet200ResponseDataNodesInnerData",
|
|
212
|
+
"AgentIdWorkflowGet200ResponseDataNodesInnerDataVariables",
|
|
213
|
+
"AgentIdWorkflowGet200ResponseDataNodesInnerDataVariablesDataInner",
|
|
214
|
+
"AgentIdWorkflowGet200ResponseDataNodesInnerPosition",
|
|
215
|
+
"AgentIdWorkflowGet404Response",
|
|
216
|
+
"AgentTemplateGet200Response",
|
|
217
|
+
"AgentTemplateGet200ResponseDataInner",
|
|
218
|
+
"CreateAgentFromTemplateRequest",
|
|
219
|
+
"CreateAgentRequest",
|
|
220
|
+
"CreateAgentRequestLanguage",
|
|
221
|
+
"CreateAgentRequestLanguageSynthesizer",
|
|
222
|
+
"CreateAgentRequestLanguageSynthesizerVoiceConfig",
|
|
223
|
+
|
|
224
|
+
# Webhook Models
|
|
225
|
+
"AgentAgentIdWebhookSubscriptionsDelete200Response",
|
|
226
|
+
"AgentAgentIdWebhookSubscriptionsGet200Response",
|
|
227
|
+
"AgentAgentIdWebhookSubscriptionsGet404Response",
|
|
228
|
+
"AgentAgentIdWebhookSubscriptionsPost201Response",
|
|
229
|
+
"AgentAgentIdWebhookSubscriptionsPost400Response",
|
|
230
|
+
"AgentAgentIdWebhookSubscriptionsPostRequest",
|
|
231
|
+
"Webhook",
|
|
232
|
+
"WebhookAgent",
|
|
233
|
+
"WebhookEvent",
|
|
234
|
+
"WebhookGet200Response",
|
|
235
|
+
"WebhookGet200ResponseData",
|
|
236
|
+
"WebhookIdDelete404Response",
|
|
237
|
+
"WebhookPost201Response",
|
|
238
|
+
"WebhookPostRequest",
|
|
239
|
+
"WebhookPostRequestEventsInner",
|
|
240
|
+
"WebhookSubscription",
|
|
241
|
+
"WebhookSubscriptionPopulated",
|
|
242
|
+
|
|
243
|
+
# Audience Models
|
|
244
|
+
"AudienceGet200Response",
|
|
245
|
+
"AudienceGet200ResponseDataInner",
|
|
246
|
+
"AudienceIdDelete200Response",
|
|
247
|
+
"AudienceIdDelete400Response",
|
|
248
|
+
"AudienceIdGet200Response",
|
|
249
|
+
"AudienceIdGet400Response",
|
|
250
|
+
"AudienceIdGet403Response",
|
|
251
|
+
"AudienceIdGet404Response",
|
|
252
|
+
"AudienceIdMembersDelete200Response",
|
|
253
|
+
"AudienceIdMembersDelete200ResponseData",
|
|
254
|
+
"AudienceIdMembersDeleteRequest",
|
|
255
|
+
"AudienceIdMembersGet200Response",
|
|
256
|
+
"AudienceIdMembersGet200ResponseData",
|
|
257
|
+
"AudienceIdMembersGet200ResponseDataMembersInner",
|
|
258
|
+
"AudienceIdMembersGet400Response",
|
|
259
|
+
"AudienceIdMembersGet500Response",
|
|
260
|
+
"AudienceIdMembersPost200Response",
|
|
261
|
+
"AudienceIdMembersPost200ResponseDataInner",
|
|
262
|
+
"AudienceIdMembersPost200ResponseDataInnerData",
|
|
263
|
+
"AudienceIdMembersPost400Response",
|
|
264
|
+
"AudienceIdMembersPost403Response",
|
|
265
|
+
"AudienceIdMembersPostRequest",
|
|
266
|
+
"AudienceIdMembersSearchGet200Response",
|
|
267
|
+
"AudienceIdMembersSearchGet200ResponseData",
|
|
268
|
+
"AudienceIdMembersSearchGet200ResponseDataSearchInfo",
|
|
269
|
+
"AudienceIdMembersSearchGet400Response",
|
|
270
|
+
"AudienceIdMembersSearchGet500Response",
|
|
271
|
+
"AudiencePost200Response",
|
|
272
|
+
"AudiencePost200ResponseData",
|
|
273
|
+
"AudiencePost400Response",
|
|
274
|
+
|
|
275
|
+
# Campaign Models
|
|
276
|
+
"CampaignGet200Response",
|
|
277
|
+
"CampaignGet200ResponseData",
|
|
278
|
+
"CampaignGetRequest",
|
|
279
|
+
"CampaignIdGet200Response",
|
|
280
|
+
"CampaignPost201Response",
|
|
281
|
+
"CampaignPostRequest",
|
|
282
|
+
|
|
283
|
+
# Conversation Models
|
|
284
|
+
"ConversationIdGet200Response",
|
|
285
|
+
"ConversationIdGet200ResponseData",
|
|
286
|
+
"ConversationOutboundPost200Response",
|
|
287
|
+
"ConversationOutboundPost200ResponseData",
|
|
288
|
+
"ConversationOutboundPostRequest",
|
|
289
|
+
|
|
290
|
+
# Knowledge Base Models
|
|
291
|
+
"KnowledgeBase",
|
|
292
|
+
"KnowledgeBaseItem",
|
|
293
|
+
"KnowledgebaseGet200Response",
|
|
294
|
+
"KnowledgebaseIdGet200Response",
|
|
295
|
+
"KnowledgebaseIdItemsGet200Response",
|
|
296
|
+
"KnowledgebaseIdItemsUploadTextPostRequest",
|
|
297
|
+
"KnowledgebasePost201Response",
|
|
298
|
+
"KnowledgebasePostRequest",
|
|
299
|
+
|
|
300
|
+
# Organization Models
|
|
301
|
+
"OrganizationGet200Response",
|
|
302
|
+
"OrganizationGet200ResponseData",
|
|
303
|
+
"OrganizationGet200ResponseDataMembersInner",
|
|
304
|
+
"OrganizationGet200ResponseDataSubscription",
|
|
305
|
+
|
|
306
|
+
# Phone Numbers Models
|
|
307
|
+
"ProductPhoneNumbersGet200Response",
|
|
308
|
+
"ProductPhoneNumbersGet200ResponseDataInner",
|
|
309
|
+
"ProductPhoneNumbersGet200ResponseDataInnerAttributes",
|
|
310
|
+
|
|
311
|
+
# User Models
|
|
312
|
+
"UserGet200Response",
|
|
313
|
+
"UserGet200ResponseData",
|
|
314
|
+
|
|
315
|
+
# Error Response Models
|
|
316
|
+
"BadRequestErrorResponse",
|
|
317
|
+
"InternalServerErrorResponse",
|
|
318
|
+
"UnauthorizedErrorReponse",
|
|
319
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""
|
|
2
|
+
LLM clients for atoms-sdk.
|
|
3
|
+
|
|
4
|
+
Standalone clients that can be used in any node for making LLM API calls.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from smallestai.atoms.agent.clients.openai import OpenAIClient
|
|
8
|
+
from smallestai.atoms.agent.clients.types import (
|
|
9
|
+
ChatChunk,
|
|
10
|
+
ChatResponse,
|
|
11
|
+
ToolCall,
|
|
12
|
+
ToolResult,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
__all__ = [
|
|
16
|
+
"OpenAIClient",
|
|
17
|
+
"ChatChunk",
|
|
18
|
+
"ChatResponse",
|
|
19
|
+
"ToolCall",
|
|
20
|
+
"ToolResult",
|
|
21
|
+
]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Base client interface for LLM providers.
|
|
3
|
+
|
|
4
|
+
Defines the common interface that all LLM clients should implement.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from abc import ABC, abstractmethod
|
|
8
|
+
from typing import Any, AsyncIterator, Dict, List, Optional, Union
|
|
9
|
+
|
|
10
|
+
from smallestai.atoms.agent.clients.types import ChatChunk, ChatResponse
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class BaseLLMClient(ABC):
|
|
14
|
+
"""Base interface for LLM clients."""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
async def chat(
|
|
18
|
+
self,
|
|
19
|
+
messages: List[Dict[str, Any]],
|
|
20
|
+
stream: bool = False,
|
|
21
|
+
tools: Optional[List[Dict[str, Any]]] = None,
|
|
22
|
+
**kwargs: Any,
|
|
23
|
+
) -> Union[ChatResponse, AsyncIterator[ChatChunk]]:
|
|
24
|
+
"""
|
|
25
|
+
Make a chat completion request.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
messages: Chat messages in OpenAI format
|
|
29
|
+
stream: Whether to stream response
|
|
30
|
+
tools: Tool/function definitions
|
|
31
|
+
**kwargs: Provider-specific parameters
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
ChatResponse for non-streaming, AsyncIterator[ChatChunk] for streaming
|
|
35
|
+
"""
|
|
36
|
+
pass
|
|
37
|
+
|
|
38
|
+
@abstractmethod
|
|
39
|
+
async def aclose(self):
|
|
40
|
+
"""Close client and cleanup resources."""
|
|
41
|
+
pass
|