GitLab CI commited on
Commit
457d4b2
·
1 Parent(s): 5813146

Update game build from GitLab CI

Browse files
poetry.lock CHANGED
@@ -1,4 +1,37 @@
1
- # This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  [[package]]
4
  name = "av"
@@ -251,6 +284,34 @@ numpy = "*"
251
  pyyaml = ">=5.3,<7"
252
  setuptools = "*"
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  [[package]]
255
  name = "faster-whisper"
256
  version = "1.1.1"
@@ -397,6 +458,62 @@ setproctitle = ["setproctitle"]
397
  testing = ["coverage", "eventlet", "gevent", "pytest", "pytest-cov"]
398
  tornado = ["tornado (>=0.2)"]
399
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
400
  [[package]]
401
  name = "huggingface-hub"
402
  version = "0.27.1"
@@ -487,6 +604,17 @@ MarkupSafe = ">=2.0"
487
  [package.extras]
488
  i18n = ["Babel (>=2.7)"]
489
 
 
 
 
 
 
 
 
 
 
 
 
490
  [[package]]
491
  name = "markupsafe"
492
  version = "3.0.2"
@@ -557,6 +685,28 @@ files = [
557
  {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
558
  ]
559
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
560
  [[package]]
561
  name = "mpmath"
562
  version = "1.3.0"
@@ -574,6 +724,17 @@ docs = ["sphinx"]
574
  gmpy = ["gmpy2 (>=2.1.0a4)"]
575
  tests = ["pytest (>=4.6)"]
576
 
 
 
 
 
 
 
 
 
 
 
 
577
  [[package]]
578
  name = "networkx"
579
  version = "3.4.2"
@@ -894,6 +1055,138 @@ files = [
894
  [package.extras]
895
  test = ["numpy"]
896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  [[package]]
898
  name = "pyreadline3"
899
  version = "3.5.4"
@@ -908,6 +1201,20 @@ files = [
908
  [package.extras]
909
  dev = ["build", "flake8", "mypy", "pytest", "twine"]
910
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
911
  [[package]]
912
  name = "pyyaml"
913
  version = "6.0.2"
@@ -1011,6 +1318,28 @@ enabler = ["pytest-enabler (>=2.2)"]
1011
  test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
1012
  type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"]
1013
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1014
  [[package]]
1015
  name = "sympy"
1016
  version = "1.13.1"
@@ -1187,6 +1516,21 @@ files = [
1187
  {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
1188
  ]
1189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1190
  [[package]]
1191
  name = "urllib3"
1192
  version = "2.3.0"
@@ -1224,4 +1568,4 @@ watchdog = ["watchdog (>=2.3)"]
1224
  [metadata]
1225
  lock-version = "2.0"
1226
  python-versions = "^3.10"
1227
- content-hash = "e537dfb61ff964414aeb79e44376d70958ce8bf241d2bf22e7b1a30f98016292"
 
1
+ # This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
2
+
3
+ [[package]]
4
+ name = "annotated-types"
5
+ version = "0.7.0"
6
+ description = "Reusable constraint types to use with typing.Annotated"
7
+ optional = false
8
+ python-versions = ">=3.8"
9
+ files = [
10
+ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
11
+ {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
12
+ ]
13
+
14
+ [[package]]
15
+ name = "anyio"
16
+ version = "4.8.0"
17
+ description = "High level compatibility layer for multiple asynchronous event loop implementations"
18
+ optional = false
19
+ python-versions = ">=3.9"
20
+ files = [
21
+ {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
22
+ {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
23
+ ]
24
+
25
+ [package.dependencies]
26
+ exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
27
+ idna = ">=2.8"
28
+ sniffio = ">=1.1"
29
+ typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
30
+
31
+ [package.extras]
32
+ doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
33
+ test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"]
34
+ trio = ["trio (>=0.26.1)"]
35
 
36
  [[package]]
37
  name = "av"
 
284
  pyyaml = ">=5.3,<7"
285
  setuptools = "*"
286
 
287
+ [[package]]
288
+ name = "eval-type-backport"
289
+ version = "0.2.2"
290
+ description = "Like `typing._eval_type`, but lets older Python versions use newer typing features."
291
+ optional = false
292
+ python-versions = ">=3.8"
293
+ files = [
294
+ {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"},
295
+ {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"},
296
+ ]
297
+
298
+ [package.extras]
299
+ tests = ["pytest"]
300
+
301
+ [[package]]
302
+ name = "exceptiongroup"
303
+ version = "1.2.2"
304
+ description = "Backport of PEP 654 (exception groups)"
305
+ optional = false
306
+ python-versions = ">=3.7"
307
+ files = [
308
+ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
309
+ {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
310
+ ]
311
+
312
+ [package.extras]
313
+ test = ["pytest (>=6)"]
314
+
315
  [[package]]
316
  name = "faster-whisper"
317
  version = "1.1.1"
 
458
  testing = ["coverage", "eventlet", "gevent", "pytest", "pytest-cov"]
459
  tornado = ["tornado (>=0.2)"]
460
 
461
+ [[package]]
462
+ name = "h11"
463
+ version = "0.14.0"
464
+ description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
465
+ optional = false
466
+ python-versions = ">=3.7"
467
+ files = [
468
+ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
469
+ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
470
+ ]
471
+
472
+ [[package]]
473
+ name = "httpcore"
474
+ version = "1.0.7"
475
+ description = "A minimal low-level HTTP client."
476
+ optional = false
477
+ python-versions = ">=3.8"
478
+ files = [
479
+ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
480
+ {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
481
+ ]
482
+
483
+ [package.dependencies]
484
+ certifi = "*"
485
+ h11 = ">=0.13,<0.15"
486
+
487
+ [package.extras]
488
+ asyncio = ["anyio (>=4.0,<5.0)"]
489
+ http2 = ["h2 (>=3,<5)"]
490
+ socks = ["socksio (==1.*)"]
491
+ trio = ["trio (>=0.22.0,<1.0)"]
492
+
493
+ [[package]]
494
+ name = "httpx"
495
+ version = "0.28.1"
496
+ description = "The next generation HTTP client."
497
+ optional = false
498
+ python-versions = ">=3.8"
499
+ files = [
500
+ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
501
+ {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
502
+ ]
503
+
504
+ [package.dependencies]
505
+ anyio = "*"
506
+ certifi = "*"
507
+ httpcore = "==1.*"
508
+ idna = "*"
509
+
510
+ [package.extras]
511
+ brotli = ["brotli", "brotlicffi"]
512
+ cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
513
+ http2 = ["h2 (>=3,<5)"]
514
+ socks = ["socksio (==1.*)"]
515
+ zstd = ["zstandard (>=0.18.0)"]
516
+
517
  [[package]]
518
  name = "huggingface-hub"
519
  version = "0.27.1"
 
604
  [package.extras]
605
  i18n = ["Babel (>=2.7)"]
606
 
607
+ [[package]]
608
+ name = "jsonpath-python"
609
+ version = "1.0.6"
610
+ description = "A more powerful JSONPath implementation in modern python"
611
+ optional = false
612
+ python-versions = ">=3.6"
613
+ files = [
614
+ {file = "jsonpath-python-1.0.6.tar.gz", hash = "sha256:dd5be4a72d8a2995c3f583cf82bf3cd1a9544cfdabf2d22595b67aff07349666"},
615
+ {file = "jsonpath_python-1.0.6-py3-none-any.whl", hash = "sha256:1e3b78df579f5efc23565293612decee04214609208a2335884b3ee3f786b575"},
616
+ ]
617
+
618
  [[package]]
619
  name = "markupsafe"
620
  version = "3.0.2"
 
685
  {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
686
  ]
687
 
688
+ [[package]]
689
+ name = "mistralai"
690
+ version = "1.4.0"
691
+ description = "Python Client SDK for the Mistral AI API."
692
+ optional = false
693
+ python-versions = ">=3.8"
694
+ files = [
695
+ {file = "mistralai-1.4.0-py3-none-any.whl", hash = "sha256:74a8b8f5b737b199c83ccc89721cb82a71e8b093b38b27c99d38cbcdf550668c"},
696
+ {file = "mistralai-1.4.0.tar.gz", hash = "sha256:b8a09eda1864cba02ebf70439ca1925025e073d3f6f3eeccfdd146ad0f2260fb"},
697
+ ]
698
+
699
+ [package.dependencies]
700
+ eval-type-backport = ">=0.2.0"
701
+ httpx = ">=0.27.0"
702
+ jsonpath-python = ">=1.0.6"
703
+ pydantic = ">=2.9.0"
704
+ python-dateutil = ">=2.8.2"
705
+ typing-inspect = ">=0.9.0"
706
+
707
+ [package.extras]
708
+ gcp = ["google-auth (>=2.27.0)", "requests (>=2.32.3)"]
709
+
710
  [[package]]
711
  name = "mpmath"
712
  version = "1.3.0"
 
724
  gmpy = ["gmpy2 (>=2.1.0a4)"]
725
  tests = ["pytest (>=4.6)"]
726
 
727
+ [[package]]
728
+ name = "mypy-extensions"
729
+ version = "1.0.0"
730
+ description = "Type system extensions for programs checked with the mypy type checker."
731
+ optional = false
732
+ python-versions = ">=3.5"
733
+ files = [
734
+ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
735
+ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
736
+ ]
737
+
738
  [[package]]
739
  name = "networkx"
740
  version = "3.4.2"
 
1055
  [package.extras]
1056
  test = ["numpy"]
1057
 
1058
+ [[package]]
1059
+ name = "pydantic"
1060
+ version = "2.10.6"
1061
+ description = "Data validation using Python type hints"
1062
+ optional = false
1063
+ python-versions = ">=3.8"
1064
+ files = [
1065
+ {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"},
1066
+ {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"},
1067
+ ]
1068
+
1069
+ [package.dependencies]
1070
+ annotated-types = ">=0.6.0"
1071
+ pydantic-core = "2.27.2"
1072
+ typing-extensions = ">=4.12.2"
1073
+
1074
+ [package.extras]
1075
+ email = ["email-validator (>=2.0.0)"]
1076
+ timezone = ["tzdata"]
1077
+
1078
+ [[package]]
1079
+ name = "pydantic-core"
1080
+ version = "2.27.2"
1081
+ description = "Core functionality for Pydantic validation and serialization"
1082
+ optional = false
1083
+ python-versions = ">=3.8"
1084
+ files = [
1085
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
1086
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
1087
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"},
1088
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"},
1089
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"},
1090
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"},
1091
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"},
1092
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"},
1093
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"},
1094
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"},
1095
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"},
1096
+ {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"},
1097
+ {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"},
1098
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"},
1099
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"},
1100
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"},
1101
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"},
1102
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"},
1103
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"},
1104
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"},
1105
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"},
1106
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"},
1107
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"},
1108
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"},
1109
+ {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"},
1110
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"},
1111
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"},
1112
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"},
1113
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"},
1114
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"},
1115
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"},
1116
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"},
1117
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"},
1118
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"},
1119
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"},
1120
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"},
1121
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"},
1122
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"},
1123
+ {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"},
1124
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"},
1125
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"},
1126
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"},
1127
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"},
1128
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"},
1129
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"},
1130
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"},
1131
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"},
1132
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"},
1133
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"},
1134
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"},
1135
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"},
1136
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"},
1137
+ {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"},
1138
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"},
1139
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"},
1140
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"},
1141
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"},
1142
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"},
1143
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"},
1144
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"},
1145
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"},
1146
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"},
1147
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"},
1148
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"},
1149
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"},
1150
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"},
1151
+ {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"},
1152
+ {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"},
1153
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"},
1154
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"},
1155
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"},
1156
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"},
1157
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"},
1158
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"},
1159
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"},
1160
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"},
1161
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"},
1162
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"},
1163
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"},
1164
+ {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"},
1165
+ {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"},
1166
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"},
1167
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"},
1168
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"},
1169
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"},
1170
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"},
1171
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"},
1172
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"},
1173
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"},
1174
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"},
1175
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"},
1176
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"},
1177
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"},
1178
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"},
1179
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"},
1180
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"},
1181
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"},
1182
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"},
1183
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"},
1184
+ {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"},
1185
+ ]
1186
+
1187
+ [package.dependencies]
1188
+ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
1189
+
1190
  [[package]]
1191
  name = "pyreadline3"
1192
  version = "3.5.4"
 
1201
  [package.extras]
1202
  dev = ["build", "flake8", "mypy", "pytest", "twine"]
1203
 
1204
+ [[package]]
1205
+ name = "python-dateutil"
1206
+ version = "2.9.0.post0"
1207
+ description = "Extensions to the standard Python datetime module"
1208
+ optional = false
1209
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
1210
+ files = [
1211
+ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
1212
+ {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
1213
+ ]
1214
+
1215
+ [package.dependencies]
1216
+ six = ">=1.5"
1217
+
1218
  [[package]]
1219
  name = "pyyaml"
1220
  version = "6.0.2"
 
1318
  test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
1319
  type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"]
1320
 
1321
+ [[package]]
1322
+ name = "six"
1323
+ version = "1.17.0"
1324
+ description = "Python 2 and 3 compatibility utilities"
1325
+ optional = false
1326
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
1327
+ files = [
1328
+ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
1329
+ {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
1330
+ ]
1331
+
1332
+ [[package]]
1333
+ name = "sniffio"
1334
+ version = "1.3.1"
1335
+ description = "Sniff out which async library your code is running under"
1336
+ optional = false
1337
+ python-versions = ">=3.7"
1338
+ files = [
1339
+ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
1340
+ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
1341
+ ]
1342
+
1343
  [[package]]
1344
  name = "sympy"
1345
  version = "1.13.1"
 
1516
  {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
1517
  ]
1518
 
1519
+ [[package]]
1520
+ name = "typing-inspect"
1521
+ version = "0.9.0"
1522
+ description = "Runtime inspection utilities for typing module."
1523
+ optional = false
1524
+ python-versions = "*"
1525
+ files = [
1526
+ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"},
1527
+ {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"},
1528
+ ]
1529
+
1530
+ [package.dependencies]
1531
+ mypy-extensions = ">=0.3.0"
1532
+ typing-extensions = ">=3.7.4"
1533
+
1534
  [[package]]
1535
  name = "urllib3"
1536
  version = "2.3.0"
 
1568
  [metadata]
1569
  lock-version = "2.0"
1570
  python-versions = "^3.10"
1571
+ content-hash = "3d8320a1f34408ca9b2c464d1537cd4fa963cdfbefff9c665e473c7079581760"
pyproject.toml CHANGED
@@ -15,6 +15,7 @@ pyaudio = "^0.2.14"
15
  torch = {version = "^2.5.1+cu121", source = "pytorch"}
16
  torchaudio = {version = "^2.5.1+cu121", source = "pytorch"}
17
  ctranslate2 = "4.4.0"
 
18
 
19
 
20
  [[tool.poetry.source]]
 
15
  torch = {version = "^2.5.1+cu121", source = "pytorch"}
16
  torchaudio = {version = "^2.5.1+cu121", source = "pytorch"}
17
  ctranslate2 = "4.4.0"
18
+ mistralai = "^1.4.0"
19
 
20
 
21
  [[tool.poetry.source]]
server/ActionProcessor.py CHANGED
@@ -5,6 +5,7 @@ import json
5
  import re
6
  import logging
7
  import sys
 
8
 
9
  # Configure logging
10
  logging.basicConfig(
@@ -26,11 +27,35 @@ class ActionProcessor(Thread):
26
  super().__init__()
27
  self.text_queue = text_queue
28
  self.action_queue = action_queue
29
- self.mistral_api_key = mistral_api_key
30
  self.daemon = True # Thread will exit when main program exits
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  def process_text(self, text: str) -> Dict[str, Any] | None:
33
  """Convert text into an action if a complete command is detected."""
 
 
 
34
  # Define command patterns
35
  command_patterns = {
36
  r"(?i)\b(stop|now)\b": "stop",
@@ -46,13 +71,13 @@ class ActionProcessor(Thread):
46
  # TODO: Remove this test thing
47
  if len(text) <= 3:
48
  return None
49
- return {"type": text}
50
 
51
  # Check each pattern
52
  for pattern, action_type in command_patterns.items():
53
  match = re.search(pattern, text.lower())
54
  if match:
55
- return {"type": action_type}
56
 
57
  return None
58
 
 
5
  import re
6
  import logging
7
  import sys
8
+ from mistralai.client import MistralClient
9
 
10
  # Configure logging
11
  logging.basicConfig(
 
27
  super().__init__()
28
  self.text_queue = text_queue
29
  self.action_queue = action_queue
30
+ self.mistral_client = MistralClient(api_key=mistral_api_key)
31
  self.daemon = True # Thread will exit when main program exits
32
 
33
+ def get_sentiment(self, input_text: str) -> str:
34
+ """Get sentiment analysis for input text."""
35
+ stream_response = self.mistral_client.chat_stream(
36
+ model="mistral-large-latest",
37
+ messages=[
38
+ {
39
+ "role": "user",
40
+ "content": f"""You are a sentiment classifier of positive or negative parenting.
41
+ Classify the following sentence, output "negative" or "positive", do not justify:
42
+ "{input_text}"
43
+ """,
44
+ },
45
+ ],
46
+ )
47
+
48
+ response = ""
49
+ for chunk in stream_response:
50
+ response += chunk.choices[0].delta.content
51
+
52
+ return response.strip()
53
+
54
  def process_text(self, text: str) -> Dict[str, Any] | None:
55
  """Convert text into an action if a complete command is detected."""
56
+ # Get sentiment first
57
+ sentiment = self.get_sentiment(text)
58
+
59
  # Define command patterns
60
  command_patterns = {
61
  r"(?i)\b(stop|now)\b": "stop",
 
71
  # TODO: Remove this test thing
72
  if len(text) <= 3:
73
  return None
74
+ return {"type": text, "sentiment": sentiment}
75
 
76
  # Check each pattern
77
  for pattern, action_type in command_patterns.items():
78
  match = re.search(pattern, text.lower())
79
  if match:
80
+ return {"type": action_type, "sentiment": sentiment}
81
 
82
  return None
83
 
server/AudioTranscriber.py CHANGED
@@ -25,6 +25,7 @@ class AudioTranscriber(threading.Thread):
25
  audio_queue: "Queue[io.BytesIO]",
26
  text_queue: "Queue[str]",
27
  language: str = "en",
 
28
  ):
29
  super().__init__()
30
  self.audio_queue = audio_queue
@@ -32,7 +33,7 @@ class AudioTranscriber(threading.Thread):
32
  self.daemon = True # Thread will exit when main program exits
33
  self.max_buffer_size = 3
34
  self.language = language
35
-
36
  self.buffer: List[io.BytesIO] = []
37
  self.transcriber = WhisperModel(
38
  "large",
@@ -62,11 +63,12 @@ class AudioTranscriber(threading.Thread):
62
 
63
  # Put the transcription results in the output queue
64
  for segment in segments:
65
- self.action_queue.put(segment.text)
66
- # Still print for debugging
67
- logger.info(
68
- f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}"
69
- )
 
70
 
71
  except Empty:
72
  continue # If queue is empty, continue waiting
 
25
  audio_queue: "Queue[io.BytesIO]",
26
  text_queue: "Queue[str]",
27
  language: str = "en",
28
+ confidence_threshold: float = -0.5,
29
  ):
30
  super().__init__()
31
  self.audio_queue = audio_queue
 
33
  self.daemon = True # Thread will exit when main program exits
34
  self.max_buffer_size = 3
35
  self.language = language
36
+ self.confidence_threshold = confidence_threshold
37
  self.buffer: List[io.BytesIO] = []
38
  self.transcriber = WhisperModel(
39
  "large",
 
63
 
64
  # Put the transcription results in the output queue
65
  for segment in segments:
66
+ if segment.avg_logprob <= self.confidence_threshold:
67
+ self.action_queue.put(segment.text)
68
+ # Still print for debugging
69
+ logger.info(
70
+ f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}"
71
+ )
72
 
73
  except Empty:
74
  continue # If queue is empty, continue waiting
server/__main__.py CHANGED
@@ -188,8 +188,8 @@ if __name__ == "__main__":
188
  "worker_class": "sync",
189
  "timeout": 120,
190
  "forwarded_allow_ips": "*",
191
- "accesslog": "-", # Log to stdout
192
- "errorlog": "-", # Log to stderr
193
  "capture_output": True,
194
  "enable_stdio_inheritance": True,
195
  }
 
188
  "worker_class": "sync",
189
  "timeout": 120,
190
  "forwarded_allow_ips": "*",
191
+ "accesslog": None, # Disable access logging
192
+ "errorlog": "-", # Keep error logging to stderr
193
  "capture_output": True,
194
  "enable_stdio_inheritance": True,
195
  }
server/static/godot/index.pck CHANGED
Binary files a/server/static/godot/index.pck and b/server/static/godot/index.pck differ