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