Compare commits

...

No commits in common. 'dbcedf0f5c47902775f6d7884e6d2d91cca65130' and '399524fb8d8ece0fb9e84df33834581e22fef7e0' have entirely different histories.

164
.gitignore vendored

@ -0,0 +1,164 @@
### Python template
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,3 @@
<component name="ProjectDictionaryState">
<dictionary name="old-tom" />
</component>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Pipenv (sttFunctionCallBackend)" />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State />
<State>
<id>CSS</id>
</State>
<State>
<id>Probable bugsCSS</id>
</State>
</expanded-state>
<selected-state>
<State>
<id>CSS</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Pipenv (sttFunctionCallBackend)" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/sttFunctionCallBackend.iml" filepath="$PROJECT_DIR$/.idea/sttFunctionCallBackend.iml" />
</modules>
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

@ -1,9 +0,0 @@
MIT License
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

@ -0,0 +1,16 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
fastapi = "*"
uvicorn = {version = "*", extras = ["standard"]}
ipython = "*"
marqo = "*"
[dev-packages]
[requires]
python_version = "3.10"
python_full_version = "3.10.11"

793
Pipfile.lock generated

@ -0,0 +1,793 @@
{
"_meta": {
"hash": {
"sha256": "556feb6233fdafb10943f454e4c984bafeeeec9e7e35bc1efe86e709da72eb1b"
},
"pipfile-spec": 6,
"requires": {
"python_full_version": "3.10.11",
"python_version": "3.10"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"annotated-types": {
"hashes": [
"sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53",
"sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"
],
"markers": "python_version >= '3.8'",
"version": "==0.7.0"
},
"anyio": {
"hashes": [
"sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028",
"sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"
],
"markers": "python_version >= '3.9'",
"version": "==4.9.0"
},
"asttokens": {
"hashes": [
"sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7",
"sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"
],
"markers": "python_version >= '3.8'",
"version": "==3.0.0"
},
"certifi": {
"hashes": [
"sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651",
"sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"
],
"markers": "python_version >= '3.6'",
"version": "==2025.1.31"
},
"charset-normalizer": {
"hashes": [
"sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537",
"sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa",
"sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a",
"sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294",
"sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b",
"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd",
"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601",
"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd",
"sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4",
"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d",
"sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2",
"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313",
"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd",
"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa",
"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8",
"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1",
"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2",
"sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496",
"sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d",
"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b",
"sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e",
"sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a",
"sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4",
"sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca",
"sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78",
"sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408",
"sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5",
"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3",
"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f",
"sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a",
"sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765",
"sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6",
"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146",
"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6",
"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9",
"sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd",
"sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c",
"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f",
"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545",
"sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176",
"sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770",
"sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824",
"sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f",
"sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf",
"sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487",
"sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d",
"sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd",
"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b",
"sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534",
"sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f",
"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b",
"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9",
"sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd",
"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125",
"sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9",
"sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de",
"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11",
"sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d",
"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35",
"sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f",
"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda",
"sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7",
"sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a",
"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971",
"sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8",
"sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41",
"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d",
"sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f",
"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757",
"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a",
"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886",
"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77",
"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76",
"sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247",
"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85",
"sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb",
"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7",
"sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e",
"sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6",
"sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037",
"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1",
"sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e",
"sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807",
"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407",
"sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c",
"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12",
"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3",
"sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089",
"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd",
"sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e",
"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00",
"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"
],
"markers": "python_version >= '3.7'",
"version": "==3.4.1"
},
"click": {
"hashes": [
"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2",
"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"
],
"markers": "python_version >= '3.7'",
"version": "==8.1.8"
},
"decorator": {
"hashes": [
"sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360",
"sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"
],
"markers": "python_version >= '3.8'",
"version": "==5.2.1"
},
"exceptiongroup": {
"hashes": [
"sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b",
"sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"
],
"markers": "python_version < '3.11'",
"version": "==1.2.2"
},
"executing": {
"hashes": [
"sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa",
"sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"
],
"markers": "python_version >= '3.8'",
"version": "==2.2.0"
},
"fastapi": {
"hashes": [
"sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681",
"sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"
],
"index": "pypi",
"version": "==0.115.12"
},
"h11": {
"hashes": [
"sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d",
"sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"
],
"markers": "python_version >= '3.7'",
"version": "==0.14.0"
},
"httptools": {
"hashes": [
"sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a",
"sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd",
"sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2",
"sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17",
"sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8",
"sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3",
"sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5",
"sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da",
"sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0",
"sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721",
"sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636",
"sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff",
"sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0",
"sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071",
"sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c",
"sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4",
"sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1",
"sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9",
"sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44",
"sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083",
"sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003",
"sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959",
"sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc",
"sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076",
"sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490",
"sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660",
"sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6",
"sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c",
"sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50",
"sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547",
"sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba",
"sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440",
"sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988",
"sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab",
"sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970",
"sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1",
"sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2",
"sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f",
"sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81",
"sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069",
"sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975",
"sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f",
"sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"
],
"version": "==0.6.4"
},
"idna": {
"hashes": [
"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9",
"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"
],
"markers": "python_version >= '3.6'",
"version": "==3.10"
},
"ipython": {
"hashes": [
"sha256:d200b7d93c3f5883fc36ab9ce28a18249c7706e51347681f80a0aef9895f2520",
"sha256:e6b7470468ba6f1f0a7b116bb688a3ece2f13e2f94138e508201fad677a788ba"
],
"index": "pypi",
"version": "==8.35.0"
},
"jedi": {
"hashes": [
"sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0",
"sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"
],
"markers": "python_version >= '3.6'",
"version": "==0.19.2"
},
"marqo": {
"hashes": [
"sha256:5c2e0a01fc3a7be5a7db8a4630f2f7d7164b09cf8d72480a5f6db68550f24afb",
"sha256:e30e33308465629ff5b245d1072cb5a94606891fceb84d8cd873995066bd4b17"
],
"index": "pypi",
"version": "==3.12.0"
},
"matplotlib-inline": {
"hashes": [
"sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90",
"sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"
],
"markers": "python_version >= '3.8'",
"version": "==0.1.7"
},
"packaging": {
"hashes": [
"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759",
"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"
],
"markers": "python_version >= '3.8'",
"version": "==24.2"
},
"parso": {
"hashes": [
"sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18",
"sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"
],
"markers": "python_version >= '3.6'",
"version": "==0.8.4"
},
"pexpect": {
"hashes": [
"sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523",
"sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"
],
"markers": "sys_platform != 'win32' and sys_platform != 'emscripten'",
"version": "==4.9.0"
},
"prompt-toolkit": {
"hashes": [
"sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab",
"sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"
],
"markers": "python_full_version >= '3.8.0'",
"version": "==3.0.50"
},
"ptyprocess": {
"hashes": [
"sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
"sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
],
"version": "==0.7.0"
},
"pure-eval": {
"hashes": [
"sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0",
"sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"
],
"version": "==0.2.3"
},
"pydantic": {
"hashes": [
"sha256:7471657138c16adad9322fe3070c0116dd6c3ad8d649300e3cbdfe91f4db4ec3",
"sha256:a082753436a07f9ba1289c6ffa01cd93db3548776088aa917cc43b63f68fa60f"
],
"markers": "python_version >= '3.9'",
"version": "==2.11.3"
},
"pydantic-core": {
"hashes": [
"sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672",
"sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1",
"sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add",
"sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068",
"sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b",
"sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505",
"sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8",
"sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5",
"sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e",
"sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544",
"sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4",
"sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a",
"sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a",
"sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1",
"sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266",
"sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83",
"sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764",
"sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde",
"sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26",
"sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896",
"sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18",
"sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939",
"sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48",
"sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a",
"sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761",
"sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7",
"sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5",
"sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5",
"sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d",
"sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e",
"sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3",
"sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db",
"sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33",
"sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850",
"sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde",
"sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2",
"sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb",
"sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02",
"sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c",
"sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77",
"sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504",
"sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516",
"sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24",
"sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a",
"sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331",
"sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396",
"sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c",
"sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea",
"sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b",
"sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969",
"sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b",
"sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea",
"sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927",
"sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc",
"sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e",
"sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595",
"sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d",
"sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498",
"sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe",
"sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599",
"sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e",
"sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89",
"sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6",
"sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d",
"sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523",
"sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5",
"sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd",
"sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d",
"sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a",
"sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe",
"sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df",
"sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c",
"sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30",
"sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e",
"sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96",
"sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f",
"sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3",
"sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824",
"sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde",
"sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d",
"sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3",
"sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568",
"sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961",
"sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4",
"sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda",
"sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5",
"sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad",
"sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db",
"sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd",
"sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383",
"sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40",
"sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f",
"sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b",
"sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc",
"sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5",
"sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65",
"sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39",
"sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89",
"sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"
],
"markers": "python_version >= '3.9'",
"version": "==2.33.1"
},
"pygments": {
"hashes": [
"sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f",
"sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"
],
"markers": "python_version >= '3.8'",
"version": "==2.19.1"
},
"python-dotenv": {
"hashes": [
"sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5",
"sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"
],
"version": "==1.1.0"
},
"pyyaml": {
"hashes": [
"sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff",
"sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48",
"sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086",
"sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e",
"sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133",
"sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5",
"sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484",
"sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee",
"sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5",
"sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68",
"sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a",
"sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf",
"sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99",
"sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8",
"sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85",
"sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19",
"sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc",
"sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a",
"sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1",
"sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317",
"sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c",
"sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631",
"sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d",
"sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652",
"sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5",
"sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e",
"sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b",
"sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8",
"sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476",
"sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706",
"sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563",
"sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237",
"sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b",
"sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083",
"sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180",
"sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425",
"sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e",
"sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f",
"sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725",
"sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183",
"sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab",
"sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774",
"sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725",
"sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e",
"sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5",
"sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d",
"sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290",
"sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44",
"sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed",
"sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4",
"sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba",
"sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12",
"sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"
],
"version": "==6.0.2"
},
"requests": {
"hashes": [
"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"
],
"markers": "python_version >= '3.8'",
"version": "==2.32.3"
},
"sniffio": {
"hashes": [
"sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2",
"sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"
],
"markers": "python_version >= '3.7'",
"version": "==1.3.1"
},
"stack-data": {
"hashes": [
"sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9",
"sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"
],
"version": "==0.6.3"
},
"starlette": {
"hashes": [
"sha256:3c88d58ee4bd1bb807c0d1acb381838afc7752f9ddaec81bbe4383611d833230",
"sha256:77c74ed9d2720138b25875133f3a2dae6d854af2ec37dceb56aef370c1d8a227"
],
"markers": "python_version >= '3.9'",
"version": "==0.46.1"
},
"traitlets": {
"hashes": [
"sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7",
"sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"
],
"markers": "python_version >= '3.8'",
"version": "==5.14.3"
},
"typing-extensions": {
"hashes": [
"sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c",
"sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"
],
"markers": "python_version >= '3.8'",
"version": "==4.13.2"
},
"typing-inspection": {
"hashes": [
"sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f",
"sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"
],
"markers": "python_version >= '3.9'",
"version": "==0.4.0"
},
"urllib3": {
"hashes": [
"sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466",
"sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"
],
"markers": "python_version >= '3.9'",
"version": "==2.4.0"
},
"uvicorn": {
"extras": [
"standard"
],
"hashes": [
"sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4",
"sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9"
],
"index": "pypi",
"version": "==0.34.0"
},
"uvloop": {
"hashes": [
"sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0",
"sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f",
"sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc",
"sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414",
"sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f",
"sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d",
"sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd",
"sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff",
"sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c",
"sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3",
"sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d",
"sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a",
"sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb",
"sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2",
"sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0",
"sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6",
"sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c",
"sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af",
"sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc",
"sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb",
"sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75",
"sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb",
"sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553",
"sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e",
"sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6",
"sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d",
"sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206",
"sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc",
"sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281",
"sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b",
"sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8",
"sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79",
"sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f",
"sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe",
"sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26",
"sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816",
"sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"
],
"version": "==0.21.0"
},
"watchfiles": {
"hashes": [
"sha256:0125f91f70e0732a9f8ee01e49515c35d38ba48db507a50c5bdcad9503af5827",
"sha256:0a04059f4923ce4e856b4b4e5e783a70f49d9663d22a4c3b3298165996d1377f",
"sha256:0b289572c33a0deae62daa57e44a25b99b783e5f7aed81b314232b3d3c81a11d",
"sha256:10f6ae86d5cb647bf58f9f655fcf577f713915a5d69057a0371bc257e2553234",
"sha256:13bb21f8ba3248386337c9fa51c528868e6c34a707f729ab041c846d52a0c69a",
"sha256:15ac96dd567ad6c71c71f7b2c658cb22b7734901546cd50a475128ab557593ca",
"sha256:18b3bd29954bc4abeeb4e9d9cf0b30227f0f206c86657674f544cb032296acd5",
"sha256:1909e0a9cd95251b15bff4261de5dd7550885bd172e3536824bf1cf6b121e200",
"sha256:1a2902ede862969077b97523987c38db28abbe09fb19866e711485d9fbf0d417",
"sha256:1a7bac2bde1d661fb31f4d4e8e539e178774b76db3c2c17c4bb3e960a5de07a2",
"sha256:237f9be419e977a0f8f6b2e7b0475ababe78ff1ab06822df95d914a945eac827",
"sha256:266710eb6fddc1f5e51843c70e3bebfb0f5e77cf4f27129278c70554104d19ed",
"sha256:29c7fd632ccaf5517c16a5188e36f6612d6472ccf55382db6c7fe3fcccb7f59f",
"sha256:2b7a21715fb12274a71d335cff6c71fe7f676b293d322722fe708a9ec81d91f5",
"sha256:2cfb371be97d4db374cba381b9f911dd35bb5f4c58faa7b8b7106c8853e5d225",
"sha256:2cfcb3952350e95603f232a7a15f6c5f86c5375e46f0bd4ae70d43e3e063c13d",
"sha256:2f1fefb2e90e89959447bc0420fddd1e76f625784340d64a2f7d5983ef9ad246",
"sha256:360a398c3a19672cf93527f7e8d8b60d8275119c5d900f2e184d32483117a705",
"sha256:3e380c89983ce6e6fe2dd1e1921b9952fb4e6da882931abd1824c092ed495dec",
"sha256:4a8ec1e4e16e2d5bafc9ba82f7aaecfeec990ca7cd27e84fb6f191804ed2fcfc",
"sha256:4ab626da2fc1ac277bbf752446470b367f84b50295264d2d313e28dc4405d663",
"sha256:4b6227351e11c57ae997d222e13f5b6f1f0700d84b8c52304e8675d33a808382",
"sha256:554389562c29c2c182e3908b149095051f81d28c2fec79ad6c8997d7d63e0009",
"sha256:5c40fe7dd9e5f81e0847b1ea64e1f5dd79dd61afbedb57759df06767ac719b40",
"sha256:68b2dddba7a4e6151384e252a5632efcaa9bc5d1c4b567f3cb621306b2ca9f63",
"sha256:7ee32c9a9bee4d0b7bd7cbeb53cb185cf0b622ac761efaa2eba84006c3b3a614",
"sha256:830aa432ba5c491d52a15b51526c29e4a4b92bf4f92253787f9726fe01519487",
"sha256:832ccc221927c860e7286c55c9b6ebcc0265d5e072f49c7f6456c7798d2b39aa",
"sha256:839ebd0df4a18c5b3c1b890145b5a3f5f64063c2a0d02b13c76d78fe5de34936",
"sha256:852de68acd6212cd6d33edf21e6f9e56e5d98c6add46f48244bd479d97c967c6",
"sha256:85fbb6102b3296926d0c62cfc9347f6237fb9400aecd0ba6bbda94cae15f2b3b",
"sha256:86c0df05b47a79d80351cd179893f2f9c1b1cae49d96e8b3290c7f4bd0ca0a92",
"sha256:894342d61d355446d02cd3988a7326af344143eb33a2fd5d38482a92072d9563",
"sha256:8c0db396e6003d99bb2d7232c957b5f0b5634bbd1b24e381a5afcc880f7373fb",
"sha256:8e637810586e6fe380c8bc1b3910accd7f1d3a9a7262c8a78d4c8fb3ba6a2b3d",
"sha256:9475b0093767e1475095f2aeb1d219fb9664081d403d1dff81342df8cd707034",
"sha256:95cf944fcfc394c5f9de794ce581914900f82ff1f855326f25ebcf24d5397418",
"sha256:974866e0db748ebf1eccab17862bc0f0303807ed9cda465d1324625b81293a18",
"sha256:9848b21ae152fe79c10dd0197304ada8f7b586d3ebc3f27f43c506e5a52a863c",
"sha256:9f4571a783914feda92018ef3901dab8caf5b029325b5fe4558c074582815249",
"sha256:a056c2f692d65bf1e99c41045e3bdcaea3cb9e6b5a53dcaf60a5f3bd95fc9763",
"sha256:a0dbcb1c2d8f2ab6e0a81c6699b236932bd264d4cef1ac475858d16c403de74d",
"sha256:a16512051a822a416b0d477d5f8c0e67b67c1a20d9acecb0aafa3aa4d6e7d256",
"sha256:a2014a2b18ad3ca53b1f6c23f8cd94a18ce930c1837bd891262c182640eb40a6",
"sha256:a3904d88955fda461ea2531fcf6ef73584ca921415d5cfa44457a225f4a42bc1",
"sha256:a74add8d7727e6404d5dc4dcd7fac65d4d82f95928bbee0cf5414c900e86773e",
"sha256:ab44e1580924d1ffd7b3938e02716d5ad190441965138b4aa1d1f31ea0877f04",
"sha256:b551d4fb482fc57d852b4541f911ba28957d051c8776e79c3b4a51eb5e2a1b11",
"sha256:b5eb568c2aa6018e26da9e6c86f3ec3fd958cee7f0311b35c2630fa4217d17f2",
"sha256:b659576b950865fdad31fa491d31d37cf78b27113a7671d39f919828587b429b",
"sha256:b6e76ceb1dd18c8e29c73f47d41866972e891fc4cc7ba014f487def72c1cf096",
"sha256:b7529b5dcc114679d43827d8c35a07c493ad6f083633d573d81c660abc5979e9",
"sha256:b9dca99744991fc9850d18015c4f0438865414e50069670f5f7eee08340d8b40",
"sha256:ba5552a1b07c8edbf197055bc9d518b8f0d98a1c6a73a293bc0726dce068ed01",
"sha256:bfe0cbc787770e52a96c6fda6726ace75be7f840cb327e1b08d7d54eadc3bc85",
"sha256:c0901429650652d3f0da90bad42bdafc1f9143ff3605633c455c999a2d786cac",
"sha256:cb1489f25b051a89fae574505cc26360c8e95e227a9500182a7fe0afcc500ce0",
"sha256:cd47d063fbeabd4c6cae1d4bcaa38f0902f8dc5ed168072874ea11d0c7afc1ff",
"sha256:d363152c5e16b29d66cbde8fa614f9e313e6f94a8204eaab268db52231fe5358",
"sha256:d5730f3aa35e646103b53389d5bc77edfbf578ab6dab2e005142b5b80a35ef25",
"sha256:d6f9367b132078b2ceb8d066ff6c93a970a18c3029cea37bfd7b2d3dd2e5db8f",
"sha256:dfd6ae1c385ab481766b3c61c44aca2b3cd775f6f7c0fa93d979ddec853d29d5",
"sha256:e0da39ff917af8b27a4bdc5a97ac577552a38aac0d260a859c1517ea3dc1a7c4",
"sha256:ecf6cd9f83d7c023b1aba15d13f705ca7b7d38675c121f3cc4a6e25bd0857ee9",
"sha256:ee0822ce1b8a14fe5a066f93edd20aada932acfe348bede8aa2149f1a4489512",
"sha256:f2e55a9b162e06e3f862fb61e399fe9f05d908d019d87bf5b496a04ef18a970a",
"sha256:f436601594f15bf406518af922a89dcaab416568edb6f65c4e5bbbad1ea45c11",
"sha256:f59b870db1f1ae5a9ac28245707d955c8721dd6565e7f411024fa374b5362d1d",
"sha256:fc533aa50664ebd6c628b2f30591956519462f5d27f951ed03d6c82b2dfd9965",
"sha256:fe43139b2c0fdc4a14d4f8d5b5d967f7a2777fd3d38ecf5b1ec669b0d7e43c21",
"sha256:fed1cd825158dcaae36acce7b2db33dcbfd12b30c34317a88b8ed80f0541cc57"
],
"version": "==1.0.5"
},
"wcwidth": {
"hashes": [
"sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859",
"sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"
],
"version": "==0.2.13"
},
"websockets": {
"hashes": [
"sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2",
"sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9",
"sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5",
"sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3",
"sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8",
"sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e",
"sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1",
"sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256",
"sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85",
"sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880",
"sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123",
"sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375",
"sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065",
"sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed",
"sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41",
"sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411",
"sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597",
"sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f",
"sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c",
"sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3",
"sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb",
"sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e",
"sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee",
"sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f",
"sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf",
"sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf",
"sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4",
"sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a",
"sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665",
"sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22",
"sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675",
"sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4",
"sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d",
"sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5",
"sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65",
"sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792",
"sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57",
"sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9",
"sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3",
"sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151",
"sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d",
"sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475",
"sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940",
"sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431",
"sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee",
"sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413",
"sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8",
"sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b",
"sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a",
"sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054",
"sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb",
"sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205",
"sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04",
"sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4",
"sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa",
"sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9",
"sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122",
"sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b",
"sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905",
"sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770",
"sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe",
"sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b",
"sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562",
"sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561",
"sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215",
"sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931",
"sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9",
"sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f",
"sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7"
],
"version": "==15.0.1"
}
},
"develop": {}
}

@ -1,3 +0,0 @@
# sttFunctionCallBackend
ReAct LLM DEMO

@ -0,0 +1,40 @@
[base]
# 多轮对话历史存储类型memory内存
history_chat_store = 'memory'
# 相似度阈值
similarity_threshold = 0.93
# debug模式 (不适用于流式输出)
debug = false
# 详细输出 (不适用于流式输出)
verbose = false
#
####### 模型配置 #######
[siliconflow]
# 硅基流动
# 密钥
api_key = 'sk-rdoyeoxcyvqjynufqjmewmipwtvrhjjzerqlinpqxiodyafp'
# 模型名称
model = 'Qwen/QwQ-32B'
# API地址
base_url = 'https://api.siliconflow.cn/v1/'
# 最大token数
max_tokens = 4096
# 温度系数
temperature = 0.6
# 是否流式返回
streaming = true
[ark]
# 火山引擎
# 密钥
api_key = '4eefc827-187f-4756-9637-7e0153c93d81'
# 模型名称
model = 'deepseek-r1-250120'
# API地址
base_url = 'https://ark.cn-beijing.volces.com/api/v3/'
# 最大token数
max_tokens = 4096
# 温度系数
temperature = 0.6
# 是否流式返回
streaming = true

@ -0,0 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/4/12 15:29
# @Author : old-tom
# @File : __init__.py
# @Project : sttFunctionCallBackend
# @Desc :

@ -0,0 +1,87 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/16 09:46
# @Author : old-tom
# @File : llm_agent
# @Project : llmFunctionCallDemo
# @Desc : 已图的方式构建代理,参考 https://github.langchain.ac.cn/langgraph/tutorials/introduction/#part-1-build-a-basic-chatbot
from typing import Annotated
from langchain_core.messages import AnyMessage
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from llmagent.llm_config import LLMConfigLoader
from langchain_openai import ChatOpenAI
from llmtools.tool_impl import tool_node, tools
from langgraph.prebuilt import tools_condition
from langgraph.checkpoint.memory import MemorySaver
memory = MemorySaver()
# 初始化LLM模型
llm_conf = LLMConfigLoader.load(item_name='siliconflow')
llm = ChatOpenAI(
model=llm_conf.model, api_key=llm_conf.api_key,
base_url=llm_conf.base_url, max_tokens=llm_conf.max_tokens,
temperature=llm_conf.temperature,
streaming=llm_conf.streaming
)
llm_with_tools = llm.bind_tools(tools)
class State(TypedDict):
"""
图的状态机
add_messages 函数会自动合并message到一个list中例如HumanMessage\AIMessage
"""
messages: Annotated[list[AnyMessage], add_messages]
graph_builder = StateGraph(State)
def chat(state: State):
"""
LLM单轮对话
:param state: 状态机
LLM需要从状态机获取message
:return:
"""
return {"messages": [llm_with_tools.invoke(state["messages"])]}
graph_builder.add_node("chat_llm", chat)
graph_builder.add_node("tools", tool_node)
graph_builder.add_edge(START, "chat_llm")
graph_builder.add_edge("chat_llm", END)
graph_builder.add_conditional_edges("chat_llm", tools_condition)
graph_builder.add_edge("tools", "chat_llm")
graph = graph_builder.compile(checkpointer=memory)
def stream_graph_updates(user_input: str):
config = {"configurable": {"thread_id": "1"}}
events = graph.stream(
{"messages": [{"role": "user", "content": user_input}]},
config,
stream_mode="values"
)
for event in events:
event["messages"][-1].pretty_print()
while True:
try:
user_input = input("User: ")
if user_input.lower() in ["quit", "exit", "q"]:
print("Goodbye!")
break
stream_graph_updates(user_input)
except:
# fallback if input() is not available
user_input = "What do you know about LangGraph?"
print("User: " + user_input)
stream_graph_updates(user_input)
break

@ -0,0 +1,65 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/29 08:49
# @Author : old-tom
# @File : llm_config
# @Project : llmFunctionCallDemo
# @Desc : llm配置文件解析
import os
from pydantic import BaseModel
import toml
# 默认配置文件名
DEFAULT_CONF_NAME = 'env.toml'
path = os.path.dirname(__file__)
path = os.path.dirname(path)
# 默认配置文件位置
DEFAULT_CONF_PATH = os.path.join(path, DEFAULT_CONF_NAME)
class ConfigNotFoundError(Exception):
"""
配置不存在异常
"""
def __init__(self, msg):
Exception.__init__(self, msg)
def load_env():
if not os.path.isfile(DEFAULT_CONF_PATH):
raise ConfigNotFoundError(f'模型配置文件{DEFAULT_CONF_NAME}不存在')
return toml.load(DEFAULT_CONF_PATH)
conf = load_env()
class LLMConf(BaseModel):
api_key: str
model: str
base_url: str
max_tokens: int
temperature: float
streaming: bool = True
class LLMConfigLoader(object):
@staticmethod
def load(item_name) -> LLMConf:
"""
校验并加载配置
:return:
"""
return LLMConf(**conf[item_name])
class BaseConf(BaseModel):
history_chat_store: str
similarity_threshold: float
debug: bool = False
verbose: bool = False
base_conf = BaseConf(**conf['base'])

@ -0,0 +1,8 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/4/12 14:54
# @Author : old-tom
# @File : __init__.py
# @Project : sttFunctionCallBackend
# @Desc : 自定义工具,langchain 标准

@ -0,0 +1,89 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/4/12 14:55
# @Author : old-tom
# @File : tool_impl
# @Project : sttFunctionCallBackend
# @Desc : 工具定义
from typing import Annotated
from langchain_core.tools import tool
from vector_db import query_vector_db
from log_conf import log
from llmagent.llm_config import base_conf
import json
from langchain_core.messages import ToolMessage
from langgraph.prebuilt import ToolNode
@tool("play_video", description="播放、查看、打开实时视频")
def play_video(camera_name: Annotated[str, "相机名称,例如南卡口1号相机"]) -> str:
camera_info = query_camera_from_db(camera_name)
log.info('【function】play_video 输入 [{}],向量库返回{}', camera_name, camera_info)
if camera_info:
if len(camera_info) > 1:
hit_camera_names = [x['carme_name'] for x in camera_info]
return f"找到以下相机,请选择一个:{hit_camera_names}"
else:
# TODO 调用业务系统
return f"正在打开{camera_name},请等待操作完成"
else:
return "未找到该相机,请尝试其他名称"
@tool("split_screen", description="切换分屏")
def split_screen(split_n: Annotated[int, "要切换的分屏数量,整数并且大于0例如1分屏、2分屏"]) -> str:
return f"正在切换到{split_n}分屏,请等待操作完成"
@tool("play_video_record", description="播放、打开录像")
def play_video_record(camera_name: Annotated[str, "相机名称,例如南卡口1号相机"],
start_time: Annotated[str, "录像开始时间,格式为yyyy-MM-dd hh:mm:ss例 2025-03-16 01:00:00"],
end_time: Annotated[str, "录像结束时间,格式为yyyy-MM-dd hh:mm:ss例 2025-03-16 02:09:31"]) -> str:
log.info('【function】play_video_record 输入 [{},{},{}]', camera_name, start_time, end_time)
return f"正在打开{camera_name}的录像,请等待操作完成"
@tool("switch_page", description="打开、跳转页面")
def switch_page(page_name: Annotated[str, "页面中文名称或者缩写,例:人员核查、系统日志、设备管理、首页"]) -> str:
pass
@tool("zoom_in", description="放大电子地图")
def zoom_in(level_n: Annotated[int, "放大等级,整数并且大于0小于5例如放大1级、放大2级"]) -> str:
pass
@tool("view_flight_details", description="查询指定机场指定航班及时间的出入境人员明细")
def view_flight_details(
airport_name: Annotated[str, "机场名称,简体中文,可以是缩写,例如:成都天府机场、天府机场、长水机场、上海浦东机场"],
flight_code: Annotated[
str, "航班编号,由字母+数字组成的完整编号,若编号包含多余字符(如标点符号),需过滤后保留有效部分"],
flight_date: Annotated[str, "提取完整日期(年月日),自动补零至标准格式 yyyy-MM-dd, 例2025-03-16"],
ie_type: Annotated[str, "出入境类型,仅识别'入境''出境'两种类型"]) -> str:
log.info('【function】view_flight_details 输入 [{},{},{},{}]', airport_name, flight_code, flight_date, ie_type)
return f"{airport_name}航班号{flight_code}{flight_date}{ie_type}数据,共100人乘机,起飞准时,晚点降落"
def query_camera_from_db(camera_name: str, top_n: int = 3) -> str:
"""
相机名称查询向量库,根据相似度阈值取top_one或者top_n
:param camera_name: 相机名称
:param top_n: 返回前N个
:return:
"""
rt = query_vector_db(camera_name)
if rt:
log.info('【function】相机相似度检索查询[{}],返回 {}', camera_name, rt)
# 判断相似度最高的相机是否超过阈值
top_one = rt['hits'][0]
# 相似度评分
score = top_one['_score']
if score > base_conf.similarity_threshold:
return rt['hits'][0:1]
else:
return rt['hits'][0:top_n]
tools = [play_video, split_screen, play_video_record, switch_page, zoom_in, view_flight_details]
tool_node = ToolNode(tools=tools)

@ -0,0 +1,44 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/4/12 14:51
# @Author : old-tom
# @File : log_conf
# @Project : sttFunctionCallBackend
# @Desc :
import sys
import os
from loguru import logger
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 日志输出路径
LOG_PATH = os.path.join(BASE_DIR, r'logout/logout.log')
class Logger(object):
def __init__(self):
self.logger = logger
self.logger.remove()
self.logger.add(sys.stdout,
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | " # 颜色>时间
"{process.name} | " # 进程名
"{thread.name} | " # 进程名
"<cyan>{module}</cyan>.<cyan>{function}</cyan>" # 模块名.方法名
":<cyan>{line}</cyan> | " # 行号
"<level>{level}</level>: " # 等级
"<level>{message}</level>", # 日志内容
)
# 输出到文件的格式,注释下面的add',则关闭日志写入
self.logger.add(LOG_PATH, level='DEBUG',
format='{time:YYYY-MM-DD HH:mm:ss} - ' # 时间
"{process.name} | " # 进程名
"{thread.name} | " # 进程名
'{module}.{function}:{line} - {level} -{message}', # 模块名.方法名:行号
rotation="10 MB")
def get_logger(self):
return self.logger
log = Logger().get_logger()

@ -0,0 +1,13 @@
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/hello/{name}")
async def say_hello(name: str):
return {"message": f"Hello {name}"}

@ -0,0 +1,95 @@
aiohappyeyeballs==2.6.1
aiohttp==3.11.16
aiosignal==1.3.2
annotated-types==0.7.0
anyio==4.9.0
asttokens==3.0.0
async-timeout==4.0.3
attrs==25.3.0
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
contourpy==1.3.1
cycler==0.12.1
dataclasses-json==0.6.7
decorator==5.2.1
distro==1.9.0
exceptiongroup==1.2.2
executing==2.2.0
fastapi==0.115.12
fonttools==4.57.0
frozenlist==1.5.0
h11==0.14.0
httpcore==1.0.8
httptools==0.6.4
httpx==0.28.1
httpx-sse==0.4.0
idna==3.10
ipython==8.35.0
jedi==0.19.2
jiter==0.9.0
jsonpatch==1.33
jsonpointer==3.0.0
kiwisolver==1.4.8
langchain==0.3.23
langchain-community==0.3.21
langchain-core==0.3.51
langchain-openai==0.3.12
langchain-text-splitters==0.3.8
langgraph==0.3.29
langgraph-checkpoint==2.0.24
langgraph-prebuilt==0.1.8
langgraph-sdk==0.1.61
langsmith==0.3.30
loguru==0.7.3
marqo==3.12.0
marshmallow==3.26.1
matplotlib==3.10.1
matplotlib-inline==0.1.7
multidict==6.4.3
mypy-extensions==1.0.0
numpy==2.2.4
openai==1.72.0
orjson==3.10.16
ormsgpack==1.9.1
packaging==24.2
parso==0.8.4
pexpect==4.9.0
pillow==11.1.0
prompt_toolkit==3.0.50
propcache==0.3.1
ptyprocess==0.7.0
pure_eval==0.2.3
pydantic==2.11.3
pydantic-settings==2.8.1
pydantic_core==2.33.1
Pygments==2.19.1
pyparsing==3.2.3
python-dateutil==2.9.0.post0
python-dotenv==1.1.0
PyYAML==6.0.2
regex==2024.11.6
requests==2.32.3
requests-toolbelt==1.0.0
six==1.17.0
sniffio==1.3.1
SQLAlchemy==2.0.40
stack-data==0.6.3
starlette==0.46.1
tenacity==9.1.2
tiktoken==0.9.0
toml==0.10.2
tqdm==4.67.1
traitlets==5.14.3
typing-inspect==0.9.0
typing-inspection==0.4.0
typing_extensions==4.13.2
urllib3==2.4.0
uvicorn==0.34.0
uvloop==0.21.0
watchfiles==1.0.5
wcwidth==0.2.13
websockets==15.0.1
xxhash==3.5.0
yarl==1.19.0
zstandard==0.23.0

@ -0,0 +1,631 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/16 20:09
# @Author : old-tom
# @File : vector_agent
# @Project : llmFunctionCallDemo
# @Desc : 向量数据库,解决相似度查询,例如 相机名称
import marqo
# 索引名称
INDEX_NAME = 'test_index'
# 初始化marqo
mq = marqo.Client(url='http://localhost:8882')
# mq.delete_index(INDEX_NAME)
settings = {
"treatUrlsAndPointersAsImages": False,
"model": "hf/bge-large-zh-v1.5",
"normalizeEmbeddings": True,
}
def create_and_set_index():
"""
全局只能调用一次
:return:
"""
mq.create_index(INDEX_NAME, settings_dict=settings)
# 添加文档(测试用)
mq.index(INDEX_NAME).add_documents([
{
"carme_name": "中方国门AI算法",
"ip": "192.168.10.80",
"location": "国门顶部"
},
{
"carme_name": "中方国门AI算法0102",
"ip": "192.168.10.80",
"location": "国门顶部"
},
{
"carme_name": "中方国门入境1",
"ip": "192.168.10.77",
"location": "国门通道"
},
{
"carme_name": "中方国门入境2",
"ip": "192.168.10.79",
"location": "国门通道"
},
{
"carme_name": "中方国门入境摄像头中",
"ip": "192.168.10.72",
"location": "登临检验"
},
{
"carme_name": "中方国门入境摄像头右",
"ip": "192.168.10.74",
"location": "登临检验"
},
{
"carme_name": "中方国门入境摄像头左",
"ip": "192.168.10.75",
"location": "登临检验"
},
{
"carme_name": "中方国门出境1",
"ip": "192.168.10.76",
"location": "国门通道"
},
{
"carme_name": "中方国门出境2",
"ip": "192.168.10.78",
"location": "国门通道"
},
{
"carme_name": "中方国门出境摄像头右",
"ip": "192.168.10.71",
"location": "登临检验"
},
{
"carme_name": "中方国门出境摄像头左",
"ip": "192.168.10.73",
"location": "登临检验"
},
{
"carme_name": "中方国门-面向国门球机",
"ip": "192.168.10.215",
"location": "国门通道拐角"
},
{
"carme_name": "中方国门高点1",
"ip": "192.168.10.70",
"location": "国门顶部"
},
{
"carme_name": "北卡口AI摄像头全景",
"ip": "192.168.10.30",
"location": "北卡口对面"
},
{
"carme_name": "北卡口AI摄像头细节",
"ip": "192.168.10.30",
"location": "北卡口对面"
},
{
"carme_name": "北卡口入境摄像头入场4号通道",
"ip": "192.168.10.112",
"location": "入场通道"
},
{
"carme_name": "北卡口入境摄像头入场5号通道",
"ip": "192.168.10.114",
"location": "入场通道"
},
{
"carme_name": "北卡口入境摄像头入场6号通道",
"ip": "192.168.10.117",
"location": "入场通道"
},
{
"carme_name": "北卡口入境摄像头出场1号通道",
"ip": "192.168.10.115",
"location": "出场通道"
},
{
"carme_name": "北卡口入境摄像头出场2号通道",
"ip": "192.168.10.116",
"location": "出场通道"
},
{
"carme_name": "北卡口入境摄像头出场3号通道",
"ip": "192.168.10.113",
"location": "出场通道"
},
{
"carme_name": "北卡口出口道路监控",
"ip": "192.168.10.153",
"location": "路口"
},
{
"carme_name": "能投大厦高点1",
"ip": "192.168.10.89",
"location": "能投楼顶"
},
{
"carme_name": "南卡口AI算法2",
"ip": "192.168.10.210",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口AI算法20102",
"ip": "192.168.10.210",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口AI算法识别摄像机",
"ip": "192.168.10.91",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口AI算法识别摄像机0102",
"ip": "192.168.10.91",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口出境摄像头1号通道",
"ip": "192.168.10.100",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头2号通道",
"ip": "192.168.10.103",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头3号通道",
"ip": "192.168.10.104",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头4号通道",
"ip": "192.168.10.102",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头5号通道",
"ip": "192.168.10.99",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头6号通道",
"ip": "192.168.10.101",
"location": "出境通道"
},
{
"carme_name": "南卡口入境摄像头7号通道",
"ip": "192.168.10.98",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头8号通道",
"ip": "192.168.10.93",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头9号通道",
"ip": "192.168.10.97",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头10号通道",
"ip": "192.168.10.96",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头11号通道",
"ip": "192.168.10.94",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头12号通道",
"ip": "192.168.10.95",
"location": "入境通道"
},
{
"carme_name": "南卡口高点-1",
"ip": "192.168.10.90",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口高点-2",
"ip": "192.168.10.92",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口高点-3",
"ip": "192.168.3.12",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境出场1",
"ip": "192.168.10.82",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境出场2",
"ip": "192.168.10.88",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境出场20102",
"ip": "192.168.10.88",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境摄像头入场2",
"ip": "192.168.10.87",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境摄像头入场20102",
"ip": "192.168.10.87",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境入场1",
"ip": "192.168.10.81",
"location": "南卡口顶部"
},
{
"carme_name": "H9861号口摄像头入场",
"ip": "192.168.10.107",
"location": "H986停车场出入口"
},
{
"carme_name": "H9862号口摄像头出场",
"ip": "192.168.10.109",
"location": "H987停车场出入口"
},
{
"carme_name": "H9862号口摄像头入场",
"ip": "192.168.10.190",
"location": "H988停车场出入口"
},
{
"carme_name": "车辆定位AI摄像头",
"ip": "192.168.10.29",
"location": "H988停车场山上"
},
{
"carme_name": "车辆定位AI摄像头0102",
"ip": "192.168.10.29",
"location": "H989停车场山上"
},
{
"carme_name": "北山货场森林公园制高点",
"ip": "192.168.10.191",
"location": "H990停车场山上"
},
{
"carme_name": "边民互市入境摄像头出场",
"ip": "192.168.10.119",
"location": "边民互市"
},
{
"carme_name": "边民互市入境摄像头入场",
"ip": "192.168.10.118",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区1号门入口",
"ip": "192.168.10.193",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区2号门入口",
"ip": "192.168.10.195",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区2号门出口",
"ip": "192.168.10.194",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区1号门出口",
"ip": "192.168.10.192",
"location": "出入口"
},
{
"carme_name": "大贸查验场进口入境摄像头入场东口",
"ip": "192.168.10.181",
"location": "出入口"
},
{
"carme_name": "大贸查验场进口入境摄像头出场东口",
"ip": "192.168.10.180",
"location": "出入口"
},
{
"carme_name": "大贸查验场(进口)入境摄像头入场(西口)",
"ip": "192.168.10.106",
"location": "出入口"
},
{
"carme_name": "大贸查验场进口高点1",
"ip": "192.168.10.156",
"location": "高点"
},
{
"carme_name": "大贸查验场出口出境摄像头出场2",
"ip": "192.168.10.110",
"location": "出入口"
},
{
"carme_name": "大贸查验场出口出境摄像头入场左",
"ip": "192.168.10.184",
"location": "出入口"
},
{
"carme_name": "大贸查验场出口出境摄像头出场1",
"ip": "192.168.10.111",
"location": "出入口"
},
{
"carme_name": "北山高速收费站入境摄像头入场出方向",
"ip": "192.168.10.170",
"location": "道路"
},
{
"carme_name": "北山高速收费站入境摄像头入场入方向",
"ip": "192.168.10.169",
"location": "道路"
},
{
"carme_name": "坝洒高点",
"ip": "192.168.10.164",
"location": ""
},
{
"carme_name": "停车场卡口(坝洒)入境摄像头入场",
"ip": "192.168.10.165",
"location": "出入口"
},
{
"carme_name": "停车场卡口(坝洒)入境摄像头出场",
"ip": "192.168.10.166",
"location": "出入口"
},
{
"carme_name": "东西干道卡口入境摄像头入场",
"ip": "192.168.10.136",
"location": "出入口"
},
{
"carme_name": "东西干道卡口入境摄像头出场",
"ip": "192.168.10.135",
"location": "出入口"
},
{
"carme_name": "主卡口(临时)货场大门-高点",
"ip": "192.168.10.146",
"location": ""
},
{
"carme_name": "利丰酒店往边民互市高点",
"ip": "192.168.10.211",
"location": "利丰酒店楼顶"
},
{
"carme_name": "利丰货场近御峰货场入境摄像头出场2",
"ip": "192.168.10.132",
"location": "出入口"
},
{
"carme_name": "利丰酒店往边民互市高点2",
"ip": "192.168.10.212",
"location": "利丰酒店楼顶"
},
{
"carme_name": "利丰货场近御峰货场入境摄像头入场2",
"ip": "192.168.10.139",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头出场左",
"ip": "192.168.10.127",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头入场左",
"ip": "192.168.10.128",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头出场右",
"ip": "192.168.10.126",
"location": "出入口"
},
{
"carme_name": "利丰货场-高点",
"ip": "192.168.10.125",
"location": ""
},
{
"carme_name": "利丰货场近御峰货场入境摄像头出场1",
"ip": "192.168.10.131",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头入场右",
"ip": "192.168.10.129",
"location": "出入口"
},
{
"carme_name": "利丰货场近御峰货场入境摄像头入场1",
"ip": "192.168.10.130",
"location": "出入口"
},
{
"carme_name": "南屏高速收费站入境摄像头出场",
"ip": "192.168.10.168",
"location": "道路"
},
{
"carme_name": "南屏高速收费站入境摄像头入场",
"ip": "192.168.10.167",
"location": "道路"
},
{
"carme_name": "停车场卡口老表入境摄像头入场",
"ip": "192.168.10.160",
"location": "出入口"
},
{
"carme_name": "停车场卡口老表右入境摄像头入场",
"ip": "192.168.10.162",
"location": "出入口"
},
{
"carme_name": "停车场卡口老表入境摄像头出场",
"ip": "192.168.10.161",
"location": "出入口"
},
{
"carme_name": "停车场卡口老表右入境摄像头出场",
"ip": "192.168.10.163",
"location": "出入口"
},
{
"carme_name": "槟榔寨站入境摄像头入场",
"ip": "192.168.10.173",
"location": "道路"
},
{
"carme_name": "槟榔寨站入境摄像头出场",
"ip": "192.168.10.174",
"location": "道路"
},
{
"carme_name": "外围冷链停车区入境摄像头出场",
"ip": "192.168.10.158",
"location": "出入口"
},
{
"carme_name": "外围冷链停车区入境摄像头入场",
"ip": "192.168.10.157",
"location": "出入口"
},
{
"carme_name": "清水河隧道出",
"ip": "192.168.10.175",
"location": "道路"
},
{
"carme_name": "清水河隧道入",
"ip": "192.168.10.186",
"location": "道路"
},
{
"carme_name": "商阜路闭环区道路监控-高点",
"ip": "192.168.10.154",
"location": "道路"
},
{
"carme_name": "商阜路闭环区道路监控道路监控高点2",
"ip": "192.168.10.155",
"location": "道路"
},
{
"carme_name": "商阜路闭环区道路监控道路监控-后",
"ip": "192.168.10.152",
"location": "道路"
},
{
"carme_name": "越南城十字路口-东西干道入境摄像头出场",
"ip": "192.168.10.172",
"location": "道路"
},
{
"carme_name": "越南城十字路口-东西干道入境摄像头入场",
"ip": "192.168.10.171",
"location": "道路"
},
{
"carme_name": "停车场卡口能投入境摄像头出场",
"ip": "192.168.10.124",
"location": "出入口"
},
{
"carme_name": "停车场卡口能投入境摄像头入场2",
"ip": "192.168.10.123",
"location": "出入口"
},
{
"carme_name": "停车场卡口能投入境摄像头入场1",
"ip": "192.168.10.122",
"location": "出入口"
},
{
"carme_name": "御峰货场冷链入境摄像头出场出口",
"ip": "192.168.10.145",
"location": "出入口"
},
{
"carme_name": "御峰货场(冷链)-高点",
"ip": "192.168.10.137",
"location": ""
},
{
"carme_name": "御峰货场冷链入境摄像头入场进口",
"ip": "192.168.10.133",
"location": "出入口"
},
{
"carme_name": "御峰货场冷链入境摄像头入场出口",
"ip": "192.168.10.138",
"location": "出入口"
},
{
"carme_name": "御峰货场冷链入境摄像头出场进口",
"ip": "192.168.10.141",
"location": "出入口"
},
{
"carme_name": "御峰货场干货入境摄像头入场",
"ip": "192.168.10.140",
"location": "出入口"
},
{
"carme_name": "御峰货场干货入境摄像头入场2",
"ip": "192.168.10.148",
"location": "出入口"
},
{
"carme_name": "御峰货场干货入境摄像头出场",
"ip": "192.168.10.144",
"location": "出入口"
},
{
"carme_name": "御峰货场(干货)-高点1",
"ip": "192.168.10.142",
"location": ""
},
{
"carme_name": "御峰货场(干货)-高点2",
"ip": "192.168.10.143",
"location": ""
},
{
"carme_name": "御峰货场干货入境摄像头出场2",
"ip": "192.168.10.147",
"location": "出入口"
}],
tensor_fields=["carme_name"]
)
def query_vector_db(query):
return mq.index(INDEX_NAME).search(q=query)
if __name__ == '__main__':
# create_and_set_index()
rt = query_vector_db('利丰酒店高点')
# TODO 根据 _score字段 取出相似度最高的结果
if rt:
for ele in rt['hits']:
print(ele)
Loading…
Cancel
Save