banko-ai-assistant 1.0.8__tar.gz → 1.0.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. {banko_ai_assistant-1.0.8/banko_ai_assistant.egg-info → banko_ai_assistant-1.0.10}/PKG-INFO +1 -1
  2. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/cli.py +4 -4
  3. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/vector_search/generator.py +115 -48
  4. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10/banko_ai_assistant.egg-info}/PKG-INFO +1 -1
  5. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/pyproject.toml +1 -1
  6. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/LICENSE +0 -0
  7. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/MANIFEST.in +0 -0
  8. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/README.md +0 -0
  9. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/__init__.py +0 -0
  10. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/__main__.py +0 -0
  11. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/__init__.py +0 -0
  12. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/aws_provider.py +0 -0
  13. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/base.py +0 -0
  14. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/factory.py +0 -0
  15. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/gemini_provider.py +0 -0
  16. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/openai_provider.py +0 -0
  17. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/ai_providers/watsonx_provider.py +0 -0
  18. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/config/__init__.py +0 -0
  19. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/config/settings.py +0 -0
  20. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/Anallytics.png +0 -0
  21. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/Graph.png +0 -0
  22. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/Graph2.png +0 -0
  23. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/ai-status.png +0 -0
  24. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/banko-ai-assistant-watsonx.gif +0 -0
  25. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/banko-db-ops.png +0 -0
  26. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/banko-response.png +0 -0
  27. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/cache-stats.png +0 -0
  28. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard.png +0 -0
  29. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/0dbda187ceb472a466dff54b7015b1d4.jpg +0 -0
  30. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/10903-7f8736e237ced107.mjs +0 -0
  31. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/10966-809952783184ae4b.mjs +0 -0
  32. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/13351-8a7dda060266efff.mjs +0 -0
  33. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/1342-c79d3d17da82f23c.mjs +0 -0
  34. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/16142-bdecf7bfdd6d70ae.mjs +0 -0
  35. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/16550-e89f65017860221d.mjs +0 -0
  36. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/17492-942c70b114fdcce1.mjs +0 -0
  37. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/18352-481d67e871cc6985.mjs +0 -0
  38. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/18555-0d9763eb744f7a77.mjs +0 -0
  39. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/19437-575ba467ea85e866.mjs +0 -0
  40. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/1aca1669c3b4a07f0966c4733c939d6d.jpg +0 -0
  41. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/20126-602c15db592cf3c4.mjs +0 -0
  42. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/20224-b6de2c08cc8ad497.mjs +0 -0
  43. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/2029a63f9af76541f860b6a6a4ec0c90.jpg +0 -0
  44. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/21662-1214728138c72aa2.css +0 -0
  45. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/22517-5f7ab2631d424b77.mjs +0 -0
  46. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/23019-be3b8956cee94725.mjs +0 -0
  47. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/26067-cb77f2673c5f757c.mjs +0 -0
  48. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/27405-880a12623820964d.mjs +0 -0
  49. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/27503-82078c18034012ed.mjs +0 -0
  50. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/28090-8e4b5fd6c88f8eb2.mjs +0 -0
  51. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/2c66dacf04db64cc1099835f2e2328d5.jpg +0 -0
  52. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/30090868cb2b559a7093999fec5fbcc8.jpg +0 -0
  53. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/30102-608e861dccc907f1.mjs +0 -0
  54. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/31600-ca2e152d871d51d5.mjs +0 -0
  55. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/31d5156a9cc5fe5fd780c2d9e59db98f.jpg +0 -0
  56. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/34713-54729fd9c7517d50.mjs +0 -0
  57. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/35074-d765c14dc3e8eafc.mjs +0 -0
  58. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/38230-4d6eb1a608eecdeb.mjs +0 -0
  59. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/40566-e2dbb4226dd2ab42.mjs +0 -0
  60. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/42298-668aa166e1146c6c.mjs +0 -0
  61. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/43203-3a1e46e5259313c8.mjs +0 -0
  62. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/44429-6534f772a6bd895b.mjs +0 -0
  63. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/48327-48fb70091d7ac731.mjs +0 -0
  64. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/49923-dc71193d54a0b99c.mjs +0 -0
  65. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/49c3cac3c5a09ca104a2efea48536d14.jpg +0 -0
  66. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/50040-3c27b1fe14ca588b.mjs +0 -0
  67. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/5047473e06297bbccfae9c43ca36bd93.jpg +0 -0
  68. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/51531-253e8d8f8f527d9c.mjs +0 -0
  69. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/58103-d6be57f2d624e7b4.mjs +0 -0
  70. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/58822-d1779ebe9d4fab59.mjs +0 -0
  71. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/61b440e4366b35d7213172be53d3864e.jpg +0 -0
  72. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/61d121a699367070f3988f633ed6ac7d.jpg +0 -0
  73. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/65610-15f55d146aa3cc6f.mjs +0 -0
  74. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/65662-2b7065d2ddcf6a0c.mjs +0 -0
  75. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/67631-9d4d7f4aab06e79c.mjs +0 -0
  76. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/68445-8aae26e83c03d9bc.mjs +0 -0
  77. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/6863-da15e99ca946f07a.mjs +0 -0
  78. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/71526-518cf6126a32651b.mjs +0 -0
  79. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/72268-8f69a6e8585b9af2.mjs +0 -0
  80. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/76f1a52015cf2a243ed085586f3d44e8.jpg +0 -0
  81. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/80538-65bd348271403336.mjs +0 -0
  82. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/81505-387f6ddb644ae967.mjs +0 -0
  83. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/8151-1a0cf04ea45ad513.mjs +0 -0
  84. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/83119-1cf7ca2f5ba0e1ab.mjs +0 -0
  85. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/83485-27ce97f9e7369ed7.mjs +0 -0
  86. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/8575-e1977ceb3b34da9c.mjs +0 -0
  87. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/8962-664b3c9b21ec2e0f.mjs +0 -0
  88. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/90123-40fd5c2d5dc1c0a1.mjs +0 -0
  89. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/91846-55cc5635c18159a0.mjs +0 -0
  90. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/91936-56d11562a38b3f77.mjs +0 -0
  91. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/96833-fbcb1ab8436924d4.mjs +0 -0
  92. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/99246-889e96fc0a42e07a.mjs +0 -0
  93. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/99961-ee8d9a1207a9db7a.mjs +0 -0
  94. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/DefaultPinRep-78e567622e9cb382.mjs +0 -0
  95. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/DesktopUnauthPageWrapper-26b3c2c050f09d27.css +0 -0
  96. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/DesktopUnauthPageWrapper-a120f0b0faa773a2.mjs +0 -0
  97. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/KkWFeSURekXGycdprVC-UY6ED-ZF5ll2JCMiHhJE2Rk.js +0 -0
  98. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/MobileAndUnauthPinPage-0083f61f79e906d2.mjs +0 -0
  99. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/UnauthCloseupRelatedPins-d98c713ac2e141a7.mjs +0 -0
  100. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/[id]-87f8f6f1f81e3a8a.mjs +0 -0
  101. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/_client-49638f60bdf5658e.mjs +0 -0
  102. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/a7ee24644496b7a3131cd4e13b8c6edb.jpg +0 -0
  103. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/a8ada9395c00dffc8fb81a7b76bd34b5.jpg +0 -0
  104. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/abbf5a82906bef8c6be49ab38eaeea7c.jpg +0 -0
  105. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/ad910641231bb413f6a985e4e9961efb.jpg +0 -0
  106. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/anchor.html +0 -0
  107. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/b6083df3cfa26856caef114c51a8d21e.jpg +0 -0
  108. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/b957829ac112a8c28b313307e5ff0df6.jpg +0 -0
  109. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/bb2d3d28e3421d901d8d431c33f0c6ed.jpg +0 -0
  110. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/bb2d3d28e3421d901d8d431c33f0c6ed.png +0 -0
  111. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/c3031b4a938377789e00d3d2f3b2438c.jpg +0 -0
  112. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/client +0 -0
  113. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/ct.html +0 -0
  114. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/d03e6db9649ea3479b799d5a21008ac2.jpg +0 -0
  115. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/d3d38fd9aa0c808a28ff5bd9ae5b5576.jpg +0 -0
  116. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/de7cb9e198b4ebc9430824132ccfce2e.jpg +0 -0
  117. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/e4330b4a4e71a3f77dd0682b99037cad.jpg +0 -0
  118. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/ecdf72d4d54e70608e9416020f8ad67d.jpg +0 -0
  119. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/eef64355b9f10e89c355b138adbae1e9.jpg +0 -0
  120. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/enterprise.js +0 -0
  121. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/f1354f6bb993409ea12235a01a978936.jpg +0 -0
  122. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/f7c30e2615fe0e57d9ab6e41aac5e738.jpg +0 -0
  123. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/fa72fa1ae9bb3ec93f41595333d22d16.jpg +0 -0
  124. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/fb09ce3b0feb4931402867cf109cd618.jpg +0 -0
  125. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/i +0 -0
  126. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/locale-en_US-lite-js-d0d346142714beb1.mjs +0 -0
  127. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/login-3c695aa28fdc27a5.mjs +0 -0
  128. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/login-e161a84cea9cd0a3.css +0 -0
  129. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/packages-rich-snippet-LeafSnippet-b7f61038a4431021.mjs +0 -0
  130. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/polyfills-c5ca6e711f8975ec.mjs +0 -0
  131. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/recaptcha__en.js +0 -0
  132. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/repin-62bbd4d7c8e22f17.css +0 -0
  133. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/repin-d49f19d89ddd3cbe.mjs +0 -0
  134. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/runtime-505e4380476a458b.mjs +0 -0
  135. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/saved_resource(1).html +0 -0
  136. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/saved_resource(2).html +0 -0
  137. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/saved_resource.html +0 -0
  138. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/sdk(1).js +0 -0
  139. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/sdk.js +0 -0
  140. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/select.html +0 -0
  141. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/style +0 -0
  142. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/styles__ltr.css +0 -0
  143. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/unnamed.jpg +0 -0
  144. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/vendor-react-76e71fd67c83934b.mjs +0 -0
  145. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/creditcard_files/visual-search-fe95849c7568d600.mjs +0 -0
  146. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/css/style.css +0 -0
  147. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/profilepic.jpeg +0 -0
  148. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/query_watcher.png +0 -0
  149. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/roach-logo.svg +0 -0
  150. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/static/watsonx-icon.svg +0 -0
  151. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/templates/base.html +0 -0
  152. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/templates/dashboard.html +0 -0
  153. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/templates/index.html +0 -0
  154. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/templates/login.html +0 -0
  155. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/utils/__init__.py +0 -0
  156. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/utils/cache_manager.py +0 -0
  157. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/utils/database.py +0 -0
  158. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/utils/migration.py +0 -0
  159. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/vector_search/__init__.py +0 -0
  160. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/vector_search/enrichment.py +0 -0
  161. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/vector_search/search.py +0 -0
  162. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/web/__init__.py +0 -0
  163. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/web/app.py +0 -0
  164. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai/web/auth.py +0 -0
  165. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai_assistant.egg-info/SOURCES.txt +0 -0
  166. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai_assistant.egg-info/dependency_links.txt +0 -0
  167. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai_assistant.egg-info/entry_points.txt +0 -0
  168. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai_assistant.egg-info/requires.txt +0 -0
  169. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/banko_ai_assistant.egg-info/top_level.txt +0 -0
  170. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: banko-ai-assistant
3
- Version: 1.0.8
3
+ Version: 1.0.10
4
4
  Summary: AI-powered expense analysis and RAG system with CockroachDB vector search and multi-provider AI support
5
5
  Author-email: Virag Tripathi <virag.tripathi@gmail.com>
6
6
  License-Expression: MIT
@@ -73,8 +73,8 @@ def run(host, port, debug, generate_data, no_data, clear_data, background):
73
73
  click.echo("Clearing existing data...")
74
74
  generator.clear_expenses()
75
75
 
76
- generator.generate_and_save(generate_data)
77
- click.echo(f"✅ Successfully generated {generate_data} expense records")
76
+ actual_count = generator.generate_and_save(generate_data)
77
+ click.echo(f"✅ Successfully generated {actual_count} expense records")
78
78
  except Exception as e:
79
79
  click.echo(f"❌ Error generating data: {e}")
80
80
  return
@@ -220,8 +220,8 @@ def start(host, port, generate_data, no_data, clear_data):
220
220
  click.echo("Clearing existing data...")
221
221
  generator.clear_expenses()
222
222
 
223
- generator.generate_and_save(generate_data)
224
- click.echo(f"✅ Successfully generated {generate_data} expense records")
223
+ actual_count = generator.generate_and_save(generate_data)
224
+ click.echo(f"✅ Successfully generated {actual_count} expense records")
225
225
  except Exception as e:
226
226
  click.echo(f"❌ Error generating data: {e}")
227
227
  return
@@ -224,56 +224,123 @@ class EnhancedExpenseGenerator:
224
224
  return expenses
225
225
 
226
226
  def save_expenses_to_database(self, expenses: List[Dict[str, Any]]) -> int:
227
- """Save expenses to the database."""
228
- try:
229
- import pandas as pd
230
- with self.engine.connect() as conn:
231
- # Prepare data for insertion
232
- data_to_insert = []
233
- for expense in expenses:
234
- data_to_insert.append({
235
- 'expense_id': expense['expense_id'],
236
- 'user_id': expense['user_id'],
237
- 'expense_date': expense['expense_date'],
238
- 'expense_amount': expense['expense_amount'],
239
- 'shopping_type': expense['shopping_type'],
240
- 'description': expense['description'],
241
- 'merchant': expense['merchant'],
242
- 'payment_method': expense['payment_method'],
243
- 'recurring': expense['recurring'],
244
- 'tags': expense['tags'],
245
- 'embedding': expense['embedding']
246
- })
247
-
248
- # Insert in batches
249
- batch_size = 100
250
- total_inserted = 0
251
-
252
- for i in range(0, len(data_to_insert), batch_size):
253
- batch = data_to_insert[i:i + batch_size]
254
-
255
- # Use pandas to insert the batch
256
- df = pd.DataFrame(batch)
257
- df.to_sql('expenses', conn, if_exists='append', index=False, method='multi')
258
- total_inserted += len(batch)
259
-
260
- return total_inserted
261
-
262
- except Exception as e:
263
- print(f"Error saving expenses to database: {e}")
264
- return 0
227
+ """Save expenses to the database with retry logic for CockroachDB."""
228
+ import pandas as pd
229
+ import time
230
+ import random
231
+ from sqlalchemy.exc import OperationalError
232
+
233
+ # Prepare data for insertion
234
+ data_to_insert = []
235
+ for expense in expenses:
236
+ data_to_insert.append({
237
+ 'expense_id': expense['expense_id'],
238
+ 'user_id': expense['user_id'],
239
+ 'expense_date': expense['expense_date'],
240
+ 'expense_amount': expense['expense_amount'],
241
+ 'shopping_type': expense['shopping_type'],
242
+ 'description': expense['description'],
243
+ 'merchant': expense['merchant'],
244
+ 'payment_method': expense['payment_method'],
245
+ 'recurring': expense['recurring'],
246
+ 'tags': expense['tags'],
247
+ 'embedding': expense['embedding']
248
+ })
249
+
250
+ # Insert in smaller batches to reduce transaction conflicts
251
+ batch_size = 50 # Reduced from 100 to minimize conflicts
252
+ total_inserted = 0
253
+ total_batches = (len(data_to_insert) + batch_size - 1) // batch_size
254
+
255
+ print(f"📊 Inserting {len(data_to_insert)} records in {total_batches} batches of {batch_size}")
256
+
257
+ for i in range(0, len(data_to_insert), batch_size):
258
+ batch = data_to_insert[i:i + batch_size]
259
+
260
+ # Retry logic for CockroachDB transaction conflicts
261
+ max_retries = 5
262
+ retry_count = 0
263
+
264
+ while retry_count < max_retries:
265
+ try:
266
+ with self.engine.connect() as conn:
267
+ # Use pandas to insert the batch
268
+ df = pd.DataFrame(batch)
269
+ df.to_sql('expenses', conn, if_exists='append', index=False, method='multi')
270
+ conn.commit()
271
+ total_inserted += len(batch)
272
+ batch_num = i//batch_size + 1
273
+ print(f"✅ Batch {batch_num}/{total_batches}: {len(batch)} records inserted (Total: {total_inserted})")
274
+ break # Success, exit retry loop
275
+
276
+ except OperationalError as e:
277
+ # Check if it's a CockroachDB serialization failure (SQL state 40001)
278
+ if "40001" in str(e) or "SerializationFailure" in str(e) or "restart transaction" in str(e).lower():
279
+ retry_count += 1
280
+ if retry_count < max_retries:
281
+ # Exponential backoff with jitter
282
+ base_delay = 0.1 * (2 ** retry_count)
283
+ jitter = random.uniform(0, 0.1)
284
+ delay = base_delay + jitter
285
+ print(f"Transaction conflict detected, retrying in {delay:.2f}s (attempt {retry_count}/{max_retries})")
286
+ time.sleep(delay)
287
+ continue
288
+ else:
289
+ print(f"Max retries exceeded for batch {i//batch_size + 1}: {e}")
290
+ return total_inserted
291
+ else:
292
+ # Non-retryable error
293
+ print(f"Non-retryable database error: {e}")
294
+ return total_inserted
295
+
296
+ except Exception as e:
297
+ print(f"Unexpected error saving batch {i//batch_size + 1}: {e}")
298
+ return total_inserted
299
+
300
+ return total_inserted
265
301
 
266
302
  def clear_expenses(self) -> bool:
267
- """Clear all expenses from the database."""
268
- try:
269
- from sqlalchemy import text
270
- with self.engine.connect() as conn:
271
- conn.execute(text("DELETE FROM expenses"))
272
- conn.commit()
273
- return True
274
- except Exception as e:
275
- print(f"Error clearing expenses: {e}")
276
- return False
303
+ """Clear all expenses from the database with retry logic."""
304
+ import time
305
+ import random
306
+ from sqlalchemy import text
307
+ from sqlalchemy.exc import OperationalError
308
+
309
+ max_retries = 5
310
+ retry_count = 0
311
+
312
+ while retry_count < max_retries:
313
+ try:
314
+ with self.engine.connect() as conn:
315
+ conn.execute(text("DELETE FROM expenses"))
316
+ conn.commit()
317
+ return True
318
+
319
+ except OperationalError as e:
320
+ # Check if it's a CockroachDB serialization failure (SQL state 40001)
321
+ if "40001" in str(e) or "SerializationFailure" in str(e) or "restart transaction" in str(e).lower():
322
+ retry_count += 1
323
+ if retry_count < max_retries:
324
+ # Exponential backoff with jitter
325
+ base_delay = 0.1 * (2 ** retry_count)
326
+ jitter = random.uniform(0, 0.1)
327
+ delay = base_delay + jitter
328
+ print(f"Transaction conflict detected while clearing, retrying in {delay:.2f}s (attempt {retry_count}/{max_retries})")
329
+ time.sleep(delay)
330
+ continue
331
+ else:
332
+ print(f"Max retries exceeded while clearing expenses: {e}")
333
+ return False
334
+ else:
335
+ # Non-retryable error
336
+ print(f"Non-retryable database error while clearing: {e}")
337
+ return False
338
+
339
+ except Exception as e:
340
+ print(f"Unexpected error clearing expenses: {e}")
341
+ return False
342
+
343
+ return False
277
344
 
278
345
  def get_expense_count(self) -> int:
279
346
  """Get the current number of expenses in the database."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: banko-ai-assistant
3
- Version: 1.0.8
3
+ Version: 1.0.10
4
4
  Summary: AI-powered expense analysis and RAG system with CockroachDB vector search and multi-provider AI support
5
5
  Author-email: Virag Tripathi <virag.tripathi@gmail.com>
6
6
  License-Expression: MIT
@@ -7,7 +7,7 @@ py-modules = []
7
7
 
8
8
  [project]
9
9
  name = "banko-ai-assistant"
10
- version = "1.0.8"
10
+ version = "1.0.10"
11
11
  description = "AI-powered expense analysis and RAG system with CockroachDB vector search and multi-provider AI support"
12
12
  authors = [
13
13
  { name="Virag Tripathi", email="virag.tripathi@gmail.com" }