ai-parrot 0.5.11__tar.gz → 0.5.13__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.

Potentially problematic release.


This version of ai-parrot might be problematic. Click here for more details.

Files changed (212) hide show
  1. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/PKG-INFO +1 -1
  2. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/__pycache__/version.cpython-311.pyc +0 -0
  3. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/abstract.cpython-311.pyc +0 -0
  4. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/chatbot.cpython-311.pyc +0 -0
  5. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/abstract.py +8 -1
  6. ai_parrot-0.5.13/parrot/bots/retrievals/__pycache__/multi.cpython-311.pyc +0 -0
  7. ai_parrot-0.5.13/parrot/bots/retrievals/multi.py +122 -0
  8. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/manager.py +2 -0
  9. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/abstract.cpython-311.pyc +0 -0
  10. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/version.py +1 -1
  11. ai_parrot-0.5.11/parrot/bots/retrievals/__pycache__/multi.cpython-311.pyc +0 -0
  12. ai_parrot-0.5.11/parrot/bots/retrievals/multi.py +0 -102
  13. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.flake8 +0 -0
  14. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.github/dependabot.yml +0 -0
  15. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.github/workflows/codeql-analysis.yml +0 -0
  16. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.github/workflows/release.yml +0 -0
  17. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.gitignore +0 -0
  18. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.isort.cfg +0 -0
  19. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/.pylintrc +0 -0
  20. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/INSTALL +0 -0
  21. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/LICENSE +0 -0
  22. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/MANIFEST.in +0 -0
  23. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/Makefile +0 -0
  24. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/README.md +0 -0
  25. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/SECURITY.md +0 -0
  26. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/ai_parrot.egg-info/SOURCES.txt +0 -0
  27. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/app.py +0 -0
  28. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/mypy.ini +0 -0
  29. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/__init__.py +0 -0
  30. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/__pycache__/__init__.cpython-311.pyc +0 -0
  31. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/__pycache__/conf.cpython-311.pyc +0 -0
  32. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/__pycache__/manager.cpython-311.pyc +0 -0
  33. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/__pycache__/models.cpython-311.pyc +0 -0
  34. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__init__.py +0 -0
  35. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/__init__.cpython-311.pyc +0 -0
  36. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/a.cpython-311.pyc +0 -0
  37. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/agent.cpython-311.pyc +0 -0
  38. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/askbrett.cpython-311.pyc +0 -0
  39. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/asktroc.cpython-311.pyc +0 -0
  40. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/base.cpython-311.pyc +0 -0
  41. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/basic.cpython-311.pyc +0 -0
  42. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/bose.cpython-311.pyc +0 -0
  43. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/cody.cpython-311.pyc +0 -0
  44. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/copilot.cpython-311.pyc +0 -0
  45. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/dataframe.cpython-311.pyc +0 -0
  46. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/hragents.cpython-311.pyc +0 -0
  47. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/hrbot.cpython-311.pyc +0 -0
  48. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/oddie.cpython-311.pyc +0 -0
  49. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/odoo.cpython-311.pyc +0 -0
  50. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/__pycache__/troc.cpython-311.pyc +0 -0
  51. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/agent.py +0 -0
  52. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/basic.py +0 -0
  53. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/bose.py +0 -0
  54. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/chatbot.py +0 -0
  55. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/cody.py +0 -0
  56. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/copilot.py +0 -0
  57. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/dataframe.py +0 -0
  58. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/hrbot.py +0 -0
  59. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/interfaces/__init__.py +0 -0
  60. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/interfaces/__pycache__/__init__.cpython-311.pyc +0 -0
  61. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/interfaces/__pycache__/retrievers.cpython-311.pyc +0 -0
  62. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/interfaces/retrievers.py +0 -0
  63. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/odoo.py +0 -0
  64. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/prompts/__init__.py +0 -0
  65. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/prompts/__pycache__/__init__.cpython-311.pyc +0 -0
  66. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/prompts/__pycache__/agents.cpython-311.pyc +0 -0
  67. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/prompts/agents.py +0 -0
  68. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/retrievals/__init__.py +0 -0
  69. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/retrievals/__pycache__/__init__.cpython-311.pyc +0 -0
  70. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/retrievals/constitutional.py +0 -0
  71. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/retrievals/retrieval.py +0 -0
  72. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/bots/troc.py +0 -0
  73. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/conf.py +0 -0
  74. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/__init__.py +0 -0
  75. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/__pycache__/__init__.cpython-311.pyc +0 -0
  76. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__init__.py +0 -0
  77. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  78. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/bing.cpython-311.pyc +0 -0
  79. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/config.cpython-311.pyc +0 -0
  80. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/duckgo.cpython-311.pyc +0 -0
  81. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/file.cpython-311.pyc +0 -0
  82. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/google.cpython-311.pyc +0 -0
  83. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/md2pdf.cpython-311.pyc +0 -0
  84. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/rag.cpython-311.pyc +0 -0
  85. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/url.cpython-311.pyc +0 -0
  86. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/__pycache__/weather.cpython-311.pyc +0 -0
  87. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/bing.py +0 -0
  88. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/config.py +0 -0
  89. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/duckgo.py +0 -0
  90. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/file.py +0 -0
  91. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/google.py +0 -0
  92. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/gtrends.py +0 -0
  93. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/md2pdf.py +0 -0
  94. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/rag.py +0 -0
  95. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/search.py +0 -0
  96. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/crew/tools/url.py +0 -0
  97. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/exceptions.c +0 -0
  98. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/exceptions.cpython-311-x86_64-linux-gnu.so +0 -0
  99. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/exceptions.pxd +0 -0
  100. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/exceptions.pyx +0 -0
  101. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/handlers/__init__.py +0 -0
  102. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/handlers/__pycache__/__init__.cpython-311.pyc +0 -0
  103. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/handlers/__pycache__/bots.cpython-311.pyc +0 -0
  104. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/handlers/__pycache__/chat.cpython-311.pyc +0 -0
  105. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/handlers/bots.py +0 -0
  106. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/handlers/chat.py +0 -0
  107. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/interfaces/__init__.py +0 -0
  108. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/interfaces/__pycache__/__init__.cpython-311.pyc +0 -0
  109. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/interfaces/__pycache__/database.cpython-311.pyc +0 -0
  110. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/interfaces/__pycache__/http.cpython-311.pyc +0 -0
  111. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/interfaces/database.py +0 -0
  112. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/interfaces/http.py +0 -0
  113. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__init__.py +0 -0
  114. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/__init__.cpython-311.pyc +0 -0
  115. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/abstract.cpython-311.pyc +0 -0
  116. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/anthropic.cpython-311.pyc +0 -0
  117. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/google.cpython-311.pyc +0 -0
  118. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/groq.cpython-311.pyc +0 -0
  119. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/hf.cpython-311.pyc +0 -0
  120. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/openai.cpython-311.pyc +0 -0
  121. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/pipes.cpython-311.pyc +0 -0
  122. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/__pycache__/vertex.cpython-311.pyc +0 -0
  123. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/abstract.py +0 -0
  124. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/anthropic.py +0 -0
  125. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/google.py +0 -0
  126. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/groq.py +0 -0
  127. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/hf.py +0 -0
  128. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/openai.py +0 -0
  129. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/pipes.py +0 -0
  130. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/llms/vertex.py +0 -0
  131. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/models.py +0 -0
  132. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/py.typed +0 -0
  133. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__init__.py +0 -0
  134. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/__init__.cpython-311.pyc +0 -0
  135. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/base.cpython-311.pyc +0 -0
  136. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/chroma.cpython-311.pyc +0 -0
  137. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/duck.cpython-311.pyc +0 -0
  138. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/empty.cpython-311.pyc +0 -0
  139. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/faiss.cpython-311.pyc +0 -0
  140. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/milvus.cpython-311.pyc +0 -0
  141. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/postgres.cpython-311.pyc +0 -0
  142. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/__pycache__/qdrant.cpython-311.pyc +0 -0
  143. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/abstract.py +0 -0
  144. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/chroma.py +0 -0
  145. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/duck.py +0 -0
  146. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/__init__.py +0 -0
  147. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/__pycache__/__init__.cpython-311.pyc +0 -0
  148. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/__pycache__/abstract.cpython-311.pyc +0 -0
  149. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/__pycache__/base.cpython-311.pyc +0 -0
  150. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/__pycache__/huggingface.cpython-311.pyc +0 -0
  151. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/__pycache__/transformers.cpython-311.pyc +0 -0
  152. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/abstract.py +0 -0
  153. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/base.py +0 -0
  154. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/bge.py +0 -0
  155. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/fastembed.py +0 -0
  156. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/google.py +0 -0
  157. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/huggingface.py +0 -0
  158. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/ollama.py +0 -0
  159. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/openai.py +0 -0
  160. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/transformers.py +0 -0
  161. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/embeddings/vertexai.py +0 -0
  162. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/empty.py +0 -0
  163. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/faiss.py +0 -0
  164. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/milvus.py +0 -0
  165. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/postgres.py +0 -0
  166. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/stores/qdrant.py +0 -0
  167. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__init__.py +0 -0
  168. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  169. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/abstract.cpython-311.pyc +0 -0
  170. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/asknews.cpython-311.pyc +0 -0
  171. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/basic.cpython-311.pyc +0 -0
  172. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/bby.cpython-311.pyc +0 -0
  173. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/bing.cpython-311.pyc +0 -0
  174. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/duck.cpython-311.pyc +0 -0
  175. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/execute.cpython-311.pyc +0 -0
  176. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/google.cpython-311.pyc +0 -0
  177. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/stack.cpython-311.pyc +0 -0
  178. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/weather.cpython-311.pyc +0 -0
  179. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/wikipedia.cpython-311.pyc +0 -0
  180. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/__pycache__/zipcode.cpython-311.pyc +0 -0
  181. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/abstract.py +0 -0
  182. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/asknews.py +0 -0
  183. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/basic.py +0 -0
  184. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/bby.py +0 -0
  185. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/bing.py +0 -0
  186. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/duck.py +0 -0
  187. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/execute.py +0 -0
  188. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/google.py +0 -0
  189. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/stack.py +0 -0
  190. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/weather.py +0 -0
  191. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/wikipedia.py +0 -0
  192. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/tools/zipcode.py +0 -0
  193. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/__init__.py +0 -0
  194. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  195. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/__pycache__/toml.cpython-311.pyc +0 -0
  196. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/parsers/__init__.py +0 -0
  197. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/parsers/__pycache__/__init__.cpython-311.pyc +0 -0
  198. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/parsers/toml.c +0 -0
  199. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/parsers/toml.cpython-311-x86_64-linux-gnu.so +0 -0
  200. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/parsers/toml.pyx +0 -0
  201. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/toml.py +0 -0
  202. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/types.cpp +0 -0
  203. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/types.cpython-311-x86_64-linux-gnu.so +0 -0
  204. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/types.pyx +0 -0
  205. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/parrot/utils/uv.py +0 -0
  206. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/pyproject.toml +0 -0
  207. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/pytest.ini +0 -0
  208. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/requirements/requirements-dev.txt +0 -0
  209. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/run.py +0 -0
  210. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/setup.cfg +0 -0
  211. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/setup.py +0 -0
  212. {ai_parrot-0.5.11 → ai_parrot-0.5.13}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ai-parrot
3
- Version: 0.5.11
3
+ Version: 0.5.13
4
4
  Summary: Live Chatbots based on Langchain chatbots and Agents Integrated into Navigator Framework or used into any aiohttp applications.
5
5
  Home-page: https://github.com/phenobarbital/ai-parrot
6
6
  Author: Jesus Lara
@@ -477,6 +477,7 @@ class AbstractBot(DBInterface, ABC):
477
477
  except ImportError:
478
478
  continue
479
479
  elif isinstance(self._vector_store, dict):
480
+ print('< ENTERING HERE > ', )
480
481
  # Is a single vector store instance:
481
482
  store_cls = self._get_database_store(self._vector_store)
482
483
  store_cls.use_database = self._use_vector
@@ -485,9 +486,15 @@ class AbstractBot(DBInterface, ABC):
485
486
  raise ValueError(
486
487
  f"Invalid Vector Store Config: {self._vector_store}"
487
488
  )
488
- self.logger.info(f"Configured Vector Stores: {self.stores}")
489
+ self.logger.info(
490
+ f"Configured Vector Stores: {self.stores}"
491
+ )
489
492
  if self.stores:
490
493
  self.store = self.stores[0]
494
+ print('=================================')
495
+ print('END STORES >> ', self.stores, self.store)
496
+ print('=================================')
497
+
491
498
 
492
499
  def get_memory(
493
500
  self,
@@ -0,0 +1,122 @@
1
+ from typing import List, Dict, Any, Optional
2
+ from collections.abc import Callable
3
+ from langchain_core.retrievers import BaseRetriever
4
+ from langchain_core.callbacks import CallbackManagerForRetrieverRun
5
+ from langchain_core.documents import Document
6
+ from pydantic import Field
7
+
8
+ class MultiVectorStoreRetriever(BaseRetriever):
9
+ """
10
+ This aggregator retriever queries multiple vector stores
11
+ and merges the results into a single list.
12
+ """
13
+
14
+ # Define class attributes with default values
15
+ stores: List[Any] = Field(description="List of vector stores that provide an as_retriever() method")
16
+ search_kwargs: Optional[Dict[str, Any]] = Field(default_factory=dict, description="Dict to pass to each store's retrieve method (like 'k' for top_k)")
17
+ chain_type: Optional[str] = Field(default="stuff", description="Chain type for the retriever")
18
+ search_type: Optional[str] = Field(default="similarity", description="Search type (similarity, mmr)")
19
+ metric_type: Optional[str] = Field(default="COSINE", description="Similarity metric (COSINE, EUCLIDEAN, DOT_PRODUCT)")
20
+ class Config:
21
+ """Configuration for this pydantic object."""
22
+ arbitrary_types_allowed = True
23
+
24
+ def __init__(
25
+ self,
26
+ stores: List[Any],
27
+ metric_type: str = 'COSINE',
28
+ chain_type: str = 'stuff',
29
+ search_type: str = 'similarity',
30
+ search_kwargs: Optional[Dict[str, Any]] = None,
31
+ **kwargs
32
+ ):
33
+ """
34
+ Initialize the MultiVectorStoreRetriever.
35
+
36
+ Args:
37
+ stores: List of vector stores that provide an as_retriever() method
38
+ metric_type: Similarity metric (COSINE, EUCLIDEAN, DOT_PRODUCT)
39
+ chain_type: Chain type for the retriever
40
+ search_type: Search type (similarity, mmr)
41
+ search_kwargs: Dict to pass to each store's retrieve method (like 'k' for top_k)
42
+ """
43
+ # Initialize with default values
44
+ search_kwargs = search_kwargs or {}
45
+
46
+ # Call super().__init__ with all properties
47
+ super().__init__(
48
+ stores=stores,
49
+ search_kwargs=search_kwargs,
50
+ chain_type=chain_type,
51
+ search_type=search_type,
52
+ metric_type=metric_type,
53
+ **kwargs
54
+ )
55
+
56
+ def _get_relevant_documents(
57
+ self, query: str, *, run_manager: CallbackManagerForRetrieverRun
58
+ ) -> List[Document]:
59
+ """
60
+ Get documents relevant to the query.
61
+ Implements the required method from BaseRetriever.
62
+
63
+ Args:
64
+ query: Query string
65
+ run_manager: CallbackManager for the run
66
+
67
+ Returns:
68
+ List of relevant documents
69
+ """
70
+ all_results = []
71
+ for store in self.stores:
72
+ try:
73
+ retriever = store.as_retriever(
74
+ search_type=self.search_type,
75
+ search_kwargs=self.search_kwargs,
76
+ )
77
+ # Pass the run_manager to the sub-retrievers if they support it
78
+ if hasattr(retriever, "_get_relevant_documents"):
79
+ callback_manager = run_manager.get_child()
80
+ docs = retriever._get_relevant_documents(query, run_manager=callback_manager)
81
+ else:
82
+ docs = retriever.get_relevant_documents(query)
83
+ all_results.extend(docs)
84
+ except Exception as e:
85
+ # Log the error but continue with other stores
86
+ run_manager.on_retriever_error(f"Error retrieving from store: {str(e)}")
87
+ continue
88
+ return all_results
89
+
90
+ async def _aget_relevant_documents(
91
+ self, query: str, *, run_manager: CallbackManagerForRetrieverRun
92
+ ) -> List[Document]:
93
+ """
94
+ Asynchronously get documents relevant to the query.
95
+ Implements the required async method from BaseRetriever.
96
+
97
+ Args:
98
+ query: Query string
99
+ run_manager: CallbackManager for the run
100
+
101
+ Returns:
102
+ List of relevant documents
103
+ """
104
+ all_results = []
105
+ for store in self.stores:
106
+ try:
107
+ retriever = store.as_retriever(
108
+ search_type=self.search_type,
109
+ search_kwargs=self.search_kwargs,
110
+ )
111
+ # Pass the run_manager to the sub-retrievers if they support it
112
+ if hasattr(retriever, "_aget_relevant_documents"):
113
+ callback_manager = run_manager.get_child()
114
+ docs = await retriever._aget_relevant_documents(query, run_manager=callback_manager)
115
+ else:
116
+ docs = await retriever.aget_relevant_documents(query)
117
+ all_results.extend(docs)
118
+ except Exception as e:
119
+ # Log the error but continue with other stores
120
+ run_manager.on_retriever_error(f"Error retrieving from store: {str(e)}")
121
+ continue
122
+ return all_results
@@ -61,7 +61,9 @@ class BotManager:
61
61
  f"Failed to load chatbots from DB: {e}"
62
62
  )
63
63
  return
64
+ print('HERE >>>>>> ', len(bots))
64
65
  for bot in bots:
66
+ print('CREATING BOT > ', bot)
65
67
  if bot.bot_type == 'chatbot':
66
68
  self.logger.notice(
67
69
  f"Loading chatbot '{bot.name}'..."
@@ -3,7 +3,7 @@
3
3
  __title__ = "ai-parrot"
4
4
  __description__ = "Live Chatbots based on Langchain chatbots and Agents \
5
5
  Integrated into Navigator Framework or used into any aiohttp applications."
6
- __version__ = "0.5.11"
6
+ __version__ = "0.5.13"
7
7
  __author__ = "Jesus Lara"
8
8
  __author_email__ = "jesuslarag@gmail.com"
9
9
  __license__ = "MIT"
@@ -1,102 +0,0 @@
1
- from typing import List, Dict, Any, Optional
2
- from langchain_core.retrievers import BaseRetriever
3
- from langchain_core.callbacks import CallbackManagerForRetrieverRun
4
- from langchain_core.documents import Document
5
-
6
-
7
- class MultiVectorStoreRetriever(BaseRetriever):
8
- """
9
- This aggregator retriever queries multiple vector stores
10
- and merges the results into a single list.
11
- """
12
-
13
- stores: List[Any]
14
- search_kwargs: Dict[str, Any]
15
- chain_type: str
16
- search_type: str
17
- metric_type: str
18
-
19
- def __init__(
20
- self,
21
- stores: List[Any],
22
- metric_type: str = 'COSINE',
23
- chain_type: str = 'stuff',
24
- search_type: str = 'similarity',
25
- search_kwargs: Optional[Dict[str, Any]] = None,
26
- ):
27
- """
28
- Initialize the MultiVectorStoreRetriever.
29
-
30
- Args:
31
- stores: List of vector stores that provide an as_retriever() method
32
- metric_type: Similarity metric (COSINE, EUCLIDEAN, DOT_PRODUCT)
33
- chain_type: Chain type for the retriever
34
- search_type: Search type (similarity, mmr)
35
- search_kwargs: Dict to pass to each store's retrieve method (like 'k' for top_k)
36
- """
37
- super().__init__()
38
- self.stores = stores
39
- self.search_kwargs = search_kwargs or {}
40
- self.chain_type = chain_type
41
- self.search_type = search_type
42
- self.metric_type = metric_type
43
-
44
- def _get_relevant_documents(
45
- self, query: str, *, run_manager: CallbackManagerForRetrieverRun
46
- ) -> List[Document]:
47
- """
48
- Get documents relevant to the query.
49
- Implements the required method from BaseRetriever.
50
-
51
- Args:
52
- query: Query string
53
- run_manager: CallbackManager for the run
54
-
55
- Returns:
56
- List of relevant documents
57
- """
58
- all_results = []
59
- for store in self.stores:
60
- retriever = store.as_retriever(
61
- search_type=self.search_type,
62
- search_kwargs=self.search_kwargs,
63
- chain_type=self.chain_type
64
- )
65
- # Pass the run_manager to the sub-retrievers if they support it
66
- if hasattr(retriever, "_get_relevant_documents"):
67
- callback_manager = run_manager.get_child()
68
- docs = retriever._get_relevant_documents(query, run_manager=callback_manager)
69
- else:
70
- docs = retriever.get_relevant_documents(query)
71
- all_results.extend(docs)
72
- return all_results
73
-
74
- async def _aget_relevant_documents(
75
- self, query: str, *, run_manager: CallbackManagerForRetrieverRun
76
- ) -> List[Document]:
77
- """
78
- Asynchronously get documents relevant to the query.
79
- Implements the required async method from BaseRetriever.
80
-
81
- Args:
82
- query: Query string
83
- run_manager: CallbackManager for the run
84
-
85
- Returns:
86
- List of relevant documents
87
- """
88
- all_results = []
89
- for store in self.stores:
90
- retriever = store.as_retriever(
91
- search_type=self.search_type,
92
- search_kwargs=self.search_kwargs,
93
- chain_type=self.chain_type
94
- )
95
- # Pass the run_manager to the sub-retrievers if they support it
96
- if hasattr(retriever, "_aget_relevant_documents"):
97
- callback_manager = run_manager.get_child()
98
- docs = await retriever._aget_relevant_documents(query, run_manager=callback_manager)
99
- else:
100
- docs = await retriever.aget_relevant_documents(query)
101
- all_results.extend(docs)
102
- return all_results
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes