pipecatcloud 0.0.6__tar.gz → 0.0.9__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.
- pipecatcloud-0.0.9/.github/workflows/publish-pypi.yml +59 -0
- pipecatcloud-0.0.9/.github/workflows/publish-test.yml +59 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/.github/workflows/python-publish.yml +2 -23
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/.gitignore +2 -0
- pipecatcloud-0.0.9/CHANGELOG.md +88 -0
- pipecatcloud-0.0.9/LICENSE +24 -0
- pipecatcloud-0.0.9/PKG-INFO +85 -0
- pipecatcloud-0.0.9/README.md +65 -0
- pipecatcloud-0.0.9/publish-pypi.yml +59 -0
- pipecatcloud-0.0.9/publish-test.yml +59 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/pyproject.toml +13 -6
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/__init__.py +0 -5
- pipecatcloud-0.0.9/src/pipecatcloud/_utils/auth_utils.py +19 -0
- pipecatcloud-0.0.9/src/pipecatcloud/_utils/console_utils.py +78 -0
- pipecatcloud-0.0.9/src/pipecatcloud/_utils/deploy_utils.py +101 -0
- pipecatcloud-0.0.9/src/pipecatcloud/_utils/local_runner.py +34 -0
- pipecatcloud-0.0.9/src/pipecatcloud/api.py +364 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/cli/__init__.py +4 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/api.py +4 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/agent.py +494 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/auth.py +239 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/deploy.py +341 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/init.py +16 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/organizations.py +357 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/run.py +29 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/secrets.py +505 -0
- pipecatcloud-0.0.9/src/pipecatcloud/cli/config.py +124 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/cli/entry_point.py +29 -32
- pipecatcloud-0.0.9/src/pipecatcloud/config.py +60 -0
- pipecatcloud-0.0.9/src/pipecatcloud/errors.py +11 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/exception.py +6 -2
- pipecatcloud-0.0.6/src/pipecatcloud/agent.py → pipecatcloud-0.0.9/src/pipecatcloud/session.py +8 -32
- pipecatcloud-0.0.9/src/pipecatcloud.egg-info/PKG-INFO +85 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/SOURCES.txt +18 -9
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/entry_points.txt +1 -1
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/requires.txt +3 -3
- pipecatcloud-0.0.6/CHANGELOG.md +0 -28
- pipecatcloud-0.0.6/PKG-INFO +0 -13
- pipecatcloud-0.0.6/README.md +0 -51
- pipecatcloud-0.0.6/src/pipecatcloud/_utils/auth_utils.py +0 -26
- pipecatcloud-0.0.6/src/pipecatcloud/_utils/console_utils.py +0 -25
- pipecatcloud-0.0.6/src/pipecatcloud/_utils/deploy_utils.py +0 -18
- pipecatcloud-0.0.6/src/pipecatcloud/_utils/http_utils.py +0 -43
- pipecatcloud-0.0.6/src/pipecatcloud/cli/agent.py +0 -405
- pipecatcloud-0.0.6/src/pipecatcloud/cli/auth.py +0 -274
- pipecatcloud-0.0.6/src/pipecatcloud/cli/deploy.py +0 -230
- pipecatcloud-0.0.6/src/pipecatcloud/cli/organizations.py +0 -351
- pipecatcloud-0.0.6/src/pipecatcloud/cli/run.py +0 -28
- pipecatcloud-0.0.6/src/pipecatcloud/cli/secrets.py +0 -426
- pipecatcloud-0.0.6/src/pipecatcloud/config.py +0 -158
- pipecatcloud-0.0.6/src/pipecatcloud/errors.py +0 -11
- pipecatcloud-0.0.6/src/pipecatcloud.egg-info/PKG-INFO +0 -13
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/dev-requirements.txt +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/pipecat-cloud.png +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/setup.cfg +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/__main__.py +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/__version__.py +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/_utils/__init__.py +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/_utils/agent_utils.py +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/_utils/async_utils.py +0 -0
- /pipecatcloud-0.0.6/src/pipecatcloud/cli/init.py → /pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/__init__.py +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/dependency_links.txt +0 -0
- {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version:
|
|
7
|
+
description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build-and-publish:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
environment:
|
|
15
|
+
name: pypi
|
|
16
|
+
url: https://pypi.org/p/pipecat-cloud
|
|
17
|
+
permissions:
|
|
18
|
+
id-token: write # IMPORTANT: this permission is needed for trusted publishing
|
|
19
|
+
contents: write # Needed for tagging
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout code
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v4
|
|
27
|
+
with:
|
|
28
|
+
python-version: '3.10'
|
|
29
|
+
|
|
30
|
+
- name: Verify version matches
|
|
31
|
+
run: |
|
|
32
|
+
pip install tomli
|
|
33
|
+
PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
|
34
|
+
if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
|
|
35
|
+
echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: |
|
|
41
|
+
python -m pip install --upgrade pip
|
|
42
|
+
pip install -r requirements.txt
|
|
43
|
+
pip install build twine
|
|
44
|
+
|
|
45
|
+
- name: Build package
|
|
46
|
+
run: python -m build
|
|
47
|
+
|
|
48
|
+
- name: Create release tag
|
|
49
|
+
run: |
|
|
50
|
+
git config --local user.email "action@github.com"
|
|
51
|
+
git config --local user.name "GitHub Action"
|
|
52
|
+
git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
|
|
53
|
+
git push origin "v${{ github.event.inputs.version }}"
|
|
54
|
+
|
|
55
|
+
- name: Publish to PyPI
|
|
56
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
57
|
+
with:
|
|
58
|
+
verbose: true
|
|
59
|
+
print-hash: true
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Publish to TEST PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version:
|
|
7
|
+
description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build-and-publish:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
environment:
|
|
15
|
+
name: pypi
|
|
16
|
+
url: https://test.pypi.org/project/pipecat-cloud
|
|
17
|
+
permissions:
|
|
18
|
+
id-token: write # IMPORTANT: this permission is needed for trusted publishing
|
|
19
|
+
contents: write # Needed for tagging
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout code
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v4
|
|
27
|
+
with:
|
|
28
|
+
python-version: '3.10'
|
|
29
|
+
|
|
30
|
+
- name: Verify version matches
|
|
31
|
+
run: |
|
|
32
|
+
pip install tomli
|
|
33
|
+
PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
|
34
|
+
if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
|
|
35
|
+
echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: |
|
|
41
|
+
python -m pip install --upgrade pip
|
|
42
|
+
pip install -r requirements.txt
|
|
43
|
+
pip install build twine
|
|
44
|
+
|
|
45
|
+
- name: Build package
|
|
46
|
+
run: python -m build
|
|
47
|
+
|
|
48
|
+
- name: Create release tag
|
|
49
|
+
run: |
|
|
50
|
+
git config --local user.email "action@github.com"
|
|
51
|
+
git config --local user.name "GitHub Action"
|
|
52
|
+
git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
|
|
53
|
+
git push origin "v${{ github.event.inputs.version }}"
|
|
54
|
+
|
|
55
|
+
- name: Publish to PyPI
|
|
56
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
57
|
+
with:
|
|
58
|
+
verbose: true
|
|
59
|
+
print-hash: true
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
|
3
|
-
|
|
4
|
-
# This workflow uses actions that are not certified by GitHub.
|
|
5
|
-
# They are provided by a third-party and are governed by
|
|
6
|
-
# separate terms of service, privacy policy, and support
|
|
7
|
-
# documentation.
|
|
8
|
-
|
|
9
|
-
name: Upload Python Package
|
|
1
|
+
name: Build and publish Python package
|
|
10
2
|
|
|
11
3
|
on:
|
|
12
4
|
release:
|
|
@@ -57,7 +49,7 @@ jobs:
|
|
|
57
49
|
|
|
58
50
|
environment:
|
|
59
51
|
name: pypi
|
|
60
|
-
url: https://pypi.org/p/
|
|
52
|
+
url: https://pypi.org/p/pipecat-cloud
|
|
61
53
|
|
|
62
54
|
steps:
|
|
63
55
|
- uses: actions/checkout@v4
|
|
@@ -73,24 +65,11 @@ jobs:
|
|
|
73
65
|
with:
|
|
74
66
|
packages-dir: dist/
|
|
75
67
|
|
|
76
|
-
- name: Read CHANGELOG
|
|
77
|
-
id: changelog
|
|
78
|
-
run: |
|
|
79
|
-
if [ -f "CHANGELOG.md" ]; then
|
|
80
|
-
echo "CHANGELOG_CONTENT<<EOF" >> $GITHUB_ENV
|
|
81
|
-
cat CHANGELOG.md >> $GITHUB_ENV
|
|
82
|
-
echo "EOF" >> $GITHUB_ENV
|
|
83
|
-
else
|
|
84
|
-
echo "CHANGELOG_CONTENT=No changelog available." >> $GITHUB_ENV
|
|
85
|
-
fi
|
|
86
|
-
|
|
87
68
|
- name: Create GitHub Release
|
|
88
69
|
uses: softprops/action-gh-release@v2
|
|
89
70
|
with:
|
|
90
71
|
tag_name: ${{ github.ref }}
|
|
91
72
|
name: Release ${{ github.ref_name }}
|
|
92
|
-
body: |
|
|
93
|
-
${{ env.CHANGELOG_CONTENT }}
|
|
94
73
|
draft: false
|
|
95
74
|
prerelease: false
|
|
96
75
|
files: |
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Pipecat Cloud Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to **Pipecat Cloud** will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.0.9] - 2025-02-27
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `agent status [agent-name]` now shows deployment info and scaling configuration
|
|
12
|
+
- `agent sessions [agent-name]` lists active session count for an agent (will list session details in future)
|
|
13
|
+
- `agent start [agent-name] -D` now shows the Daily room URL (and token) to join in the terminal output
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Changed CLI command from `pipecat` to `pipecatcloud` or `pcc`
|
|
17
|
+
- `agent delete` prompts the user for confirmation first
|
|
18
|
+
- `agent start` now checks the target deployment first to ensure it exists and is in a healthy state
|
|
19
|
+
- Changed the information order of `agent status` so the health badge is clearly visible in terminal
|
|
20
|
+
- `agent deploy` now defaults to "Y" for the confirmation prompts
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- Fixed lint error with payload data in `agent start`
|
|
24
|
+
- Fixed a bug where `pcc-deploy.toml` files were required to be present
|
|
25
|
+
- `deploy` command now correctly passes the secret set to the deployment from the `pcc-deploy.toml` file
|
|
26
|
+
|
|
27
|
+
## [0.0.8] - 2025-02-03
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- `secrets set [set-name] --file` allowing you to create a secret set from .env file
|
|
31
|
+
- `agent scale` to modify agent configuration without pushing a new image
|
|
32
|
+
- `run` command for running bot.py files locally via FastAPI. This initial implementation is very basic and will be expanded in the future.
|
|
33
|
+
- `organizations select` allows passing an `--org / -o` option to bypass prompt
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
- All commands use the correct shorthand flag syntax (`-` vs. `--`)
|
|
37
|
+
- CLI config extends from module config to avoid loading config TOML with package imports
|
|
38
|
+
- `secrets list` now correctly lists all secrets vs. just a single entry
|
|
39
|
+
- `deploy` command displays live status to prevent skewed terminal output
|
|
40
|
+
- `deploy` command no longer allows pushing images without a tag
|
|
41
|
+
- `agent logs` paginate / filter / sort and tidy up display for logs
|
|
42
|
+
- `start` command correctly clears the live terminal text
|
|
43
|
+
- `pcc-deploy.toml` files now work as intended with `deploy` command
|
|
44
|
+
- `deploy` method now passes configuration parameters correctly
|
|
45
|
+
- Switching organizations will fully remove any default API tokens from the previously selected organization
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
- Local config now retains default keys when switching between organizations
|
|
49
|
+
- Local config now retains defaukt keys when logging in again
|
|
50
|
+
- `deploy` will check passed secret set exists before deployment
|
|
51
|
+
- `secrets list` now takes an optional `--sets / -s` parameter that filters by secret sets or image pull secrets
|
|
52
|
+
- `organizations keys create` now prompts you to set the newly created key as the default after creation (if active org matches)
|
|
53
|
+
- `organizations keys delete` not prompts to confirm if selected key is currently your local config default
|
|
54
|
+
- `Agent` module import has been renamed to `Session` to better reflect API
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## [0.0.7] - 2025-02-01
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
|
|
61
|
+
- `run` command for running an agent locally. This initial implementation is very basic and will be expanded in the future.
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- `start_agent` method no longer requires an organization. If not provided, it will assume the namespace of the API token owner.
|
|
66
|
+
- `start` command no longer looks up the agent before starting (health check is handled by the proxy route.)
|
|
67
|
+
|
|
68
|
+
## [0.0.6] - 2025-02-01
|
|
69
|
+
|
|
70
|
+
### Added
|
|
71
|
+
|
|
72
|
+
- `pipecatcloud.agent` module for working with agents via Python scripts
|
|
73
|
+
- `start_agent` method for starting an agent
|
|
74
|
+
|
|
75
|
+
### Backlog
|
|
76
|
+
|
|
77
|
+
- `deploy` make image pull secrets non-optional, but allow for bypassing
|
|
78
|
+
- Fix: update docs to assert that the bot method must be async
|
|
79
|
+
- Fix: Secrets are not upserting (overriding each time, which may be preferrable?)
|
|
80
|
+
- Fix: deployment process needs better output
|
|
81
|
+
- `organizations keys create` should ask if you'd like to set the created key as default after creation (if org matches)
|
|
82
|
+
- Sense check image parameter of the deploy command (does it have a tag, etc)
|
|
83
|
+
- `agent logs` paginate / filter / sort and tidy up display for logs
|
|
84
|
+
- Fix: start command should clear the live text
|
|
85
|
+
- Secrets from .env method
|
|
86
|
+
- Fix: .pcc-deploy.toml should read correctly
|
|
87
|
+
- New conveience method to add account associated Daily API Key to a secret set
|
|
88
|
+
- Add: concurrency support for agent deployments
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
BSD 2-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, Daily
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
16
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
17
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
18
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
19
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
20
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
21
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
22
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
23
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
24
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: pipecatcloud
|
|
3
|
+
Version: 0.0.9
|
|
4
|
+
Summary: Cloud hosting for Pipecat AI applications
|
|
5
|
+
License: BSD 2-Clause License
|
|
6
|
+
Project-URL: Website, https://docs.pipecat.daily.co/
|
|
7
|
+
Keywords: pipecat,pipecat-ai,voice,ai,llm
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Requires-Dist: aiohttp<4.0.0,~=3.11.13
|
|
12
|
+
Requires-Dist: fastapi~=0.115.6
|
|
13
|
+
Requires-Dist: loguru~=0.7.3
|
|
14
|
+
Requires-Dist: python-dotenv~=1.0.1
|
|
15
|
+
Requires-Dist: uvicorn~=0.32.0
|
|
16
|
+
Requires-Dist: typer~=0.13.0
|
|
17
|
+
Requires-Dist: synchronicity~=0.7.6
|
|
18
|
+
Requires-Dist: toml~=0.10.2
|
|
19
|
+
Requires-Dist: questionary~=2.1.0
|
|
20
|
+
|
|
21
|
+
<h1><div align="center">
|
|
22
|
+
<img alt="pipecat cloud" width="500px" height="auto" src="./pipecat-cloud.png">
|
|
23
|
+
</div></h1>
|
|
24
|
+
|
|
25
|
+
[](https://docs.pipecat.daily.co)
|
|
26
|
+
[](https://pypi.org/project/pipecatcloud)
|
|
27
|
+
|
|
28
|
+
# Pipecat Cloud
|
|
29
|
+
|
|
30
|
+
Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.daily.co).
|
|
31
|
+
|
|
32
|
+
### Requirements
|
|
33
|
+
|
|
34
|
+
- Python 3.10+
|
|
35
|
+
- Docker and a Docker repository (e.g. Docker Hub)
|
|
36
|
+
- Active [Pipecat Cloud](https://pipecat.daily.co)
|
|
37
|
+
account
|
|
38
|
+
|
|
39
|
+
### Documentation
|
|
40
|
+
|
|
41
|
+
Documentation for Pipecat Cloud is available [here](https://docs.pipecat.daily.co).
|
|
42
|
+
|
|
43
|
+
### Installation
|
|
44
|
+
|
|
45
|
+
```shell
|
|
46
|
+
pip install pipecatcloud
|
|
47
|
+
|
|
48
|
+
pcc --version
|
|
49
|
+
pcc --help
|
|
50
|
+
|
|
51
|
+
# Note: you can use `pcc` or `pipecatcloud` interchangeably
|
|
52
|
+
pcc auth login
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
! All CLI commands have a `--help` flag that will display the command usage and options.
|
|
56
|
+
|
|
57
|
+
## Usage
|
|
58
|
+
|
|
59
|
+
1. Create an account at [Pipecat Cloud](https://pipecat.daily.co)
|
|
60
|
+
|
|
61
|
+
2. Login to your account `pcc auth login`
|
|
62
|
+
|
|
63
|
+
3. (Optional): Clone the starter agent [here](https://github.com/daily-co/pipecat-cloud-starter)
|
|
64
|
+
|
|
65
|
+
4. Build your agent `docker build --platform linux/arm64 -t your-agent-name .`
|
|
66
|
+
|
|
67
|
+
5. Push your Docker image to your repository `docker push your-repository/your-agent-name:0.1`
|
|
68
|
+
|
|
69
|
+
6. Deploy your agent `pcc deploy starter-agent your-repository/your-agent-name:0.1`
|
|
70
|
+
|
|
71
|
+
### Usage in Python scripts
|
|
72
|
+
|
|
73
|
+
If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.agent` module.
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from pipecatcloud.agent import Agent
|
|
77
|
+
|
|
78
|
+
agent = Agent(
|
|
79
|
+
agent_name="your-agent-name",
|
|
80
|
+
organization="your-organization",
|
|
81
|
+
api_key="your-api-key",
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
await agent.start()
|
|
85
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<h1><div align="center">
|
|
2
|
+
<img alt="pipecat cloud" width="500px" height="auto" src="./pipecat-cloud.png">
|
|
3
|
+
</div></h1>
|
|
4
|
+
|
|
5
|
+
[](https://docs.pipecat.daily.co)
|
|
6
|
+
[](https://pypi.org/project/pipecatcloud)
|
|
7
|
+
|
|
8
|
+
# Pipecat Cloud
|
|
9
|
+
|
|
10
|
+
Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.daily.co).
|
|
11
|
+
|
|
12
|
+
### Requirements
|
|
13
|
+
|
|
14
|
+
- Python 3.10+
|
|
15
|
+
- Docker and a Docker repository (e.g. Docker Hub)
|
|
16
|
+
- Active [Pipecat Cloud](https://pipecat.daily.co)
|
|
17
|
+
account
|
|
18
|
+
|
|
19
|
+
### Documentation
|
|
20
|
+
|
|
21
|
+
Documentation for Pipecat Cloud is available [here](https://docs.pipecat.daily.co).
|
|
22
|
+
|
|
23
|
+
### Installation
|
|
24
|
+
|
|
25
|
+
```shell
|
|
26
|
+
pip install pipecatcloud
|
|
27
|
+
|
|
28
|
+
pcc --version
|
|
29
|
+
pcc --help
|
|
30
|
+
|
|
31
|
+
# Note: you can use `pcc` or `pipecatcloud` interchangeably
|
|
32
|
+
pcc auth login
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
! All CLI commands have a `--help` flag that will display the command usage and options.
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
1. Create an account at [Pipecat Cloud](https://pipecat.daily.co)
|
|
40
|
+
|
|
41
|
+
2. Login to your account `pcc auth login`
|
|
42
|
+
|
|
43
|
+
3. (Optional): Clone the starter agent [here](https://github.com/daily-co/pipecat-cloud-starter)
|
|
44
|
+
|
|
45
|
+
4. Build your agent `docker build --platform linux/arm64 -t your-agent-name .`
|
|
46
|
+
|
|
47
|
+
5. Push your Docker image to your repository `docker push your-repository/your-agent-name:0.1`
|
|
48
|
+
|
|
49
|
+
6. Deploy your agent `pcc deploy starter-agent your-repository/your-agent-name:0.1`
|
|
50
|
+
|
|
51
|
+
### Usage in Python scripts
|
|
52
|
+
|
|
53
|
+
If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.agent` module.
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from pipecatcloud.agent import Agent
|
|
57
|
+
|
|
58
|
+
agent = Agent(
|
|
59
|
+
agent_name="your-agent-name",
|
|
60
|
+
organization="your-organization",
|
|
61
|
+
api_key="your-api-key",
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
await agent.start()
|
|
65
|
+
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version:
|
|
7
|
+
description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build-and-publish:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
environment:
|
|
15
|
+
name: pypi
|
|
16
|
+
url: https://pypi.org/p/pipecat-cloud
|
|
17
|
+
permissions:
|
|
18
|
+
id-token: write # IMPORTANT: this permission is needed for trusted publishing
|
|
19
|
+
contents: write # Needed for tagging
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout code
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v4
|
|
27
|
+
with:
|
|
28
|
+
python-version: '3.10'
|
|
29
|
+
|
|
30
|
+
- name: Verify version matches
|
|
31
|
+
run: |
|
|
32
|
+
pip install tomli
|
|
33
|
+
PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
|
34
|
+
if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
|
|
35
|
+
echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: |
|
|
41
|
+
python -m pip install --upgrade pip
|
|
42
|
+
pip install -r requirements.txt
|
|
43
|
+
pip install build twine
|
|
44
|
+
|
|
45
|
+
- name: Build package
|
|
46
|
+
run: python -m build
|
|
47
|
+
|
|
48
|
+
- name: Create release tag
|
|
49
|
+
run: |
|
|
50
|
+
git config --local user.email "action@github.com"
|
|
51
|
+
git config --local user.name "GitHub Action"
|
|
52
|
+
git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
|
|
53
|
+
git push origin "v${{ github.event.inputs.version }}"
|
|
54
|
+
|
|
55
|
+
- name: Publish to PyPI
|
|
56
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
57
|
+
with:
|
|
58
|
+
verbose: true
|
|
59
|
+
print-hash: true
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Publish to TEST PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version:
|
|
7
|
+
description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build-and-publish:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
environment:
|
|
15
|
+
name: pypi
|
|
16
|
+
url: https://test.pypi.org/project/pipecat-cloud
|
|
17
|
+
permissions:
|
|
18
|
+
id-token: write # IMPORTANT: this permission is needed for trusted publishing
|
|
19
|
+
contents: write # Needed for tagging
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout code
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v4
|
|
27
|
+
with:
|
|
28
|
+
python-version: '3.10'
|
|
29
|
+
|
|
30
|
+
- name: Verify version matches
|
|
31
|
+
run: |
|
|
32
|
+
pip install tomli
|
|
33
|
+
PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
|
34
|
+
if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
|
|
35
|
+
echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: |
|
|
41
|
+
python -m pip install --upgrade pip
|
|
42
|
+
pip install -r requirements.txt
|
|
43
|
+
pip install build twine
|
|
44
|
+
|
|
45
|
+
- name: Build package
|
|
46
|
+
run: python -m build
|
|
47
|
+
|
|
48
|
+
- name: Create release tag
|
|
49
|
+
run: |
|
|
50
|
+
git config --local user.email "action@github.com"
|
|
51
|
+
git config --local user.name "GitHub Action"
|
|
52
|
+
git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
|
|
53
|
+
git push origin "v${{ github.event.inputs.version }}"
|
|
54
|
+
|
|
55
|
+
- name: Publish to PyPI
|
|
56
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
57
|
+
with:
|
|
58
|
+
verbose: true
|
|
59
|
+
print-hash: true
|
|
@@ -4,23 +4,27 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pipecatcloud"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.9"
|
|
8
8
|
requires-python = ">=3.10"
|
|
9
|
+
description = "Cloud hosting for Pipecat AI applications"
|
|
10
|
+
license = { text = "BSD 2-Clause License" }
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
keywords = ["pipecat", "pipecat-ai", "voice", "ai", "llm"]
|
|
9
13
|
dependencies = [
|
|
10
|
-
"aiohttp~=3.
|
|
11
|
-
"fastapi~=0.115.
|
|
12
|
-
"loguru~=0.7.
|
|
14
|
+
"aiohttp~=3.11.13,<4.0.0",
|
|
15
|
+
"fastapi~=0.115.6",
|
|
16
|
+
"loguru~=0.7.3",
|
|
13
17
|
"python-dotenv~=1.0.1",
|
|
14
18
|
"uvicorn~=0.32.0",
|
|
15
19
|
"typer~=0.13.0",
|
|
16
20
|
"synchronicity~=0.7.6",
|
|
17
21
|
"toml~=0.10.2",
|
|
18
|
-
"questionary~=2.1.0"
|
|
22
|
+
"questionary~=2.1.0"
|
|
19
23
|
]
|
|
20
24
|
|
|
21
25
|
[project.scripts]
|
|
22
26
|
pcc = "pipecatcloud.__main__:main"
|
|
23
|
-
|
|
27
|
+
pipecatcloud = "pipecatcloud.__main__:main"
|
|
24
28
|
|
|
25
29
|
[tool.setuptools]
|
|
26
30
|
package-dir = {"" = "src"}
|
|
@@ -32,3 +36,6 @@ include = ["pipecatcloud*"]
|
|
|
32
36
|
[tool.ruff]
|
|
33
37
|
exclude = ["*_pb2.py"]
|
|
34
38
|
line-length = 100
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
Website = "https://docs.pipecat.daily.co/"
|
|
@@ -3,10 +3,5 @@ import sys
|
|
|
3
3
|
|
|
4
4
|
from loguru import logger
|
|
5
5
|
|
|
6
|
-
PIPECAT_CLI_NAME = "pcc"
|
|
7
|
-
PIPECAT_CREDENTIALS_PATH = "~/.pipecatcloud.toml"
|
|
8
|
-
PIPECAT_DEPLOY_CONFIG_PATH = ".pcc-deploy.toml"
|
|
9
|
-
|
|
10
|
-
|
|
11
6
|
logger.remove()
|
|
12
7
|
logger.add(sys.stderr, level=str(os.getenv("PCC_LOG_LEVEL", "INFO")))
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
|
|
3
|
+
from pipecatcloud._utils.console_utils import console
|
|
4
|
+
from pipecatcloud.cli import PIPECAT_CLI_NAME
|
|
5
|
+
from pipecatcloud.cli.config import config
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def requires_login(func):
|
|
9
|
+
@functools.wraps(func)
|
|
10
|
+
def wrapper(*args, **kwargs):
|
|
11
|
+
org = config.get("org")
|
|
12
|
+
token = config.get("token")
|
|
13
|
+
if org is None or token is None:
|
|
14
|
+
console.error(
|
|
15
|
+
f"You are not logged in. Please run `{PIPECAT_CLI_NAME} auth login` first.",
|
|
16
|
+
)
|
|
17
|
+
return
|
|
18
|
+
return func(*args, **kwargs)
|
|
19
|
+
return wrapper
|