weco 0.1.1__tar.gz → 0.1.4__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.
@@ -0,0 +1,57 @@
1
+ name: Lint and Format Code
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - dev
8
+
9
+ pull_request:
10
+ branches:
11
+ - main
12
+
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v3
20
+ with:
21
+ ref: ${{ github.head_ref }}
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v3
25
+ with:
26
+ python-version: "3.10"
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install flake8 flake8-pyproject black isort
32
+
33
+ - name: Lint with flake8
34
+ run: |
35
+ # uses the flake8 configuration in pyproject.toml
36
+ # stop the build if there are Python syntax errors or undefined names
37
+ flake8 .
38
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
39
+ flake8 . --exit-zero
40
+
41
+ - name: Run black
42
+ run: black .
43
+
44
+ - name: Run isort
45
+ run: isort .
46
+
47
+ - name: Commit changes
48
+ run: |
49
+ git config --local user.email "action@github.com"
50
+ git config --local user.name "GitHub Action"
51
+ git add -A
52
+ if git diff --exit-code --staged; then
53
+ echo "No changes to commit"
54
+ else
55
+ git commit -m "[PROJ] Format code with Black"
56
+ git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
57
+ fi
@@ -0,0 +1,94 @@
1
+ name: Publish Python Package
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - 'main'
7
+
8
+ release:
9
+ types: [published]
10
+
11
+ jobs:
12
+ build:
13
+ name: Build distribution 📦
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.10"
22
+ - name: Install build dependencies
23
+ run: >-
24
+ python3 -m pip install build --user
25
+ - name: Build a source distribution and a wheel
26
+ run: python3 -m build
27
+ - name: Store the distribution packages
28
+ uses: actions/upload-artifact@v3
29
+ with:
30
+ name: python-package-distributions
31
+ path: dist/
32
+
33
+ publish-to-pypi:
34
+ name: >-
35
+ Publish Python 🐍 distribution PyPI
36
+ needs:
37
+ - build
38
+ runs-on: ubuntu-latest
39
+ environment:
40
+ name: release
41
+ url: https://pypi.org/p/weco
42
+ permissions:
43
+ id-token: write
44
+
45
+ steps:
46
+ - name: Download the dists
47
+ uses: actions/download-artifact@v3
48
+ with:
49
+ name: python-package-distributions
50
+ path: dist/
51
+ - name: Publish to PyPI
52
+ uses: pypa/gh-action-pypi-publish@release/v1
53
+
54
+ github-release:
55
+ name: >-
56
+ Create GitHub Release
57
+ needs:
58
+ - publish-to-pypi
59
+ runs-on: ubuntu-latest
60
+
61
+ permissions:
62
+ contents: write
63
+ id-token: write
64
+
65
+ steps:
66
+ - name: Download dists
67
+ uses: actions/download-artifact@v3
68
+ with:
69
+ name: python-package-distributions
70
+ path: dist/
71
+ - name: Sign dists with Sigstore
72
+ uses: sigstore/gh-action-sigstore-python@v2.1.1
73
+ with:
74
+ inputs: >-
75
+ ./dist/*.tar.gz
76
+ ./dist/*.whl
77
+ - name: Create GitHub Release
78
+ env:
79
+ GITHUB_TOKEN: ${{ github.token }}
80
+ run: >-
81
+ gh release create
82
+ '${{ github.event.release.tag_name }}'
83
+ --repo '${{ github.repository }}'
84
+ --notes ""
85
+ - name: Upload artifact signatures to GitHub Release
86
+ env:
87
+ GITHUB_TOKEN: ${{ github.token }}
88
+ # Upload to GitHub Release using the `gh` CLI.
89
+ # `dist/` contains the built packages, and the
90
+ # sigstore-produced signatures and certificates.
91
+ run: >-
92
+ gh release upload
93
+ '${{ github.event.release.tag_name }}' dist/**
94
+ --repo '${{ github.repository }}'
weco-0.1.4/.gitignore ADDED
@@ -0,0 +1,171 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
110
+ .pdm.toml
111
+ .pdm-python
112
+ .pdm-build/
113
+
114
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
115
+ __pypackages__/
116
+
117
+ # Celery stuff
118
+ celerybeat-schedule
119
+ celerybeat.pid
120
+
121
+ # SageMath parsed files
122
+ *.sage.py
123
+
124
+ # Environments
125
+ .env
126
+ .venv
127
+ env/
128
+ venv/
129
+ ENV/
130
+ env.bak/
131
+ venv.bak/
132
+
133
+ # Spyder project settings
134
+ .spyderproject
135
+ .spyproject
136
+
137
+ # Rope project settings
138
+ .ropeproject
139
+
140
+ # mkdocs documentation
141
+ /site
142
+
143
+ # mypy
144
+ .mypy_cache/
145
+ .dmypy.json
146
+ dmypy.json
147
+
148
+ # Pyre type checker
149
+ .pyre/
150
+
151
+ # pytype static type analyzer
152
+ .pytype/
153
+
154
+ # Cython debug symbols
155
+ cython_debug/
156
+
157
+ # PyCharm
158
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
159
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
160
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
161
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
162
+ #.idea/
163
+
164
+ # MacOS Files
165
+ .DS_Store
166
+
167
+ # Case Studies
168
+ case_studies/
169
+
170
+ # Testing files
171
+ test.py
weco-0.1.4/PKG-INFO ADDED
@@ -0,0 +1,121 @@
1
+ Metadata-Version: 2.1
2
+ Name: weco
3
+ Version: 0.1.4
4
+ Summary: A client facing API for interacting with the WeCo AI function builder service.
5
+ Author-email: WeCo AI Team <dhruv@weco.ai>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/WecoAI/weco-python
8
+ Keywords: AI,LLM,machine learning,data science,function builder,AI function
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: asyncio
16
+ Requires-Dist: httpx[http2]
17
+ Requires-Dist: pillow
18
+ Provides-Extra: dev
19
+ Requires-Dist: flake8; extra == "dev"
20
+ Requires-Dist: flake8-pyproject; extra == "dev"
21
+ Requires-Dist: black; extra == "dev"
22
+ Requires-Dist: isort; extra == "dev"
23
+ Requires-Dist: pytest-asyncio; extra == "dev"
24
+ Requires-Dist: pytest-xdist; extra == "dev"
25
+ Requires-Dist: build; extra == "dev"
26
+ Requires-Dist: setuptools_scm; extra == "dev"
27
+
28
+ <div align="center" style="display: flex; align-items: center; justify-content: center;">
29
+ <img src="assets/weco.svg" alt="WeCo AI" style="height: 50px; margin-right: 10px;">
30
+ <a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.demolab.com?font=Georgia&size=32&duration=4000&pause=400&color=FD4578&vCenter=true&multiline=false&width=200&height=50&lines=WeCo+Client" alt="Typing SVG" /></a>
31
+ </div>
32
+
33
+ ![Python](https://img.shields.io/badge/Python-3.10.14-blue)
34
+ [![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
35
+
36
+ <!-- TODO: Update examples -->
37
+ # $f$(👷‍♂️)
38
+
39
+ <a href="https://colab.research.google.com/github/WecoAI/weco-python/blob/main/examples/cookbook.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab" width=110 height=20/></a>
40
+ <a target="_blank" href="https://lightning.ai/new?repo_url=https%3A%2F%2Fgithub.com%2FWecoAI%2Fweco-python%2Fblob%2Fmain%2Fexamples%2Fcookbook.ipynb"><img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/app-2/studio-badge.svg" alt="Open in Studio" width=100 height=20/></a>
41
+
42
+ A client facing API for interacting with the [WeCo AI](https://www.weco.ai/) function builder [service](https://weco-app.vercel.app/function)!
43
+
44
+
45
+ Use this API to build *complex* systems *fast*. We lower the barrier of entry to software engineer, data science and machine learning by providing an interface to prototype difficult solutions quickly in just a few lines of code.
46
+
47
+ ## Installation
48
+
49
+ Install the `weco` package simply by calling this in your terminal of choice:
50
+ ```bash
51
+ pip install weco
52
+ ```
53
+
54
+ ## Features
55
+
56
+ - The **build** function enables quick and easy prototyping of new functions via LLMs through just natural language. We encourage users to do this through our [web console](https://weco-app.vercel.app/function) for maximum control and ease of use, however, you can also do this through our API as shown in [here](examples/cookbook.ipynb).
57
+ - The **query** function allows you to test and use the newly created function in your own code.
58
+ - We offer asynchronous versions of the above clients.
59
+ - We provide a **batch_query** functions that allows users to batch functions for various inputs as well as multiple inputs for the same function in a query. This is helpful to make a large number of queries more efficiently.
60
+ - We also offer multimodality capabilities. You can now query our client with both **language** AND **vision** inputs!
61
+
62
+ We provide both services in two ways:
63
+ - `weco.WecoAI` client to be used when you want to maintain the same client service across a portion of code. This is better for dense service usage.
64
+ - `weco.query` and `weco.build` to be used when you only require sparse usage.
65
+
66
+ ## Usage
67
+
68
+ When using the WeCo API, you will need to set the API key:
69
+ You can find/setup your API key [here](https://weco-app.vercel.app/account) by navigating to the API key tab. Once you have your API key, you may pass it to the `weco` client using the `api_key` argument input or set it as an environment variable such as:
70
+ ```bash
71
+ export WECO_API_KEY=<YOUR_WECO_API_KEY>
72
+ ```
73
+
74
+ ## Example
75
+
76
+ We create a function on the [web console](https://weco-app.vercel.app/function) for the following task:
77
+ > "Analyze a business idea and provide a structured evaluation. Output a JSON with 'viability_score' (0-100), 'strengths' (list), 'weaknesses' (list), and 'next_steps' (list)."
78
+
79
+ Now, you're ready to query this function anywhere in your code!
80
+
81
+ ```python
82
+ from weco import query
83
+ response = query(
84
+ fn_name="BusinessIdeaAnalyzer-XYZ123", # Replace with your actual function name
85
+ text_input="A subscription service for personalized, AI-generated bedtime stories for children."
86
+ )
87
+ ```
88
+
89
+ For more examples and an advanced user guide, check out our function builder [cookbook](examples/cookbook.ipynb).
90
+
91
+ ## Happy building $f$(👷‍♂️)!
92
+
93
+ ## Contributing
94
+
95
+ We value your contributions! If you believe you can help to improve our package enabling people to build AI with AI, please contribute!
96
+
97
+ Use the following steps as a guideline to help you make contributions:
98
+
99
+ 1. Download and install package from source:
100
+ ```bash
101
+ git clone https://github.com/WecoAI/weco-python.git
102
+ cd weco-python
103
+ pip install -e ".[dev]"
104
+ ```
105
+
106
+ 2. Create a new branch for your feature or bugfix:
107
+ ```bash
108
+ git checkout -b feature/your-feature-name
109
+ ```
110
+
111
+ 3. Make your changes and run tests to ensure everything is working:
112
+
113
+ > **Tests can be expensive to run as they make LLM requests with the API key being used so it is the developers best interests to write small and simple tests that adds coverage for a large portion of the package.**
114
+
115
+ ```bash
116
+ pytest -n auto tests
117
+ ```
118
+
119
+ 4. Commit and push your changes, then open a PR for us to view 😁
120
+
121
+ Please ensure your code follows our style guidelines (Numpy docstrings) and includes appropriate tests. We appreciate your contributions!
weco-0.1.4/README.md ADDED
@@ -0,0 +1,94 @@
1
+ <div align="center" style="display: flex; align-items: center; justify-content: center;">
2
+ <img src="assets/weco.svg" alt="WeCo AI" style="height: 50px; margin-right: 10px;">
3
+ <a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.demolab.com?font=Georgia&size=32&duration=4000&pause=400&color=FD4578&vCenter=true&multiline=false&width=200&height=50&lines=WeCo+Client" alt="Typing SVG" /></a>
4
+ </div>
5
+
6
+ ![Python](https://img.shields.io/badge/Python-3.10.14-blue)
7
+ [![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
8
+
9
+ <!-- TODO: Update examples -->
10
+ # $f$(👷‍♂️)
11
+
12
+ <a href="https://colab.research.google.com/github/WecoAI/weco-python/blob/main/examples/cookbook.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab" width=110 height=20/></a>
13
+ <a target="_blank" href="https://lightning.ai/new?repo_url=https%3A%2F%2Fgithub.com%2FWecoAI%2Fweco-python%2Fblob%2Fmain%2Fexamples%2Fcookbook.ipynb"><img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/app-2/studio-badge.svg" alt="Open in Studio" width=100 height=20/></a>
14
+
15
+ A client facing API for interacting with the [WeCo AI](https://www.weco.ai/) function builder [service](https://weco-app.vercel.app/function)!
16
+
17
+
18
+ Use this API to build *complex* systems *fast*. We lower the barrier of entry to software engineer, data science and machine learning by providing an interface to prototype difficult solutions quickly in just a few lines of code.
19
+
20
+ ## Installation
21
+
22
+ Install the `weco` package simply by calling this in your terminal of choice:
23
+ ```bash
24
+ pip install weco
25
+ ```
26
+
27
+ ## Features
28
+
29
+ - The **build** function enables quick and easy prototyping of new functions via LLMs through just natural language. We encourage users to do this through our [web console](https://weco-app.vercel.app/function) for maximum control and ease of use, however, you can also do this through our API as shown in [here](examples/cookbook.ipynb).
30
+ - The **query** function allows you to test and use the newly created function in your own code.
31
+ - We offer asynchronous versions of the above clients.
32
+ - We provide a **batch_query** functions that allows users to batch functions for various inputs as well as multiple inputs for the same function in a query. This is helpful to make a large number of queries more efficiently.
33
+ - We also offer multimodality capabilities. You can now query our client with both **language** AND **vision** inputs!
34
+
35
+ We provide both services in two ways:
36
+ - `weco.WecoAI` client to be used when you want to maintain the same client service across a portion of code. This is better for dense service usage.
37
+ - `weco.query` and `weco.build` to be used when you only require sparse usage.
38
+
39
+ ## Usage
40
+
41
+ When using the WeCo API, you will need to set the API key:
42
+ You can find/setup your API key [here](https://weco-app.vercel.app/account) by navigating to the API key tab. Once you have your API key, you may pass it to the `weco` client using the `api_key` argument input or set it as an environment variable such as:
43
+ ```bash
44
+ export WECO_API_KEY=<YOUR_WECO_API_KEY>
45
+ ```
46
+
47
+ ## Example
48
+
49
+ We create a function on the [web console](https://weco-app.vercel.app/function) for the following task:
50
+ > "Analyze a business idea and provide a structured evaluation. Output a JSON with 'viability_score' (0-100), 'strengths' (list), 'weaknesses' (list), and 'next_steps' (list)."
51
+
52
+ Now, you're ready to query this function anywhere in your code!
53
+
54
+ ```python
55
+ from weco import query
56
+ response = query(
57
+ fn_name="BusinessIdeaAnalyzer-XYZ123", # Replace with your actual function name
58
+ text_input="A subscription service for personalized, AI-generated bedtime stories for children."
59
+ )
60
+ ```
61
+
62
+ For more examples and an advanced user guide, check out our function builder [cookbook](examples/cookbook.ipynb).
63
+
64
+ ## Happy building $f$(👷‍♂️)!
65
+
66
+ ## Contributing
67
+
68
+ We value your contributions! If you believe you can help to improve our package enabling people to build AI with AI, please contribute!
69
+
70
+ Use the following steps as a guideline to help you make contributions:
71
+
72
+ 1. Download and install package from source:
73
+ ```bash
74
+ git clone https://github.com/WecoAI/weco-python.git
75
+ cd weco-python
76
+ pip install -e ".[dev]"
77
+ ```
78
+
79
+ 2. Create a new branch for your feature or bugfix:
80
+ ```bash
81
+ git checkout -b feature/your-feature-name
82
+ ```
83
+
84
+ 3. Make your changes and run tests to ensure everything is working:
85
+
86
+ > **Tests can be expensive to run as they make LLM requests with the API key being used so it is the developers best interests to write small and simple tests that adds coverage for a large portion of the package.**
87
+
88
+ ```bash
89
+ pytest -n auto tests
90
+ ```
91
+
92
+ 4. Commit and push your changes, then open a PR for us to view 😁
93
+
94
+ Please ensure your code follows our style guidelines (Numpy docstrings) and includes appropriate tests. We appreciate your contributions!
@@ -0,0 +1,91 @@
1
+ <svg viewBox="457.34072022160666 394.2 109.83379501385042 113.4" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" data-name="Слой 1" id="_Слой_1" style="max-height: 500px" width="109.83379501385042" height="113.4">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: url(#_Безымянный_градиент_8);
6
+ }
7
+
8
+ .cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9 {
9
+ stroke-width: 0px;
10
+ }
11
+
12
+ .cls-1, .cls-2, .cls-3, .cls-5, .cls-6, .cls-7, .cls-8 {
13
+ fill-rule: evenodd;
14
+ }
15
+
16
+ .cls-2 {
17
+ fill: url(#_Безымянный_градиент_13);
18
+ }
19
+
20
+ .cls-3 {
21
+ fill: url(#_Безымянный_градиент_10);
22
+ }
23
+
24
+ .cls-4 {
25
+ fill: url(#_Безымянный_градиент_182);
26
+ }
27
+
28
+ .cls-5 {
29
+ fill: url(#_Безымянный_градиент_182-2);
30
+ }
31
+
32
+ .cls-6 {
33
+ fill: url(#_Безымянный_градиент_10-4);
34
+ }
35
+
36
+ .cls-7 {
37
+ fill: url(#_Безымянный_градиент_10-3);
38
+ }
39
+
40
+ .cls-8 {
41
+ fill: url(#_Безымянный_градиент_10-2);
42
+ }
43
+ </style>
44
+ <linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1722.82" x2="894.85" y1="1722.82" x1="835.17" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10">
45
+ <stop stop-color="#f99d24" offset="0"/>
46
+ <stop stop-color="#ff3c82" offset=".47"/>
47
+ <stop stop-color="#c649b6" offset=".69"/>
48
+ <stop stop-color="#9854e1" offset=".9"/>
49
+ <stop stop-color="#8759f2" offset="1"/>
50
+ </linearGradient>
51
+ <linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1736.49" x2="882.93" y1="1736.49" x1="845.28" data-name="Безымянный градиент 13" id="_Безымянный_градиент_13">
52
+ <stop stop-color="#ff3c82" offset="0"/>
53
+ <stop stop-color="#fd3c83" offset="0"/>
54
+ <stop stop-color="#be4bbe" offset=".48"/>
55
+ <stop stop-color="#9655e3" offset=".82"/>
56
+ <stop stop-color="#8759f2" offset="1"/>
57
+ </linearGradient>
58
+ <linearGradient xlink:href="#_Безымянный_градиент_10" y2="1733.25" x2="930.17" y1="1733.25" x1="858.98" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10-2"/>
59
+ <linearGradient xlink:href="#_Безымянный_градиент_10" y2="1699.44" x2="913.44" y1="1742.08" x1="913.44" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10-3"/>
60
+ <linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1664.98" x2="888.71" y1="1736.43" x1="888.71" data-name="Безымянный градиент 8" id="_Безымянный_градиент_8">
61
+ <stop stop-color="#8759f2" offset="0"/>
62
+ <stop stop-color="#9854e1" offset=".1"/>
63
+ <stop stop-color="#c649b6" offset=".31"/>
64
+ <stop stop-color="#ff3c82" offset=".53"/>
65
+ <stop stop-color="#f99d24" offset="1"/>
66
+ </linearGradient>
67
+ <linearGradient xlink:href="#_Безымянный_градиент_10" y2="1674.57" x2="886.51" y1="1702.9" x1="858.19" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10-4"/>
68
+ <linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(2223.51 -436.72) rotate(90)" y2="1711.15" x2="875.01" y1="1711.15" x1="875.01" data-name="Безымянный градиент 182" id="_Безымянный_градиент_182">
69
+ <stop stop-color="#4629bb" offset="0"/>
70
+ <stop stop-color="#cf77c1" offset="1"/>
71
+ </linearGradient>
72
+ <linearGradient xlink:href="#_Безымянный_градиент_182" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1717.03" x2="857.73" y1="1717.03" x1="856.1" data-name="Безымянный градиент 182" id="_Безымянный_градиент_182-2"/>
73
+ </defs>
74
+ <path d="M537.85,440.86c-3.78,3.48-8.57,6.37-14.29,8.63-1.58-1.99-3.35-3.96-5.29-5.91-1.94-1.94-3.91-3.71-5.9-5.29h0s0,0,0,0c-4.82-3.83-9.71-6.53-14.62-8.06h0c-.46-.15-.91-.28-1.37-.4-.65-.18-1.3-.29-1.95-.35-.02,0-.03,0-.05,0-14.05-2.04-26.22,6.4-28.64,19.29-1.28-4.77-1.33-9.86-.01-14.77,4.07-15.2,19.75-24.25,34.95-20.18,1.88.5,3.76,1.13,5.63,1.86,5.01,1.97,9.92,4.75,14.69,8.33,3.07,2.3,6.08,4.92,9.01,7.85,2.93,2.93,5.55,5.94,7.85,9.01Z" class="cls-3"/>
75
+ <path d="M491.71,470.14c-1.99-.3-3.93-.7-5.81-1.2-4.84-1.3-9.26-3.84-12.78-7.37-3.6-3.6-6.1-8.04-7.38-12.81,2.41-12.89,14.59-21.33,28.64-19.29-5.68-.52-11.11,3.11-12.63,8.81-1.1,4.11.09,8.54,3.1,11.56,1.47,1.47,3.32,2.53,5.34,3.08.46.12.92.24,1.38.34-.71,5.92-.67,11.56.13,16.88Z" class="cls-2"/>
76
+ <path d="M536.42,492.25c-2.58,1.74-5.46,3.05-8.56,3.88-9.82,2.63-20.38-.2-27.58-7.4-3.53-3.53-6.07-7.94-7.37-12.78-.5-1.88-.9-3.82-1.2-5.8,0,0,0,0,0,0-.8-5.33-.84-10.96-.13-16.88.46-3.81,1.22-7.73,2.29-11.73,1.07-4,2.37-7.77,3.88-11.3,4.91,1.53,9.8,4.23,14.62,8.06h0c-.93,2.36-1.76,4.87-2.47,7.53-.71,2.66-1.26,5.25-1.63,7.76,0,0,0,0,0,0-.9,6.09-.8,11.67.32,16.69h0c.1.47.22.93.34,1.38,1.31,12.42,15.82,24.79,27.48,20.59Z" class="cls-8"/>
77
+ <path d="M536.42,492.25c-11.67,4.2-26.17-8.17-27.48-20.59.54,2.03,1.61,3.87,3.08,5.34,3.02,3.02,7.45,4.21,11.56,3.1,3.08-.82,5.66-2.8,7.25-5.57,1.6-2.76,2.02-5.98,1.2-9.07-.12-.45-.26-.91-.4-1.37,5.48-2.35,10.35-5.2,14.56-8.56.74,1.87,1.36,3.75,1.86,5.63,1.97,7.36.96,15.05-2.85,21.65-2.21,3.83-5.21,7.02-8.77,9.42Z" class="cls-7"/>
78
+ <path d="M546.17,455.55h0c-4.21,3.36-9.07,6.21-14.56,8.56h0c-3.53,1.51-7.3,2.81-11.3,3.88-4,1.07-7.92,1.84-11.73,2.29-1.13-5.02-1.23-10.6-.32-16.69,2.51-.37,5.1-.91,7.76-1.63,2.65-.71,5.17-1.53,7.53-2.47h0c5.72-2.26,10.51-5.15,14.29-8.63.35-.32.69-.65,1.03-.99.52-.52.98-1.07,1.38-1.65,11.82-14.27,4.55-28.47-5.63-35.01,5.85.86,11.48,3.54,15.98,8.03,11.13,11.13,11.13,29.23,0,40.36-1.38,1.38-2.86,2.7-4.43,3.94Z" class="cls-1"/>
79
+ <path d="M540.26,438.22c3.22-4.66,2.76-11.1-1.38-15.24-4.66-4.66-12.24-4.66-16.9,0-.33.33-.66.68-.98,1.03-4.77-3.57-9.68-6.36-14.69-8.33,1.25-1.57,2.57-3.05,3.95-4.43,6.63-6.63,15.74-9.31,24.38-8.04h0c10.17,6.54,17.45,20.74,5.63,35.01Z" class="cls-6"/>
80
+ <rect transform="translate(-159.85 490.67) rotate(-45)" height="0" width="0" y="438.29" x="512.36" class="cls-4"/>
81
+ <path d="M496.38,429.83c-.66-.14-1.31-.26-1.95-.35" class="cls-5"/>
82
+ <g>
83
+ <g>
84
+ <path d="M610.02,478.03c-.16,0-.35-.1-.58-.29-.23-.19-.43-.45-.58-.76l-16.42-40.41c-.54-1.63-1.36-2.97-2.45-4.02-1.09-1.05-2.25-1.76-3.49-2.15-.7-.23-1.3-.52-1.8-.87-.51-.35-.76-.79-.76-1.34s.31-.87.93-.99c.62-.12,1.12-.17,1.51-.17,1.32,0,2.46.04,3.44.12.97.08,1.94.17,2.91.29.97.12,2.04.17,3.2.17,1.24,0,2.43-.06,3.55-.17,1.12-.12,2.23-.21,3.32-.29,1.09-.08,2.29-.12,3.61-.12.39,0,.89.08,1.51.23.62.16.93.47.93.93,0,.62-.29,1.07-.87,1.34-.58.27-1.18.56-1.8.87-.78.23-1.38.76-1.8,1.57-.43.82-.64,1.8-.64,2.97s.23,2.33.7,3.49l8.27,21.54c.08.23.23.35.47.35s.39-.12.47-.35l7.92-18.63c.31-.85.52-1.69.64-2.5.12-.82.17-1.61.17-2.39,0-1.4-.58-2.62-1.75-3.67-1.16-1.05-2.41-1.84-3.73-2.39-.7-.23-1.3-.5-1.8-.82-.51-.31-.76-.78-.76-1.4,0-.47.31-.78.93-.93.62-.15,1.2-.23,1.75-.23,1.4,0,2.83.1,4.31.29,1.47.2,3.1.29,4.89.29,2.17,0,4.08-.1,5.71-.29,1.63-.19,3.22-.29,4.77-.29.47,0,.99.08,1.57.23.58.16.87.51.87,1.05s-.29.97-.87,1.28c-.58.31-1.18.58-1.8.82-.86.31-1.65.74-2.39,1.28-.74.54-1.11,1.48-1.11,2.79,0,.62.06,1.26.17,1.92.12.66.33,1.34.64,2.04l8.15,20.96c.23.62.47.93.7.93s.47-.27.7-.82l8.04-19.21c.31-.7.52-1.49.64-2.39.12-.89.17-1.65.17-2.27,0-1.32-.41-2.43-1.22-3.32-.82-.89-1.69-1.49-2.62-1.8-.62-.23-1.22-.5-1.8-.82-.58-.31-.87-.78-.87-1.4,0-.47.31-.78.93-.93.62-.15,1.12-.23,1.51-.23,1.94,0,3.4.08,4.37.23.97.16,2.35.23,4.13.23,1.24,0,2.17-.04,2.79-.12.62-.08,1.22-.15,1.8-.23.58-.08,1.42-.12,2.5-.12.47,0,.99.06,1.57.17.58.12.87.45.87.99s-.25.99-.76,1.34c-.51.35-1.07.64-1.69.87-1.32.39-2.52,1.28-3.61,2.68-1.09,1.4-2.02,2.99-2.79,4.77l-16.07,39.01c-.31.62-.78.93-1.4.93-.47,0-.89-.31-1.28-.93l-12.93-31.21c-.16-.47-.35-.7-.58-.7s-.43.27-.58.82l-13.04,31.09c-.31.7-.78,1.05-1.4,1.05Z" class="cls-9"/>
85
+ <path d="M688.04,476.75c-4.19,0-7.9-1.07-11.12-3.2-3.22-2.13-5.76-5.12-7.63-8.97-1.86-3.84-2.79-8.29-2.79-13.33,0-4.58,1.07-8.77,3.2-12.58,2.13-3.8,4.99-6.85,8.56-9.14,3.57-2.29,7.49-3.44,11.76-3.44,3.18,0,6.04.64,8.56,1.92,2.52,1.28,4.5,3.07,5.94,5.36,1.44,2.29,2.15,4.91,2.15,7.86,0,2.56-1.2,3.84-3.61,3.84h-24.11c-1.09,0-1.86.31-2.33.93-.47.62-.7,1.75-.7,3.38,0,3.42.78,6.54,2.33,9.37,1.55,2.83,3.61,5.11,6.17,6.81,2.56,1.71,5.39,2.56,8.5,2.56,2.33,0,4.44-.45,6.35-1.34,1.9-.89,3.67-2.15,5.3-3.78.23-.31.45-.54.64-.7.19-.15.41-.23.64-.23.7,0,1.05.43,1.05,1.28,0,1.24-.54,2.72-1.63,4.42-1.09,1.63-2.47,3.13-4.13,4.48-1.67,1.36-3.61,2.45-5.82,3.26-2.21.82-4.64,1.22-7.28,1.22ZM679.08,441.11h9.32c2.02,0,3.61-.04,4.77-.12,1.16-.08,2.25-.23,3.26-.47.39-.15.66-.48.82-.99.15-.5.23-1.15.23-1.92,0-2.17-.89-4.02-2.68-5.53-1.79-1.51-3.92-2.27-6.4-2.27-1.71,0-3.4.51-5.07,1.51-1.67,1.01-3.05,2.27-4.13,3.78-1.09,1.51-1.59,3.05-1.51,4.6,0,.93.47,1.4,1.4,1.4Z" class="cls-9"/>
86
+ <path d="M759.66,476.75c-3.96,0-7.53-1.03-10.71-3.09-3.18-2.06-5.71-4.87-7.57-8.44-1.86-3.57-2.79-7.57-2.79-11.99,0-5.05,1.12-9.63,3.38-13.74,2.25-4.11,5.28-7.37,9.08-9.78,3.8-2.41,7.99-3.61,12.58-3.61,5.51,0,10.25,1.59,14.21,4.77.85.78,1.28,1.51,1.28,2.21,0,.54-.29,1.22-.87,2.04-.58.82-1.28,1.51-2.1,2.1-.82.58-1.57.87-2.27.87-.47,0-.95-.15-1.46-.47-.51-.31-.99-.66-1.46-1.05-1.86-1.47-3.82-2.78-5.88-3.9-2.06-1.12-3.82-1.69-5.3-1.69-3.49,0-6.27,1.57-8.33,4.72-2.06,3.14-3.09,7.55-3.09,13.22,0,3.73.72,7.03,2.15,9.9,1.44,2.87,3.42,5.12,5.94,6.75,2.52,1.63,5.41,2.45,8.68,2.45,2.25,0,4.21-.37,5.88-1.11,1.67-.74,3.44-2,5.3-3.78.23-.15.48-.31.76-.47.27-.16.52-.23.76-.23.85,0,1.28.58,1.28,1.75,0,.39-.12.87-.35,1.46-.23.58-.58,1.22-1.05,1.92-1.09,1.55-2.52,3.05-4.31,4.48-1.79,1.44-3.84,2.58-6.17,3.44-2.33.85-4.85,1.28-7.57,1.28Z" class="cls-9"/>
87
+ <path d="M808.22,476.63c-4.43,0-8.44-1.03-12.05-3.09-3.61-2.06-6.46-4.87-8.56-8.44-2.1-3.57-3.14-7.65-3.14-12.23,0-3.42.66-6.71,1.98-9.9,1.32-3.18,3.18-6.06,5.59-8.62,2.41-2.56,5.2-4.6,8.38-6.11,3.18-1.51,6.6-2.27,10.25-2.27,4.58,0,8.73,1.11,12.46,3.32,3.73,2.21,6.68,5.11,8.85,8.68,2.17,3.57,3.26,7.49,3.26,11.76,0,4.66-1.01,9.05-3.03,13.16-2.02,4.12-5.03,7.43-9.02,9.96-4,2.52-8.99,3.78-14.96,3.78ZM810.67,472.55c2.25,0,4.27-.45,6.06-1.34,1.79-.89,3.18-2.27,4.19-4.13.93-1.79,1.57-3.98,1.92-6.58.35-2.6.52-5.26.52-7.98,0-3.88-.62-7.53-1.86-10.95-1.24-3.42-2.95-6.17-5.12-8.27-2.17-2.1-4.74-3.14-7.69-3.14-1.79,0-3.4.29-4.83.87-1.44.58-2.74,1.57-3.9,2.97-1.48,1.79-2.45,4.1-2.91,6.93-.47,2.83-.7,5.92-.7,9.26,0,3.73.62,7.3,1.86,10.71,1.24,3.42,2.93,6.21,5.07,8.38,2.13,2.17,4.6,3.26,7.39,3.26Z" class="cls-9"/>
88
+ </g>
89
+ <path d="M721.82,459.27c-1.9,0-3.57-.7-5-2.1-1.43-1.4-2.14-3.08-2.14-5.04,0-2.08.71-3.84,2.14-5.26,1.43-1.43,3.09-2.14,5-2.14,2.14,0,3.91.71,5.31,2.14,1.4,1.43,2.1,3.18,2.1,5.26,0,1.96-.7,3.64-2.1,5.04-1.4,1.4-3.17,2.1-5.31,2.1Z" class="cls-9"/>
90
+ </g>
91
+ </svg>