Как самому сделать сервер телефонных звонков ChatGPT
Сервер телефонных звонков ChatGPT
Работает от [Vocode](https://docs.vocode.dev/welcome )
1. Создайте [Twilio](https://www.twilio.com /) учетная запись.
2. Найдите учетные данные своей учетной записи в разделе "Информация об учетной записи" на панели мониторинга.
3. Установите переменные окружения `TWILIO_ACCOUNT_SID` и `TWILIO_AUTH_TOKEN` в качестве секретов в этом Repl.
4. На панели управления Twilio перейдите в раздел "Номера телефонов" -> "Управление", чтобы получить новый номер телефона.
5. Обновите конфигурацию вашего номера, чтобы URL-адрес Webhook соответствовал URL-адресу вашего Repl (например, `https://<repl>.<имя пользователя>.repl.co/vocode `. Вот скриншот:
![Добавить URL-адрес реплика](TwilioConfigScreenshot.png)
6. Получите ключ API из Vocode [здесь](https://app.vocode.dev /).
7. Наберите свой номер и получайте удовольствие! 🥳
**Убедитесь, что вы установили следующие переменные среды:**
Установите переменную окружения `VOCODE_API_KEY` в качестве секретной в этом Repl с помощью вашего API-ключа из [Vocode](https://app.vocode.dev /).
Установите переменную окружения `TWILIO_ACCOUNT_SID` в качестве секрета в этом Repl с помощью вашего API-ключа из [Twilio]([https://app.vocode.dev /](https://www.twilio.com/try-twilio )).
Вы можете найти это в разделе "Информация об учетной записи" на панели мониторинга Twilio.
Установите переменную окружения `TWILIO_AUTH_TOKEN` в качестве секрета в этом Repl с помощью вашего API-ключа из [Twilio]([https://app.vocode.dev /](https://www.twilio.com/try-twilio )).
Вы можете найти это в разделе "Информация об учетной записи" на панели мониторинга Twilio.
Чтобы узнать больше о том, как работает Vocode, ознакомьтесь с их [документацией](https://docs.vocode.dev/welcome ).
# See README.md for instructions on how to get started from fastapi import Response import os import vocode from vocode.streaming.telephony.inbound_call_server import InboundCallServer from vocode.streaming.models.message import BaseMessage from vocode.streaming.models.telephony import TwilioConfig from vocode.streaming.models.agent import ChatGPTAgentConfig vocode.api_key = os.getenv("VOCODE_API_KEY") REPLIT_URL = f"https://{os.getenv('REPL_SLUG')}.{os.getenv('REPL_OWNER')}.repl.co" if __name__ == "__main__": server = InboundCallServer( agent_config=ChatGPTAgentConfig( initial_message=BaseMessage(text="Hey Zahid! What's up?"), prompt_preamble= "You are a helpful AI assistant. Answer questions in 50 words or less.", ), twilio_config=TwilioConfig( account_sid=os.getenv("TWILIO_ACCOUNT_SID"), auth_token=os.getenv("TWILIO_AUTH_TOKEN"), ), ) server.app.get("/")(lambda: Response( content= f"<div>Fork this Repl and see README.md for instructions! Don't forget to paste your Repl's URL into your Twilio config like this: {REPLIT_URL}/vocode<br><br>Watch the <a href='https://twitter.com/chillzaza_/status/1641255992045322240?s=20' target='_blank'>live demo</a> to see it in action!</div>", media_type="text/html")) server.run(host="0.0.0.0", port=3000)
[[package]] name = "aiohttp" version = "3.8.4" description = "Async http client/server framework (asyncio)" category = "main" optional = false python-versions = ">=3.6" [package.dependencies] aiosignal = ">=1.1.2" async-timeout = ">=4.0.0a3,<5.0" attrs = ">=17.3.0" charset-normalizer = ">=2.0,<4.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" yarl = ">=1.0,<2.0" [package.extras] speedups = ["aiodns", "brotli", "cchardet"] [[package]] name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] frozenlist = ">=1.1.0" [[package]] name = "anyio" version = "3.6.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" category = "main" optional = false python-versions = ">=3.6.2" [package.dependencies] idna = ">=2.8" sniffio = ">=1.1" [package.extras] doc = ["packaging", "sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"] test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "contextlib2", "uvloop (<0.15)", "mock (>=4)", "uvloop (>=0.15)"] trio = ["trio (>=0.16,<0.22)"] [[package]] name = "argon2-cffi" version = "21.3.0" description = "The secure Argon2 password hashing algorithm." category = "main" optional = false python-versions = ">=3.6" [package.dependencies] argon2-cffi-bindings = "*" [package.extras] dev = ["pre-commit", "cogapp", "tomli", "coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"] docs = ["sphinx", "sphinx-notfound-page", "furo"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] [[package]] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" category = "main" optional = false python-versions = ">=3.6" [package.dependencies] cffi = ">=1.0.1" [package.extras] dev = ["pytest", "cogapp", "pre-commit", "wheel"] tests = ["pytest"] [[package]] name = "async-timeout" version = "4.0.2" description = "Timeout context manager for asyncio programs" category = "main" optional = false python-versions = ">=3.6" [[package]] name = "attrs" version = "22.2.0" description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=3.6" [package.extras] cov = ["attrs", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] dev = ["attrs"] docs = ["furo", "sphinx", "myst-parser", "zope.interface", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] tests = ["attrs", "zope.interface"] tests-no-zope = ["hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist", "cloudpickle", "mypy (>=0.971,<0.990)", "pytest-mypy-plugins"] tests_no_zope = ["hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist", "cloudpickle", "mypy (>=0.971,<0.990)", "pytest-mypy-plugins"] [[package]] name = "azure-cognitiveservices-speech" version = "1.25.0" description = "\"Microsoft Cognitive Services Speech SDK\"" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "cachetools" version = "5.3.0" description = "Extensible memoizing collections and decorators" category = "main" optional = false python-versions = "~=3.7" [[package]] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" [[package]] name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." category = "main" optional = false python-versions = "*" [package.dependencies] pycparser = "*" [[package]] name = "charset-normalizer" version = "3.0.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false python-versions = "*" [[package]] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" [[package]] name = "cryptography" version = "38.0.4" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false python-versions = ">=3.6" [package.dependencies] cffi = ">=1.12" [package.extras] docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] sdist = ["setuptools-rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] [[package]] name = "dataclasses-json" version = "0.5.7" description = "Easily serialize dataclasses to and from JSON" category = "main" optional = false python-versions = ">=3.6" [package.dependencies] marshmallow = ">=3.3.0,<4.0.0" marshmallow-enum = ">=1.5.1,<2.0.0" typing-inspect = ">=0.4.0" [package.extras] dev = ["pytest (>=6.2.3)", "ipython", "mypy (>=0.710)", "hypothesis", "portray", "flake8", "simplejson", "types-dataclasses"] [[package]] name = "debugpy" version = "1.6.5" description = "An implementation of the Debug Adapter Protocol for Python" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" category = "main" optional = false python-versions = ">=3.5" [[package]] name = "fastapi" version = "0.92.0" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0" starlette = ">=0.25.0,<0.26.0" [package.extras] all = ["email-validator (>=1.1.1)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] dev = ["pre-commit (>=2.17.0,<3.0.0)", "ruff (==0.0.138)", "uvicorn[standard] (>=0.12.0,<0.21.0)"] doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer[all] (>=0.6.1,<0.8.0)"] test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==22.10.0)", "coverage[toml] (>=6.5.0,<8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<1.4.43)", "types-orjson (==3.6.2)", "types-ujson (==5.6.0.0)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] [[package]] name = "flask" version = "2.2.2" description = "A simple framework for building complex web applications." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] click = ">=8.0" itsdangerous = ">=2.0" Jinja2 = ">=3.0" Werkzeug = ">=2.2.2" [package.extras] async = ["asgiref (>=3.2)"] dotenv = ["python-dotenv"] [[package]] name = "frozenlist" version = "1.3.3" description = "A list-like structure which implements collections.abc.MutableSequence" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "google-api-core" version = "2.11.0" description = "Google API client core library" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] google-auth = ">=2.14.1,<3.0dev" googleapis-common-protos = ">=1.56.2,<2.0dev" grpcio = {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""} grpcio-status = {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""} protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" requests = ">=2.18.0,<3.0.0dev" [package.extras] grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio-status (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.49.1,<2.0dev)"] grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"] grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"] [[package]] name = "google-auth" version = "2.16.3" description = "Google Authentication Library" category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" [package.dependencies] cachetools = ">=2.0.0,<6.0" pyasn1-modules = ">=0.2.1" rsa = {version = ">=3.1.4,<5", markers = "python_version >= \"3.6\""} six = ">=1.9.0" [package.extras] aiohttp = ["requests (>=2.20.0,<3.0.0dev)", "aiohttp (>=3.6.2,<4.0.0dev)"] enterprise_cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] pyopenssl = ["pyopenssl (>=20.0.0)", "cryptography (>=38.0.3)"] reauth = ["pyu2f (>=0.1.5)"] requests = ["requests (>=2.20.0,<3.0.0dev)"] [[package]] name = "google-cloud-speech" version = "2.17.3" description = "Google Cloud Speech API client library" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] google-api-core = {version = ">=1.34.0,<2.0.0 || >=2.11.0,<3.0.0dev", extras = ["grpc"]} proto-plus = ">=1.22.0,<2.0.0dev" protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" [[package]] name = "google-cloud-texttospeech" version = "2.14.1" description = "Google Cloud Texttospeech API client library" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] google-api-core = {version = ">=1.34.0,<2.0.0 || >=2.11.0,<3.0.0dev", extras = ["grpc"]} proto-plus = ">=1.22.0,<2.0.0dev" protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" [[package]] name = "googleapis-common-protos" version = "1.59.0" description = "Common protobufs used in Google APIs" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" [package.extras] grpc = ["grpcio (>=1.44.0,<2.0.0dev)"] [[package]] name = "greenlet" version = "2.0.2" description = "Lightweight in-process concurrent programming" category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" [package.extras] docs = ["sphinx", "docutils (<0.18)"] test = ["objgraph", "psutil"] [[package]] name = "grpcio" version = "1.51.3" description = "HTTP/2-based RPC framework" category = "main" optional = false python-versions = ">=3.7" [package.extras] protobuf = ["grpcio-tools (>=1.51.3)"] [[package]] name = "grpcio-status" version = "1.51.3" description = "Status proto mapping for gRPC" category = "main" optional = false python-versions = ">=3.6" [package.dependencies] googleapis-common-protos = ">=1.5.5" grpcio = ">=1.51.3" protobuf = ">=4.21.6" [[package]] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false python-versions = ">=3.5" [[package]] name = "iso8601" version = "1.1.0" description = "Simple module to parse ISO 8601 dates" category = "main" optional = false python-versions = ">=3.6.2,<4.0" [[package]] name = "itsdangerous" version = "2.1.2" description = "Safely pass data to untrusted environments and back." category = "main" optional = false python-versions = ">=3.7" [[package]] name = "jedi" version = "0.18.2" description = "An autocompletion tool for Python that can be used for text editors." category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] parso = ">=0.8.0,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx-rtd-theme (==0.4.3)", "sphinx (==1.8.5)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] [[package]] name = "joblib" version = "1.2.0" description = "Lightweight pipelining with Python functions" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "langchain" version = "0.0.117" description = "Building applications with LLMs through composability" category = "main" optional = false python-versions = ">=3.8.1,<4.0" [package.dependencies] aiohttp = ">=3.8.3,<4.0.0" dataclasses-json = ">=0.5.7,<0.6.0" numpy = ">=1,<2" pydantic = ">=1,<2" PyYAML = ">=5.4.1" requests = ">=2,<3" SQLAlchemy = ">=1,<2" tenacity = ">=8.1.0,<9.0.0" [package.extras] all = ["faiss-cpu (>=1,<2)", "wikipedia (>=1,<2)", "elasticsearch (>=8,<9)", "opensearch-py (>=2.0.0,<3.0.0)", "redis (>=4,<5)", "manifest-ml (>=0.0.1,<0.0.2)", "spacy (>=3,<4)", "nltk (>=3,<4)", "transformers (>=4,<5)", "beautifulsoup4 (>=4,<5)", "torch (>=1,<2)", "jinja2 (>=3,<4)", "tiktoken (>=0,<1)", "pinecone-client (>=2,<3)", "weaviate-client (>=3,<4)", "google-api-python-client (==2.70.0)", "wolframalpha (==5.0.0)", "anthropic (>=0.2.2,<0.3.0)", "qdrant-client (>=1.0.4,<2.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "cohere (>=3,<4)", "openai (>=0,<1)", "nlpcloud (>=1,<2)", "nomic (>=1.0.43,<2.0.0)", "huggingface_hub (>=0,<1)", "google-search-results (>=2,<3)", "sentence-transformers (>=2,<3)", "pypdf (>=3.4.0,<4.0.0)", "networkx (>=2.6.3,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "deeplake (>=3.2.9,<4.0.0)", "pgvector (>=0.1.6,<0.2.0)", "psycopg2-binary (>=2.9.5,<3.0.0)"] llms = ["manifest-ml (>=0.0.1,<0.0.2)", "transformers (>=4,<5)", "torch (>=1,<2)", "anthropic (>=0.2.2,<0.3.0)", "cohere (>=3,<4)", "openai (>=0,<1)", "nlpcloud (>=1,<2)", "huggingface_hub (>=0,<1)"] [[package]] name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false python-versions = ">=3.7" [[package]] name = "marshmallow" version = "3.19.0" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] packaging = ">=17.0" [package.extras] dev = ["pytest", "pytz", "simplejson", "mypy (==0.990)", "flake8 (==5.0.4)", "flake8-bugbear (==22.10.25)", "pre-commit (>=2.4,<3.0)", "tox"] docs = ["sphinx (==5.3.0)", "sphinx-issues (==3.0.1)", "alabaster (==0.7.12)", "sphinx-version-warning (==1.1.2)", "autodocsumm (==0.2.9)"] lint = ["mypy (==0.990)", "flake8 (==5.0.4)", "flake8-bugbear (==22.10.25)", "pre-commit (>=2.4,<3.0)"] tests = ["pytest", "pytz", "simplejson"] [[package]] name = "marshmallow-enum" version = "1.5.1" description = "Enum field for Marshmallow" category = "main" optional = false python-versions = "*" [package.dependencies] marshmallow = ">=2.0.0" [[package]] name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" category = "main" optional = false python-versions = ">=3.6" [[package]] name = "multidict" version = "6.0.4" description = "multidict implementation" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." category = "main" optional = false python-versions = ">=3.5" [[package]] name = "nltk" version = "3.8.1" description = "Natural Language Toolkit" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] click = "*" joblib = "*" regex = ">=2021.8.3" tqdm = "*" [package.extras] all = ["scikit-learn", "python-crfsuite", "requests", "numpy", "pyparsing", "twython", "scipy", "matplotlib"] corenlp = ["requests"] machine_learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] plot = ["matplotlib"] tgrep = ["pyparsing"] twitter = ["twython"] [[package]] name = "numpy" version = "1.24.2" description = "Fundamental package for array computing in Python" category = "main" optional = false python-versions = ">=3.8" [[package]] name = "openai" version = "0.27.2" description = "Python client library for the OpenAI API" category = "main" optional = false python-versions = ">=3.7.1" [package.dependencies] aiohttp = "*" requests = ">=2.20" tqdm = "*" [package.extras] datalib = ["numpy", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "openpyxl (>=3.0.7)"] dev = ["black (>=21.6b0,<22.0.0)", "pytest (>=6.0.0,<7.0.0)", "pytest-asyncio", "pytest-mock"] embeddings = ["scikit-learn (>=1.0.2)", "tenacity (>=8.0.1)", "matplotlib", "plotly", "numpy", "scipy", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "openpyxl (>=3.0.7)"] wandb = ["wandb", "numpy", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "openpyxl (>=3.0.7)"] [[package]] name = "packaging" version = "23.0" description = "Core utilities for Python packages" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "parso" version = "0.8.3" description = "A Python Parser" category = "dev" optional = false python-versions = ">=3.6" [package.extras] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "passlib" version = "1.7.4" description = "comprehensive password hashing framework supporting over 30 schemes" category = "main" optional = false python-versions = "*" [package.dependencies] argon2-cffi = {version = ">=18.2.0", optional = true, markers = "extra == \"argon2\""} [package.extras] argon2 = ["argon2-cffi (>=18.2.0)"] bcrypt = ["bcrypt (>=3.1.0)"] build_docs = ["sphinx (>=1.6)", "sphinxcontrib-fulltoc (>=1.2.0)", "cloud-sptheme (>=1.10.1)"] totp = ["cryptography"] [[package]] name = "pathspec" version = "0.11.0" description = "Utility library for gitignore style pattern matching of file paths." category = "main" optional = false python-versions = ">=3.7" [[package]] name = "platformdirs" version = "3.1.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "main" optional = false python-versions = ">=3.7" [package.extras] docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)", "sphinx (>=6.1.3)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest (>=7.2.1)"] [[package]] name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false python-versions = ">=3.6" [package.extras] testing = ["pytest-benchmark", "pytest"] dev = ["tox", "pre-commit"] [[package]] name = "ply" version = "3.11" description = "Python Lex & Yacc" category = "main" optional = false python-versions = "*" [[package]] name = "proto-plus" version = "1.22.2" description = "Beautiful, Pythonic protocol buffers." category = "main" optional = false python-versions = ">=3.6" [package.dependencies] protobuf = ">=3.19.0,<5.0.0dev" [package.extras] testing = ["google-api-core[grpc] (>=1.31.5)"] [[package]] name = "protobuf" version = "4.22.1" description = "" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" category = "main" optional = false python-versions = "*" [[package]] name = "pyasn1-modules" version = "0.2.8" description = "A collection of ASN.1-based protocols modules." category = "main" optional = false python-versions = "*" [package.dependencies] pyasn1 = ">=0.4.6,<0.5.0" [[package]] name = "pycodestyle" version = "2.10.0" description = "Python style guide checker" category = "main" optional = false python-versions = ">=3.6" [[package]] name = "pycparser" version = "2.21" description = "C parser in Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pycryptodomex" version = "3.16.0" description = "Cryptographic library for Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "pydantic" version = "1.9.2" description = "Data validation and settings management using python type hints" category = "main" optional = false python-versions = ">=3.6.1" [package.dependencies] typing-extensions = ">=3.7.4.3" [package.extras] dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] [[package]] name = "pyflakes" version = "2.5.0" description = "passive checker of Python programs" category = "main" optional = false python-versions = ">=3.6" [[package]] name = "pyjwt" version = "2.6.0" description = "JSON Web Token implementation in Python" category = "main" optional = false python-versions = ">=3.7" [package.extras] crypto = ["cryptography (>=3.4.0)"] dev = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface", "cryptography (>=3.4.0)", "pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)", "pre-commit"] docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] tests = ["pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)"] [[package]] name = "pyseto" version = "1.7.0" description = "A Python implementation of PASETO/PASERK." category = "main" optional = false python-versions = ">=3.7,<4.0" [package.dependencies] cryptography = ">=36,<39" iso8601 = ">=1.0.2,<2.0.0" passlib = {version = ">=1.7.4,<2.0.0", extras = ["argon2"]} pycryptodomex = ">=3.12.0,<4.0.0" [package.extras] docs = ["Sphinx[docs] (>=4.3.2,<6.0.0)", "sphinx-autodoc-typehints[docs] (==1.12.0)", "sphinx-rtd-theme[docs] (>=1.0.0,<2.0.0)"] [[package]] name = "python-dotenv" version = "0.21.1" description = "Read key-value pairs from a .env file and set them as environment variables" category = "main" optional = false python-versions = ">=3.7" [package.extras] cli = ["click (>=5.0)"] [[package]] name = "python-lsp-jsonrpc" version = "1.0.0" description = "JSON RPC 2.0 server library" category = "dev" optional = false python-versions = "*" [package.dependencies] ujson = ">=3.0.0" [package.extras] test = ["coverage", "pytest-cov", "pytest", "pyflakes", "pycodestyle", "pylint"] [[package]] name = "python-multipart" version = "0.0.6" description = "A streaming multipart parser for Python" category = "main" optional = false python-versions = ">=3.7" [package.extras] dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==1.7.3)", "more-itertools (==4.3.0)", "pbr (==4.3.0)", "pluggy (==1.0.0)", "py (==1.11.0)", "pytest-cov (==4.0.0)", "pytest-timeout (==2.1.0)", "pytest (==7.2.0)", "pyyaml (==5.1)"] [[package]] name = "pytoolconfig" version = "1.2.5" description = "Python tool configuration" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] packaging = ">=22.0" platformdirs = {version = ">=1.4.4", optional = true, markers = "extra == \"global\""} tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["tabulate (>=0.8.9)", "sphinx (>=4.5.0)"] gendocs = ["sphinx (>=4.5.0)", "sphinx-autodoc-typehints (>=1.18.1)", "sphinx-rtd-theme (>=1.0.0)", "pytoolconfig"] global = ["platformdirs (>=1.4.4)"] validation = ["pydantic (>=1.7.4)"] [[package]] name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" [[package]] name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" category = "main" optional = false python-versions = ">=3.6" [[package]] name = "redis" version = "4.5.3" description = "Python client for Redis database and key-value store" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] async-timeout = {version = ">=4.0.2", markers = "python_version < \"3.11\""} [package.extras] hiredis = ["hiredis (>=1.0.0)"] ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] [[package]] name = "regex" version = "2023.3.23" description = "Alternative regular expression module, to replace re." category = "main" optional = false python-versions = ">=3.8" [[package]] name = "replit" version = "3.2.5" description = "A library for interacting with features of repl.it" category = "main" optional = false python-versions = ">=3.8,<4.0" [package.dependencies] aiohttp = ">=3.6.2,<4.0.0" Flask = ">=2.0.0,<3.0.0" protobuf = ">=4.21.8,<5.0.0" pyseto = ">=1.6.11,<2.0.0" requests = ">=2.25.1,<3.0.0" typing_extensions = ">=3.7.4,<4.0.0" Werkzeug = ">=2.0.0,<3.0.0" [[package]] name = "replit-python-lsp-server" version = "1.15.9" description = "Python Language Server for the Language Server Protocol" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] jedi = ">=0.17.2,<0.19.0" pluggy = ">=1.0.0" pyflakes = {version = ">=2.5.0,<2.6.0", optional = true, markers = "extra == \"pyflakes\""} python-lsp-jsonrpc = ">=1.0.0" rope = {version = ">0.10.5", optional = true, markers = "extra == \"rope\""} toml = ">=0.10.2" ujson = ">=3.0.0" whatthepatch = {version = ">=1.0.2,<2.0.0", optional = true, markers = "extra == \"yapf\""} yapf = {version = "*", optional = true, markers = "extra == \"yapf\""} [package.extras] all = ["autopep8 (>=1.6.0,<1.7.0)", "flake8 (>=5.0.0,<5.1.0)", "mccabe (>=0.7.0,<0.8.0)", "pycodestyle (>=2.9.0,<2.10.0)", "pydocstyle (>=2.0.0)", "pyflakes (>=2.5.0,<2.6.0)", "pylint (>=2.5.0)", "rope (>=0.10.5)", "yapf", "whatthepatch"] autopep8 = ["autopep8 (>=1.6.0,<1.7.0)"] flake8 = ["flake8 (>=5.0.0,<5.1.0)"] mccabe = ["mccabe (>=0.7.0,<0.8.0)"] pycodestyle = ["pycodestyle (>=2.9.0,<2.10.0)"] pydocstyle = ["pydocstyle (>=2.0.0)"] pyflakes = ["pyflakes (>=2.5.0,<2.6.0)"] pylint = ["pylint (>=2.5.0)"] rope = ["rope (>0.10.5)"] test = ["pylint (>=2.5.0)", "pytest", "pytest-cov", "coverage", "numpy (<1.23)", "pandas", "matplotlib", "pyqt5", "flaky"] websockets = ["websockets (>=10.3)"] yapf = ["yapf", "whatthepatch (>=1.0.2,<2.0.0)"] [[package]] name = "requests" version = "2.28.2" description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.7, <4" [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rope" version = "1.7.0" description = "a python refactoring library..." category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] pytoolconfig = {version = ">=1.2.2", extras = ["global"]} [package.extras] dev = ["pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)", "build (>=0.7.0)", "pre-commit (>=2.20.0)"] doc = ["pytoolconfig", "sphinx (>=4.5.0)", "sphinx-autodoc-typehints (>=1.18.1)", "sphinx-rtd-theme (>=1.0.0)"] [[package]] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" category = "main" optional = false python-versions = ">=3.6,<4" [package.dependencies] pyasn1 = ">=0.1.3" [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "sqlalchemy" version = "1.4.47" description = "Database Abstraction Library" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" [package.dependencies] greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} [package.extras] aiomysql = ["greenlet (!=0.4.17)", "aiomysql"] aiosqlite = ["typing-extensions (!=3.10.0.1)", "greenlet (!=0.4.17)", "aiosqlite"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4)"] mariadb_connector = ["mariadb (>=1.0.1,!=1.1.2)"] mssql = ["pyodbc"] mssql_pymssql = ["pymssql"] mssql_pyodbc = ["pyodbc"] mypy = ["sqlalchemy2-stubs", "mypy (>=0.910)"] mysql = ["mysqlclient (>=1.4.0,<2)", "mysqlclient (>=1.4.0)"] mysql_connector = ["mysql-connector-python"] oracle = ["cx-oracle (>=7,<8)", "cx-oracle (>=7)"] postgresql = ["psycopg2 (>=2.7)"] postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] postgresql_pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] postgresql_psycopg2binary = ["psycopg2-binary"] postgresql_psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql (<1)", "pymysql"] sqlcipher = ["sqlcipher3-binary"] [[package]] name = "starlette" version = "0.25.0" description = "The little ASGI library that shines." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] anyio = ">=3.4.0,<5" [package.extras] full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"] [[package]] name = "tenacity" version = "8.2.2" description = "Retry code until it succeeds" category = "main" optional = false python-versions = ">=3.6" [package.extras] doc = ["reno", "sphinx", "tornado (>=4.5)"] [[package]] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "tqdm" version = "4.65.0" description = "Fast, Extensible Progress Meter" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] dev = ["py-make (>=0.1.0)", "twine", "wheel"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] [[package]] name = "twilio" version = "7.17.0" description = "Twilio API client and TwiML generator" category = "main" optional = false python-versions = ">=3.6.0" [package.dependencies] PyJWT = ">=2.0.0,<3.0.0" pytz = "*" requests = ">=2.0.0" [[package]] name = "typing-extensions" version = "3.10.0.2" description = "Backported and Experimental Type Hints for Python 3.5+" category = "main" optional = false python-versions = "*" [[package]] name = "typing-inspect" version = "0.8.0" description = "Runtime inspection utilities for typing module." category = "main" optional = false python-versions = "*" [package.dependencies] mypy-extensions = ">=0.3.0" typing-extensions = ">=3.7.4" [[package]] name = "ujson" version = "5.7.0" description = "Ultra fast JSON encoder and decoder for Python" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "urllib3" version = "1.26.14" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.extras] brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "uvicorn" version = "0.20.0" description = "The lightning-fast ASGI server." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] click = ">=7.0" h11 = ">=0.8" [package.extras] standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] [[package]] name = "vocode" version = "0.1.65" description = "The all-in-one voice SDK" category = "main" optional = false python-versions = ">=3.9,<4.0" [package.dependencies] aiohttp = "3.8.4" aiosignal = "1.3.1" anyio = "3.6.2" async-timeout = "4.0.2" attrs = "22.2.0" azure-cognitiveservices-speech = "1.25.0" cachetools = "5.3.0" certifi = "2022.12.7" cffi = "1.15.1" charset-normalizer = "3.0.1" click = "8.1.3" dataclasses-json = "0.5.7" decorator = "5.1.1" fastapi = "0.92.0" frozenlist = "1.3.3" google-api-core = "2.11.0" google-auth = "2.16.3" google-cloud-speech = "2.17.3" google-cloud-texttospeech = "2.14.1" googleapis-common-protos = "1.59.0" grpcio = "1.51.3" grpcio-status = "1.51.3" h11 = "0.14.0" idna = "3.4" jinja2 = "3.1.2" joblib = "1.2.0" langchain = "0.0.117" markupsafe = "2.1.2" marshmallow = "3.19.0" marshmallow-enum = "1.5.1" mccabe = "0.7.0" multidict = "6.0.4" mypy-extensions = "1.0.0" nltk = "3.8.1" numpy = "1.24.2" openai = "0.27.2" packaging = "23.0" pathspec = "0.11.0" platformdirs = "3.1.0" ply = "3.11" proto-plus = "1.22.2" protobuf = "4.22.1" pyasn1 = "0.4.8" pyasn1-modules = "0.2.8" pycodestyle = "2.10.0" pycparser = "2.21" pydantic = ">=1.9.0" pyflakes = ">=2.5.0" pyjwt = "2.6.0" python-dotenv = "0.21.1" python-multipart = "0.0.6" pytz = "2022.7.1" pyyaml = "6.0" redis = "4.5.3" regex = "2023.3.23" requests = "2.28.2" rsa = "4.9" six = "1.16.0" sniffio = "1.3.0" sqlalchemy = "1.4.47" starlette = "0.25.0" tenacity = "8.2.2" tomli = "2.0.1" tqdm = "4.65.0" twilio = "7.17.0" typing-extensions = ">=3.10.0.2" typing-inspect = "0.8.0" urllib3 = "1.26.14" uvicorn = "0.20.0" websockets = "10.4" yarl = "1.8.2" [package.extras] io = ["sounddevice (==0.4.6)", "pyaudio (==0.2.13)", "pydub (==0.25.1)"] [[package]] name = "websockets" version = "10.4" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "werkzeug" version = "2.2.2" description = "The comprehensive WSGI web application library." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] MarkupSafe = ">=2.1.1" [package.extras] watchdog = ["watchdog"] [[package]] name = "whatthepatch" version = "1.0.3" description = "A patch parsing and application library." category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "yapf" version = "0.32.0" description = "A formatter for Python code." category = "dev" optional = false python-versions = "*" [[package]] name = "yarl" version = "1.8.2" description = "Yet another URL library" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] idna = ">=2.0" multidict = ">=4.0" [metadata] lock-version = "1.1" python-versions = ">=3.10.0,<3.11" content-hash = "259380ab7129dd06b74a1539cf7a1b235b7d98ac5407ea975719180d39643fb5" [metadata.files] aiohttp = [] aiosignal = [] anyio = [] argon2-cffi = [] argon2-cffi-bindings = [] async-timeout = [] attrs = [] azure-cognitiveservices-speech = [] cachetools = [] certifi = [] cffi = [] charset-normalizer = [] click = [] colorama = [] cryptography = [] dataclasses-json = [] debugpy = [] decorator = [] fastapi = [] flask = [] frozenlist = [] google-api-core = [] google-auth = [] google-cloud-speech = [] google-cloud-texttospeech = [] googleapis-common-protos = [] greenlet = [] grpcio = [] grpcio-status = [] h11 = [] idna = [] iso8601 = [] itsdangerous = [] jedi = [] jinja2 = [] joblib = [] langchain = [] markupsafe = [] marshmallow = [] marshmallow-enum = [] mccabe = [] multidict = [] mypy-extensions = [] nltk = [] numpy = [] openai = [] packaging = [] parso = [] passlib = [] pathspec = [] platformdirs = [] pluggy = [] ply = [] proto-plus = [] protobuf = [] pyasn1 = [] pyasn1-modules = [] pycodestyle = [] pycparser = [] pycryptodomex = [] pydantic = [] pyflakes = [] pyjwt = [] pyseto = [] python-dotenv = [] python-lsp-jsonrpc = [] python-multipart = [] pytoolconfig = [] pytz = [] pyyaml = [] redis = [] regex = [] replit = [] replit-python-lsp-server = [] requests = [] rope = [] rsa = [] six = [] sniffio = [] sqlalchemy = [] starlette = [] tenacity = [] toml = [] tomli = [] tqdm = [] twilio = [] typing-extensions = [] typing-inspect = [] ujson = [] urllib3 = [] uvicorn = [] vocode = [] websockets = [] werkzeug = [] whatthepatch = [] yapf = [] yarl = []
[tool.poetry] name = "python-template" version = "0.1.0" description = "" authors = ["Your Name <[email protected]>"] [tool.poetry.dependencies] python = ">=3.10.0,<3.11" numpy = "^1.22.2" replit = "^3.2.4" Flask = "^2.2.0" urllib3 = "^1.26.12" vocode = "0.1.65" [tool.poetry.dev-dependencies] debugpy = "^1.6.2" replit-python-lsp-server = {extras = ["yapf", "rope", "pyflakes"], version = "^1.5.9"} [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"