ai-parrot 0.5.10__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.10 → ai_parrot-0.5.12}/PKG-INFO +1 -1
  2. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/__pycache__/version.cpython-311.pyc +0 -0
  3. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/abstract.cpython-311.pyc +0 -0
  4. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/chatbot.cpython-311.pyc +0 -0
  5. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/abstract.py +6 -0
  6. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/chatbot.py +3 -0
  7. ai_parrot-0.5.12/parrot/bots/retrievals/__pycache__/multi.cpython-311.pyc +0 -0
  8. ai_parrot-0.5.12/parrot/bots/retrievals/multi.py +123 -0
  9. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/abstract.cpython-311.pyc +0 -0
  10. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/version.py +1 -1
  11. ai_parrot-0.5.10/parrot/bots/retrievals/__pycache__/multi.cpython-311.pyc +0 -0
  12. ai_parrot-0.5.10/parrot/bots/retrievals/multi.py +0 -102
  13. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.flake8 +0 -0
  14. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.github/dependabot.yml +0 -0
  15. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.github/workflows/codeql-analysis.yml +0 -0
  16. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.github/workflows/release.yml +0 -0
  17. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.gitignore +0 -0
  18. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.isort.cfg +0 -0
  19. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/.pylintrc +0 -0
  20. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/INSTALL +0 -0
  21. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/LICENSE +0 -0
  22. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/MANIFEST.in +0 -0
  23. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/Makefile +0 -0
  24. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/README.md +0 -0
  25. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/SECURITY.md +0 -0
  26. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/ai_parrot.egg-info/SOURCES.txt +0 -0
  27. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/app.py +0 -0
  28. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/mypy.ini +0 -0
  29. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/__init__.py +0 -0
  30. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/__pycache__/__init__.cpython-311.pyc +0 -0
  31. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/__pycache__/conf.cpython-311.pyc +0 -0
  32. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/__pycache__/manager.cpython-311.pyc +0 -0
  33. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/__pycache__/models.cpython-311.pyc +0 -0
  34. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__init__.py +0 -0
  35. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/__init__.cpython-311.pyc +0 -0
  36. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/a.cpython-311.pyc +0 -0
  37. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/agent.cpython-311.pyc +0 -0
  38. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/askbrett.cpython-311.pyc +0 -0
  39. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/asktroc.cpython-311.pyc +0 -0
  40. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/base.cpython-311.pyc +0 -0
  41. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/basic.cpython-311.pyc +0 -0
  42. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/bose.cpython-311.pyc +0 -0
  43. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/cody.cpython-311.pyc +0 -0
  44. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/copilot.cpython-311.pyc +0 -0
  45. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/dataframe.cpython-311.pyc +0 -0
  46. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/hragents.cpython-311.pyc +0 -0
  47. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/hrbot.cpython-311.pyc +0 -0
  48. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/oddie.cpython-311.pyc +0 -0
  49. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/odoo.cpython-311.pyc +0 -0
  50. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/__pycache__/troc.cpython-311.pyc +0 -0
  51. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/agent.py +0 -0
  52. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/basic.py +0 -0
  53. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/bose.py +0 -0
  54. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/cody.py +0 -0
  55. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/copilot.py +0 -0
  56. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/dataframe.py +0 -0
  57. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/hrbot.py +0 -0
  58. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/interfaces/__init__.py +0 -0
  59. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/interfaces/__pycache__/__init__.cpython-311.pyc +0 -0
  60. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/interfaces/__pycache__/retrievers.cpython-311.pyc +0 -0
  61. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/interfaces/retrievers.py +0 -0
  62. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/odoo.py +0 -0
  63. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/prompts/__init__.py +0 -0
  64. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/prompts/__pycache__/__init__.cpython-311.pyc +0 -0
  65. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/prompts/__pycache__/agents.cpython-311.pyc +0 -0
  66. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/prompts/agents.py +0 -0
  67. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/retrievals/__init__.py +0 -0
  68. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/retrievals/__pycache__/__init__.cpython-311.pyc +0 -0
  69. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/retrievals/constitutional.py +0 -0
  70. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/retrievals/retrieval.py +0 -0
  71. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/bots/troc.py +0 -0
  72. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/conf.py +0 -0
  73. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/__init__.py +0 -0
  74. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/__pycache__/__init__.cpython-311.pyc +0 -0
  75. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__init__.py +0 -0
  76. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  77. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/bing.cpython-311.pyc +0 -0
  78. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/config.cpython-311.pyc +0 -0
  79. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/duckgo.cpython-311.pyc +0 -0
  80. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/file.cpython-311.pyc +0 -0
  81. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/google.cpython-311.pyc +0 -0
  82. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/md2pdf.cpython-311.pyc +0 -0
  83. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/rag.cpython-311.pyc +0 -0
  84. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/url.cpython-311.pyc +0 -0
  85. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/__pycache__/weather.cpython-311.pyc +0 -0
  86. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/bing.py +0 -0
  87. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/config.py +0 -0
  88. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/duckgo.py +0 -0
  89. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/file.py +0 -0
  90. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/google.py +0 -0
  91. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/gtrends.py +0 -0
  92. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/md2pdf.py +0 -0
  93. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/rag.py +0 -0
  94. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/search.py +0 -0
  95. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/crew/tools/url.py +0 -0
  96. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/exceptions.c +0 -0
  97. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/exceptions.cpython-311-x86_64-linux-gnu.so +0 -0
  98. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/exceptions.pxd +0 -0
  99. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/exceptions.pyx +0 -0
  100. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/handlers/__init__.py +0 -0
  101. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/handlers/__pycache__/__init__.cpython-311.pyc +0 -0
  102. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/handlers/__pycache__/bots.cpython-311.pyc +0 -0
  103. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/handlers/__pycache__/chat.cpython-311.pyc +0 -0
  104. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/handlers/bots.py +0 -0
  105. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/handlers/chat.py +0 -0
  106. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/interfaces/__init__.py +0 -0
  107. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/interfaces/__pycache__/__init__.cpython-311.pyc +0 -0
  108. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/interfaces/__pycache__/database.cpython-311.pyc +0 -0
  109. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/interfaces/__pycache__/http.cpython-311.pyc +0 -0
  110. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/interfaces/database.py +0 -0
  111. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/interfaces/http.py +0 -0
  112. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__init__.py +0 -0
  113. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/__init__.cpython-311.pyc +0 -0
  114. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/abstract.cpython-311.pyc +0 -0
  115. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/anthropic.cpython-311.pyc +0 -0
  116. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/google.cpython-311.pyc +0 -0
  117. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/groq.cpython-311.pyc +0 -0
  118. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/hf.cpython-311.pyc +0 -0
  119. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/openai.cpython-311.pyc +0 -0
  120. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/pipes.cpython-311.pyc +0 -0
  121. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/__pycache__/vertex.cpython-311.pyc +0 -0
  122. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/abstract.py +0 -0
  123. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/anthropic.py +0 -0
  124. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/google.py +0 -0
  125. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/groq.py +0 -0
  126. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/hf.py +0 -0
  127. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/openai.py +0 -0
  128. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/pipes.py +0 -0
  129. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/llms/vertex.py +0 -0
  130. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/manager.py +0 -0
  131. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/models.py +0 -0
  132. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/py.typed +0 -0
  133. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__init__.py +0 -0
  134. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/__init__.cpython-311.pyc +0 -0
  135. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/base.cpython-311.pyc +0 -0
  136. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/chroma.cpython-311.pyc +0 -0
  137. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/duck.cpython-311.pyc +0 -0
  138. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/empty.cpython-311.pyc +0 -0
  139. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/faiss.cpython-311.pyc +0 -0
  140. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/milvus.cpython-311.pyc +0 -0
  141. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/postgres.cpython-311.pyc +0 -0
  142. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/__pycache__/qdrant.cpython-311.pyc +0 -0
  143. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/abstract.py +0 -0
  144. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/chroma.py +0 -0
  145. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/duck.py +0 -0
  146. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/__init__.py +0 -0
  147. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/__pycache__/__init__.cpython-311.pyc +0 -0
  148. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/__pycache__/abstract.cpython-311.pyc +0 -0
  149. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/__pycache__/base.cpython-311.pyc +0 -0
  150. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/__pycache__/huggingface.cpython-311.pyc +0 -0
  151. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/__pycache__/transformers.cpython-311.pyc +0 -0
  152. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/abstract.py +0 -0
  153. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/base.py +0 -0
  154. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/bge.py +0 -0
  155. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/fastembed.py +0 -0
  156. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/google.py +0 -0
  157. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/huggingface.py +0 -0
  158. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/ollama.py +0 -0
  159. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/openai.py +0 -0
  160. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/transformers.py +0 -0
  161. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/embeddings/vertexai.py +0 -0
  162. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/empty.py +0 -0
  163. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/faiss.py +0 -0
  164. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/milvus.py +0 -0
  165. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/postgres.py +0 -0
  166. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/stores/qdrant.py +0 -0
  167. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__init__.py +0 -0
  168. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  169. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/abstract.cpython-311.pyc +0 -0
  170. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/asknews.cpython-311.pyc +0 -0
  171. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/basic.cpython-311.pyc +0 -0
  172. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/bby.cpython-311.pyc +0 -0
  173. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/bing.cpython-311.pyc +0 -0
  174. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/duck.cpython-311.pyc +0 -0
  175. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/execute.cpython-311.pyc +0 -0
  176. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/google.cpython-311.pyc +0 -0
  177. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/stack.cpython-311.pyc +0 -0
  178. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/weather.cpython-311.pyc +0 -0
  179. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/wikipedia.cpython-311.pyc +0 -0
  180. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/__pycache__/zipcode.cpython-311.pyc +0 -0
  181. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/abstract.py +0 -0
  182. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/asknews.py +0 -0
  183. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/basic.py +0 -0
  184. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/bby.py +0 -0
  185. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/bing.py +0 -0
  186. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/duck.py +0 -0
  187. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/execute.py +0 -0
  188. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/google.py +0 -0
  189. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/stack.py +0 -0
  190. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/weather.py +0 -0
  191. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/wikipedia.py +0 -0
  192. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/tools/zipcode.py +0 -0
  193. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/__init__.py +0 -0
  194. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  195. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/__pycache__/toml.cpython-311.pyc +0 -0
  196. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/parsers/__init__.py +0 -0
  197. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/parsers/__pycache__/__init__.cpython-311.pyc +0 -0
  198. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/parsers/toml.c +0 -0
  199. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/parsers/toml.cpython-311-x86_64-linux-gnu.so +0 -0
  200. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/parsers/toml.pyx +0 -0
  201. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/toml.py +0 -0
  202. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/types.cpp +0 -0
  203. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/types.cpython-311-x86_64-linux-gnu.so +0 -0
  204. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/types.pyx +0 -0
  205. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/parrot/utils/uv.py +0 -0
  206. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/pyproject.toml +0 -0
  207. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/pytest.ini +0 -0
  208. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/requirements/requirements-dev.txt +0 -0
  209. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/run.py +0 -0
  210. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/setup.cfg +0 -0
  211. {ai_parrot-0.5.10 → ai_parrot-0.5.12}/setup.py +0 -0
  212. {ai_parrot-0.5.10 → 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.10
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
@@ -466,6 +466,7 @@ class AbstractBot(DBInterface, ABC):
466
466
 
467
467
  def configure_store(self, **kwargs):
468
468
  # TODO: Implement VectorStore Configuration
469
+ print('SELF > ', self._vector_store)
469
470
  if isinstance(self._vector_store, list):
470
471
  # Is a list of vector stores instances:
471
472
  for st in self._vector_store:
@@ -476,6 +477,7 @@ class AbstractBot(DBInterface, ABC):
476
477
  except ImportError:
477
478
  continue
478
479
  elif isinstance(self._vector_store, dict):
480
+ print('< ENTERING HERE > ', )
479
481
  # Is a single vector store instance:
480
482
  store_cls = self._get_database_store(self._vector_store)
481
483
  store_cls.use_database = self._use_vector
@@ -487,6 +489,10 @@ class AbstractBot(DBInterface, ABC):
487
489
  self.logger.info(f"Configured Vector Stores: {self.stores}")
488
490
  if self.stores:
489
491
  self.store = self.stores[0]
492
+ print('=================================')
493
+ print('END STORES >> ', self.stores, self.store)
494
+ print('=================================')
495
+
490
496
 
491
497
  def get_memory(
492
498
  self,
@@ -244,6 +244,9 @@ class Chatbot(AbstractBot):
244
244
  vector_db = database.pop('vector_database', None)
245
245
  # configure vector database:
246
246
  if vector_db:
247
+ # Initialize the store:
248
+ self.stores = []
249
+ self.store = None
247
250
  self._use_vector = vector_store
248
251
  self._vector_store = database
249
252
  self.configure_store()
@@ -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.10"
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