celeste-ai 0.2.4__tar.gz → 0.3.3__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.
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.env.example +6 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.github/workflows/ci.yml +2 -2
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.github/workflows/publish.yml +103 -7
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.gitignore +1 -0
- celeste_ai-0.3.3/LICENSE +21 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/Makefile +12 -4
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/PKG-INFO +163 -45
- celeste_ai-0.3.3/README.md +251 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/README.md +3 -3
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/pyproject.toml +16 -5
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/__init__.py +0 -1
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/client.py +3 -7
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/constraints.py +1 -1
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/io.py +10 -10
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/models.py +5 -3
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/parameters.py +40 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/providers/__init__.py +7 -3
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/bfl/__init__.py +6 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/bfl/client.py +67 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/bfl/models.py +65 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/bfl/parameters.py +107 -0
- {celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance → celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/byteplus}/README.md +3 -3
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/byteplus/__init__.py +6 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/byteplus/client.py +107 -0
- {celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance → celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/byteplus}/models.py +27 -2
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/byteplus/parameters.py +57 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/byteplus/streaming.py +81 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/__init__.py +11 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/client.py +82 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/gemini.py +90 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/gemini_parameters.py +35 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/imagen.py +90 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/imagen_parameters.py +35 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/providers/google/models.py +28 -13
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/google/parameters.py +12 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/providers/openai/__init__.py +1 -1
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/openai/client.py +80 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/providers/openai/models.py +16 -1
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/openai/parameters.py +35 -0
- celeste_ai-0.3.3/packages/capabilities/image-generation/src/celeste_image_generation/providers/openai/streaming.py +60 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/streaming.py +11 -4
- celeste_ai-0.3.3/packages/capabilities/image-generation/tests/integration_tests/test_image_generation/__init__.py +1 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/tests/integration_tests/test_image_generation/test_generate.py +4 -3
- celeste_ai-0.3.3/packages/capabilities/image-generation/tests/unit_tests/providers/google/__init__.py +1 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/tests/unit_tests/providers/google/test_finish_reason.py +11 -10
- celeste_ai-0.3.3/packages/capabilities/speech-generation/README.md +79 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/pyproject.toml +50 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/__init__.py +59 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/client.py +69 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/constraints.py +39 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/io.py +43 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/languages.py +47 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/models.py +16 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/parameters.py +24 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/__init__.py +32 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/elevenlabs/__init__.py +11 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/elevenlabs/client.py +97 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/elevenlabs/models.py +141 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/elevenlabs/parameters.py +43 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/elevenlabs/streaming.py +44 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/elevenlabs/voices.py +322 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/google/__init__.py +6 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/google/client.py +71 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/google/mappings.py +37 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/google/models.py +77 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/google/parameters.py +47 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/google/voices.py +212 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/gradium/__init__.py +9 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/gradium/client.py +93 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/gradium/models.py +34 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/gradium/parameters.py +60 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/gradium/voices.py +101 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/openai/__init__.py +6 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/openai/client.py +88 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/openai/models.py +61 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/openai/parameters.py +35 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/providers/openai/voices.py +140 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/streaming.py +44 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation/voices.py +17 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/tests/integration_tests/conftest.py +19 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/tests/integration_tests/test_speech_generation/__init__.py +1 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/tests/integration_tests/test_speech_generation/test_generate.py +72 -0
- celeste_ai-0.3.3/packages/capabilities/speech-generation/tests/integration_tests/test_speech_generation/test_stream.py +59 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/README.md +2 -2
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/pyproject.toml +19 -4
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/__init__.py +0 -2
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/client.py +5 -5
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/io.py +1 -1
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/models.py +2 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/parameters.py +4 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/__init__.py +4 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/anthropic/__init__.py +1 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/anthropic/client.py +65 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/anthropic/models.py +18 -4
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/anthropic/parameters.py +68 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/anthropic/streaming.py +95 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/cohere/__init__.py +1 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/cohere/client.py +73 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/cohere/models.py +1 -26
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/cohere/parameters.py +70 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/cohere/streaming.py +87 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/google/__init__.py +1 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/google/client.py +67 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/google/models.py +17 -5
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/google/parameters.py +52 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/google/streaming.py +83 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/mistral/__init__.py +1 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/mistral/client.py +95 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/mistral/models.py +45 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/mistral/parameters.py +72 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/mistral/streaming.py +87 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/openai/__init__.py +1 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/openai/client.py +65 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/providers/openai/models.py +72 -1
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/openai/parameters.py +52 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/openai/streaming.py +85 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/xai/__init__.py +7 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/xai/client.py +65 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/xai/models.py +76 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/xai/parameters.py +44 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation/providers/xai/streaming.py +85 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/src/celeste_text_generation/streaming.py +7 -5
- celeste_ai-0.3.3/packages/capabilities/text-generation/tests/integration_tests/conftest.py +19 -0
- celeste_ai-0.3.3/packages/capabilities/text-generation/tests/integration_tests/test_text_generation/__init__.py +1 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/tests/integration_tests/test_text_generation/test_generate.py +2 -1
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/text-generation/tests/integration_tests/test_text_generation/test_stream.py +7 -3
- celeste_ai-0.3.3/packages/capabilities/video-generation/README.md +79 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/pyproject.toml +49 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/__init__.py +29 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/client.py +71 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/io.py +33 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/models.py +14 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/parameters.py +28 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/__init__.py +28 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/byteplus/README.md +13 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/byteplus/__init__.py +11 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/byteplus/client.py +168 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/byteplus/models.py +99 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/byteplus/parameters.py +51 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/google/__init__.py +10 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/google/client.py +76 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/google/models.py +78 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/google/parameters.py +59 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/openai/__init__.py +10 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/openai/client.py +140 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/openai/models.py +46 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/providers/openai/parameters.py +78 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/src/celeste_video_generation/py.typed +1 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/tests/integration_tests/test_video_generation/__init__.py +1 -0
- celeste_ai-0.3.3/packages/capabilities/video-generation/tests/integration_tests/test_video_generation/test_generate.py +65 -0
- celeste_ai-0.3.3/packages/providers/anthropic/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/__init__.py +3 -0
- celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/messages/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/messages/client.py +154 -0
- celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/messages/config.py +42 -0
- celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/messages/parameters.py +205 -0
- celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/messages/streaming.py +76 -0
- celeste_ai-0.3.3/packages/providers/bfl/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/images/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/images/client.py +151 -0
- celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/images/config.py +16 -0
- celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/images/parameters.py +161 -0
- celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/images/utils.py +27 -0
- celeste_ai-0.3.3/packages/providers/byteplus/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/images/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/images/client.py +128 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/images/config.py +12 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/images/parameters.py +45 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/images/streaming.py +116 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/videos/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/videos/client.py +138 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/videos/config.py +22 -0
- celeste_ai-0.3.3/packages/providers/byteplus/src/celeste_byteplus/videos/parameters.py +179 -0
- celeste_ai-0.3.3/packages/providers/cohere/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/__init__.py +3 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/chat/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/chat/client.py +120 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/chat/config.py +12 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/chat/parameters.py +147 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/chat/streaming.py +89 -0
- celeste_ai-0.3.3/packages/providers/cohere/src/celeste_cohere/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/src/celeste_elevenlabs/__init__.py +3 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/src/celeste_elevenlabs/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/src/celeste_elevenlabs/text_to_speech/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/src/celeste_elevenlabs/text_to_speech/client.py +168 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/src/celeste_elevenlabs/text_to_speech/config.py +17 -0
- celeste_ai-0.3.3/packages/providers/elevenlabs/src/celeste_elevenlabs/text_to_speech/parameters.py +96 -0
- celeste_ai-0.3.3/packages/providers/google/pyproject.toml +21 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/__init__.py +12 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/auth.py +51 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/cloud_tts/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/cloud_tts/client.py +82 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/cloud_tts/config.py +16 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/cloud_tts/parameters.py +105 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/generate_content/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/generate_content/client.py +125 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/generate_content/config.py +23 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/generate_content/parameters.py +310 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/generate_content/streaming.py +54 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/imagen/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/imagen/client.py +97 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/imagen/config.py +12 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/imagen/parameters.py +67 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/veo/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/veo/client.py +157 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/veo/config.py +20 -0
- celeste_ai-0.3.3/packages/providers/google/src/celeste_google/veo/parameters.py +195 -0
- celeste_ai-0.3.3/packages/providers/gradium/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/gradium/src/celeste_gradium/__init__.py +3 -0
- celeste_ai-0.3.3/packages/providers/gradium/src/celeste_gradium/py.typed +1 -0
- celeste_ai-0.3.3/packages/providers/gradium/src/celeste_gradium/text_to_speech/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/gradium/src/celeste_gradium/text_to_speech/client.py +150 -0
- celeste_ai-0.3.3/packages/providers/gradium/src/celeste_gradium/text_to_speech/config.py +15 -0
- celeste_ai-0.3.3/packages/providers/gradium/src/celeste_gradium/text_to_speech/parameters.py +67 -0
- celeste_ai-0.3.3/packages/providers/mistral/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/chat/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/chat/client.py +115 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/chat/config.py +52 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/chat/parameters.py +114 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/chat/streaming.py +67 -0
- celeste_ai-0.3.3/packages/providers/mistral/src/celeste_mistral/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/openai/pyproject.toml +35 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/audio/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/audio/client.py +84 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/audio/config.py +14 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/audio/parameters.py +106 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/images/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/images/client.py +135 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/images/config.py +14 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/images/parameters.py +162 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/images/streaming.py +89 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/responses/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/responses/client.py +133 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/responses/config.py +12 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/responses/parameters.py +185 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/responses/streaming.py +68 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/videos/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/videos/client.py +186 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/videos/config.py +21 -0
- celeste_ai-0.3.3/packages/providers/openai/src/celeste_openai/videos/parameters.py +71 -0
- celeste_ai-0.3.3/packages/providers/xai/pyproject.toml +18 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/py.typed +0 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/responses/__init__.py +1 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/responses/client.py +128 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/responses/config.py +12 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/responses/parameters.py +206 -0
- celeste_ai-0.3.3/packages/providers/xai/src/celeste_xai/responses/streaming.py +71 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/pyproject.toml +28 -24
- celeste_ai-0.3.3/src/__init__.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/__init__.py +33 -7
- celeste_ai-0.3.3/src/celeste/auth.py +80 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/client.py +90 -13
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/constraints.py +90 -8
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/core.py +28 -2
- celeste_ai-0.3.3/src/celeste/credentials.py +179 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/exceptions.py +13 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/http.py +37 -1
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/io.py +3 -2
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/parameters.py +4 -1
- celeste_ai-0.3.3/src/celeste/py.typed +1 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/registry.py +20 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/streaming.py +3 -2
- celeste_ai-0.3.3/src/celeste/structured_outputs.py +90 -0
- celeste_ai-0.3.3/src/celeste/types.py +11 -0
- celeste_ai-0.3.3/src/celeste/utils.py +35 -0
- celeste_ai-0.3.3/src/celeste/websocket.py +134 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_client.py +18 -12
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_constraints.py +256 -16
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_http.py +4 -3
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_parameters.py +5 -2
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_streaming.py +22 -7
- celeste_ai-0.3.3/tests/unit_tests/test_structured_outputs.py +265 -0
- celeste_ai-0.2.4/LICENSE +0 -201
- celeste_ai-0.2.4/README.md +0 -134
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/parameters.py +0 -23
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance/__init__.py +0 -6
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance/client.py +0 -156
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance/config.py +0 -10
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance/parameters.py +0 -101
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/bytedance/streaming.py +0 -67
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/google/__init__.py +0 -6
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/google/client.py +0 -143
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/google/config.py +0 -10
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/google/gemini_api.py +0 -82
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/google/imagen_api.py +0 -67
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/google/parameters.py +0 -67
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/openai/client.py +0 -138
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/openai/config.py +0 -10
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/openai/parameters.py +0 -118
- celeste_ai-0.2.4/packages/image-generation/src/celeste_image_generation/providers/openai/streaming.py +0 -76
- celeste_ai-0.2.4/packages/image-generation/tests/integration_tests/test_image_generation/__init__.py +0 -1
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/anthropic/client.py +0 -139
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/anthropic/config.py +0 -14
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/anthropic/parameters.py +0 -289
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/anthropic/streaming.py +0 -343
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/cohere/client.py +0 -134
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/cohere/config.py +0 -11
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/cohere/parameters.py +0 -238
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/cohere/streaming.py +0 -154
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/google/client.py +0 -138
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/google/config.py +0 -10
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/google/parameters.py +0 -227
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/google/streaming.py +0 -164
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/mistral/client.py +0 -129
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/mistral/config.py +0 -10
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/mistral/parameters.py +0 -218
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/mistral/streaming.py +0 -134
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/openai/client.py +0 -145
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/openai/config.py +0 -10
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/openai/parameters.py +0 -222
- celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation/providers/openai/streaming.py +0 -108
- celeste_ai-0.2.4/packages/text-generation/tests/integration_tests/test_text_generation/__init__.py +0 -1
- celeste_ai-0.2.4/src/celeste/credentials.py +0 -109
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.github/actions/setup-python-uv/action.yml +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.github/workflows/claude-code-review.yml +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.github/workflows/claude.yml +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/.pre-commit-config.yaml +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/logo.svg +0 -0
- {celeste_ai-0.2.4/packages → celeste_ai-0.3.3/packages/capabilities}/image-generation/src/celeste_image_generation/py.typed +0 -0
- {celeste_ai-0.2.4/packages/text-generation/src/celeste_text_generation → celeste_ai-0.3.3/packages/capabilities/speech-generation/src/celeste_speech_generation}/py.typed +0 -0
- {celeste_ai-0.2.4/packages/image-generation/tests/unit_tests → celeste_ai-0.3.3/packages/capabilities/speech-generation/tests/integration_tests}/__init__.py +0 -0
- {celeste_ai-0.2.4/src/celeste → celeste_ai-0.3.3/packages/capabilities/text-generation/src/celeste_text_generation}/py.typed +0 -0
- /celeste_ai-0.2.4/packages/image-generation/tests/unit_tests/providers/google/__init__.py → /celeste_ai-0.3.3/packages/providers/anthropic/src/celeste_anthropic/py.typed +0 -0
- /celeste_ai-0.2.4/src/__init__.py → /celeste_ai-0.3.3/packages/providers/bfl/src/celeste_bfl/py.typed +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/artifacts.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/mime_types.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/src/celeste/models.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_artifacts.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_core.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_credentials.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_exceptions.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_init.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_mime_types.py +0 -0
- {celeste_ai-0.2.4 → celeste_ai-0.3.3}/tests/unit_tests/test_models.py +0 -0
|
@@ -7,6 +7,9 @@ OPENAI_API_KEY=your-openai-api-key-here
|
|
|
7
7
|
# Anthropic
|
|
8
8
|
ANTHROPIC_API_KEY=your-anthropic-api-key-here
|
|
9
9
|
|
|
10
|
+
# BFL (Black Forest Labs)
|
|
11
|
+
BFL_API_KEY=your-bfl-api-key-here
|
|
12
|
+
|
|
10
13
|
# Google
|
|
11
14
|
GOOGLE_API_KEY=your-google-api-key-here
|
|
12
15
|
|
|
@@ -36,3 +39,6 @@ TOPAZLABS_API_KEY=your-topazlabs-api-key-here
|
|
|
36
39
|
|
|
37
40
|
# Perplexity
|
|
38
41
|
PERPLEXITY_API_KEY=your-perplexity-api-key-here
|
|
42
|
+
|
|
43
|
+
# Gradium
|
|
44
|
+
GRADIUM_API_KEY=your-gradium-api-key-here
|
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
python-version: ${{ inputs.python-version || '3.12' }}
|
|
65
65
|
- run: |
|
|
66
66
|
if [ -d "packages" ]; then
|
|
67
|
-
uv run mypy -p celeste && uv run mypy tests/ && uv run mypy packages/
|
|
67
|
+
uv run mypy -p celeste && uv run mypy tests/ && uv run mypy packages/capabilities/image-generation packages/capabilities/text-generation packages/capabilities/video-generation packages/capabilities/speech-generation
|
|
68
68
|
else
|
|
69
69
|
uv run mypy -p celeste && uv run mypy tests/
|
|
70
70
|
fi
|
|
@@ -105,7 +105,7 @@ jobs:
|
|
|
105
105
|
- uses: ./.github/actions/setup-python-uv
|
|
106
106
|
with:
|
|
107
107
|
python-version: ${{ matrix.python-version }}
|
|
108
|
-
- run: uv run pytest tests/unit_tests -v --cov=celeste --cov-report=term-missing --cov-report=xml --cov-report=html --cov-fail-under=
|
|
108
|
+
- run: uv run pytest tests/unit_tests -v --cov=celeste --cov-report=term-missing --cov-report=xml --cov-report=html --cov-fail-under=80
|
|
109
109
|
- uses: codecov/codecov-action@v4
|
|
110
110
|
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
|
|
111
111
|
with:
|
|
@@ -41,28 +41,124 @@ jobs:
|
|
|
41
41
|
uses: ./.github/workflows/ci.yml
|
|
42
42
|
secrets: inherit
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
needs:
|
|
44
|
+
detect-changes:
|
|
45
|
+
needs: run-ci
|
|
46
46
|
runs-on: ubuntu-latest
|
|
47
|
+
outputs:
|
|
48
|
+
packages: ${{ steps.build-matrix.outputs.packages }}
|
|
49
|
+
has-changes: ${{ steps.build-matrix.outputs.has-changes }}
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v4
|
|
52
|
+
with:
|
|
53
|
+
fetch-depth: 0
|
|
54
|
+
- id: get-base
|
|
55
|
+
run: |
|
|
56
|
+
# Get previous tag to compare against (tag pushes don't have github.event.before)
|
|
57
|
+
PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
|
|
58
|
+
if [ -z "$PREVIOUS_TAG" ]; then
|
|
59
|
+
echo "base=" >> $GITHUB_OUTPUT
|
|
60
|
+
echo "run-all=true" >> $GITHUB_OUTPUT
|
|
61
|
+
else
|
|
62
|
+
echo "base=$PREVIOUS_TAG" >> $GITHUB_OUTPUT
|
|
63
|
+
echo "run-all=false" >> $GITHUB_OUTPUT
|
|
64
|
+
fi
|
|
65
|
+
- uses: dorny/paths-filter@v3
|
|
66
|
+
id: filter
|
|
67
|
+
if: steps.get-base.outputs.run-all != 'true'
|
|
68
|
+
with:
|
|
69
|
+
base: ${{ steps.get-base.outputs.base }}
|
|
70
|
+
filters: |
|
|
71
|
+
text-generation:
|
|
72
|
+
- 'packages/capabilities/text-generation/**'
|
|
73
|
+
- '!**/pyproject.toml'
|
|
74
|
+
image-generation:
|
|
75
|
+
- 'packages/capabilities/image-generation/**'
|
|
76
|
+
- '!**/pyproject.toml'
|
|
77
|
+
video-generation:
|
|
78
|
+
- 'packages/capabilities/video-generation/**'
|
|
79
|
+
- '!**/pyproject.toml'
|
|
80
|
+
speech-generation:
|
|
81
|
+
- 'packages/capabilities/speech-generation/**'
|
|
82
|
+
- '!**/pyproject.toml'
|
|
83
|
+
core:
|
|
84
|
+
- 'src/celeste/**'
|
|
85
|
+
- '!**/pyproject.toml'
|
|
86
|
+
- id: build-matrix
|
|
87
|
+
run: |
|
|
88
|
+
PACKAGES=()
|
|
89
|
+
|
|
90
|
+
# If first release or paths-filter was skipped, run all
|
|
91
|
+
if [[ "${{ steps.get-base.outputs.run-all }}" == "true" ]]; then
|
|
92
|
+
PACKAGES=("text-generation" "image-generation" "video-generation" "speech-generation")
|
|
93
|
+
else
|
|
94
|
+
CORE="${{ steps.filter.outputs.core }}"
|
|
95
|
+
if [[ "$CORE" == "true" || "${{ steps.filter.outputs.text-generation }}" == "true" ]]; then
|
|
96
|
+
PACKAGES+=("text-generation")
|
|
97
|
+
fi
|
|
98
|
+
if [[ "$CORE" == "true" || "${{ steps.filter.outputs.image-generation }}" == "true" ]]; then
|
|
99
|
+
PACKAGES+=("image-generation")
|
|
100
|
+
fi
|
|
101
|
+
if [[ "$CORE" == "true" || "${{ steps.filter.outputs.video-generation }}" == "true" ]]; then
|
|
102
|
+
PACKAGES+=("video-generation")
|
|
103
|
+
fi
|
|
104
|
+
if [[ "$CORE" == "true" || "${{ steps.filter.outputs.speech-generation }}" == "true" ]]; then
|
|
105
|
+
PACKAGES+=("speech-generation")
|
|
106
|
+
fi
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Convert to JSON array
|
|
110
|
+
JSON=$(printf '%s\n' "${PACKAGES[@]}" | jq -R . | jq -s -c .)
|
|
111
|
+
echo "packages=$JSON" >> $GITHUB_OUTPUT
|
|
112
|
+
|
|
113
|
+
if [[ ${#PACKAGES[@]} -gt 0 ]]; then
|
|
114
|
+
echo "has-changes=true" >> $GITHUB_OUTPUT
|
|
115
|
+
else
|
|
116
|
+
echo "has-changes=false" >> $GITHUB_OUTPUT
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
integration-tests:
|
|
120
|
+
needs: [validate-release, run-ci, detect-changes]
|
|
121
|
+
if: needs.detect-changes.outputs.has-changes == 'true'
|
|
122
|
+
runs-on: ubuntu-latest
|
|
123
|
+
timeout-minutes: 30
|
|
47
124
|
environment:
|
|
48
125
|
name: integration-tests
|
|
126
|
+
permissions:
|
|
127
|
+
contents: read
|
|
128
|
+
id-token: write
|
|
129
|
+
strategy:
|
|
130
|
+
fail-fast: false
|
|
131
|
+
matrix:
|
|
132
|
+
package: ${{ fromJSON(needs.detect-changes.outputs.packages) }}
|
|
49
133
|
steps:
|
|
50
134
|
- uses: actions/checkout@v4
|
|
135
|
+
- id: auth
|
|
136
|
+
uses: google-github-actions/auth@v2
|
|
51
137
|
with:
|
|
52
|
-
|
|
138
|
+
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
|
|
139
|
+
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
|
|
53
140
|
- uses: ./.github/actions/setup-python-uv
|
|
54
|
-
- name: Run integration tests
|
|
141
|
+
- name: Run ${{ matrix.package }} integration tests
|
|
55
142
|
env:
|
|
56
143
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
57
144
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
145
|
+
BFL_API_KEY: ${{ secrets.BFL_API_KEY }}
|
|
58
146
|
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
59
147
|
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
|
|
60
148
|
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}
|
|
61
|
-
|
|
62
|
-
|
|
149
|
+
BYTEPLUS_API_KEY: ${{ secrets.BYTEPLUS_API_KEY }}
|
|
150
|
+
XAI_API_KEY: ${{ secrets.XAI_API_KEY }}
|
|
151
|
+
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
|
|
152
|
+
GRADIUM_API_KEY: ${{ secrets.GRADIUM_API_KEY }}
|
|
153
|
+
run: uv run pytest packages/capabilities/${{ matrix.package }}/tests/integration_tests/ -m integration -v
|
|
63
154
|
|
|
64
155
|
build:
|
|
65
|
-
needs: [validate-release, run-ci, integration-
|
|
156
|
+
needs: [validate-release, run-ci, detect-changes, integration-tests]
|
|
157
|
+
if: |
|
|
158
|
+
always() &&
|
|
159
|
+
needs.validate-release.result == 'success' &&
|
|
160
|
+
needs.run-ci.result == 'success' &&
|
|
161
|
+
(needs.integration-tests.result == 'success' || needs.integration-tests.result == 'skipped')
|
|
66
162
|
runs-on: ubuntu-latest
|
|
67
163
|
steps:
|
|
68
164
|
- uses: actions/checkout@v4
|
celeste_ai-0.3.3/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Kamil Benkirane
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -8,7 +8,8 @@ help:
|
|
|
8
8
|
@echo " make format - Apply Ruff formatting"
|
|
9
9
|
@echo " make typecheck - Run mypy type checking"
|
|
10
10
|
@echo " make test - Run all tests (core + packages) with coverage"
|
|
11
|
-
@echo " make integration-test - Run integration tests (
|
|
11
|
+
@echo " make integration-test [capability] - Run integration tests (all or specific)"
|
|
12
|
+
@echo " (e.g., make integration-test image-intelligence)"
|
|
12
13
|
@echo " make security - Run Bandit security scan"
|
|
13
14
|
@echo " make ci - Run full CI/CD pipeline"
|
|
14
15
|
@echo " make clean - Clean cache directories"
|
|
@@ -33,15 +34,22 @@ format:
|
|
|
33
34
|
|
|
34
35
|
# Type checking (fail fast on any error)
|
|
35
36
|
typecheck:
|
|
36
|
-
@uv run mypy -p celeste && uv run mypy tests/ && uv run mypy packages/
|
|
37
|
+
@uv run mypy -p celeste && uv run mypy tests/ && uv run mypy packages/*/*/src/
|
|
37
38
|
|
|
38
39
|
# Testing
|
|
39
40
|
test:
|
|
40
|
-
uv run pytest tests/unit_tests
|
|
41
|
+
uv run pytest tests/unit_tests --cov=celeste --cov-report=term-missing --cov-fail-under=80 -v
|
|
41
42
|
|
|
42
43
|
# Integration testing (requires API keys)
|
|
44
|
+
# Usage: make integration-test [capability]
|
|
43
45
|
integration-test:
|
|
44
|
-
|
|
46
|
+
@cap="$(filter-out $@,$(MAKECMDGOALS))"; \
|
|
47
|
+
if [ -z "$$cap" ]; then cap="*"; fi; \
|
|
48
|
+
uv run pytest packages/capabilities/$$cap/tests/integration_tests/ -m integration -v --dist=worksteal -n auto
|
|
49
|
+
|
|
50
|
+
# Catch capability names as no-op targets
|
|
51
|
+
%:
|
|
52
|
+
@:
|
|
45
53
|
|
|
46
54
|
# Security scanning (config reads from pyproject.toml)
|
|
47
55
|
security:
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: celeste-ai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Open source, type-safe primitives for multi-modal AI. All capabilities, all providers, one interface
|
|
5
5
|
Project-URL: Homepage, https://withceleste.ai
|
|
6
6
|
Project-URL: Documentation, https://withceleste.ai/docs
|
|
7
7
|
Project-URL: Repository, https://github.com/withceleste/celeste-python
|
|
8
8
|
Project-URL: Issues, https://github.com/withceleste/celeste-python/issues
|
|
9
9
|
Author-email: Kamilbenkirane <kamil@withceleste.ai>
|
|
10
|
-
License:
|
|
10
|
+
License: MIT
|
|
11
11
|
License-File: LICENSE
|
|
12
|
-
Keywords: ai,anthropic,claude,embeddings,gemini,image-generation,multimodal,openai,sdk,text-generation,video-generation
|
|
12
|
+
Keywords: ai,anthropic,claude,embeddings,gemini,image-generation,multimodal,openai,sdk,speech-generation,text-generation,video-generation
|
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: License :: OSI Approved ::
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -25,19 +25,20 @@ Requires-Dist: httpx>=0.27.0
|
|
|
25
25
|
Requires-Dist: pydantic-settings>=2.0
|
|
26
26
|
Requires-Dist: pydantic>=2.0
|
|
27
27
|
Requires-Dist: python-dotenv>=1.0.0
|
|
28
|
+
Requires-Dist: websockets>=13.0
|
|
28
29
|
Provides-Extra: all
|
|
29
|
-
Requires-Dist: celeste-image-generation>=0.
|
|
30
|
-
Requires-Dist: celeste-
|
|
31
|
-
Requires-Dist: celeste-
|
|
32
|
-
Requires-Dist: celeste-
|
|
30
|
+
Requires-Dist: celeste-image-generation>=0.3.3; extra == 'all'
|
|
31
|
+
Requires-Dist: celeste-speech-generation>=0.3.3; extra == 'all'
|
|
32
|
+
Requires-Dist: celeste-text-generation>=0.3.3; extra == 'all'
|
|
33
|
+
Requires-Dist: celeste-video-generation>=0.3.3; extra == 'all'
|
|
33
34
|
Provides-Extra: image-generation
|
|
34
|
-
Requires-Dist: celeste-image-generation>=0.
|
|
35
|
-
Provides-Extra: image-intelligence
|
|
36
|
-
Requires-Dist: celeste-image-intelligence>=0.2.1; extra == 'image-intelligence'
|
|
35
|
+
Requires-Dist: celeste-image-generation>=0.3.3; extra == 'image-generation'
|
|
37
36
|
Provides-Extra: speech-generation
|
|
38
|
-
Requires-Dist: celeste-speech-generation>=0.
|
|
37
|
+
Requires-Dist: celeste-speech-generation>=0.3.3; extra == 'speech-generation'
|
|
39
38
|
Provides-Extra: text-generation
|
|
40
|
-
Requires-Dist: celeste-text-generation>=0.
|
|
39
|
+
Requires-Dist: celeste-text-generation>=0.3.3; extra == 'text-generation'
|
|
40
|
+
Provides-Extra: video-generation
|
|
41
|
+
Requires-Dist: celeste-video-generation>=0.3.3; extra == 'video-generation'
|
|
41
42
|
Description-Content-Type: text/markdown
|
|
42
43
|
|
|
43
44
|
<div align="center">
|
|
@@ -53,61 +54,100 @@ All capabilities. All providers. One interface.
|
|
|
53
54
|
Primitives, not frameworks.
|
|
54
55
|
|
|
55
56
|
[](https://www.python.org/)
|
|
56
|
-
[](LICENSE)
|
|
57
58
|
[](https://pypi.org/project/celeste-ai/)
|
|
58
59
|
|
|
60
|
+
<a href="https://github.com/withceleste/celeste-python" target="_parent">
|
|
61
|
+
<img alt="" src="https://img.shields.io/github/stars/withceleste/celeste-python.svg?style=social&label=Star" alt="GitHub stars" />
|
|
62
|
+
</a>
|
|
63
|
+
<a href="https://pypi.org/project/celeste-ai" target="_parent">
|
|
64
|
+
<img alt="" src="https://img.shields.io/pypi/dm/celeste-ai.svg" />
|
|
65
|
+
</a>
|
|
66
|
+
<a href="https://www.linkedin.com/company/withceleste" target="_parent">
|
|
67
|
+
<img src="https://img.shields.io/badge/LinkedIn-Follow%20%40withceleste-0077B5?style=social&logo=linkedin&logoColor=white" alt="Follow @withceleste on LinkedIn"/>
|
|
68
|
+
</a>
|
|
69
|
+
|
|
59
70
|
[Quick Start](#-quick-start) • [Request Provider](https://github.com/withceleste/celeste-python/issues/new)
|
|
60
71
|
|
|
61
72
|
</div>
|
|
62
73
|
|
|
63
|
-
|
|
74
|
+
# Celeste AI
|
|
64
75
|
|
|
65
|
-
## 🚀 Quick Start
|
|
66
76
|
|
|
77
|
+
Type-safe, capability-provider-agnostic primitives .
|
|
78
|
+
|
|
79
|
+
- **Unified Interface:** One API for OpenAI, Anthropic, Gemini, Mistral, and 14+ others.
|
|
80
|
+
- **True Multi-Modal:** Text, Image, Audio, Video, Embeddings, Search —all first-class citizens.
|
|
81
|
+
- **Type-Safe by Design:** Full Pydantic validation and IDE autocomplete.
|
|
82
|
+
- **Zero Lock-In:** Switch providers instantly by changing a single config string.
|
|
83
|
+
- **Primitives, Not Frameworks:** No agents, no chains, no magic. Just clean I/O.
|
|
84
|
+
- **Lightweight Architecture:** No vendor SDKs. Pure, fast HTTP.
|
|
85
|
+
|
|
86
|
+
## 🚀 Quick Start
|
|
67
87
|
```python
|
|
68
|
-
from celeste import create_client
|
|
88
|
+
from celeste import create_client
|
|
89
|
+
|
|
69
90
|
|
|
70
|
-
#
|
|
91
|
+
# "We need a catchy slogan for our new eco-friendly sneaker."
|
|
71
92
|
client = create_client(
|
|
72
|
-
capability=
|
|
73
|
-
|
|
74
|
-
api_key="your-api-key", # Or loads automatically from environment
|
|
93
|
+
capability="text-generation",
|
|
94
|
+
model="gpt-5"
|
|
75
95
|
)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
response = await client.generate(prompt="Explain quantum computing")
|
|
79
|
-
print(response.content)
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**Install:**
|
|
83
|
-
```bash
|
|
84
|
-
uv add "celeste-ai[text-generation]" # Text only
|
|
85
|
-
uv add "celeste-ai[image-generation]" # Image generation
|
|
86
|
-
uv add "celeste-ai[all]" # Everything
|
|
96
|
+
slogan = await client.generate("Write a slogan for an eco-friendly sneaker.")
|
|
97
|
+
print(slogan.content)
|
|
87
98
|
```
|
|
88
99
|
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## 🎨 Multi-Modal Example
|
|
92
100
|
|
|
101
|
+
## 🎨 Multimodal example
|
|
93
102
|
```python
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
from pydantic import BaseModel, Field
|
|
104
|
+
|
|
105
|
+
class ProductCampaign(BaseModel):
|
|
106
|
+
visual_prompt: str
|
|
107
|
+
audio_script: str
|
|
108
|
+
|
|
109
|
+
# 2. Extract Campaign Assets (Anthropic)
|
|
110
|
+
# -----------------------------------------------------
|
|
111
|
+
extract_client = create_client(Capability.TEXT_GENERATION, model="claude-opus-4-1")
|
|
112
|
+
campaign_output = await extract_client.generate(
|
|
113
|
+
f"Create campaign assets for slogan: {slogan.content}",
|
|
114
|
+
output_schema=ProductCampaign
|
|
115
|
+
)
|
|
116
|
+
campaign = campaign_output.content
|
|
117
|
+
|
|
118
|
+
# 3. Generate Ad Visual (Flux)
|
|
119
|
+
# -----------------------------------------------------
|
|
120
|
+
image_client = create_client(Capability.IMAGE_GENERATION, model="flux-2-flex")
|
|
121
|
+
image_output = await image_client.generate(
|
|
122
|
+
campaign.visual_prompt,
|
|
123
|
+
aspect_ratio="1:1"
|
|
124
|
+
)
|
|
125
|
+
image = image_output.content
|
|
126
|
+
|
|
127
|
+
# 4. Generate Radio Spot (ElevenLabs)
|
|
128
|
+
# -----------------------------------------------------
|
|
129
|
+
speech_client = create_client(Capability.SPEECH_GENERATION, model="eleven_v3")
|
|
130
|
+
speech_output = await speech_client.generate(
|
|
131
|
+
campaign.audio_script,
|
|
132
|
+
voice="adam"
|
|
133
|
+
)
|
|
134
|
+
speech = speech_output.content
|
|
102
135
|
```
|
|
103
136
|
|
|
104
137
|
No special cases. No separate libraries. **One consistent interface.**
|
|
105
138
|
|
|
106
|
-
---
|
|
107
139
|
|
|
108
140
|
|
|
141
|
+
---
|
|
142
|
+
|
|
109
143
|
<div align="center">
|
|
110
144
|
|
|
145
|
+
## 15+ providers. Zero lock-in.
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
111
151
|
<img src="https://www.google.com/favicon.ico" width="32" height="32" alt="Google" title="Google">
|
|
112
152
|
<img src="https://www.anthropic.com/favicon.ico" width="32" height="32" alt="Anthropic" title="Anthropic">
|
|
113
153
|
<img src="https://www.google.com/s2/favicons?domain=openai.com&sz=64" width="32" height="32" alt="OpenAI" title="OpenAI">
|
|
@@ -132,6 +172,84 @@ No special cases. No separate libraries. **One consistent interface.**
|
|
|
132
172
|
|
|
133
173
|
---
|
|
134
174
|
|
|
175
|
+
## 🔄 Switch providers in one line
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
```python
|
|
179
|
+
from pydantic import BaseModel
|
|
180
|
+
|
|
181
|
+
class User(BaseModel):
|
|
182
|
+
name: str
|
|
183
|
+
age: int
|
|
184
|
+
|
|
185
|
+
# Model IDs
|
|
186
|
+
anthropic_model_id = "claude-4-5-sonnet"
|
|
187
|
+
google_model_id = "gemini-2.5-flash"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
```python
|
|
191
|
+
# ❌ Anthropic Way
|
|
192
|
+
from anthropic import Anthropic
|
|
193
|
+
import json
|
|
194
|
+
|
|
195
|
+
client = Anthropic()
|
|
196
|
+
response = client.messages.create(
|
|
197
|
+
model=anthropic_model_id,
|
|
198
|
+
messages=[
|
|
199
|
+
{"role": "user",
|
|
200
|
+
"content": "Extract user info: John is 30"}
|
|
201
|
+
],
|
|
202
|
+
output_format={
|
|
203
|
+
"type": "json_schema",
|
|
204
|
+
"schema": User.model_json_schema()
|
|
205
|
+
}
|
|
206
|
+
)
|
|
207
|
+
user_data = json.loads(response.content[0].text)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
```python
|
|
211
|
+
# ❌ Google Gemini Way
|
|
212
|
+
from google import genai
|
|
213
|
+
from google.genai import types
|
|
214
|
+
|
|
215
|
+
client = genai.Client()
|
|
216
|
+
response = await client.aio.models.generate_content(
|
|
217
|
+
model=gemini_model_id,
|
|
218
|
+
contents="Extract user info: John is 30",
|
|
219
|
+
config=types.GenerateContentConfig(
|
|
220
|
+
response_mime_type="application/json",
|
|
221
|
+
response_schema=User
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
user = response.parsed
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
```python
|
|
228
|
+
# ✅ Celeste Way
|
|
229
|
+
from celeste import create_client, Capability
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
client = create_client(
|
|
233
|
+
Capability.TEXT_GENERATION,
|
|
234
|
+
model=google_model_id # <--- Choose any model from any provider
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
response = await client.generate(
|
|
238
|
+
prompt="Extract user info: John is 30",
|
|
239
|
+
output_schema=User # <--- Unified parameter working across all providers
|
|
240
|
+
)
|
|
241
|
+
user = response.content # Already parsed as User instance
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
## 🪶 Install what you need
|
|
246
|
+
```bash
|
|
247
|
+
uv add "celeste-ai[text-generation]" # Text only
|
|
248
|
+
uv add "celeste-ai[image-generation]" # Image generation
|
|
249
|
+
uv add "celeste-ai[all]" # Everything
|
|
250
|
+
```
|
|
251
|
+
---
|
|
252
|
+
|
|
135
253
|
## 🔧 Type-Safe by Design
|
|
136
254
|
|
|
137
255
|
```python
|
|
@@ -163,7 +281,7 @@ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
|
163
281
|
|
|
164
282
|
## 📄 License
|
|
165
283
|
|
|
166
|
-
|
|
284
|
+
MIT license – see [LICENSE](LICENSE) for details.
|
|
167
285
|
|
|
168
286
|
---
|
|
169
287
|
|