banko-ai-assistant 1.0.8__tar.gz → 1.0.9__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.9}/PKG-INFO +1 -1
  2. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/vector_search/generator.py +110 -48
  3. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9/banko_ai_assistant.egg-info}/PKG-INFO +1 -1
  4. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/pyproject.toml +1 -1
  5. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/LICENSE +0 -0
  6. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/MANIFEST.in +0 -0
  7. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/README.md +0 -0
  8. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/__init__.py +0 -0
  9. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/__main__.py +0 -0
  10. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/__init__.py +0 -0
  11. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/aws_provider.py +0 -0
  12. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/base.py +0 -0
  13. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/factory.py +0 -0
  14. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/gemini_provider.py +0 -0
  15. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/openai_provider.py +0 -0
  16. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/ai_providers/watsonx_provider.py +0 -0
  17. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/cli.py +0 -0
  18. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/config/__init__.py +0 -0
  19. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/config/settings.py +0 -0
  20. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/Anallytics.png +0 -0
  21. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/Graph.png +0 -0
  22. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/Graph2.png +0 -0
  23. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/ai-status.png +0 -0
  24. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/banko-ai-assistant-watsonx.gif +0 -0
  25. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/banko-db-ops.png +0 -0
  26. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/banko-response.png +0 -0
  27. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/cache-stats.png +0 -0
  28. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard.png +0 -0
  29. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/0dbda187ceb472a466dff54b7015b1d4.jpg +0 -0
  30. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/10903-7f8736e237ced107.mjs +0 -0
  31. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/10966-809952783184ae4b.mjs +0 -0
  32. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/13351-8a7dda060266efff.mjs +0 -0
  33. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/1342-c79d3d17da82f23c.mjs +0 -0
  34. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/16142-bdecf7bfdd6d70ae.mjs +0 -0
  35. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/16550-e89f65017860221d.mjs +0 -0
  36. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/17492-942c70b114fdcce1.mjs +0 -0
  37. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/18352-481d67e871cc6985.mjs +0 -0
  38. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/18555-0d9763eb744f7a77.mjs +0 -0
  39. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/19437-575ba467ea85e866.mjs +0 -0
  40. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/1aca1669c3b4a07f0966c4733c939d6d.jpg +0 -0
  41. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/20126-602c15db592cf3c4.mjs +0 -0
  42. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/20224-b6de2c08cc8ad497.mjs +0 -0
  43. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/2029a63f9af76541f860b6a6a4ec0c90.jpg +0 -0
  44. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/21662-1214728138c72aa2.css +0 -0
  45. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/22517-5f7ab2631d424b77.mjs +0 -0
  46. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/23019-be3b8956cee94725.mjs +0 -0
  47. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/26067-cb77f2673c5f757c.mjs +0 -0
  48. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/27405-880a12623820964d.mjs +0 -0
  49. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/27503-82078c18034012ed.mjs +0 -0
  50. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/28090-8e4b5fd6c88f8eb2.mjs +0 -0
  51. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/2c66dacf04db64cc1099835f2e2328d5.jpg +0 -0
  52. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/30090868cb2b559a7093999fec5fbcc8.jpg +0 -0
  53. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/30102-608e861dccc907f1.mjs +0 -0
  54. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/31600-ca2e152d871d51d5.mjs +0 -0
  55. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/31d5156a9cc5fe5fd780c2d9e59db98f.jpg +0 -0
  56. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/34713-54729fd9c7517d50.mjs +0 -0
  57. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/35074-d765c14dc3e8eafc.mjs +0 -0
  58. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/38230-4d6eb1a608eecdeb.mjs +0 -0
  59. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/40566-e2dbb4226dd2ab42.mjs +0 -0
  60. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/42298-668aa166e1146c6c.mjs +0 -0
  61. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/43203-3a1e46e5259313c8.mjs +0 -0
  62. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/44429-6534f772a6bd895b.mjs +0 -0
  63. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/48327-48fb70091d7ac731.mjs +0 -0
  64. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/49923-dc71193d54a0b99c.mjs +0 -0
  65. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/49c3cac3c5a09ca104a2efea48536d14.jpg +0 -0
  66. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/50040-3c27b1fe14ca588b.mjs +0 -0
  67. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/5047473e06297bbccfae9c43ca36bd93.jpg +0 -0
  68. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/51531-253e8d8f8f527d9c.mjs +0 -0
  69. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/58103-d6be57f2d624e7b4.mjs +0 -0
  70. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/58822-d1779ebe9d4fab59.mjs +0 -0
  71. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/61b440e4366b35d7213172be53d3864e.jpg +0 -0
  72. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/61d121a699367070f3988f633ed6ac7d.jpg +0 -0
  73. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/65610-15f55d146aa3cc6f.mjs +0 -0
  74. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/65662-2b7065d2ddcf6a0c.mjs +0 -0
  75. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/67631-9d4d7f4aab06e79c.mjs +0 -0
  76. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/68445-8aae26e83c03d9bc.mjs +0 -0
  77. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/6863-da15e99ca946f07a.mjs +0 -0
  78. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/71526-518cf6126a32651b.mjs +0 -0
  79. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/72268-8f69a6e8585b9af2.mjs +0 -0
  80. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/76f1a52015cf2a243ed085586f3d44e8.jpg +0 -0
  81. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/80538-65bd348271403336.mjs +0 -0
  82. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/81505-387f6ddb644ae967.mjs +0 -0
  83. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/8151-1a0cf04ea45ad513.mjs +0 -0
  84. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/83119-1cf7ca2f5ba0e1ab.mjs +0 -0
  85. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/83485-27ce97f9e7369ed7.mjs +0 -0
  86. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/8575-e1977ceb3b34da9c.mjs +0 -0
  87. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/8962-664b3c9b21ec2e0f.mjs +0 -0
  88. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/90123-40fd5c2d5dc1c0a1.mjs +0 -0
  89. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/91846-55cc5635c18159a0.mjs +0 -0
  90. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/91936-56d11562a38b3f77.mjs +0 -0
  91. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/96833-fbcb1ab8436924d4.mjs +0 -0
  92. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/99246-889e96fc0a42e07a.mjs +0 -0
  93. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/99961-ee8d9a1207a9db7a.mjs +0 -0
  94. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/DefaultPinRep-78e567622e9cb382.mjs +0 -0
  95. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/DesktopUnauthPageWrapper-26b3c2c050f09d27.css +0 -0
  96. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/DesktopUnauthPageWrapper-a120f0b0faa773a2.mjs +0 -0
  97. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/KkWFeSURekXGycdprVC-UY6ED-ZF5ll2JCMiHhJE2Rk.js +0 -0
  98. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/MobileAndUnauthPinPage-0083f61f79e906d2.mjs +0 -0
  99. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/UnauthCloseupRelatedPins-d98c713ac2e141a7.mjs +0 -0
  100. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/[id]-87f8f6f1f81e3a8a.mjs +0 -0
  101. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/_client-49638f60bdf5658e.mjs +0 -0
  102. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/a7ee24644496b7a3131cd4e13b8c6edb.jpg +0 -0
  103. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/a8ada9395c00dffc8fb81a7b76bd34b5.jpg +0 -0
  104. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/abbf5a82906bef8c6be49ab38eaeea7c.jpg +0 -0
  105. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/ad910641231bb413f6a985e4e9961efb.jpg +0 -0
  106. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/anchor.html +0 -0
  107. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/b6083df3cfa26856caef114c51a8d21e.jpg +0 -0
  108. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/b957829ac112a8c28b313307e5ff0df6.jpg +0 -0
  109. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/bb2d3d28e3421d901d8d431c33f0c6ed.jpg +0 -0
  110. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/bb2d3d28e3421d901d8d431c33f0c6ed.png +0 -0
  111. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/c3031b4a938377789e00d3d2f3b2438c.jpg +0 -0
  112. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/client +0 -0
  113. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/ct.html +0 -0
  114. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/d03e6db9649ea3479b799d5a21008ac2.jpg +0 -0
  115. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/d3d38fd9aa0c808a28ff5bd9ae5b5576.jpg +0 -0
  116. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/de7cb9e198b4ebc9430824132ccfce2e.jpg +0 -0
  117. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/e4330b4a4e71a3f77dd0682b99037cad.jpg +0 -0
  118. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/ecdf72d4d54e70608e9416020f8ad67d.jpg +0 -0
  119. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/eef64355b9f10e89c355b138adbae1e9.jpg +0 -0
  120. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/enterprise.js +0 -0
  121. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/f1354f6bb993409ea12235a01a978936.jpg +0 -0
  122. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/f7c30e2615fe0e57d9ab6e41aac5e738.jpg +0 -0
  123. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/fa72fa1ae9bb3ec93f41595333d22d16.jpg +0 -0
  124. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/fb09ce3b0feb4931402867cf109cd618.jpg +0 -0
  125. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/i +0 -0
  126. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/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.9}/banko_ai/static/creditcard_files/login-3c695aa28fdc27a5.mjs +0 -0
  128. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/login-e161a84cea9cd0a3.css +0 -0
  129. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/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.9}/banko_ai/static/creditcard_files/polyfills-c5ca6e711f8975ec.mjs +0 -0
  131. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/recaptcha__en.js +0 -0
  132. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/repin-62bbd4d7c8e22f17.css +0 -0
  133. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/repin-d49f19d89ddd3cbe.mjs +0 -0
  134. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/runtime-505e4380476a458b.mjs +0 -0
  135. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/saved_resource(1).html +0 -0
  136. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/saved_resource(2).html +0 -0
  137. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/saved_resource.html +0 -0
  138. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/sdk(1).js +0 -0
  139. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/sdk.js +0 -0
  140. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/select.html +0 -0
  141. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/style +0 -0
  142. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/styles__ltr.css +0 -0
  143. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/unnamed.jpg +0 -0
  144. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/vendor-react-76e71fd67c83934b.mjs +0 -0
  145. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/creditcard_files/visual-search-fe95849c7568d600.mjs +0 -0
  146. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/css/style.css +0 -0
  147. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/profilepic.jpeg +0 -0
  148. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/query_watcher.png +0 -0
  149. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/roach-logo.svg +0 -0
  150. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/static/watsonx-icon.svg +0 -0
  151. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/templates/base.html +0 -0
  152. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/templates/dashboard.html +0 -0
  153. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/templates/index.html +0 -0
  154. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/templates/login.html +0 -0
  155. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/utils/__init__.py +0 -0
  156. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/utils/cache_manager.py +0 -0
  157. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/utils/database.py +0 -0
  158. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/utils/migration.py +0 -0
  159. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/vector_search/__init__.py +0 -0
  160. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/vector_search/enrichment.py +0 -0
  161. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/vector_search/search.py +0 -0
  162. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/web/__init__.py +0 -0
  163. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/web/app.py +0 -0
  164. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai/web/auth.py +0 -0
  165. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai_assistant.egg-info/SOURCES.txt +0 -0
  166. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai_assistant.egg-info/dependency_links.txt +0 -0
  167. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai_assistant.egg-info/entry_points.txt +0 -0
  168. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai_assistant.egg-info/requires.txt +0 -0
  169. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/banko_ai_assistant.egg-info/top_level.txt +0 -0
  170. {banko_ai_assistant-1.0.8 → banko_ai_assistant-1.0.9}/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.9
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
@@ -224,56 +224,118 @@ 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
+
254
+ for i in range(0, len(data_to_insert), batch_size):
255
+ batch = data_to_insert[i:i + batch_size]
256
+
257
+ # Retry logic for CockroachDB transaction conflicts
258
+ max_retries = 5
259
+ retry_count = 0
260
+
261
+ while retry_count < max_retries:
262
+ try:
263
+ with self.engine.connect() as conn:
264
+ # Use pandas to insert the batch
265
+ df = pd.DataFrame(batch)
266
+ df.to_sql('expenses', conn, if_exists='append', index=False, method='multi')
267
+ conn.commit()
268
+ total_inserted += len(batch)
269
+ break # Success, exit retry loop
270
+
271
+ except OperationalError as e:
272
+ # Check if it's a CockroachDB serialization failure (SQL state 40001)
273
+ if "40001" in str(e) or "SerializationFailure" in str(e) or "restart transaction" in str(e).lower():
274
+ retry_count += 1
275
+ if retry_count < max_retries:
276
+ # Exponential backoff with jitter
277
+ base_delay = 0.1 * (2 ** retry_count)
278
+ jitter = random.uniform(0, 0.1)
279
+ delay = base_delay + jitter
280
+ print(f"Transaction conflict detected, retrying in {delay:.2f}s (attempt {retry_count}/{max_retries})")
281
+ time.sleep(delay)
282
+ continue
283
+ else:
284
+ print(f"Max retries exceeded for batch {i//batch_size + 1}: {e}")
285
+ return total_inserted
286
+ else:
287
+ # Non-retryable error
288
+ print(f"Non-retryable database error: {e}")
289
+ return total_inserted
290
+
291
+ except Exception as e:
292
+ print(f"Unexpected error saving batch {i//batch_size + 1}: {e}")
293
+ return total_inserted
294
+
295
+ return total_inserted
265
296
 
266
297
  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
298
+ """Clear all expenses from the database with retry logic."""
299
+ import time
300
+ import random
301
+ from sqlalchemy import text
302
+ from sqlalchemy.exc import OperationalError
303
+
304
+ max_retries = 5
305
+ retry_count = 0
306
+
307
+ while retry_count < max_retries:
308
+ try:
309
+ with self.engine.connect() as conn:
310
+ conn.execute(text("DELETE FROM expenses"))
311
+ conn.commit()
312
+ return True
313
+
314
+ except OperationalError as e:
315
+ # Check if it's a CockroachDB serialization failure (SQL state 40001)
316
+ if "40001" in str(e) or "SerializationFailure" in str(e) or "restart transaction" in str(e).lower():
317
+ retry_count += 1
318
+ if retry_count < max_retries:
319
+ # Exponential backoff with jitter
320
+ base_delay = 0.1 * (2 ** retry_count)
321
+ jitter = random.uniform(0, 0.1)
322
+ delay = base_delay + jitter
323
+ print(f"Transaction conflict detected while clearing, retrying in {delay:.2f}s (attempt {retry_count}/{max_retries})")
324
+ time.sleep(delay)
325
+ continue
326
+ else:
327
+ print(f"Max retries exceeded while clearing expenses: {e}")
328
+ return False
329
+ else:
330
+ # Non-retryable error
331
+ print(f"Non-retryable database error while clearing: {e}")
332
+ return False
333
+
334
+ except Exception as e:
335
+ print(f"Unexpected error clearing expenses: {e}")
336
+ return False
337
+
338
+ return False
277
339
 
278
340
  def get_expense_count(self) -> int:
279
341
  """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.9
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.9"
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" }