`. You can pass the new version explicitly, or a rule such
- as `major`, `minor`, or `patch`. For more details, refer to the [Semantic Versions](https://semver.org/) standard.
-- Make a commit to `GitHub`.
-- Create a `GitHub release`.
-- And... publish π `poetry publish --build`
+# By passing in my inputs, in addition to the raw message with unfilled variables {{x}} and {{y}},
+# you we will also get the filled-in prompt:
+# {"role": "user", "content": "Write a hello world program using Golang and the Fiber framework."}
+test_get_prompt = UseDeployedPrompt(deployment_id=deployment_id, inputs=inputs)
-## π Features
-### Development features
+def main():
+ completion_response: CompletionResponse = p.completion(data=test_completion)
+ print(completion_response)
+ deployed_prompt: UseDeployedPromptResponse = p.get_prompt(data=test_get_prompt)
+ print("\n\n")
+ print(deployed_prompt)
-- Supports for `Python 3.9` and higher.
-- [`Poetry`](https://python-poetry.org/) as the dependencies manager. See configuration
- in [`pyproject.toml`](https://github.com/parea-ai/parea-sdk/blob/master/pyproject.toml)
- and [`setup.cfg`](https://github.com/parea-ai/parea-sdk/blob/master/setup.cfg).
-- Automatic codestyle with [`black`](https://github.com/psf/black), [`isort`](https://github.com/timothycrosley/isort)
- and [`pyupgrade`](https://github.com/asottile/pyupgrade).
-- Ready-to-use [`pre-commit`](https://pre-commit.com/) hooks with code-formatting.
-- Type checks with [`mypy`](https://mypy.readthedocs.io); docstring checks
- with [`darglint`](https://github.com/terrencepreilly/darglint); security checks
- with [`safety`](https://github.com/pyupio/safety) and [`bandit`](https://github.com/PyCQA/bandit)
-- Testing with [`pytest`](https://docs.pytest.org/en/latest/).
--
-Ready-to-use [`.editorconfig`](https://github.com/parea-ai/parea-sdk/blob/master/.editorconfig), [`.dockerignore`](https://github.com/parea-ai/parea-sdk/blob/master/.dockerignore),
-and [`.gitignore`](https://github.com/parea-ai/parea-sdk/blob/master/.gitignore). You don't have to worry about those
-things.
-
-### Deployment features
-
-- `GitHub` integration: issue and pr templates.
-- `Github Actions` with
- predefined [build workflow](https://github.com/parea-ai/parea-sdk/blob/master/.github/workflows/build.yml) as the
- default CI/CD.
-- Everything is already set up for security checks, codestyle checks, code formatting, testing, linting, docker builds,
- etc with [`Makefile`](https://github.com/parea-ai/parea-sdk/blob/master/Makefile#L89). More details
- in [makefile-usage](#makefile-usage).
-- [Dockerfile](https://github.com/parea-ai/parea-sdk/blob/master/docker/Dockerfile) for your package.
-- Always up-to-date dependencies with [`@dependabot`](https://dependabot.com/). You will
- only [enable it](https://docs.github.com/en/github/administering-a-repository/enabling-and-disabling-version-updates#enabling-github-dependabot-version-updates).
-- Automatic drafts of new releases with [`Release Drafter`](https://github.com/marketplace/actions/release-drafter). You
- may see the list of labels
- in [`release-drafter.yml`](https://github.com/parea-ai/parea-sdk/blob/master/.github/release-drafter.yml). Works
- perfectly with [Semantic Versions](https://semver.org/) specification.
+async def main_async():
+ completion_response: CompletionResponse = await p.acompletion(data=test_completion)
+ print(completion_response)
+ deployed_prompt: UseDeployedPromptResponse = await p.aget_prompt(data=test_get_prompt)
+ print("\n\n")
+ print(deployed_prompt)
+```
### Open source community features
--
-
Ready-to-use [Pull Requests templates](https://github.com/parea-ai/parea-sdk/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
and several [Issue templates](https://github.com/parea-ai/parea-sdk/tree/master/.github/ISSUE_TEMPLATE).
- Files such as: `LICENSE`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, and `SECURITY.md` are generated automatically.
-- [`Stale bot`](https://github.com/apps/stale) that closes abandoned issues after a period of inactivity. (You will
- only [need to setup free plan](https://github.com/marketplace/stale)). Configuration
- is [here](https://github.com/parea-ai/parea-sdk/blob/master/.github/.stale.yml).
- [Semantic Versions](https://semver.org/) specification
with [`Release Drafter`](https://github.com/marketplace/actions/release-drafter).
-## Installation
-
-```bash
-pip install -U parea
-```
-
-or install with `Poetry`
-
-```bash
-poetry add parea
-```
-
-### Makefile usage
-
-[`Makefile`](https://github.com/parea-ai/parea-sdk/blob/master/Makefile) contains a lot of functions for faster
-development.
-
-
-1. Download and remove Poetry
-
-
-To download and install Poetry run:
-
-```bash
-make poetry-download
-```
-
-To uninstall
-
-```bash
-make poetry-remove
-```
-
-
-
-
-
-2. Install all dependencies and pre-commit hooks
-
-
-Install requirements:
-
-```bash
-make install
-```
-
-Pre-commit hooks coulb be installed after `git init` via
-
-```bash
-make pre-commit-install
-```
-
-
-
-
-
-3. Codestyle
-
-
-Automatic formatting uses `pyupgrade`, `isort` and `black`.
-
-```bash
-make codestyle
-
-# or use synonym
-make formatting
-```
-
-Codestyle checks only, without rewriting files:
-
-```bash
-make check-codestyle
-```
-
-> Note: `check-codestyle` uses `isort`, `black` and `darglint` library
-
-Update all dev libraries to the latest version using one comand
-
-```bash
-make update-dev-deps
-```
-
-
-4. Code security
-
-
-```bash
-make check-safety
-```
-
-This command launches `Poetry` integrity checks as well as identifies security issues with `Safety` and `Bandit`.
-
-```bash
-make check-safety
-```
-
-
-
-
-
-
-
-
-5. Type checks
-
-
-Run `mypy` static type checker
-
-```bash
-make mypy
-```
-
-
-
-
-
-6. Tests with coverage badges
-
-
-Run `pytest`
-
-```bash
-make test
-```
-
-
-
-
-
-7. All linters
-
-
-Of course there is a command to ~~rule~~ run all linters in one:
-
-```bash
-make lint
-```
-
-the same as:
-
-```bash
-make test && make check-codestyle && make mypy && make check-safety
-```
-
-
-
-
-
-8. Docker
-
-
-```bash
-make docker-build
-```
-
-which is equivalent to:
-
-```bash
-make docker-build VERSION=latest
-```
-
-Remove docker image with
-
-```bash
-make docker-remove
-```
-
-More information [about docker](https://github.com/parea-ai/parea-sdk/tree/master/docker).
-
-
-
-
-
-9. Cleanup
-
-Delete pycache files
-
-```bash
-make pycache-remove
-```
-
-Remove package build
-
-```bash
-make build-remove
-```
-
-Delete .DS_STORE files
-
-```bash
-make dsstore-remove
-```
-
-Remove .mypycache
-
-```bash
-make mypycache-remove
-```
-
-Or to remove all above run:
-
-```bash
-make cleanup
-```
-
-
-
-
-## π Releases
-
-You can see the list of available releases on the [GitHub Releases](https://github.com/parea-ai/parea-sdk/releases)
-page.
-
-We follow [Semantic Versions](https://semver.org/) specification.
-
-We use [`Release Drafter`](https://github.com/marketplace/actions/release-drafter). As pull requests are merged, a draft
-release is kept up-to-date listing the changes, ready to publish when youβre ready. With the categories option, you can
-categorize pull requests in release notes using labels.
-
-### List of labels and corresponding titles
-
-| **Label** | **Title in Releases** |
-|:-------------------------------------:|:-----------------------:|
-| `enhancement`, `feature` | π Features |
-| `bug`, `refactoring`, `bugfix`, `fix` | π§ Fixes & Refactoring |
-| `build`, `ci`, `testing` | π¦ Build System & CI/CD |
-| `breaking` | π₯ Breaking Changes |
-| `documentation` | π Documentation |
-| `dependencies` | β¬οΈ Dependencies updates |
-
-You can update it
-in [`release-drafter.yml`](https://github.com/parea-ai/parea-sdk/blob/master/.github/release-drafter.yml).
-
-GitHub creates the `bug`, `enhancement`, and `documentation` labels for you. Dependabot creates the `dependencies`
-label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.
-
## π‘ License
[![License](https://img.shields.io/github/license/parea-ai/parea-sdk)](https://github.com/parea-ai/parea-sdk/blob/master/LICENSE)
@@ -398,7 +107,3 @@ See [LICENSE](https://github.com/parea-ai/parea-sdk/blob/master/LICENSE) for mor
howpublished = {\url{https://github.com/parea-ai/parea-sdk}}
}
```
-
-## Credits [![π Your next Python package needs a bleeding-edge project structure.](https://img.shields.io/badge/python--package--template-%F0%9F%9A%80-brightgreen)](https://github.com/TezRomacH/python-package-template)
-
-This project was generated with [`python-package-template`](https://github.com/TezRomacH/python-package-template)
diff --git a/parea/example.py b/parea/example.py
index 51f10413..23edac7b 100644
--- a/parea/example.py
+++ b/parea/example.py
@@ -4,37 +4,41 @@
from dotenv import load_dotenv
from parea.client import Parea
-from parea.schemas.models import Completion, UseDeployedPrompt
+from parea.schemas.models import Completion, CompletionResponse, UseDeployedPrompt, UseDeployedPromptResponse
load_dotenv()
p = Parea(api_key=os.getenv("API_KEY"))
# You will find this deployment_id in the Parea dashboard
-deployment_id = "p-qsefFeFEICnxqJ_yLjji"
-# Assuming my deployed prompt's message is:
+deployment_id = os.getenv("DEPLOYMENT_ID")
+# Assuming your deployed prompt's message is:
# {"role": "user", "content": "Write a hello world program using {{x}} and the {{y}} framework."}
inputs = {"inputs": {"x": "Golang", "y": "Fiber"}}
+
+# You can easily unpack a dictionary into an attrs class
test_completion = Completion(**{"deployment_id": deployment_id, "llm_inputs": inputs, "metadata": {"purpose": "testing"}})
-# By passing in my inputs, instead of unfilled variables {{x}} and {{y}}, we will also have the filled in prompt:
+
+# By passing in my inputs, in addition to the raw message with unfilled variables {{x}} and {{y}},
+# you we will also get the filled-in prompt:
# {"role": "user", "content": "Write a hello world program using Golang and the Fiber framework."}
-test_get_prompt = UseDeployedPrompt(deployment_id, inputs)
+test_get_prompt = UseDeployedPrompt(deployment_id=deployment_id, inputs=inputs)
def main():
- r = p.completion(data=test_completion)
- print(r)
- r2 = p.get_prompt(data=test_get_prompt)
+ completion_response: CompletionResponse = p.completion(data=test_completion)
+ print(completion_response)
+ deployed_prompt: UseDeployedPromptResponse = p.get_prompt(data=test_get_prompt)
print("\n\n")
- print(r2)
+ print(deployed_prompt)
async def main_async():
- r = await p.acompletion(data=test_completion)
- print(r)
- r2 = await p.aget_prompt(data=test_get_prompt)
+ completion_response: CompletionResponse = await p.acompletion(data=test_completion)
+ print(completion_response)
+ deployed_prompt: UseDeployedPromptResponse = await p.aget_prompt(data=test_get_prompt)
print("\n\n")
- print(r2)
+ print(deployed_prompt)
def hello(name: str) -> str: