ai-parrot 0.3.9__tar.gz → 0.3.11__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 (161) hide show
  1. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/PKG-INFO +5 -3
  2. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/ai_parrot.egg-info/PKG-INFO +5 -3
  3. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/ai_parrot.egg-info/SOURCES.txt +1 -0
  4. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/ai_parrot.egg-info/requires.txt +4 -2
  5. ai_parrot-0.3.11/examples/askbuddy/load_pdf.py +52 -0
  6. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/audio.py +2 -2
  7. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/excel.py +2 -2
  8. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/pdf.py +10 -10
  9. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/pdfchapters.py +1 -1
  10. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/pdffn.py +1 -1
  11. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/pdfimages.py +2 -2
  12. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/pdfmark.py +1 -1
  13. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/pdftables.py +1 -1
  14. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/qa.py +1 -1
  15. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/rtd.py +1 -1
  16. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/txt.py +1 -1
  17. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/videolocal.py +2 -2
  18. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/vimeo.py +2 -2
  19. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/web.py +1 -1
  20. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/web_base.py +1 -1
  21. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/word.py +1 -1
  22. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/youtube.py +4 -4
  23. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/stores/milvus.py +5 -5
  24. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/version.py +1 -1
  25. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/setup.py +5 -3
  26. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.flake8 +0 -0
  27. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.github/dependabot.yml +0 -0
  28. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.github/workflows/codeql-analysis.yml +0 -0
  29. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.github/workflows/release.yml +0 -0
  30. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.gitignore +0 -0
  31. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.isort.cfg +0 -0
  32. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/.pylintrc +0 -0
  33. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/INSTALL +0 -0
  34. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/LICENSE +0 -0
  35. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/Makefile +0 -0
  36. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/README.md +0 -0
  37. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/SECURITY.md +0 -0
  38. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/ai_parrot.egg-info/dependency_links.txt +0 -0
  39. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/ai_parrot.egg-info/top_level.txt +0 -0
  40. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/app.py +0 -0
  41. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/documents/AR_Certification_Skill_Practice_Scorecard_EXAMPLE.pdf +0 -0
  42. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/documents/Day 1_Essentials_AR_PPT.pdf +0 -0
  43. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/documents/ex-code-loaders.txt +0 -0
  44. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/documents/video_2024-09-11_19-43-58.mp3 +0 -0
  45. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/documents/video_2024-09-11_19-43-58.mp4 +0 -0
  46. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/documents/video_2024-09-11_19-43-58.vtt +0 -0
  47. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/navigator-ssl.ini +0 -0
  48. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/navigator.ini +0 -0
  49. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/domain.ext +0 -0
  50. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/navigator.local.crt +0 -0
  51. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/navigator.local.csr +0 -0
  52. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/navigator.local.key +0 -0
  53. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/rootCA.crt +0 -0
  54. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/rootCA.key +0 -0
  55. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/etc/ssl/rootCA.srl +0 -0
  56. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/analyze_video.py +0 -0
  57. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/askbuddy/create_bot.py +0 -0
  58. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/check_bot.py +0 -0
  59. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/extract_frames.py +0 -0
  60. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/load_pdf.py +0 -0
  61. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/test_bot.py +0 -0
  62. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/examples/test_question.py +0 -0
  63. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/mypy.ini +0 -0
  64. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/__init__.py +0 -0
  65. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/__init__.py +0 -0
  66. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/abstract.py +0 -0
  67. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/asktroc.py +0 -0
  68. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/base.py +0 -0
  69. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/basic.py +0 -0
  70. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/bose.py +0 -0
  71. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/cody.py +0 -0
  72. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/copilot.py +0 -0
  73. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/dataframe.py +0 -0
  74. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/hragents.py +0 -0
  75. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/odoo.py +0 -0
  76. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/retrievals/__init__.py +0 -0
  77. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/chatbots/retrievals/constitutional.py +0 -0
  78. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/conf.py +0 -0
  79. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/__init__.py +0 -0
  80. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/__init__.py +0 -0
  81. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/bing.py +0 -0
  82. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/config.py +0 -0
  83. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/duckgo.py +0 -0
  84. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/file.py +0 -0
  85. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/google.py +0 -0
  86. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/gtrends.py +0 -0
  87. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/md2pdf.py +0 -0
  88. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/rag.py +0 -0
  89. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/search.py +0 -0
  90. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/crew/tools/url.py +0 -0
  91. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/exceptions.c +0 -0
  92. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/exceptions.pyx +0 -0
  93. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/handlers/__init__.py +0 -0
  94. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/handlers/bots.py +0 -0
  95. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/handlers/chat.py +0 -0
  96. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/interfaces/__init__.py +0 -0
  97. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/interfaces/database.py +0 -0
  98. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/__init__.py +0 -0
  99. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/abstract.py +0 -0
  100. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/anthropic.py +0 -0
  101. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/google.py +0 -0
  102. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/groq.py +0 -0
  103. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/hf.py +0 -0
  104. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/openai.py +0 -0
  105. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/pipes.py +0 -0
  106. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/llms/vertex.py +0 -0
  107. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/__init__.py +0 -0
  108. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/abstract.py +0 -0
  109. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/basepdf.py +0 -0
  110. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/basevideo.py +0 -0
  111. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/csv.py +0 -0
  112. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/dir.py +0 -0
  113. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/github.py +0 -0
  114. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/handlers/__init__.py +0 -0
  115. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/handlers/data.py +0 -0
  116. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/image.py +0 -0
  117. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/json.py +0 -0
  118. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/ppt.py +0 -0
  119. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/repo.py +0 -0
  120. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/utils/__init__.py +0 -0
  121. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/utils/models.py +0 -0
  122. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/loaders/video.py +0 -0
  123. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/manager.py +0 -0
  124. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/models.py +0 -0
  125. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/py.typed +0 -0
  126. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/stores/__init__.py +0 -0
  127. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/stores/abstract.py +0 -0
  128. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/stores/qdrant.py +0 -0
  129. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/__init__.py +0 -0
  130. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/abstract.py +0 -0
  131. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/asknews.py +0 -0
  132. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/bing.py +0 -0
  133. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/duck.py +0 -0
  134. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/google.py +0 -0
  135. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/stack.py +0 -0
  136. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/weather.py +0 -0
  137. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/wikipedia.py +0 -0
  138. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/tools/zipcode.py +0 -0
  139. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/__init__.py +0 -0
  140. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/parsers/__init__.py +0 -0
  141. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/parsers/toml.c +0 -0
  142. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/parsers/toml.pyx +0 -0
  143. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/toml.py +0 -0
  144. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/types.cpp +0 -0
  145. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/types.pyx +0 -0
  146. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/parrot/utils/uv.py +0 -0
  147. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/pyproject.toml +0 -0
  148. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/pytest.ini +0 -0
  149. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/requirements/requirements-dev.txt +0 -0
  150. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/resources/__init__.py +0 -0
  151. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/resources/quick.py +0 -0
  152. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/resources/users/__init__.py +0 -0
  153. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/resources/users/handlers.py +0 -0
  154. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/resources/users/models.py +0 -0
  155. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/run.py +0 -0
  156. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/settings/__init__.py +0 -0
  157. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/settings/settings.py +0 -0
  158. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/setup.cfg +0 -0
  159. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/templates/.compiled +0 -0
  160. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/templates/README.md +0 -0
  161. {ai_parrot-0.3.9 → ai_parrot-0.3.11}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ai-parrot
3
- Version: 0.3.9
3
+ Version: 0.3.11
4
4
  Summary: Live Chatbots based on Langchain chatbots and Agents Integrated into Navigator Framework or used into aiohttp applications.
5
5
  Home-page: https://github.com/phenobarbital/ai-parrot
6
6
  Author: Jesus Lara
@@ -78,6 +78,8 @@ Requires-Dist: O365==2.0.35
78
78
  Requires-Dist: stackapi==0.3.1
79
79
  Requires-Dist: torchvision==0.19.1
80
80
  Requires-Dist: tf-keras==2.17.0
81
+ Requires-Dist: simsimd==4.3.1
82
+ Requires-Dist: opencv-python==4.10.0.84
81
83
  Provides-Extra: loaders
82
84
  Requires-Dist: unstructured==0.14.3; extra == "loaders"
83
85
  Requires-Dist: unstructured-client==0.18.0; extra == "loaders"
@@ -108,6 +110,8 @@ Requires-Dist: ftfy==6.2.3; extra == "loaders"
108
110
  Requires-Dist: librosa==0.10.1; extra == "loaders"
109
111
  Requires-Dist: XlsxWriter==3.2.0; extra == "loaders"
110
112
  Requires-Dist: timm==1.0.9; extra == "loaders"
113
+ Requires-Dist: simsimd==4.3.1; extra == "loaders"
114
+ Requires-Dist: opencv-python==4.10.0.84; extra == "loaders"
111
115
  Requires-Dist: easyocr==1.7.1; extra == "loaders"
112
116
  Provides-Extra: anthropic
113
117
  Requires-Dist: langchain-anthropic==0.1.11; extra == "anthropic"
@@ -141,8 +145,6 @@ Requires-Dist: annoy==1.17.3; extra == "analytics"
141
145
  Requires-Dist: gradio_tools==0.0.9; extra == "analytics"
142
146
  Requires-Dist: gradio-client==0.2.9; extra == "analytics"
143
147
  Requires-Dist: streamlit==1.37.1; extra == "analytics"
144
- Requires-Dist: simsimd==4.3.1; extra == "analytics"
145
- Requires-Dist: opencv-python==4.10.0.84; extra == "analytics"
146
148
 
147
149
  # AI Parrot: Python package for creating Chatbots
148
150
  This is an open-source Python package for creating Chatbots based on Langchain and Navigator.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ai-parrot
3
- Version: 0.3.9
3
+ Version: 0.3.11
4
4
  Summary: Live Chatbots based on Langchain chatbots and Agents Integrated into Navigator Framework or used into aiohttp applications.
5
5
  Home-page: https://github.com/phenobarbital/ai-parrot
6
6
  Author: Jesus Lara
@@ -78,6 +78,8 @@ Requires-Dist: O365==2.0.35
78
78
  Requires-Dist: stackapi==0.3.1
79
79
  Requires-Dist: torchvision==0.19.1
80
80
  Requires-Dist: tf-keras==2.17.0
81
+ Requires-Dist: simsimd==4.3.1
82
+ Requires-Dist: opencv-python==4.10.0.84
81
83
  Provides-Extra: loaders
82
84
  Requires-Dist: unstructured==0.14.3; extra == "loaders"
83
85
  Requires-Dist: unstructured-client==0.18.0; extra == "loaders"
@@ -108,6 +110,8 @@ Requires-Dist: ftfy==6.2.3; extra == "loaders"
108
110
  Requires-Dist: librosa==0.10.1; extra == "loaders"
109
111
  Requires-Dist: XlsxWriter==3.2.0; extra == "loaders"
110
112
  Requires-Dist: timm==1.0.9; extra == "loaders"
113
+ Requires-Dist: simsimd==4.3.1; extra == "loaders"
114
+ Requires-Dist: opencv-python==4.10.0.84; extra == "loaders"
111
115
  Requires-Dist: easyocr==1.7.1; extra == "loaders"
112
116
  Provides-Extra: anthropic
113
117
  Requires-Dist: langchain-anthropic==0.1.11; extra == "anthropic"
@@ -141,8 +145,6 @@ Requires-Dist: annoy==1.17.3; extra == "analytics"
141
145
  Requires-Dist: gradio_tools==0.0.9; extra == "analytics"
142
146
  Requires-Dist: gradio-client==0.2.9; extra == "analytics"
143
147
  Requires-Dist: streamlit==1.37.1; extra == "analytics"
144
- Requires-Dist: simsimd==4.3.1; extra == "analytics"
145
- Requires-Dist: opencv-python==4.10.0.84; extra == "analytics"
146
148
 
147
149
  # AI Parrot: Python package for creating Chatbots
148
150
  This is an open-source Python package for creating Chatbots based on Langchain and Navigator.
@@ -44,6 +44,7 @@ examples/load_pdf.py
44
44
  examples/test_bot.py
45
45
  examples/test_question.py
46
46
  examples/askbuddy/create_bot.py
47
+ examples/askbuddy/load_pdf.py
47
48
  parrot/__init__.py
48
49
  parrot/conf.py
49
50
  parrot/exceptions.c
@@ -47,14 +47,14 @@ O365==2.0.35
47
47
  stackapi==0.3.1
48
48
  torchvision==0.19.1
49
49
  tf-keras==2.17.0
50
+ simsimd==4.3.1
51
+ opencv-python==4.10.0.84
50
52
 
51
53
  [analytics]
52
54
  annoy==1.17.3
53
55
  gradio_tools==0.0.9
54
56
  gradio-client==0.2.9
55
57
  streamlit==1.37.1
56
- simsimd==4.3.1
57
- opencv-python==4.10.0.84
58
58
 
59
59
  [anthropic]
60
60
  langchain-anthropic==0.1.11
@@ -107,6 +107,8 @@ ftfy==6.2.3
107
107
  librosa==0.10.1
108
108
  XlsxWriter==3.2.0
109
109
  timm==1.0.9
110
+ simsimd==4.3.1
111
+ opencv-python==4.10.0.84
110
112
  easyocr==1.7.1
111
113
 
112
114
  [milvus]
@@ -0,0 +1,52 @@
1
+ """
2
+ Load RFP documents into bot.
3
+ """
4
+ import asyncio
5
+ from navconfig import BASE_DIR
6
+ from pprint import pprint
7
+ from pathlib import Path
8
+ from parrot.chatbots.basic import Chatbot
9
+ from parrot.llms.vertex import VertexLLM
10
+ from parrot.loaders import (
11
+ PDFLoader
12
+ )
13
+
14
+ async def get_agent():
15
+ llm = VertexLLM(
16
+ model='gemini-1.5-pro',
17
+ temperature=0.1,
18
+ top_k=30,
19
+ Top_p=0.5,
20
+ )
21
+ agent = Chatbot(
22
+ name='AskBuddy',
23
+ llm=llm
24
+ )
25
+ # Add LLM
26
+ await agent.configure()
27
+ # directory = BASE_DIR.joinpath("docs", "askbuddy")
28
+ directory = Path('/home/jesuslara/proyectos/navigator/navigator-ai').joinpath("docs", "askbuddy")
29
+ for filename in directory.glob('*.pdf'):
30
+ # Loading File by File to avoid overheat in database
31
+ print(':: Processing: ', filename)
32
+ # PDF Files
33
+ loader = PDFLoader(
34
+ filename,
35
+ source_type=f"MSO {filename.name}",
36
+ llm=llm.get_llm(),
37
+ language="en",
38
+ parse_images=False,
39
+ page_as_images=True
40
+ )
41
+ docs = loader.load()
42
+ pprint(docs)
43
+ await agent.load_documents(
44
+ docs
45
+ )
46
+ return agent
47
+
48
+
49
+
50
+
51
+ if __name__ == "__main__":
52
+ agent = asyncio.run(get_agent())
@@ -28,7 +28,7 @@ class AudioLoader(BaseVideoLoader):
28
28
  metadata = {
29
29
  "source": f"{path}",
30
30
  "url": f"{path.name}",
31
- "index": path.stem,
31
+ # "index": path.stem,
32
32
  "filename": f"{path}",
33
33
  "question": '',
34
34
  "answer": '',
@@ -71,7 +71,7 @@ class AudioLoader(BaseVideoLoader):
71
71
  docs = []
72
72
  for chunk in dialogs:
73
73
  _meta = {
74
- "index": f"{path.stem}:{chunk['id']}",
74
+ # "index": f"{path.stem}:{chunk['id']}",
75
75
  "document_meta": {
76
76
  "start": f"{chunk['start_time']}",
77
77
  "end": f"{chunk['end_time']}",
@@ -284,7 +284,7 @@ class ExcelLoader(AbstractLoader):
284
284
  df = self.unique_columns(df)
285
285
  metadata = {
286
286
  "url": '',
287
- "index": '',
287
+ # "index": '',
288
288
  "source": str(path.name),
289
289
  "filename": path.name,
290
290
  "question": '',
@@ -309,7 +309,7 @@ class ExcelLoader(AbstractLoader):
309
309
  idk = row[col]
310
310
  break
311
311
  _data = {
312
- "index": idk,
312
+ # "index": idk,
313
313
  "data": rw,
314
314
  "document_meta": {
315
315
  "row_index": idx,
@@ -299,7 +299,7 @@ class PDFLoader(BasePDF):
299
299
  "answer": '',
300
300
  "source_type": self._source_type,
301
301
  "data": {},
302
- "summary": '',
302
+ "summary": '-',
303
303
  "document_meta": {
304
304
  "title": pdf.metadata.get("title", ""), # pylint: disable=E1101
305
305
  "creationDate": pdf.metadata.get("creationDate", ""), # pylint: disable=E1101
@@ -331,12 +331,12 @@ class PDFLoader(BasePDF):
331
331
  try:
332
332
  summary = self.get_summary_from_text(text)
333
333
  except Exception:
334
- summary = ''
334
+ summary = '-'
335
335
  metadata = {
336
- "url": '',
336
+ "url": f"{path}:#{page_num}",
337
337
  "source": f"{path.name} Page.#{page_num}",
338
338
  "filename": path.name,
339
- "index": f"{page_num}",
339
+ # "index": f"{page_num}",
340
340
  "type": 'pdf',
341
341
  "question": '',
342
342
  "answer": '',
@@ -400,7 +400,7 @@ class PDFLoader(BasePDF):
400
400
  "url": url,
401
401
  "source": f"{path.name} Page.#{page_num}",
402
402
  "filename": path.name,
403
- "index": f"{path.name}:{page_num}",
403
+ # "index": f"{path.name}:{page_num}",
404
404
  "question": '',
405
405
  "answer": '',
406
406
  "type": 'image',
@@ -427,15 +427,15 @@ class PDFLoader(BasePDF):
427
427
  df = df.dropna(axis=1, how='all')
428
428
  df = df.dropna(how='all', axis=0) # Drop empty rows
429
429
  table_meta = {
430
- "url": '',
430
+ "url": f"{path.name} Page.#{page_num} Table.#{tab_idx}",
431
431
  "source": f"{path.name} Page.#{page_num} Table.#{tab_idx}",
432
432
  "filename": path.name,
433
- "index": f"{path.name}:{page_num}",
433
+ # "index": f"{path.name}:{page_num}",
434
434
  "question": '',
435
435
  "answer": '',
436
436
  "type": 'table',
437
437
  "data": {},
438
- "summary": '',
438
+ "summary": '-',
439
439
  "document_meta": {
440
440
  "table_index": tab_idx,
441
441
  "table_shape": df.shape,
@@ -476,12 +476,12 @@ class PDFLoader(BasePDF):
476
476
  "url": url,
477
477
  "source": f"{path.name} Page.#{page_num}",
478
478
  "filename": path.name,
479
- "index": f"{path.name}:{page_num}",
479
+ # "index": f"{path.name}:{page_num}",
480
480
  "question": '',
481
481
  "answer": '',
482
482
  "type": 'page',
483
483
  "data": {},
484
- "summary": '',
484
+ "summary": '-',
485
485
  "document_meta": {
486
486
  "image_name": img_name,
487
487
  "page_number": f"{page_number}"
@@ -78,7 +78,7 @@ class PDFChapterLoader(BasePDF):
78
78
  page_number = page_num + 1
79
79
  metadata = {
80
80
  "url": '',
81
- "index": f"{path.name} #{page_number}",
81
+ # "index": f"{path.name} #{page_number}",
82
82
  "source": f"{path.name} #{page_number}",
83
83
  "filename": path.name,
84
84
  "source_type": self._source_type,
@@ -55,7 +55,7 @@ class PDFFnLoader(BasePDF):
55
55
  n = page_number + 1
56
56
  return {
57
57
  "url": '',
58
- "index": f"{path.name} #{page_number}",
58
+ # "index": f"{path.name} #{page_number}",
59
59
  "source": f"{path.name} #{page_number}",
60
60
  "filename": path.name,
61
61
  "source_type": self._source_type,
@@ -124,7 +124,7 @@ class PDFImageLoader(BasePDF):
124
124
  }
125
125
  for idx, chunk in enumerate(self._splitter.split_text(md_text)):
126
126
  _info = {
127
- "index": f"{idx}",
127
+ # "index": f"{idx}",
128
128
  **metadata
129
129
  }
130
130
  docs.append(
@@ -178,7 +178,7 @@ class PDFImageLoader(BasePDF):
178
178
  _meta = {
179
179
  "url": f"{url}",
180
180
  "filename": str(path.name),
181
- "index": f"Page {page_num}, part: {idx}",
181
+ # "index": f"Page {page_num}, part: {idx}",
182
182
  "source": str(path.name),
183
183
  "type": 'pdf',
184
184
  "question": prompt_text,
@@ -74,7 +74,7 @@ class PDFMarkdownLoader(BasePDF):
74
74
  }
75
75
  for idx, chunk in enumerate(self._splitter.split_text(md_text)):
76
76
  _info = {
77
- "index": f"{idx}",
77
+ # "index": f"{idx}",
78
78
  **metadata
79
79
  }
80
80
  docs.append(
@@ -91,7 +91,7 @@ class PDFTablesLoader(BasePDF):
91
91
  "url": '',
92
92
  "source": f"{path.name} Page.#{page} Table.#{table_idx}",
93
93
  "filename": path.name,
94
- "index": f"{path.name}:Table:{table_idx}",
94
+ # "index": f"{path.name}:Table:{table_idx}",
95
95
  "question": '',
96
96
  "answer": '',
97
97
  "type": 'table',
@@ -46,7 +46,7 @@ class QAFileLoader(AbstractLoader):
46
46
  page_content=f"**Question:** {row[q]}: **Answer:** {row[a]}",
47
47
  metadata={
48
48
  "url": '',
49
- "index": f"{path.name} #{idx}",
49
+ # "index": f"{path.name} #{idx}",
50
50
  "source": f"{path.name} Row.#{idx}",
51
51
  "filename": f"{path.name}",
52
52
  "question": row[q],
@@ -47,7 +47,7 @@ class ReadTheDocsLoader(AbstractLoader):
47
47
  metadata = {
48
48
  "source": url,
49
49
  "url": url,
50
- "index": suffix,
50
+ # "index": suffix,
51
51
  "filename": src,
52
52
  "question": '',
53
53
  "answer": '',
@@ -44,7 +44,7 @@ class TXTLoader(AbstractLoader):
44
44
  page_content=text,
45
45
  metadata={
46
46
  "url": '',
47
- "index": str(path.name),
47
+ # "index": str(path.name),
48
48
  "source": str(path),
49
49
  "filename": str(path.name),
50
50
  "summary": '',
@@ -45,7 +45,7 @@ class VideoLocalLoader(BaseVideoLoader):
45
45
  "url": f"{path.name}",
46
46
  "source": f"{path}",
47
47
  "filename": f"{path}",
48
- "index": path.stem,
48
+ # "index": path.stem,
49
49
  "question": '',
50
50
  "answer": '',
51
51
  'type': 'video_transcript',
@@ -96,7 +96,7 @@ class VideoLocalLoader(BaseVideoLoader):
96
96
  docs = []
97
97
  for chunk in dialogs:
98
98
  _meta = {
99
- "index": f"{path.stem}:{chunk['id']}",
99
+ # "index": f"{path.stem}:{chunk['id']}",
100
100
  "document_meta": {
101
101
  "start": f"{chunk['start_time']}",
102
102
  "end": f"{chunk['end_time']}",
@@ -13,7 +13,7 @@ class VimeoLoader(YoutubeLoader):
13
13
  metadata = {
14
14
  "source": url,
15
15
  "url": url,
16
- "index": url,
16
+ # "index": url,
17
17
  "filename": video_title,
18
18
  "question": '',
19
19
  "answer": '',
@@ -73,7 +73,7 @@ class VimeoLoader(YoutubeLoader):
73
73
  dialogs = self.transcript_to_blocks(transcript_whisper)
74
74
  for chunk in dialogs:
75
75
  _meta = {
76
- "index": f"{video_title}:{chunk['id']}",
76
+ # "index": f"{video_title}:{chunk['id']}",
77
77
  "document_meta": {
78
78
  "start": f"{chunk['start_time']}",
79
79
  "end": f"{chunk['end_time']}",
@@ -164,7 +164,7 @@ class WebLoader(AbstractLoader):
164
164
  )
165
165
  metadata = {
166
166
  "source": url,
167
- "index": page_title,
167
+ # "index": page_title,
168
168
  "url": url,
169
169
  "filename": page_title,
170
170
  "question": '',
@@ -75,7 +75,7 @@ class WebBaseLoader(AbstractLoader):
75
75
  metadata = {
76
76
  "url": url,
77
77
  "source": url,
78
- "index": "",
78
+ # "index": "",
79
79
  "filename": '',
80
80
  "type": 'webpage',
81
81
  "question": '',
@@ -58,7 +58,7 @@ class MSWordLoader(AbstractLoader):
58
58
  "url": '',
59
59
  "source": path.name,
60
60
  "filename": path.name,
61
- "index": str(path.name),
61
+ # "index": str(path.name),
62
62
  "type": 'document',
63
63
  "question": '',
64
64
  "answer": '',
@@ -71,7 +71,7 @@ class YoutubeLoader(VideoLoader):
71
71
  metadata = {
72
72
  "url": f"{url}",
73
73
  "source": f"{url}",
74
- "index": video_title,
74
+ # "index": video_title,
75
75
  "filename": video_title,
76
76
  "question": '',
77
77
  "answer": '',
@@ -103,7 +103,7 @@ class YoutubeLoader(VideoLoader):
103
103
  dialogs = self.transcript_to_blocks(transcript_whisper)
104
104
  for chunk in dialogs:
105
105
  _meta = {
106
- "index": f"{video_title}:{chunk['id']}",
106
+ # "index": f"{video_title}:{chunk['id']}",
107
107
  "document_meta": {
108
108
  "start": f"{chunk['start_time']}",
109
109
  "end": f"{chunk['end_time']}",
@@ -150,7 +150,7 @@ class YoutubeLoader(VideoLoader):
150
150
  for doc in docs:
151
151
  doc.metadata['source_type'] = self._source_type
152
152
  doc.metadata['summary'] = f"{summary!s}"
153
- doc.metadata['index'] = ''
153
+ # doc.metadata['index'] = ''
154
154
  doc.metadata['filename'] = ''
155
155
  doc.metadata['question'] = ''
156
156
  doc.metadata['answer'] = ''
@@ -171,7 +171,7 @@ class YoutubeLoader(VideoLoader):
171
171
  metadata = {
172
172
  "source": url,
173
173
  "url": url,
174
- "index": '',
174
+ # "index": '',
175
175
  "filename": '',
176
176
  "question": '',
177
177
  "answer": '',
@@ -350,11 +350,11 @@ class MilvusStore(AbstractStore):
350
350
  auto_id=True,
351
351
  max_length=100
352
352
  )
353
- schema.add_field(
354
- field_name="index",
355
- datatype=DataType.VARCHAR,
356
- max_length=65535
357
- )
353
+ # schema.add_field(
354
+ # field_name="index",
355
+ # datatype=DataType.VARCHAR,
356
+ # max_length=65535
357
+ # )
358
358
  schema.add_field(
359
359
  field_name="url",
360
360
  datatype=DataType.VARCHAR,
@@ -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 aiohttp applications."
6
- __version__ = "0.3.9"
6
+ __version__ = "0.3.11"
7
7
  __author__ = "Jesus Lara"
8
8
  __author_email__ = "jesuslarag@gmail.com"
9
9
  __license__ = "MIT"
@@ -190,7 +190,9 @@ setup(
190
190
  "O365==2.0.35",
191
191
  "stackapi==0.3.1",
192
192
  "torchvision==0.19.1",
193
- "tf-keras==2.17.0"
193
+ "tf-keras==2.17.0",
194
+ "simsimd==4.3.1",
195
+ "opencv-python==4.10.0.84"
194
196
  ],
195
197
  extras_require={
196
198
  "loaders": [
@@ -224,6 +226,8 @@ setup(
224
226
  "XlsxWriter==3.2.0",
225
227
  # "xformers==0.0.27.post2",
226
228
  "timm==1.0.9",
229
+ "simsimd==4.3.1",
230
+ "opencv-python==4.10.0.84",
227
231
  "easyocr==1.7.1"
228
232
  ],
229
233
  "anthropic": [
@@ -266,8 +270,6 @@ setup(
266
270
  "gradio_tools==0.0.9",
267
271
  "gradio-client==0.2.9",
268
272
  "streamlit==1.37.1",
269
- "simsimd==4.3.1",
270
- "opencv-python==4.10.0.84"
271
273
  # "timm==0.9.16", # image-processor
272
274
  # "ultralytics==8.2.4", # image-processor
273
275
  # "albumentations-1.4.4",
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes