ai-parrot 0.17.2__cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. agentui/.prettierrc +15 -0
  2. agentui/QUICKSTART.md +272 -0
  3. agentui/README.md +59 -0
  4. agentui/env.example +16 -0
  5. agentui/jsconfig.json +14 -0
  6. agentui/package-lock.json +4242 -0
  7. agentui/package.json +34 -0
  8. agentui/scripts/postinstall/apply-patches.mjs +260 -0
  9. agentui/src/app.css +61 -0
  10. agentui/src/app.d.ts +13 -0
  11. agentui/src/app.html +12 -0
  12. agentui/src/components/LoadingSpinner.svelte +64 -0
  13. agentui/src/components/ThemeSwitcher.svelte +159 -0
  14. agentui/src/components/index.js +4 -0
  15. agentui/src/lib/api/bots.ts +60 -0
  16. agentui/src/lib/api/chat.ts +22 -0
  17. agentui/src/lib/api/http.ts +25 -0
  18. agentui/src/lib/components/BotCard.svelte +33 -0
  19. agentui/src/lib/components/ChatBubble.svelte +63 -0
  20. agentui/src/lib/components/Toast.svelte +21 -0
  21. agentui/src/lib/config.ts +20 -0
  22. agentui/src/lib/stores/auth.svelte.ts +73 -0
  23. agentui/src/lib/stores/theme.svelte.js +64 -0
  24. agentui/src/lib/stores/toast.svelte.ts +31 -0
  25. agentui/src/lib/utils/conversation.ts +39 -0
  26. agentui/src/routes/+layout.svelte +20 -0
  27. agentui/src/routes/+page.svelte +232 -0
  28. agentui/src/routes/login/+page.svelte +200 -0
  29. agentui/src/routes/talk/[agentId]/+page.svelte +297 -0
  30. agentui/src/routes/talk/[agentId]/+page.ts +7 -0
  31. agentui/static/README.md +1 -0
  32. agentui/svelte.config.js +11 -0
  33. agentui/tailwind.config.ts +53 -0
  34. agentui/tsconfig.json +3 -0
  35. agentui/vite.config.ts +10 -0
  36. ai_parrot-0.17.2.dist-info/METADATA +472 -0
  37. ai_parrot-0.17.2.dist-info/RECORD +535 -0
  38. ai_parrot-0.17.2.dist-info/WHEEL +6 -0
  39. ai_parrot-0.17.2.dist-info/entry_points.txt +2 -0
  40. ai_parrot-0.17.2.dist-info/licenses/LICENSE +21 -0
  41. ai_parrot-0.17.2.dist-info/top_level.txt +6 -0
  42. crew-builder/.prettierrc +15 -0
  43. crew-builder/QUICKSTART.md +259 -0
  44. crew-builder/README.md +113 -0
  45. crew-builder/env.example +17 -0
  46. crew-builder/jsconfig.json +14 -0
  47. crew-builder/package-lock.json +4182 -0
  48. crew-builder/package.json +37 -0
  49. crew-builder/scripts/postinstall/apply-patches.mjs +260 -0
  50. crew-builder/src/app.css +62 -0
  51. crew-builder/src/app.d.ts +13 -0
  52. crew-builder/src/app.html +12 -0
  53. crew-builder/src/components/LoadingSpinner.svelte +64 -0
  54. crew-builder/src/components/ThemeSwitcher.svelte +149 -0
  55. crew-builder/src/components/index.js +9 -0
  56. crew-builder/src/lib/api/bots.ts +60 -0
  57. crew-builder/src/lib/api/chat.ts +80 -0
  58. crew-builder/src/lib/api/client.ts +56 -0
  59. crew-builder/src/lib/api/crew/crew.ts +136 -0
  60. crew-builder/src/lib/api/index.ts +5 -0
  61. crew-builder/src/lib/api/o365/auth.ts +65 -0
  62. crew-builder/src/lib/auth/auth.ts +54 -0
  63. crew-builder/src/lib/components/AgentNode.svelte +43 -0
  64. crew-builder/src/lib/components/BotCard.svelte +33 -0
  65. crew-builder/src/lib/components/ChatBubble.svelte +67 -0
  66. crew-builder/src/lib/components/ConfigPanel.svelte +278 -0
  67. crew-builder/src/lib/components/JsonTreeNode.svelte +76 -0
  68. crew-builder/src/lib/components/JsonViewer.svelte +24 -0
  69. crew-builder/src/lib/components/MarkdownEditor.svelte +48 -0
  70. crew-builder/src/lib/components/ThemeToggle.svelte +36 -0
  71. crew-builder/src/lib/components/Toast.svelte +67 -0
  72. crew-builder/src/lib/components/Toolbar.svelte +157 -0
  73. crew-builder/src/lib/components/index.ts +10 -0
  74. crew-builder/src/lib/config.ts +8 -0
  75. crew-builder/src/lib/stores/auth.svelte.ts +228 -0
  76. crew-builder/src/lib/stores/crewStore.ts +369 -0
  77. crew-builder/src/lib/stores/theme.svelte.js +145 -0
  78. crew-builder/src/lib/stores/toast.svelte.ts +69 -0
  79. crew-builder/src/lib/utils/conversation.ts +39 -0
  80. crew-builder/src/lib/utils/markdown.ts +122 -0
  81. crew-builder/src/lib/utils/talkHistory.ts +47 -0
  82. crew-builder/src/routes/+layout.svelte +20 -0
  83. crew-builder/src/routes/+page.svelte +539 -0
  84. crew-builder/src/routes/agents/+page.svelte +247 -0
  85. crew-builder/src/routes/agents/[agentId]/+page.svelte +288 -0
  86. crew-builder/src/routes/agents/[agentId]/+page.ts +7 -0
  87. crew-builder/src/routes/builder/+page.svelte +204 -0
  88. crew-builder/src/routes/crew/ask/+page.svelte +1052 -0
  89. crew-builder/src/routes/crew/ask/+page.ts +1 -0
  90. crew-builder/src/routes/integrations/o365/+page.svelte +304 -0
  91. crew-builder/src/routes/login/+page.svelte +197 -0
  92. crew-builder/src/routes/talk/[agentId]/+page.svelte +487 -0
  93. crew-builder/src/routes/talk/[agentId]/+page.ts +7 -0
  94. crew-builder/static/README.md +1 -0
  95. crew-builder/svelte.config.js +11 -0
  96. crew-builder/tailwind.config.ts +53 -0
  97. crew-builder/tsconfig.json +3 -0
  98. crew-builder/vite.config.ts +10 -0
  99. mcp_servers/calculator_server.py +309 -0
  100. parrot/__init__.py +27 -0
  101. parrot/__pycache__/__init__.cpython-310.pyc +0 -0
  102. parrot/__pycache__/version.cpython-310.pyc +0 -0
  103. parrot/_version.py +34 -0
  104. parrot/a2a/__init__.py +48 -0
  105. parrot/a2a/client.py +658 -0
  106. parrot/a2a/discovery.py +89 -0
  107. parrot/a2a/mixin.py +257 -0
  108. parrot/a2a/models.py +376 -0
  109. parrot/a2a/server.py +770 -0
  110. parrot/agents/__init__.py +29 -0
  111. parrot/bots/__init__.py +12 -0
  112. parrot/bots/a2a_agent.py +19 -0
  113. parrot/bots/abstract.py +3139 -0
  114. parrot/bots/agent.py +1129 -0
  115. parrot/bots/basic.py +9 -0
  116. parrot/bots/chatbot.py +669 -0
  117. parrot/bots/data.py +1618 -0
  118. parrot/bots/database/__init__.py +5 -0
  119. parrot/bots/database/abstract.py +3071 -0
  120. parrot/bots/database/cache.py +286 -0
  121. parrot/bots/database/models.py +468 -0
  122. parrot/bots/database/prompts.py +154 -0
  123. parrot/bots/database/retries.py +98 -0
  124. parrot/bots/database/router.py +269 -0
  125. parrot/bots/database/sql.py +41 -0
  126. parrot/bots/db/__init__.py +6 -0
  127. parrot/bots/db/abstract.py +556 -0
  128. parrot/bots/db/bigquery.py +602 -0
  129. parrot/bots/db/cache.py +85 -0
  130. parrot/bots/db/documentdb.py +668 -0
  131. parrot/bots/db/elastic.py +1014 -0
  132. parrot/bots/db/influx.py +898 -0
  133. parrot/bots/db/mock.py +96 -0
  134. parrot/bots/db/multi.py +783 -0
  135. parrot/bots/db/prompts.py +185 -0
  136. parrot/bots/db/sql.py +1255 -0
  137. parrot/bots/db/tools.py +212 -0
  138. parrot/bots/document.py +680 -0
  139. parrot/bots/hrbot.py +15 -0
  140. parrot/bots/kb.py +170 -0
  141. parrot/bots/mcp.py +36 -0
  142. parrot/bots/orchestration/README.md +463 -0
  143. parrot/bots/orchestration/__init__.py +1 -0
  144. parrot/bots/orchestration/agent.py +155 -0
  145. parrot/bots/orchestration/crew.py +3330 -0
  146. parrot/bots/orchestration/fsm.py +1179 -0
  147. parrot/bots/orchestration/hr.py +434 -0
  148. parrot/bots/orchestration/storage/__init__.py +4 -0
  149. parrot/bots/orchestration/storage/memory.py +100 -0
  150. parrot/bots/orchestration/storage/mixin.py +119 -0
  151. parrot/bots/orchestration/verify.py +202 -0
  152. parrot/bots/product.py +204 -0
  153. parrot/bots/prompts/__init__.py +96 -0
  154. parrot/bots/prompts/agents.py +155 -0
  155. parrot/bots/prompts/data.py +216 -0
  156. parrot/bots/prompts/output_generation.py +8 -0
  157. parrot/bots/scraper/__init__.py +3 -0
  158. parrot/bots/scraper/models.py +122 -0
  159. parrot/bots/scraper/scraper.py +1173 -0
  160. parrot/bots/scraper/templates.py +115 -0
  161. parrot/bots/stores/__init__.py +5 -0
  162. parrot/bots/stores/local.py +172 -0
  163. parrot/bots/webdev.py +81 -0
  164. parrot/cli.py +17 -0
  165. parrot/clients/__init__.py +16 -0
  166. parrot/clients/base.py +1491 -0
  167. parrot/clients/claude.py +1191 -0
  168. parrot/clients/factory.py +129 -0
  169. parrot/clients/google.py +4567 -0
  170. parrot/clients/gpt.py +1975 -0
  171. parrot/clients/grok.py +432 -0
  172. parrot/clients/groq.py +986 -0
  173. parrot/clients/hf.py +582 -0
  174. parrot/clients/models.py +18 -0
  175. parrot/conf.py +395 -0
  176. parrot/embeddings/__init__.py +9 -0
  177. parrot/embeddings/base.py +157 -0
  178. parrot/embeddings/google.py +98 -0
  179. parrot/embeddings/huggingface.py +74 -0
  180. parrot/embeddings/openai.py +84 -0
  181. parrot/embeddings/processor.py +88 -0
  182. parrot/exceptions.c +13868 -0
  183. parrot/exceptions.cpython-310-x86_64-linux-gnu.so +0 -0
  184. parrot/exceptions.pxd +22 -0
  185. parrot/exceptions.pxi +15 -0
  186. parrot/exceptions.pyx +44 -0
  187. parrot/generators/__init__.py +29 -0
  188. parrot/generators/base.py +200 -0
  189. parrot/generators/html.py +293 -0
  190. parrot/generators/react.py +205 -0
  191. parrot/generators/streamlit.py +203 -0
  192. parrot/generators/template.py +105 -0
  193. parrot/handlers/__init__.py +4 -0
  194. parrot/handlers/agent.py +861 -0
  195. parrot/handlers/agents/__init__.py +1 -0
  196. parrot/handlers/agents/abstract.py +900 -0
  197. parrot/handlers/bots.py +338 -0
  198. parrot/handlers/chat.py +915 -0
  199. parrot/handlers/creation.sql +192 -0
  200. parrot/handlers/crew/ARCHITECTURE.md +362 -0
  201. parrot/handlers/crew/README_BOTMANAGER_PERSISTENCE.md +303 -0
  202. parrot/handlers/crew/README_REDIS_PERSISTENCE.md +366 -0
  203. parrot/handlers/crew/__init__.py +0 -0
  204. parrot/handlers/crew/handler.py +801 -0
  205. parrot/handlers/crew/models.py +229 -0
  206. parrot/handlers/crew/redis_persistence.py +523 -0
  207. parrot/handlers/jobs/__init__.py +10 -0
  208. parrot/handlers/jobs/job.py +384 -0
  209. parrot/handlers/jobs/mixin.py +627 -0
  210. parrot/handlers/jobs/models.py +115 -0
  211. parrot/handlers/jobs/worker.py +31 -0
  212. parrot/handlers/models.py +596 -0
  213. parrot/handlers/o365_auth.py +105 -0
  214. parrot/handlers/stream.py +337 -0
  215. parrot/interfaces/__init__.py +6 -0
  216. parrot/interfaces/aws.py +143 -0
  217. parrot/interfaces/credentials.py +113 -0
  218. parrot/interfaces/database.py +27 -0
  219. parrot/interfaces/google.py +1123 -0
  220. parrot/interfaces/hierarchy.py +1227 -0
  221. parrot/interfaces/http.py +651 -0
  222. parrot/interfaces/images/__init__.py +0 -0
  223. parrot/interfaces/images/plugins/__init__.py +24 -0
  224. parrot/interfaces/images/plugins/abstract.py +58 -0
  225. parrot/interfaces/images/plugins/analisys.py +148 -0
  226. parrot/interfaces/images/plugins/classify.py +150 -0
  227. parrot/interfaces/images/plugins/classifybase.py +182 -0
  228. parrot/interfaces/images/plugins/detect.py +150 -0
  229. parrot/interfaces/images/plugins/exif.py +1103 -0
  230. parrot/interfaces/images/plugins/hash.py +52 -0
  231. parrot/interfaces/images/plugins/vision.py +104 -0
  232. parrot/interfaces/images/plugins/yolo.py +66 -0
  233. parrot/interfaces/images/plugins/zerodetect.py +197 -0
  234. parrot/interfaces/o365.py +978 -0
  235. parrot/interfaces/onedrive.py +822 -0
  236. parrot/interfaces/sharepoint.py +1435 -0
  237. parrot/interfaces/soap.py +257 -0
  238. parrot/loaders/__init__.py +8 -0
  239. parrot/loaders/abstract.py +1131 -0
  240. parrot/loaders/audio.py +199 -0
  241. parrot/loaders/basepdf.py +53 -0
  242. parrot/loaders/basevideo.py +1568 -0
  243. parrot/loaders/csv.py +409 -0
  244. parrot/loaders/docx.py +116 -0
  245. parrot/loaders/epubloader.py +316 -0
  246. parrot/loaders/excel.py +199 -0
  247. parrot/loaders/factory.py +55 -0
  248. parrot/loaders/files/__init__.py +0 -0
  249. parrot/loaders/files/abstract.py +39 -0
  250. parrot/loaders/files/html.py +26 -0
  251. parrot/loaders/files/text.py +63 -0
  252. parrot/loaders/html.py +152 -0
  253. parrot/loaders/markdown.py +442 -0
  254. parrot/loaders/pdf.py +373 -0
  255. parrot/loaders/pdfmark.py +320 -0
  256. parrot/loaders/pdftables.py +506 -0
  257. parrot/loaders/ppt.py +476 -0
  258. parrot/loaders/qa.py +63 -0
  259. parrot/loaders/splitters/__init__.py +10 -0
  260. parrot/loaders/splitters/base.py +138 -0
  261. parrot/loaders/splitters/md.py +228 -0
  262. parrot/loaders/splitters/token.py +143 -0
  263. parrot/loaders/txt.py +26 -0
  264. parrot/loaders/video.py +89 -0
  265. parrot/loaders/videolocal.py +218 -0
  266. parrot/loaders/videounderstanding.py +377 -0
  267. parrot/loaders/vimeo.py +167 -0
  268. parrot/loaders/web.py +599 -0
  269. parrot/loaders/youtube.py +504 -0
  270. parrot/manager/__init__.py +5 -0
  271. parrot/manager/manager.py +1030 -0
  272. parrot/mcp/__init__.py +28 -0
  273. parrot/mcp/adapter.py +105 -0
  274. parrot/mcp/cli.py +174 -0
  275. parrot/mcp/client.py +119 -0
  276. parrot/mcp/config.py +75 -0
  277. parrot/mcp/integration.py +842 -0
  278. parrot/mcp/oauth.py +933 -0
  279. parrot/mcp/server.py +225 -0
  280. parrot/mcp/transports/__init__.py +3 -0
  281. parrot/mcp/transports/base.py +279 -0
  282. parrot/mcp/transports/grpc_session.py +163 -0
  283. parrot/mcp/transports/http.py +312 -0
  284. parrot/mcp/transports/mcp.proto +108 -0
  285. parrot/mcp/transports/quic.py +1082 -0
  286. parrot/mcp/transports/sse.py +330 -0
  287. parrot/mcp/transports/stdio.py +309 -0
  288. parrot/mcp/transports/unix.py +395 -0
  289. parrot/mcp/transports/websocket.py +547 -0
  290. parrot/memory/__init__.py +16 -0
  291. parrot/memory/abstract.py +209 -0
  292. parrot/memory/agent.py +32 -0
  293. parrot/memory/cache.py +175 -0
  294. parrot/memory/core.py +555 -0
  295. parrot/memory/file.py +153 -0
  296. parrot/memory/mem.py +131 -0
  297. parrot/memory/redis.py +613 -0
  298. parrot/models/__init__.py +46 -0
  299. parrot/models/basic.py +118 -0
  300. parrot/models/compliance.py +208 -0
  301. parrot/models/crew.py +395 -0
  302. parrot/models/detections.py +654 -0
  303. parrot/models/generation.py +85 -0
  304. parrot/models/google.py +223 -0
  305. parrot/models/groq.py +23 -0
  306. parrot/models/openai.py +30 -0
  307. parrot/models/outputs.py +285 -0
  308. parrot/models/responses.py +938 -0
  309. parrot/notifications/__init__.py +743 -0
  310. parrot/openapi/__init__.py +3 -0
  311. parrot/openapi/components.yaml +641 -0
  312. parrot/openapi/config.py +322 -0
  313. parrot/outputs/__init__.py +32 -0
  314. parrot/outputs/formats/__init__.py +108 -0
  315. parrot/outputs/formats/altair.py +359 -0
  316. parrot/outputs/formats/application.py +122 -0
  317. parrot/outputs/formats/base.py +351 -0
  318. parrot/outputs/formats/bokeh.py +356 -0
  319. parrot/outputs/formats/card.py +424 -0
  320. parrot/outputs/formats/chart.py +436 -0
  321. parrot/outputs/formats/d3.py +255 -0
  322. parrot/outputs/formats/echarts.py +310 -0
  323. parrot/outputs/formats/generators/__init__.py +0 -0
  324. parrot/outputs/formats/generators/abstract.py +61 -0
  325. parrot/outputs/formats/generators/panel.py +145 -0
  326. parrot/outputs/formats/generators/streamlit.py +86 -0
  327. parrot/outputs/formats/generators/terminal.py +63 -0
  328. parrot/outputs/formats/holoviews.py +310 -0
  329. parrot/outputs/formats/html.py +147 -0
  330. parrot/outputs/formats/jinja2.py +46 -0
  331. parrot/outputs/formats/json.py +87 -0
  332. parrot/outputs/formats/map.py +933 -0
  333. parrot/outputs/formats/markdown.py +172 -0
  334. parrot/outputs/formats/matplotlib.py +237 -0
  335. parrot/outputs/formats/mixins/__init__.py +0 -0
  336. parrot/outputs/formats/mixins/emaps.py +855 -0
  337. parrot/outputs/formats/plotly.py +341 -0
  338. parrot/outputs/formats/seaborn.py +310 -0
  339. parrot/outputs/formats/table.py +397 -0
  340. parrot/outputs/formats/template_report.py +138 -0
  341. parrot/outputs/formats/yaml.py +125 -0
  342. parrot/outputs/formatter.py +152 -0
  343. parrot/outputs/templates/__init__.py +95 -0
  344. parrot/pipelines/__init__.py +0 -0
  345. parrot/pipelines/abstract.py +210 -0
  346. parrot/pipelines/detector.py +124 -0
  347. parrot/pipelines/models.py +90 -0
  348. parrot/pipelines/planogram.py +3002 -0
  349. parrot/pipelines/table.sql +97 -0
  350. parrot/plugins/__init__.py +106 -0
  351. parrot/plugins/importer.py +80 -0
  352. parrot/py.typed +0 -0
  353. parrot/registry/__init__.py +18 -0
  354. parrot/registry/registry.py +594 -0
  355. parrot/scheduler/__init__.py +1189 -0
  356. parrot/scheduler/models.py +60 -0
  357. parrot/security/__init__.py +16 -0
  358. parrot/security/prompt_injection.py +268 -0
  359. parrot/security/security_events.sql +25 -0
  360. parrot/services/__init__.py +1 -0
  361. parrot/services/mcp/__init__.py +8 -0
  362. parrot/services/mcp/config.py +13 -0
  363. parrot/services/mcp/server.py +295 -0
  364. parrot/services/o365_remote_auth.py +235 -0
  365. parrot/stores/__init__.py +7 -0
  366. parrot/stores/abstract.py +352 -0
  367. parrot/stores/arango.py +1090 -0
  368. parrot/stores/bigquery.py +1377 -0
  369. parrot/stores/cache.py +106 -0
  370. parrot/stores/empty.py +10 -0
  371. parrot/stores/faiss_store.py +1157 -0
  372. parrot/stores/kb/__init__.py +9 -0
  373. parrot/stores/kb/abstract.py +68 -0
  374. parrot/stores/kb/cache.py +165 -0
  375. parrot/stores/kb/doc.py +325 -0
  376. parrot/stores/kb/hierarchy.py +346 -0
  377. parrot/stores/kb/local.py +457 -0
  378. parrot/stores/kb/prompt.py +28 -0
  379. parrot/stores/kb/redis.py +659 -0
  380. parrot/stores/kb/store.py +115 -0
  381. parrot/stores/kb/user.py +374 -0
  382. parrot/stores/models.py +59 -0
  383. parrot/stores/pgvector.py +3 -0
  384. parrot/stores/postgres.py +2853 -0
  385. parrot/stores/utils/__init__.py +0 -0
  386. parrot/stores/utils/chunking.py +197 -0
  387. parrot/telemetry/__init__.py +3 -0
  388. parrot/telemetry/mixin.py +111 -0
  389. parrot/template/__init__.py +3 -0
  390. parrot/template/engine.py +259 -0
  391. parrot/tools/__init__.py +23 -0
  392. parrot/tools/abstract.py +644 -0
  393. parrot/tools/agent.py +363 -0
  394. parrot/tools/arangodbsearch.py +537 -0
  395. parrot/tools/arxiv_tool.py +188 -0
  396. parrot/tools/calculator/__init__.py +3 -0
  397. parrot/tools/calculator/operations/__init__.py +38 -0
  398. parrot/tools/calculator/operations/calculus.py +80 -0
  399. parrot/tools/calculator/operations/statistics.py +76 -0
  400. parrot/tools/calculator/tool.py +150 -0
  401. parrot/tools/cloudwatch.py +988 -0
  402. parrot/tools/codeinterpreter/__init__.py +127 -0
  403. parrot/tools/codeinterpreter/executor.py +371 -0
  404. parrot/tools/codeinterpreter/internals.py +473 -0
  405. parrot/tools/codeinterpreter/models.py +643 -0
  406. parrot/tools/codeinterpreter/prompts.py +224 -0
  407. parrot/tools/codeinterpreter/tool.py +664 -0
  408. parrot/tools/company_info/__init__.py +6 -0
  409. parrot/tools/company_info/tool.py +1138 -0
  410. parrot/tools/correlationanalysis.py +437 -0
  411. parrot/tools/database/abstract.py +286 -0
  412. parrot/tools/database/bq.py +115 -0
  413. parrot/tools/database/cache.py +284 -0
  414. parrot/tools/database/models.py +95 -0
  415. parrot/tools/database/pg.py +343 -0
  416. parrot/tools/databasequery.py +1159 -0
  417. parrot/tools/db.py +1800 -0
  418. parrot/tools/ddgo.py +370 -0
  419. parrot/tools/decorators.py +271 -0
  420. parrot/tools/dftohtml.py +282 -0
  421. parrot/tools/document.py +549 -0
  422. parrot/tools/ecs.py +819 -0
  423. parrot/tools/edareport.py +368 -0
  424. parrot/tools/elasticsearch.py +1049 -0
  425. parrot/tools/employees.py +462 -0
  426. parrot/tools/epson/__init__.py +96 -0
  427. parrot/tools/excel.py +683 -0
  428. parrot/tools/file/__init__.py +13 -0
  429. parrot/tools/file/abstract.py +76 -0
  430. parrot/tools/file/gcs.py +378 -0
  431. parrot/tools/file/local.py +284 -0
  432. parrot/tools/file/s3.py +511 -0
  433. parrot/tools/file/tmp.py +309 -0
  434. parrot/tools/file/tool.py +501 -0
  435. parrot/tools/file_reader.py +129 -0
  436. parrot/tools/flowtask/__init__.py +19 -0
  437. parrot/tools/flowtask/tool.py +761 -0
  438. parrot/tools/gittoolkit.py +508 -0
  439. parrot/tools/google/__init__.py +18 -0
  440. parrot/tools/google/base.py +169 -0
  441. parrot/tools/google/tools.py +1251 -0
  442. parrot/tools/googlelocation.py +5 -0
  443. parrot/tools/googleroutes.py +5 -0
  444. parrot/tools/googlesearch.py +5 -0
  445. parrot/tools/googlesitesearch.py +5 -0
  446. parrot/tools/googlevoice.py +2 -0
  447. parrot/tools/gvoice.py +695 -0
  448. parrot/tools/ibisworld/README.md +225 -0
  449. parrot/tools/ibisworld/__init__.py +11 -0
  450. parrot/tools/ibisworld/tool.py +366 -0
  451. parrot/tools/jiratoolkit.py +1718 -0
  452. parrot/tools/manager.py +1098 -0
  453. parrot/tools/math.py +152 -0
  454. parrot/tools/metadata.py +476 -0
  455. parrot/tools/msteams.py +1621 -0
  456. parrot/tools/msword.py +635 -0
  457. parrot/tools/multidb.py +580 -0
  458. parrot/tools/multistoresearch.py +369 -0
  459. parrot/tools/networkninja.py +167 -0
  460. parrot/tools/nextstop/__init__.py +4 -0
  461. parrot/tools/nextstop/base.py +286 -0
  462. parrot/tools/nextstop/employee.py +733 -0
  463. parrot/tools/nextstop/store.py +462 -0
  464. parrot/tools/notification.py +435 -0
  465. parrot/tools/o365/__init__.py +42 -0
  466. parrot/tools/o365/base.py +295 -0
  467. parrot/tools/o365/bundle.py +522 -0
  468. parrot/tools/o365/events.py +554 -0
  469. parrot/tools/o365/mail.py +992 -0
  470. parrot/tools/o365/onedrive.py +497 -0
  471. parrot/tools/o365/sharepoint.py +641 -0
  472. parrot/tools/openapi_toolkit.py +904 -0
  473. parrot/tools/openweather.py +527 -0
  474. parrot/tools/pdfprint.py +1001 -0
  475. parrot/tools/powerbi.py +518 -0
  476. parrot/tools/powerpoint.py +1113 -0
  477. parrot/tools/pricestool.py +146 -0
  478. parrot/tools/products/__init__.py +246 -0
  479. parrot/tools/prophet_tool.py +171 -0
  480. parrot/tools/pythonpandas.py +630 -0
  481. parrot/tools/pythonrepl.py +910 -0
  482. parrot/tools/qsource.py +436 -0
  483. parrot/tools/querytoolkit.py +395 -0
  484. parrot/tools/quickeda.py +827 -0
  485. parrot/tools/resttool.py +553 -0
  486. parrot/tools/retail/__init__.py +0 -0
  487. parrot/tools/retail/bby.py +528 -0
  488. parrot/tools/sandboxtool.py +703 -0
  489. parrot/tools/sassie/__init__.py +352 -0
  490. parrot/tools/scraping/__init__.py +7 -0
  491. parrot/tools/scraping/docs/select.md +466 -0
  492. parrot/tools/scraping/documentation.md +1278 -0
  493. parrot/tools/scraping/driver.py +436 -0
  494. parrot/tools/scraping/models.py +576 -0
  495. parrot/tools/scraping/options.py +85 -0
  496. parrot/tools/scraping/orchestrator.py +517 -0
  497. parrot/tools/scraping/readme.md +740 -0
  498. parrot/tools/scraping/tool.py +3115 -0
  499. parrot/tools/seasonaldetection.py +642 -0
  500. parrot/tools/shell_tool/__init__.py +5 -0
  501. parrot/tools/shell_tool/actions.py +408 -0
  502. parrot/tools/shell_tool/engine.py +155 -0
  503. parrot/tools/shell_tool/models.py +322 -0
  504. parrot/tools/shell_tool/tool.py +442 -0
  505. parrot/tools/site_search.py +214 -0
  506. parrot/tools/textfile.py +418 -0
  507. parrot/tools/think.py +378 -0
  508. parrot/tools/toolkit.py +298 -0
  509. parrot/tools/webapp_tool.py +187 -0
  510. parrot/tools/whatif.py +1279 -0
  511. parrot/tools/workday/MULTI_WSDL_EXAMPLE.md +249 -0
  512. parrot/tools/workday/__init__.py +6 -0
  513. parrot/tools/workday/models.py +1389 -0
  514. parrot/tools/workday/tool.py +1293 -0
  515. parrot/tools/yfinance_tool.py +306 -0
  516. parrot/tools/zipcode.py +217 -0
  517. parrot/utils/__init__.py +2 -0
  518. parrot/utils/helpers.py +73 -0
  519. parrot/utils/parsers/__init__.py +5 -0
  520. parrot/utils/parsers/toml.c +12078 -0
  521. parrot/utils/parsers/toml.cpython-310-x86_64-linux-gnu.so +0 -0
  522. parrot/utils/parsers/toml.pyx +21 -0
  523. parrot/utils/toml.py +11 -0
  524. parrot/utils/types.cpp +20936 -0
  525. parrot/utils/types.cpython-310-x86_64-linux-gnu.so +0 -0
  526. parrot/utils/types.pyx +213 -0
  527. parrot/utils/uv.py +11 -0
  528. parrot/version.py +10 -0
  529. parrot/yaml-rs/Cargo.lock +350 -0
  530. parrot/yaml-rs/Cargo.toml +19 -0
  531. parrot/yaml-rs/pyproject.toml +19 -0
  532. parrot/yaml-rs/python/yaml_rs/__init__.py +81 -0
  533. parrot/yaml-rs/src/lib.rs +222 -0
  534. requirements/docker-compose.yml +24 -0
  535. requirements/requirements-dev.txt +21 -0
@@ -0,0 +1,472 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-parrot
3
+ Version: 0.17.2
4
+ Summary: Chatbot services for Navigator, based on Langchain
5
+ Author-email: Jesus Lara <jesuslara@phenobarbital.info>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/phenobarbital/ai-parrot
8
+ Project-URL: Source, https://github.com/phenobarbital/ai-parrot
9
+ Project-URL: Tracker, https://github.com/phenobarbital/ai-parrot/issues
10
+ Project-URL: Documentation, https://github.com/phenobarbital/ai-parrot/
11
+ Project-URL: Funding, https://paypal.me/phenobarbital
12
+ Project-URL: Say Thanks!, https://saythanks.io/to/phenobarbital
13
+ Keywords: asyncio,asyncpg,aioredis,aiomcache,artificial intelligence,ai,chatbot,agents
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Environment :: Web Environment
18
+ Classifier: Topic :: Software Development :: Build Tools
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3 :: Only
25
+ Classifier: Framework :: AsyncIO
26
+ Classifier: Typing :: Typed
27
+ Requires-Python: >=3.10.1
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: Cython==3.0.11
31
+ Requires-Dist: faiss-cpu>=1.9.0
32
+ Requires-Dist: jq==1.7.0
33
+ Requires-Dist: rank_bm25==0.2.2
34
+ Requires-Dist: tabulate==0.9.0
35
+ Requires-Dist: sentencepiece==0.2.0
36
+ Requires-Dist: markdown2==2.5.4
37
+ Requires-Dist: psycopg-binary==3.2.6
38
+ Requires-Dist: python-datamodel>=0.10.17
39
+ Requires-Dist: backoff==2.2.1
40
+ Requires-Dist: asyncdb>=2.11.6
41
+ Requires-Dist: google-cloud-bigquery>=3.30.0
42
+ Requires-Dist: numexpr==2.10.2
43
+ Requires-Dist: fpdf==1.7.2
44
+ Requires-Dist: python-docx==1.1.2
45
+ Requires-Dist: typing_extensions<=4.14.0,>=4.13.2
46
+ Requires-Dist: navconfig[default]>=1.7.13
47
+ Requires-Dist: navigator-auth>=0.15.8
48
+ Requires-Dist: navigator-session>=0.6.5
49
+ Requires-Dist: navigator-api[locale,uvloop]>=2.13.5
50
+ Requires-Dist: matplotlib==3.10.0
51
+ Requires-Dist: seaborn==0.13.2
52
+ Requires-Dist: pydub==0.25.1
53
+ Requires-Dist: click>=8.1.7
54
+ Requires-Dist: async-notify[all]>=1.4.2
55
+ Requires-Dist: markitdown>=0.1.2
56
+ Requires-Dist: ddgs>=9.5.2
57
+ Requires-Dist: pytesseract>=0.3.13
58
+ Requires-Dist: python-statemachine==2.5.0
59
+ Requires-Dist: aiohttp-swagger3==0.10.0
60
+ Requires-Dist: PyYAML>=6.0.2
61
+ Requires-Dist: python-arango-async==1.0.3
62
+ Requires-Dist: asyncdb[arangodb,bigquery,boto3,influxdb,mongodb]>=2.12.0
63
+ Requires-Dist: brotli==1.2.0
64
+ Requires-Dist: urllib3==2.6.1
65
+ Requires-Dist: aioquic==1.3.0
66
+ Requires-Dist: pylsqpack==0.3.23
67
+ Requires-Dist: aiohttp-sse-client==0.2.1
68
+ Requires-Dist: prance>=25.4.8.0
69
+ Requires-Dist: openapi-schema-validator==0.6.3
70
+ Provides-Extra: agents
71
+ Requires-Dist: sentence_transformers==5.0.0; extra == "agents"
72
+ Requires-Dist: yfinance==0.2.54; extra == "agents"
73
+ Requires-Dist: youtube_search==2.1.2; extra == "agents"
74
+ Requires-Dist: wikipedia==1.4.0; extra == "agents"
75
+ Requires-Dist: mediawikiapi==1.2; extra == "agents"
76
+ Requires-Dist: pyowm==3.3.0; extra == "agents"
77
+ Requires-Dist: stackapi==0.3.1; extra == "agents"
78
+ Requires-Dist: duckduckgo-search==7.5.0; extra == "agents"
79
+ Requires-Dist: google-search-results==2.4.2; extra == "agents"
80
+ Requires-Dist: google-api-python-client>=2.151.0; extra == "agents"
81
+ Requires-Dist: pomegranate>=1.1.1; extra == "agents"
82
+ Requires-Dist: networkx>=3.0; extra == "agents"
83
+ Requires-Dist: decorator>=5; extra == "agents"
84
+ Requires-Dist: autoviz==0.1.905; extra == "agents"
85
+ Requires-Dist: spacy==3.8.6; extra == "agents"
86
+ Requires-Dist: html2text==2025.4.15; extra == "agents"
87
+ Requires-Dist: httpx-sse==0.4.1; extra == "agents"
88
+ Requires-Dist: mcp==1.15.0; extra == "agents"
89
+ Requires-Dist: sse-starlette==3.0.2; extra == "agents"
90
+ Requires-Dist: requests-oauthlib==2.0.0; extra == "agents"
91
+ Requires-Dist: undetected-chromedriver==3.5.5; extra == "agents"
92
+ Requires-Dist: selenium==4.35.0; extra == "agents"
93
+ Requires-Dist: playwright==1.52.0; extra == "agents"
94
+ Requires-Dist: streamlit==1.50.0; extra == "agents"
95
+ Requires-Dist: jira==3.10.5; extra == "agents"
96
+ Requires-Dist: arxiv==2.2.0; extra == "agents"
97
+ Requires-Dist: docker==7.1.0; extra == "agents"
98
+ Requires-Dist: aiogoogle==5.17.0; extra == "agents"
99
+ Requires-Dist: rq==2.6.0; extra == "agents"
100
+ Requires-Dist: zeep[async]==4.3.1; extra == "agents"
101
+ Requires-Dist: branca==0.8.2; extra == "agents"
102
+ Requires-Dist: folium==0.20.0; extra == "agents"
103
+ Requires-Dist: webdriver-manager==4.0.2; extra == "agents"
104
+ Requires-Dist: prophet==1.2.1; extra == "agents"
105
+ Requires-Dist: folium==0.20.0; extra == "agents"
106
+ Requires-Dist: opensearch-py==3.1.0; extra == "agents"
107
+ Provides-Extra: loaders
108
+ Requires-Dist: mammoth==1.8.0; extra == "loaders"
109
+ Requires-Dist: markdownify==1.1.0; extra == "loaders"
110
+ Requires-Dist: python-docx==1.1.2; extra == "loaders"
111
+ Requires-Dist: pymupdf==1.26.3; extra == "loaders"
112
+ Requires-Dist: pymupdf4llm==0.0.27; extra == "loaders"
113
+ Requires-Dist: pdf4llm==0.0.27; extra == "loaders"
114
+ Requires-Dist: pytube==15.0.0; extra == "loaders"
115
+ Requires-Dist: youtube_transcript_api==1.0.3; extra == "loaders"
116
+ Requires-Dist: python-pptx==1.0.2; extra == "loaders"
117
+ Requires-Dist: yt-dlp==2025.8.22; extra == "loaders"
118
+ Requires-Dist: ebooklib>=0.19; extra == "loaders"
119
+ Requires-Dist: whisperx==3.4.2; extra == "loaders"
120
+ Requires-Dist: av==15.1.0; extra == "loaders"
121
+ Requires-Dist: resemblyzer==0.1.4; extra == "loaders"
122
+ Requires-Dist: pyannote-audio==3.4.0; extra == "loaders"
123
+ Requires-Dist: pyannote-core==5.0.0; extra == "loaders"
124
+ Requires-Dist: pyannote-database==5.1.3; extra == "loaders"
125
+ Requires-Dist: pyannote-metrics==3.2.1; extra == "loaders"
126
+ Requires-Dist: pyannote-pipeline==3.0.1; extra == "loaders"
127
+ Requires-Dist: pytorch-lightning==2.5.5; extra == "loaders"
128
+ Requires-Dist: pytorch-metric-learning==2.9.0; extra == "loaders"
129
+ Requires-Dist: nvidia-cudnn-cu12==9.1.0.70; extra == "loaders"
130
+ Requires-Dist: moviepy==2.2.1; extra == "loaders"
131
+ Requires-Dist: decorator>=5; extra == "loaders"
132
+ Requires-Dist: ffmpeg==1.4; extra == "loaders"
133
+ Requires-Dist: paddleocr==3.2.0; extra == "loaders"
134
+ Provides-Extra: vectors
135
+ Requires-Dist: torch==2.6.0; extra == "vectors"
136
+ Requires-Dist: torchaudio==2.6.0; extra == "vectors"
137
+ Requires-Dist: numpy<2.2,>=2.1; extra == "vectors"
138
+ Requires-Dist: tiktoken==0.9.0; extra == "vectors"
139
+ Requires-Dist: accelerate==0.34.2; extra == "vectors"
140
+ Requires-Dist: bitsandbytes==0.44.1; extra == "vectors"
141
+ Requires-Dist: datasets>=3.0.2; extra == "vectors"
142
+ Requires-Dist: safetensors>=0.4.3; extra == "vectors"
143
+ Requires-Dist: transformers<=4.51.3,>=4.51.1; extra == "vectors"
144
+ Requires-Dist: sentence-transformers>=5.0.0; extra == "vectors"
145
+ Requires-Dist: tokenizers<=0.21.1,>=0.20.0; extra == "vectors"
146
+ Requires-Dist: tensorflow>=2.19.1; extra == "vectors"
147
+ Requires-Dist: tf-keras==2.19.0; extra == "vectors"
148
+ Requires-Dist: simsimd>=4.3.1; extra == "vectors"
149
+ Requires-Dist: opencv-python==4.10.0.84; extra == "vectors"
150
+ Requires-Dist: chromadb==0.6.3; extra == "vectors"
151
+ Requires-Dist: bm25s[full]==0.2.14; extra == "vectors"
152
+ Provides-Extra: images
153
+ Requires-Dist: torchvision==0.21.0; extra == "images"
154
+ Requires-Dist: timm==1.0.15; extra == "images"
155
+ Requires-Dist: ultralytics==8.3.179; extra == "images"
156
+ Requires-Dist: albumentations==2.0.6; extra == "images"
157
+ Requires-Dist: filetype==1.2.0; extra == "images"
158
+ Requires-Dist: imagehash==4.3.1; extra == "images"
159
+ Requires-Dist: pgvector==0.4.1; extra == "images"
160
+ Requires-Dist: pyheif==0.8.0; extra == "images"
161
+ Requires-Dist: exif==1.6.1; extra == "images"
162
+ Requires-Dist: pillow-avif-plugin==1.5.2; extra == "images"
163
+ Requires-Dist: pillow-heif==0.22.0; extra == "images"
164
+ Requires-Dist: python-xmp-toolkit==2.0.2; extra == "images"
165
+ Requires-Dist: exifread==3.5.1; extra == "images"
166
+ Requires-Dist: transformers<=4.51.3,>=4.51.1; extra == "images"
167
+ Requires-Dist: ffmpeg==1.4; extra == "images"
168
+ Requires-Dist: holoviews==1.21.0; extra == "images"
169
+ Requires-Dist: bokeh==3.7.3; extra == "images"
170
+ Requires-Dist: pandas-bokeh==0.5.5; extra == "images"
171
+ Requires-Dist: plotly==5.22.0; extra == "images"
172
+ Requires-Dist: ipywidgets==8.1.0; extra == "images"
173
+ Requires-Dist: altair==5.5.0; extra == "images"
174
+ Provides-Extra: whisperx
175
+ Requires-Dist: whisperx==3.4.2; extra == "whisperx"
176
+ Requires-Dist: av==15.1.0; extra == "whisperx"
177
+ Requires-Dist: torch==2.6.0; extra == "whisperx"
178
+ Requires-Dist: torchaudio==2.6.0; extra == "whisperx"
179
+ Requires-Dist: torchvision==0.21.0; extra == "whisperx"
180
+ Requires-Dist: pyannote-audio==3.4.0; extra == "whisperx"
181
+ Requires-Dist: pyannote-core==5.0.0; extra == "whisperx"
182
+ Requires-Dist: pyannote-database==5.1.3; extra == "whisperx"
183
+ Requires-Dist: pyannote-metrics==3.2.1; extra == "whisperx"
184
+ Requires-Dist: pyannote-pipeline==3.0.1; extra == "whisperx"
185
+ Requires-Dist: pytorch-lightning==2.5.5; extra == "whisperx"
186
+ Requires-Dist: pytorch-metric-learning==2.9.0; extra == "whisperx"
187
+ Requires-Dist: nvidia-cudnn-cu12==9.1.0.70; extra == "whisperx"
188
+ Requires-Dist: torch-audiomentations==0.12.0; extra == "whisperx"
189
+ Requires-Dist: torch-pitch-shift==1.2.5; extra == "whisperx"
190
+ Requires-Dist: torchmetrics==1.8.2; extra == "whisperx"
191
+ Provides-Extra: anthropic
192
+ Requires-Dist: anthropic[aiohttp]==0.61.0; extra == "anthropic"
193
+ Requires-Dist: claude-agent-sdk>=0.1.0; extra == "anthropic"
194
+ Provides-Extra: openai
195
+ Requires-Dist: openai==2.8.1; extra == "openai"
196
+ Requires-Dist: tiktoken==0.9.0; extra == "openai"
197
+ Provides-Extra: google
198
+ Requires-Dist: google-api-python-client<=2.177.0,>=2.166.0; extra == "google"
199
+ Requires-Dist: google-cloud-texttospeech==2.27.0; extra == "google"
200
+ Requires-Dist: google-genai==1.52.0; extra == "google"
201
+ Requires-Dist: google-cloud-aiplatform==1.110.0; extra == "google"
202
+ Provides-Extra: groq
203
+ Requires-Dist: groq==0.33.0; extra == "groq"
204
+ Requires-Dist: typing_extensions<=4.14.1,>=4.13.2; extra == "groq"
205
+ Provides-Extra: llms
206
+ Requires-Dist: google-genai==1.52.0; extra == "llms"
207
+ Requires-Dist: openai==2.8.1; extra == "llms"
208
+ Requires-Dist: groq==0.33.0; extra == "llms"
209
+ Requires-Dist: anthropic[aiohttp]==0.61.0; extra == "llms"
210
+ Requires-Dist: claude-agent-sdk>=0.1.0; extra == "llms"
211
+ Requires-Dist: xai-sdk>=0.1.0; extra == "llms"
212
+ Provides-Extra: milvus
213
+ Requires-Dist: pymilvus==2.4.8; extra == "milvus"
214
+ Requires-Dist: milvus==2.3.5; extra == "milvus"
215
+ Provides-Extra: chroma
216
+ Requires-Dist: chroma==0.2.0; extra == "chroma"
217
+ Provides-Extra: eda
218
+ Requires-Dist: ydata-profiling==4.16.1; extra == "eda"
219
+ Requires-Dist: sweetviz==2.1.4; extra == "eda"
220
+ Provides-Extra: security
221
+ Requires-Dist: pytector[gguf]==0.2.0; extra == "security"
222
+ Provides-Extra: xai
223
+ Requires-Dist: xai-sdk>=0.1.0; extra == "xai"
224
+ Provides-Extra: all
225
+ Requires-Dist: ai-parrot[agents,chroma,images,llms,loaders,milvus,vectors]; extra == "all"
226
+ Provides-Extra: dev
227
+ Requires-Dist: pytest>=7.2.2; extra == "dev"
228
+ Requires-Dist: pytest-asyncio==0.21.1; extra == "dev"
229
+ Requires-Dist: pytest-xdist==3.3.1; extra == "dev"
230
+ Requires-Dist: pytest-assume==2.4.3; extra == "dev"
231
+ Requires-Dist: pytest-mock==3.15.1; extra == "dev"
232
+ Requires-Dist: black; extra == "dev"
233
+ Requires-Dist: pylint; extra == "dev"
234
+ Requires-Dist: mypy; extra == "dev"
235
+ Requires-Dist: coverage; extra == "dev"
236
+ Requires-Dist: maturin==1.9.6; extra == "dev"
237
+ Dynamic: license-file
238
+
239
+ # 🦜 AI-Parrot
240
+
241
+ **A unified Python library for building intelligent agents, chatbots, and LLM-powered applications**
242
+
243
+ AI-Parrot simplifies working with Large Language Models by providing a cohesive framework for creating conversational agents, managing tools, implementing RAG systems, and orchestrating complex AI workflowsβ€”all without the bloat of traditional frameworks.
244
+
245
+ ## ✨ Key Features
246
+
247
+ ### πŸ€– Multi-Provider LLM Support
248
+ Connect seamlessly to multiple AI providers through a unified interface:
249
+ - **OpenAI** (GPT-4, GPT-3.5)
250
+ - **Anthropic Claude** (Claude 3.5 Sonnet, Opus)
251
+ - **Google GenAI** (Gemini models)
252
+ - **Groq** (Fast inference)
253
+
254
+ ### πŸ› οΈ Intelligent Agent System
255
+ Build sophisticated agents with built-in tool support and orchestration:
256
+ - **Tool Manager**: Share tools across multiple agents
257
+ - **Agent Registry**: Decorator-based agent creation and registration
258
+ - **Python Tool Calling**: Native support for calling Python functions as tools
259
+ - **Complex Toolkits**: Compose multiple tools into reusable toolkits
260
+
261
+ ### πŸ’¬ Chatbot Creation
262
+ Create production-ready chatbots with minimal code:
263
+ - Conversational context management
264
+ - Multi-turn dialogue support
265
+ - Streaming responses
266
+ - Custom personality and behavior configuration
267
+
268
+ ### πŸ—„οΈ Knowledge Base & RAG
269
+ Implement Retrieval-Augmented Generation with enterprise-grade components:
270
+ - **PgVector Integration**: PostgreSQL-based vector storage for semantic search
271
+ - **Document Loaders**: Transform any document format into AI-ready context
272
+ - **Open-Source Embeddings**: Hugging Face Transformers integration
273
+ - **Structured Outputs**: Type-safe responses from your LLMs
274
+
275
+ ### 🌐 API & Server Capabilities
276
+ Deploy your AI applications with ease:
277
+ - **Bot Manager**: Centralized management for multiple bot instances
278
+ - **REST API**: Expose your agents and chatbots via HTTP endpoints
279
+ - **MCP Server**: Model Context Protocol support for standardized agent communication
280
+
281
+ ### ⏰ Task Scheduling
282
+ Orchestrate agent actions over time:
283
+ - Schedule periodic agent tasks
284
+ - Trigger-based automation
285
+ - Asynchronous execution support
286
+ - Task dependency management
287
+
288
+ ## πŸš€ Quick Start
289
+
290
+ ### Installation
291
+
292
+ ```bash
293
+ pip install ai-parrot
294
+ ```
295
+
296
+ ### Create Your First Chatbot
297
+
298
+ ```python
299
+ from ai_parrot import ChatBot, OpenAIClient
300
+
301
+ # Initialize LLM client
302
+ client = OpenAIClient(api_key="your-api-key")
303
+
304
+ # Create a chatbot
305
+ bot = ChatBot(
306
+ name="assistant",
307
+ client=client,
308
+ system_prompt="You are a helpful AI assistant."
309
+ )
310
+
311
+ # Have a conversation
312
+ response = bot.chat("What's the weather like today?")
313
+ print(response)
314
+ ```
315
+
316
+ ### Build an Agent with Tools
317
+
318
+ ```python
319
+ from ai_parrot import Agent, tool
320
+ from ai_parrot.registry import agent_registry
321
+
322
+ @tool
323
+ def calculate_sum(a: int, b: int) -> int:
324
+ """Add two numbers together."""
325
+ return a + b
326
+
327
+ @tool
328
+ def get_current_time() -> str:
329
+ """Get the current time."""
330
+ from datetime import datetime
331
+ return datetime.now().strftime("%H:%M:%S")
332
+
333
+ # Register an agent with tools
334
+ @agent_registry.register("math_agent")
335
+ class MathAgent(Agent):
336
+ def __init__(self):
337
+ super().__init__(
338
+ name="Math Helper",
339
+ tools=[calculate_sum, get_current_time]
340
+ )
341
+
342
+ # Use the agent
343
+ agent = agent_registry.get("math_agent")
344
+ result = agent.run("What's 42 plus 58? Also, what time is it?")
345
+ ```
346
+
347
+ ### Implement RAG with Vector Store
348
+
349
+ ```python
350
+ from ai_parrot import RAGChatBot, PgVectorStore
351
+ from ai_parrot.loaders import PDFLoader, TextLoader
352
+
353
+ # Initialize vector store
354
+ vector_store = PgVectorStore(
355
+ connection_string="postgresql://user:pass@localhost/db"
356
+ )
357
+
358
+ # Load and index documents
359
+ loader = PDFLoader()
360
+ documents = loader.load("./docs/manual.pdf")
361
+ vector_store.add_documents(documents)
362
+
363
+ # Create RAG-enabled chatbot
364
+ rag_bot = RAGChatBot(
365
+ client=client,
366
+ vector_store=vector_store,
367
+ top_k=5
368
+ )
369
+
370
+ # Query with context
371
+ response = rag_bot.chat("How do I configure the settings?")
372
+ ```
373
+
374
+ ### Expose via API
375
+
376
+ ```python
377
+ from ai_parrot import BotManager, create_api
378
+
379
+ # Create bot manager
380
+ manager = BotManager()
381
+ manager.register_bot("assistant", bot)
382
+ manager.register_agent("math_helper", agent)
383
+
384
+ # Create and run API server
385
+ app = create_api(manager)
386
+
387
+ # Run with: uvicorn main:app --reload
388
+ ```
389
+
390
+ ### Schedule Agent Tasks
391
+
392
+ ```python
393
+ from ai_parrot import TaskScheduler
394
+
395
+ scheduler = TaskScheduler()
396
+
397
+ # Schedule a daily summary
398
+ @scheduler.schedule(cron="0 9 * * *") # Every day at 9 AM
399
+ async def daily_summary():
400
+ summary = await agent.run("Generate a summary of yesterday's activities")
401
+ send_email(summary)
402
+
403
+ # Run the scheduler
404
+ scheduler.start()
405
+ ```
406
+
407
+ ## πŸ—οΈ Architecture
408
+
409
+ AI-Parrot is designed with modularity and extensibility in mind:
410
+
411
+ ```
412
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
413
+ β”‚ Application Layer β”‚
414
+ β”‚ (Chatbots, Agents, Custom Logic) β”‚
415
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
416
+ β”‚
417
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
418
+ β”‚ AI-Parrot Core β”‚
419
+ β”‚ β€’ Agent Registry β€’ Tool Manager β”‚
420
+ β”‚ β€’ Bot Manager β€’ Task Scheduler β”‚
421
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
422
+ β”‚
423
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
424
+ β”‚ Provider Integrations β”‚
425
+ β”‚ β€’ OpenAI β€’ Claude β€’ Gemini β”‚
426
+ β”‚ β€’ Groq β€’ Hugging Face β”‚
427
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
428
+ β”‚
429
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
430
+ β”‚ Storage & Infrastructure β”‚
431
+ β”‚ β€’ PgVector β€’ Document Loaders β”‚
432
+ β”‚ β€’ MCP Server β€’ API Layer β”‚
433
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
434
+ ```
435
+
436
+ ## 🎯 Use Cases
437
+
438
+ - **Customer Support Bots**: Build intelligent support agents with knowledge base integration
439
+ - **Research Assistants**: Create agents that can search, analyze, and synthesize information
440
+ - **Automation Workflows**: Schedule and orchestrate AI-powered tasks
441
+ - **Internal Tools**: Expose LLM capabilities through APIs for your team
442
+ - **Multi-Agent Systems**: Coordinate multiple specialized agents working together
443
+
444
+ ## πŸ—ΊοΈ Roadmap
445
+
446
+ - βœ… **Langchain Independence**: Removed heavyweight dependencies
447
+ - 🚧 **Complex Toolkits**: Advanced tool composition and chaining
448
+ - 🚧 **Model Interoperability**: Seamless LLM + Hugging Face model integration
449
+ - πŸ“‹ **Non-LLM Models**: Support for classification, NER, and other ML models
450
+ - πŸ“‹ **MCP Full Integration**: Complete Model Context Protocol implementation
451
+ - πŸ“‹ **Graph-Based RAG**: Knowledge graphs with ArangoDB for advanced reasoning
452
+
453
+ ## 🀝 Contributing
454
+
455
+ Contributions are welcome! Whether it's bug fixes, new features, or documentation improvements, we appreciate your help in making AI-Parrot better.
456
+
457
+ ## πŸ“„ License
458
+
459
+ MIT License.
460
+
461
+ ## πŸ“š Documentation
462
+
463
+ For detailed documentation, examples, and API reference, see the examples/ folder.
464
+
465
+ ## πŸ’¬ Community & Support
466
+
467
+ - **Issues**: [GitHub Issues](your-github-repo/issues)
468
+ - **Discussions**: [GitHub Discussions](your-github-repo/discussions)
469
+
470
+ ---
471
+
472
+ Built with ❀️ for developers who want powerful AI tools without the complexity.